X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=doc%2Freadme.features;fp=doc%2Freadme.features;h=de1b33276cf3769e9bea5e8de4cbfb6c062926cd;hp=0000000000000000000000000000000000000000;hb=0400a5a6479398d82526785c18c0df8bc8b92dce;hpb=d17e10da972ce5776c60b4c317267c6abe0e1ead diff --git a/doc/readme.features b/doc/readme.features new file mode 100644 index 0000000..de1b332 --- /dev/null +++ b/doc/readme.features @@ -0,0 +1,896 @@ +Many of the old compile-time options are now configured through the +server configuration file, ircd.conf. This file is intended to +document each of these features. Logging, although also configured +through the use of Feature entries, is documented in doc/readme.log. NOTE +THAT THESE NAMES ARE CASE SENSITIVE! Values are not case sensitive +unless stated otherwise in the documentation for that feature. + +DOMAINNAME + * Type: string + * Default: picked by ./configure from /etc/resolv.conf + +This option allows you to specify what you consider to be "local." It +is only used for statistics. When you issue the IRC command /STATS w, +the server will respond with statistics of how many clients have been +connecting to your server in the last minute, hour and day. It will +give these statistics for all connections (including the servers), all +clients (from anywhere) and also for clients whose hostname ends on +the domain you specify here. So if you are an ISP and you want to +know what the client load from your own domain is, specify that domain +here. If you are unsure what to do, then it isn't really important +what you give here, just don't give an empty string. A good guess is +the last two parts of your own hostname (i.e., if your hostname is +foo.bar.nowhere.org, specify "nowhere.org"). Note that the string you +give should NOT start with a "." and you should not use quotes. + +RELIABLE_CLOCK + * Type: boolean + * Default: FALSE + +You should really ONLY specify "TRUE" here when your system clock is +stable and accurate at all times (within a few seconds). If you are +running ntpdate on a regular basis, or an equivalent like xntpd, to +keep your system clock synchronized over the network, then you might +have an accurate clock. However, this is not guaranteed; for example, +it is known that xntpd gives unstable results on Linux in some cases. +Note that an unstable clock is worse then an clock that has a constant +offset, because the servers attempt to correct for a constant offset, +but do not correct jumps of your system clock! In general you SHOULD +be running ntpdate or equivalent AND make sure it works when you run a +production server on Undernet. Otherwise leave your clock alone and +specify "FALSE" here. If unsure specify "FALSE"! + +BUFFERPOOL + * Type: integer + * Default: 27000000 + +This specifies the maximum amount of RAM that your server will +allocate for buffering sendQs. Small leafs can use a value as little +as 1000000, while large HUBs need to specify a value as high as +20000000. If you run out of memory, clients and/or servers are +dropped with the error "Buffer allocation error"; then you will have +to increase this number (and install more RAM if appropriate). If you +want a more educated guess for this value then realize that any value +is good if you _really_ would rather drop servers and clients than +allocate more memory; this will be the case when there is the danger +you may run out of memory for other allocations. Even if you run the +daemon on a dedicated machine, specifying all of the RAM you have is a +bad thing, because running out of memory is a lot worse than dropping +clients in a controlled way; if possible you should have memory left +for all the internal structures (channels, clients, ban lists, receive +buffers) at all times. On average, clients seem to use 150 bytes of +sendQ, but at peak moments this can easily increase to 2032 bytes per +client (sendQs are allocated in chunks of 2032 bytes). The maximum +possible amount that can be allocated for sendQs is the number of +connected clients times whatever you specified as the maximum sendQ in +your Class blocks in the ircd.conf file. That value will likely be larger +then the amount of RAM you have. The educated guess I talked about +earlier would be "number of clients" times * 2048 bytes + "size of +net.burst" * n, where "n" is 1 for leafs and up to 5 for HUBs. The +"size of net.burst" is about 125 bytes per online client (on the whole +network). For large HUBs with 4000 clients on a network with 30,000 +users, this results in 27 Mb. Leafs could use 12 Mb. Of course you +can use less when you have less than 4000 local clients. This value +is in bytes. + +HAS_FERGUSON_FLUSHER + * Type: boolean + * Default: FALSE + +If you have a server with a lot of resources available, this option +will cause the server to attempt to flush its internal buffers before +dropping clients during a net break. Don't define this if you don't +know for certain; if you're not careful this can end up rebooting +FreeBSD boxes. For more information, refer to freebsd.txt, also in +this directory. + +CLIENT_FLOOD + * Type: integer + * Default: 1024 + +Currently, everything that a client sends to a server is read by the +server and stored in a buffer (the clients receive queue). The server +will process messages from this queue one by one (running over all +clients each time). When a client sends new messages faster they get +processed, and the size of its receive buffer reaches this value, the +client is dropped with the error "Excess flood." A reasonable value +is 1024 bytes. The maximum size is 8000 bytes. + +SERVER_PORT + * Type: integer + * Default: 4400 + +When an IRC operator attempts a connect to another server, he or she +may not know which port the connect should go to. In this server +version, that operator may use the special port 0, in which case the +server will take the port from the Connect block. If no port is +specified in the Connect block, however, the port specified by this +option will be used instead. + +NODEFAULTMOTD + * Type: boolean + * Default: TRUE + +Every time a client connects to your server, the full Message of the +Day (as specified by the Motd blocks or by the file specified by the MPATH +option) is sent to the client. The server sends the Message of the +Day even though many clients permit the user to ignore it. Many users +never read the message of the day anyway, making it a huge waste of +bandwidth. If you specify "TRUE" here, then the server won't send the +MOTD to the client by default; instead, it will only tell the client +when the MOTD was last changed, and give instructions on how to obtain +it by typing /MOTD. + +MOTD_BANNER + * Type: string + * Default: NULL + +If you enable NODEFAULTMOTD, this specifies a one-line banner to be sent +to the client in addition to the instructions mentioned above. + +PROVIDER + * Type: string + * Default: NULL + +This string as added to the 001 numeric prefixed with "via" before the nick. +It's used for providing promotional space to providers as per CFV-202 + +KILL_IPMISMATCH + * Type: boolean + * Default: FALSE + +When a client connects to your server, the IP address of the client is +reverse-resolved to obtain a hostname. Then that hostname is resolved +to an IP address and compared with the IP address of the client. If +they don't match, the client will appear with the IP address instead +of the hostname, unless KILL_IPMISMATCH is "TRUE," in which case the +client is simply disconnected. + +IDLE_FROM_MSG + * Type: boolean + * Default: TRUE + +The IRC command WHOIS gives an idle time for clients. If you want +this idle time to be set to zero only when the client sends a PRIVMSG, +then you should specify "TRUE" here. If you specify "FALSE," then the +idle time will be nullified on all messages except the server +PING/PONG. + +HUB + * Type: boolean + * Default: FALSE + +All servers of an IRC "network" are connected in a "tree" (no loops). +Servers that are only connected to one other server (called the +"uplink") are called "leafs"; servers that are connected to more than +one other server are called HUBs. If you specify "FALSE" here then +your server will prevent itself from accidentally connecting to two +servers at once, thus keeping servers in poor network locations from +routing traffic. Note that on Undernet, all newly linked servers are +linked as leafs during their test phase, and should specify "FALSE" +here. + +WALLOPS_OPER_ONLY + * Type: boolean + * Default: FALSE + +Setting this option removes the ability for clients that are not IRC +operators to see wallops messages. + +NODNS + * Type: boolean + * Default: FALSE + +If you are playing with the server off-line, and no DNS is available, +then long delays occur before the server starts up because it tries to +resolve the name given in the General block (which usually isn't given +in /etc/hosts) and for each connecting client. If you specify "TRUE" +here, then a DNS lookup will be done only for the real hostname, and +the server will not try to resolve clients that connect to +"localhost." Note that other DNS lookups are still done for outbound +connections. + +RANDOM_SEED + * Type: string + * Default: none + +When a client connects, the server sends the client a "cookie," +consisting of a random number. The client must return the cookie to +the server verbatim. This is done to prevent IP spoofing. The cookie +is generated by a pseudorandom number generator included in ircd. +This generator must be seeded with a phrase that is kept secret, to +ensure that the numbers it generates are not easily guessed. The +value given to RANDOM_SEED may be a string of any length. It should +not contain any characters that are considered special by the +configuration file system, such as ":" or "#"; the string should be at +least 8 characters long, but longer strings are better. The +RANDOM_SEED may not be retrieved online. + +DEFAULT_LIST_PARAM + * Type: string + * Default: none + +The LIST command takes a single optional argument. If given, that +argument is either a channel or a filter. If that argument is not +given, then by default, /LIST will list all channels on the network. +Needless to say, this can generate a large amount of data on large +networks with many channels, as well as chewing up a lot of CPU time. +Server administrators can therefore set a default filter to be applied +to the channel list if the optional argument to LIST is omitted. + +NICKNAMEHISTORYLENGTH + * Type: integer + * Default: 800 + +This value specifies the length of the nick name history list, which +is used for /WHOWAS and some nickname chasing in /KILL and /KICK. It +uses about 300 to 400 bytes per entry. Note that at a net break, so +many client disappear that the whole "whowas" list is refreshed a few +times (unless you make it rather large). A reasonable value is "total +number of clients" / 25. + +HOST_HIDING + * Type: boolean + * Default: TRUE + +This selects whether local users can set umode +x, thus allowing them +to hide their hostname if they have also registered with a channel +service (i.e. they have the ACCOUNT flag set). + +HIDDEN_HOST + * Type: string + * Default: users.undernet.org + +This selects the suffix for the hidden hostmask (see HOST_HIDING). + +HIDDEN_IP + * Type: string + * Default: 127.0.0.1 + +This selects a fake IP to be shown on /USERIP and /WHO %i when the +target has a hidden host (see HOST_HIDING). + +CONNEXIT_NOTICES + * Type: boolean + * Default: FALSE + +This feature controls the generation of server notices when a user +connects to or disconnects from the server. Enabling this feature may +have a performance impact. + +KILLCHASETIMELIMIT + * Type: integer + * Default: 30 + +If a user changes his or her nickname just before an operator issues a +/KILL, the /KILL will be changed to follow the user the operator +intended to get. This option specifies the time limit, in seconds, +for this nickname change; if the user changed his or her nickname more +than this many seconds ago, the /KILL will not be changed. Don't +change this unless you really need to. + +MAXCHANNELSPERUSER + * Type: integer + * Default: 10 + +This is the maximum number of channels a user can be in at a time. +The "mandatory" value on Undernet is currently 10. Since it only +influences the local server when you decrease it, its up to you to +decide if you want to use a smaller value. Do not use a larger value +however, because it DOES cost more memory and bandwidth on all other +servers when you allow users to join more channels simultaneously. +One of the most important reasons to choose a smaller value is the +fact that the "GUI" clients tend to stay on every channel they join +(they aren't bothered by flooding in other channels). It DOES take +your bandwidth however to send all those messages for 10 different +channels to all your users. + +AVBANLEN + * Type: integer + * Default: 40 + +This is the expected average ban mask length. Leave it at 40. + +MAXBANS + * Type: integer + * Default: 45 + +This is the maximum number of bans a user may set on a given channel. + +MAXSILES + * Type: integer + * Default: 15 + +This is the maximum number of masks a user can silence at a time. The +silence command allows users to filter messages directed at them from +certain users or domains, at the source server. Increasing this +number allows users to use up more memory with inefficient use of the +command. If you're not sure, don't change this. + +HANGONGOODLINK + * Type: integer + * Default: 300 + +Often the net breaks for a short time and it is useful to try to +reestablish the same connection faster than CONNECTFREQUENCY would +allow, but to keep from trying again on a bad connection, we require +that the connection be open for a certain minimum time. The +recommended value is 300 seconds. + +HANGONRETRYDELAY + * Type: integer + * Default: 10 + +When attempting to quickly reestablish a connection to a good link, we +give the net a few seconds to calm down. This time must be long enough +for the other end to also notice that the connection is broken. The +recommended value is 10 seconds. + +CONNECTTIMEOUT + * Type: integer + * Default: 90 + +Number of seconds to wait for a connect(2) call to complete. NOTE: +this must be at *LEAST* 10. When a client connects, it has +CONNECTTIMEOUT - 10 seconds for its host to respond to an ident lookup +query and for a DNS lookup to complete. It is recommended that you not +change this value, but if you do, consider the fact that users whose +clients do not support NOSPOOF will have to type /QUOTE PING before registration. + +MAXIMUM_LINKS + * Type: integer + * Default: 1 + +This is the maximum number of links for the built-in client class 0. +Leave this value at 1. + +PINGFREQUENCY + * Type: integer + * Default: 120 + +If the daemon doesn't receive anything from any of its links within +PINGFREQUENCY seconds, then the it will attempt to check for an active +link with a PING message. If no reply is received within +(PINGFREQUENCY * 2) seconds, then the connection will be closed. This +value may be overridden by a Class block in "ircd.conf" if the +connection's Client or Connect block in "ircd.conf" assigns a specific +class to the connection (recommended). + +CONNECTFREQUENCY + * Type: integer + * Default: 600 + +This is the default frequency that the server attempts to reconnect +with its uplink server if it is set to auto connect to it. Note that +this value is overridden by a Class block in ircd.conf if the Connect +entries in ircd.conf assign a specific class to the connection. + +DEFAULTMAXSENDQLENGTH + * Type: integer + * Default: 40000 + +This is the default value of the maximum sendQ length of connection +classes (see doc/example.conf for details on Class blocks). You will +generally override this value in your "ircd.conf" with a Class block. + +GLINEMAXUSERCOUNT + * Type: integer + * Default: 20 + +G-lines that affect too many users have to be set with a special +command, to prevent accidental G-lines of large blocks of users. This +feature sets that particular threshold. + +MPATH + * Type: string + * Default: "ircd.motd" + +MPATH is the filename (relative to DPATH) or the full path of the +"Message of the Day" file. The contents of this file will be sent to +every client that connects to the server, after registration. + +RPATH + * Type: string + * Default: "remote.motd" + +RPATH is the filename (relative to DPATH) or the full path of the +"Remote Message of the Day" file. The contents of this file will be +sent to every remote client that issues a /MOTD . +Only the first three lines are sent, so you might want to keep that in +mind while writing the file. + +PPATH + * Type: string + * Default: "ircd.pid" + +PPATH is the filename (relative to DPATH) or the full path of the +"PID" file. It is used for storing the server's process ID so that a +ps(1) isn't necessary. + +TOS_SERVER + * Type: integer + * Default: 0x08 + +This option is used to specify the type of service that will be +requested for connections to other servers. The value may be given as +a hexadecimal integer. + +TOS_CLIENT + * Type: integer + * Default: 0x08 + +This option is used to specify the type of service that will be +requested for connections to users. The value may be given as a +hexadecimal integer. + +POLLS_PER_LOOP + * Type: integer + * Default: 200 + +Some of the engines used by the event interface get a number of events +from the kernel at once. Since the number retrieved can impact +performance, it can be tuned by modifying this value. The engines +enforce a lower limit of 20. + +CONFIG_OPERCMDS + * Type: boolean + * Default: FALSE + +Since u2.10.11, several new oper-only features have been added that +involve changes to the server<->server protocol. This configuration +option provides a single switch to prevent the use of these features +until the entire network has been upgraded. It is not required that +all servers set this to "TRUE" in order for the features to be used, +as long as all servers are running u2.10.11 or above. + +HIS_MAP + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /MAP from users. + +HIS_SNOTICES + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes server notices from users. + +HIS_SNOTICES_OPER_ONLY + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes server notices from users. + +HIS_DEBUG_OPER_ONLY + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes server wallops from users. + +HIS_WALLOPS + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes operator wallops from users. + +HIS_LINKS + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /LINKS from users. + +HIS_TRACE + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /TRACE from users. + +HIS_STATS_a + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS a from users. + +HIS_STATS_c + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS c from users. + +HIS_STATS_d + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS d from users. + +HIS_STATS_e + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS e from users. + +HIS_STATS_f + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS f from users. + +HIS_STATS_g + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS g from users. + +HIS_STATS_i + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS i from users. + +HIS_STATS_j + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS j from users. + +HIS_STATS_J + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS J from users. + +HIS_STATS_k + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS k from users. + +HIS_STATS_l + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS l from users. + +HIS_STATS_L + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS L from users. + +HIS_STATS_M + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS M from users. + +HIS_STATS_m + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS m from users. + +HIS_STATS_o + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS o from users. + +HIS_STATS_p + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS p from users. + +HIS_STATS_q + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS q from users. + +HIS_STATS_r + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS r from users. + +HIS_STATS_R + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS R from users. + +HIS_STATS_t + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS t from users. + +HIS_STATS_T + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS T from users. + +HIS_STATS_u + * Type: boolean + * Default: FALSE + +As per UnderNet CFV-165, this allows users to perform /STATS u. + +HIS_STATS_U + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS U from users. + +HIS_STATS_v + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS v from users. + +HIS_STATS_w + * Type: boolean + * Default: FALSE + +As per UnderNet CFV-165, this allows users to perform /STATS w. + +HIS_STATS_x + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS x from users. + +HIS_STATS_y + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS y from users. + +HIS_STATS_z + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes /STATS z from users. + +HIS_STATS_IAUTH + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this disables /STATS IAUTH and +/STATS IAUTHCONF from users. + +HIS_WHOIS_SERVERNAME + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes server names in replies to /WHOIS. + +HIS_WHOIS_IDLETIME + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes idle time in replies to /WHOIS. + +HIS_WHO_SERVERNAME + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes server names in replies to /WHO. + +HIS_WHO_HOPCOUNT + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this replaces hopcount to a static 3 in +replies to /WHO. + +HIS_MODEWHO + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this doesn't show which server performed a channel +mode change. + +HIS_BANWHO + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this doesn't show which server set a ban. + +HIS_KILLWHO + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this doesn't show which server or oper performed a +kill. + +HIS_REWRITE + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this remaps remote numerics to come from the local +server. + +HIS_REMOTE + * Type: integer + * Default: 1 + +As per UnderNet CFV-165, this disallows remote queries. (*sob!*) + +HIS_NETSPLIT + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes server names in net break sign-offs. + +HIS_WHOIS_LOCALCHAN + * Type: boolean + * Default: TRUE + +As per UnderNet CFV-165, this removes local channels in replies to /WHOIS. + +HIS_SERVERNAME + * Type: string + * Default: "*.undernet.org" + +As per UnderNet CFV-165, this is the "name" of the server shown to users on a +/WHOIS of another user. + +HIS_SERVERINFO + * Type: string + * Default: "The Undernet Underworld" + +As per UnderNet CFV-165, this is the "info" of the server shown to users on a +/WHOIS of another user. + +HIS_URLSERVERS + * Type: string + * Default: "http://www.undernet.org/servers.php" + +As per UnderNet CFV-165, this is the URL shown to users when they do a /MAP or +/LINKS. + +NETWORK + * Type: string + * Default: "UnderNet" + +This defines the network name as reported in the 005 "supported features" +numeric, and as used by the "Failed to deliver" message. + +URL_CLIENTS + * Type: string + * Default: "ftp://ftp.undernet.org/pub/irc/clients" + +This defines a URL that users may visit to find compatible IRC clients. + +URLREG + * Type: string + * Default: "http://cservice.undernet.org/live/" + +This defines a URL that is used in server response 477 (ERR_NEEDREGGEDNICK) to +let users know which website they must visit to obtain a proper account for +authentication. + +NICKLEN + * Type: integer + * Default: 12 + +This is the allowed length of the nickname length. It may not be +larger than the NICKLEN #define, and should usually be the same +length. The real purpose of this feature is to permit easy increases +in nickname length for a network. + +IRCD_RES_RETRIES + * Type: integer + * Default: 2 + +This is the number of attempts the irc daemon's resolver will have at +trying to solicit a response from the DNS server. + +IRCD_RES_TIMEOUT + * Type: integer + * Default: 4 + +When a DNS query is sent, the irc daemon's resolver will wait this many +seconds for a reply. After this timeout has expired, it will retry again, +for as many retries as IRCD_RES_RETRIES allows. This can be cut short by +AUTH_TIMEOUT expiring. +NOTE: Has no effect when using the adns resolver. + +AUTH_TIMEOUT + * Type: integer + * Default: 9 + +This is the maximum number of seconds to wait for the ident lookup and +the DNS query to succeed. On older (pre 2.10.11.06) servers this was +hard coded to 60 seconds. + +IPCHECK_CLONE_LIMIT + * Type: integer + * Default: 4 + +The number of times you are allowed to connect within IPCHECK_CLONE_PERIOD +seconds before you are considered abusing the server and throttled. + +IPCHECK_CLONE_PERIOD + * Type: integer + * Default: 40 + +The number of seconds you are allowed to connect IPCHECK_CLONE_LIMIT times +within before you are considered abusing the server and throttled. +For instance if you set IPCHECK_CLONE_LIMIT to 1, and IPCHECK_CLONE_PERIOD +to 10, then a user is only allowed to connect once in 10s, if they connect +again within 10s, then they are considered to be connecting too fast and +they are throttled. + +IPCHECK_CLONE_DELAY + * Type: integer + * Default: 600 + +The number of seconds grace after restarting the server before the throttle +code kicks in. Even if a user connects repetitively during this period, +they will never get throttled. This is so after a restart users on a +multiuser box can all connect to a server simultaniously without being +considered an attack. + +SOCKSENDBUF + * Type: integer + * Default: 61440 + +The send window size used for connections to other servers. + +SOCKRECVBUF + * Type: integer + * Default: 61440 + +The receive window size used for connections to other servers. + +ANNOUNCE_INVITES + * Type: boolean + * Default: FALSE + +If set, send RPL_ISSUEDINVITE (345) to a channel's operators to +announce when someone is invited to the channel. + +LOCAL_CHANNELS + * Type: boolean + * Default: TRUE + +If set, allow users to create local channels. + +TOPIC_BURST + * Type: boolean + * Default: FALSE + +If set, send the current topic value and timestamp for channels during +burst. This generally only makes sense for hubs to use, and it causes +a large increase in net.burst size. + +CHANNELLEN + * Type: integer + * Default: 200 + +This is the allowed length of locally created channels. It may not be +larger than the CHANNELLEN #define. Like the NICKLEN feature, this is +intended to ease changes in channel name length across a network. + +OPLEVELS + * Type: boolean + * Default: TRUE + +This allows local users to set the +A and +U modes (admin and user +passwords, respectively) on channels where they are marked as channel +managers. This feature must be disabled until all servers on the +network are able to interpret and handle these modes correctly. + +ZANNELS + * Type: boolean + * Default: TRUE + +This preserves empty channels with no admin password so that it is +impractical to become the channel manager by clearing out the channel. +It must be set to FALSE if there are both 2.10.11.x servers and +2.10.12.y servers on the network where y < 4. It should be set to +TRUE whenever the OPLEVELS features is TRUE.