Upgrading from 3.2.x

This page describes the necessary changes if you are upgrading from version 3.2.x to 3.4.x

Link block
UnrealIRCd 3.4.x has a new link block. We nowadays recommend linking with SSL/TLS and have written a Tutorial:_Linking_servers detailing how to do just that with 3.4.x.

Below are the changes described in more detail: UnrealIRCd 3.2.x: link  { username ; hostname ; bind-ip ; port ; password-connect ; password-receive  { ; }; hub ; leaf ; leafdepth ; class ; ciphers ; options { ;       ;        ...    }; };

New block in UnrealIRCd 3.4.x: link  { /* Below, often you will have both an incoming { } and outcoming { } sub-block. * However you may also choose to have only 1 of them if you always link in the same direction. */   incoming { mask 1.2.3.*; };   outgoing { bind-ip ; /* optional now */ hostname irc1.some.net; /* may also be an IP */ port 6697; /* or move the hostname & ip into one item ? irc1.some.net:6697 */ options { ssl; autoconnect; }; /* optional, but recommended */ };   password "some-password"; /* either a plaintext password that's the same for both sides or an SSL fingerprint (or certificate) */ hub ; /* optional */ leaf ; /* optional */ leaf-depth ; /* optional */ class ; ciphers ; /* optional */ options { quarantine; /* is a generic option. optional. */   }; };

As you can see, some directives remain the same, while others have been moved to either the incoming or outgoing section. The reason for this is that the old link block was highly confusing as to whether settings applied to incoming, outgoing or both. And when it applied to both it actually prevented you from doing things such as specifying a DNS name to connect to outgoing (eg: now link::outgoing::hostname blah.dyndns.org) and to still restrict the IP incoming (eg: link::incoming::mask *@93.17.*).

Other than the incoming::mask and outgoing::hostname split (and move of other items), another major change is password. There's now only a single password item and no longer two, as this provided very little benefit. We now recommend the use of SSL fingerprints for authentication which can be used as a password (this was also possible in 3.2.x). If you don't want to use that and prefer to ignore our Tutorial:_Linking_servers then you can just set a plaintext password instead.

Finally, with the new link block a lot of it is made optional. You may leave out the whole outgoing part if you only accept the link as incoming, for example for a services link block. Similarly, you may leave out incoming if you have an outgoing block. Within the outgoing block only hostname and port are mandatory (though you probably want to enable ssl via options there as well, and possibly autoconnect). Outside incoming and/or outgoing only password and class are mandatory, all the rest is optional. If you don't specify any of the hub or leaf options we assume hub *; (in other words: link may introduce any other servers).