UnrealIRCd Configuration Documentation v3.2-beta5 Table of Contents 1.0 Abstract 1.1 Introduction 2.0 Me block (M:line) 3.0 Admin block (A:line) 4.0 Class block (Y:line) 5.0 Allow block (I:line) 6.0 Listen block (P:line) 7.0 Oper block (O:line) 8.0 Drpass block (X:line) 9.0 Include directive (N/A) 10.0 Loadmodule directive (N/A) 11.0 Log block (N/A) 12.0 Tld block (T:line) 13.0 Ban nick block (Q:line) 13.1 Ban user block (K:line) 13.2 Ban ip block (Z:line) 13.3 Ban realname block (n:line) 13.4 Ban server block (q:line) 14.0 Except ban block (E:line) 14.1 Except scan block (e:line) 15.0 Deny dcc block (dccdeny.conf) 15.1 Deny version block (V:line) 15.2 Deny link block (D:line and d:line) 15.3 Deny channel block (chrestrict.conf) 16.0 Allow channel block (N/A) 17.0 Vhost block block (vhost.conf) 18.0 Badword block (badwords.*.conf) 19.0 Ulines block (U:line) 20.0 Link block (C:line, N:line, H:line, L:line) 21.0 Alias block (N/A) 22.0 Help block (N/A) 23.0 Set block (networks/unrealircd.conf and networks/*.network) 24.0 Conclusion 1.0 Abstract Welcome to the new Unreal configuration format. This format may seem very confusing at first, but hopefully this document will clear up any confusion. This file will show you the new config file directives as well as tell you the old format equivilent (where one exists) to help you get a feel for the new file. 1.1 Introduction Each entry, or block, in the new format has a specific format. The format works like: { ; }; is the type of block, such as me, or admin. sometimes specifys a value, such as /oper login, but other times it will be a sub-type such as in ban user. is an individual variable specific to the block, and is the associated value. Directives and their values do not have to be seperated by an equal sign, but they maybe if you choose to do so. If contains spaces, or characters that represent a comment it must be contained in double quotes. If you want to use a quote character inside a quoted string use \" and it will be understood as a quote character. A can have directives within it, if thats the case it will have it's own set of curly braces surrounding it. Some blocks do not have directives and are specified just by , such as include. Also note that there is no set format, meaning the whole block can appear on one line or over multiple lines. The format above is what is normally used (and what will be used in this file) because it is easy to read. Note: the configuration file is currently case sensitive so BLOCK-NAME is not the same as block-name. There is a special notation used to talk about entries in the config file. For example, to talk about in the example above, you'd say ::, and if that directive has a subblock you want to reverence, you would add another :: and the name of the sub directive. To talk about an unnamed directive you would do :: which would in this case mean , or it could be an entry in a sub block that has no name. Comments are supported in three formats, both multi-line and single-line comments are supported. To comment a single line there are two options, a shell style comment, or a C++ style comment. A shell style comment begins with a # and a C++ style begins with a //. These comments can appear anywhere in a line and comment anything until the end of the line. For multi-line comments, a C style comment is supported. To start the comment you enter /* and anything from there until the */ is commented. 2.0 Me block (M:line) Syntax: me { name ; info ; numeric ; }; These values are pretty obvious. The me::name specifies the name of the server, me::info specifies the server's info line, me::numeric specifies a numeric to identify the server. This must be a value between 1 and 255 that is unique to the server meaning no other servers on the network may have the same numeric. 3.0 Admin block (A:line) Syntax: admin { ; ; ... }; The admin block defines the text displayed in a /admin request. You can specify as many lines as you want and you they can contain whatever information you choose, but it is standard to include the admin's nickname and email address at a minimum. Other information may include any other contact information you wish to give. 4.0 Class block (Y:line) Syntax: class { pingfreq ; connfreq ; maxclients ; sendq ; }; The class block is a vastly simplified version of the Y:lines. You are no longer limited to naming them with a number, you can now use an alpha-numeric string which is specified in the class::. The values of this block define the connection classes, class::pingfreq specifies the number of seconds between PINGs, class::connfreq is only used in server classes to specify the time in seconds between connection attempts, class::maxclients specifies the maximum amount of clients that may use this class to connect, and class::sendq specifies the amount of information that can remain in the send queue buffer. 5.0 Allow block (I:line) Syntax: allow { ip ; hostname ; class ; password { ; }; maxperip ; redirect-server ; redirect-port ; }; The allow class is similar to an I:line but provides more features. The allow::ip specifies a user@ip hostmask for a user to match to connect and allow::hostname specifies a user@host to match to connect, allow::class is the name of a preexisting (appears before this block in the config) class block that will be used for this class. The rest of the directives are optional, allow::password specifies a password that users must enter to connect. The allow::password:: allows you to specify an authentication method. Currently supported methods are crypt, md3, and sha1. If you are using plain-text you can just leave this sub-block out. This directive also allows you to configure close killing, allow::maxperip lets you specify the maximum number of clients that may connect from a single IP. Lastly, the allow block supports redirection when the server is full, allow::redirect-server specifies the address of a server to forward to, and allow::redirect-port specifies the port, if no port is specified, 6667 is assumed. Note: for auto-redirection to occur the client must have support for the redirection numeric, at this time not many clients do. 6.0 Listen block (P:line) Syntax: listen { options {