Server Features
m |
(more cleaning up / updating .. still more to finish!) |
||
| Line 112: | Line 112: | ||
Note that other calls to gethostbyname() are still done if you use VIRTUAL_HOST; also note that the server still tries to resolve clients that connect to the real IP address of the server. | Note that other calls to gethostbyname() are still done if you use VIRTUAL_HOST; also note that the server still tries to resolve clients that connect to the real IP address of the server. | ||
| - | RANDOM_SEED | + | ==RANDOM_SEED== |
| - | + | * '''Type:''' string | |
| - | + | * '''Default:''' none | |
| - | When a client connects, the server sends the client a "cookie," | + | 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. |
| - | consisting of a random number. | + | |
| - | the server verbatim. | + | |
| - | 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, <code>/LIST</code> 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 <code>/WHOWAS</code> and some nickname chasing in <code>/KILL</code> and <code>/KICK</code>. It uses about 300 to 400 bytes per entry. Note that at a net break, so many clients 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 and authenticated with a NickServ (i.e. they have the ACCOUNT flag set). | |
| - | + | ||
| - | + | ||
| - | + | ==OPERHOST_HIDING== | |
| - | + | * '''Type:''' boolean | |
| + | * '''Default:''' TRUE | ||
| - | + | When TRUE any oper setting +x will get the hidden host set via HIDDEN_OPERHOST instead of the host set in HIDDEN_HOST. | |
| - | + | ||
| - | + | ||
| - | + | ==HOST_HIDING_STYLE== | |
| - | + | * '''Type:''' integer | |
| + | * '''Default:''' 1 | ||
| - | HIDDEN_HOST | + | Value 1 will uses ircu-style hostmasking. Value 2 uses Ultimate IRCd style hostmangling, such as a43sd.a3523f.isp.tld. |
| - | + | ||
| - | + | ==HIDDEN_HOST== | |
| + | * '''Type:''' string | ||
| + | * '''Default:''' user.darenet | ||
This selects the suffix for the hidden hostmask (see HOST_HIDING). | This selects the suffix for the hidden hostmask (see HOST_HIDING). | ||
| - | HOST_HIDING_PREFIX | + | ==HOST_HIDING_PREFIX== |
| - | + | * '''Type:''' string | |
| - | + | * '''Default:''' DareNET | |
This selects the suffix for the hidden hostmask style 2. | This selects the suffix for the hidden hostmask style 2. | ||
| - | HIDDEN_OPERHOST | + | ==HIDDEN_OPERHOST== |
| - | + | * '''Type:''' string | |
| - | + | * '''Default:''' staff.darenet | |
| - | This selects the suffix for the hidden hostmask for IRC Operators | + | This selects the suffix for the hidden hostmask for IRC Operators (see OPERHOST_HIDING). |
| - | (see OPERHOST_HIDING). | + | |
| - | HIDDEN_IP | + | ==HIDDEN_IP== |
| - | + | * '''Type:''' string | |
| - | + | * '''Default:''' 127.0.0.1 | |
| - | This selects a fake IP to be shown on /USERIP and /WHO %i when the | + | This selects a fake IP to be shown on <code>/USERIP</code> and <code>/WHO %i</code> when the target has a hidden host (see HOST_HIDING). |
| - | target has a hidden host (see HOST_HIDING). | + | |
| - | CONNEXIT_NOTICES | + | ==CONNEXIT_NOTICES== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | This feature controls the generation of server notices when a user | + | 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. If using this features make sure you take a look at snomask.html in this directory. |
| - | connects to or disconnects from the server. | + | |
| - | have a performance impact. If using this features make sure you take | + | |
| - | a look at snomask.html in this directory. | + | |
| - | EXTENDED_ACCOUNTS | + | ==EXTENDED_ACCOUNTS== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | This enables 'extended' style AC syntax (used by your service to set | + | This enables 'extended' style AC syntax (used by your service to set the account name.) TRUE uses the subcommand paramiter R,M,U,C,A,D to do LOC, rename and removal. FALSE uses old style. Set this to TRUE if you linking to DareNET / using services-darenet, FALSE for other services. |
| - | the account name.) | + | |
| - | to do LOC, rename and removal. FALSE uses old style. Set this to | + | |
| - | TRUE if you | + | |
| - | LOGIN_ON_CONNECT | + | ==LOGIN_ON_CONNECT== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | This selects whether local clients can specify a service bot login in | + | This selects whether local clients can specify a service bot login in the connection phase. Read doc/readme.login-on-connect for details. |
| - | the connection phase. Read doc/readme.login-on-connect for details. | + | |
| - | DNSBL_LOC_EXEMPT | + | ==DNSBL_LOC_EXEMPT== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | This allows a user who has successfully authed to a service using login | + | This allows a user who has successfully authed to a service using login on connect (above) to bypass a DNSBL rejection if they get a positive result from the earlier check. |
| - | on connect (above) to bypass a DNSBL rejection if they | + | |
| - | result from the earlier check. | + | |
| - | DNSBL_LOC_EXEMPT_N_ONE | + | ==DNSBL_LOC_EXEMPT_N_ONE== |
| - | + | * '''Type:''' string | |
| - | + | * '''Default:''' If you have an account with DareNET's NickServ then you can bypass the DNSBL ban by logging in like this (where Account is your account name and Password is your password): | |
| - | the DNSBL ban by logging in like this (where Account is your account name and | + | |
| - | Password is your password): | + | |
| - | If DNSBL_LOC_EXEMPT is enabled and a user matches a dnsbl then they will be | + | If DNSBL_LOC_EXEMPT is enabled and a user matches a dnsbl then they will be sent a notice containing the string for this feature. |
| - | sent a notice containing the string for this feature. | + | |
| - | DNSBL_LOC_EXEMPT_N_TWO | + | ==DNSBL_LOC_EXEMPT_N_TWO== |
| - | + | * '''Type:''' string | |
| - | + | * '''Default:''' Type \002/QUOTE PASS NickServ Account :Password\002 to connect | |
| - | If DNSBL_LOC_EXEMPT is enabled and a user matches a dnsbl then they will be | + | If DNSBL_LOC_EXEMPT is enabled and a user matches a dnsbl then they will be sent a notice containing the string for this feature. |
| - | sent a notice containing the string for this feature. | + | |
| - | DNSBL_WALLOPS_ONLY | + | ==DNSBL_WALLOPS_ONLY== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' FALSE | |
If enabled DNSBL filter matches will be alerted to opers via wallops. | If enabled DNSBL filter matches will be alerted to opers via wallops. | ||
| - | DNSBL_MARK_FAKEHOST | + | ==DNSBL_MARK_FAKEHOST== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
If enabled then users who match DNSBL's will be marked. | If enabled then users who match DNSBL's will be marked. | ||
| - | LOC_DEFAULT_SERVICE | + | ==LOC_DEFAULT_SERVICE== |
| - | + | * '''type:''' string | |
| - | + | * '''Default:''' NickServ | |
| - | This is what nick on | + | This is what nick on IRC the login-on-connect account verification is sent to. Users can override it (to any service that supports it) using 3 param LOC. |
| - | + | ||
| - | DEFAULT_UMODE | + | ==DEFAULT_UMODE== |
| - | + | * '''Type:''' string | |
| - | + | * '''Default:''' "+iB" | |
| - | This defines the user modes set when a local user connects. | + | This defines the user modes set when a local user connects. +x should not be included in this setting if using host hiding style 1, since users cannot later remove that flag. Note, on DareNET umode +B is actually only given to those matching the bot class. |
| - | not be included in this setting if using host hiding style 1, since | + | |
| - | users cannot later remove that flag. | + | |
| - | KILLCHASETIMELIMIT | + | ==KILLCHASETIMELIMIT== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 30 | |
| - | If a user changes his or her nickname just before an operator issues a | + | If a user changes his or her nickname just before an operator issues a <code>/KILL</code>, the <code>/KILL</code> 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 <code>/KILL</code> will not be changed. Don't |
| - | /KILL, the /KILL will be changed to follow the user the operator | + | |
| - | intended to get. | + | |
| - | for this nickname change; if the user changed his or her nickname more | + | |
| - | than this many seconds ago, the /KILL will not be changed. | + | |
change this unless you really need to. | change this unless you really need to. | ||
| - | MAXCHANNELSPERUSER | + | ==MAXCHANNELSPERUSER== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 10 | |
| - | This is the maximum number of channels a user can be in at a time. | + | This is the maximum number of channels a user can be in at a time. The "mandatory" value on DareNET is currently 10. Since it only influences the local server when you decrease it, its up to you to |
| - | The "mandatory" value on | + | 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. |
| - | influences the local server when you decrease it, its up to you to | + | |
| - | decide if you want to use a smaller 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. | |
| - | + | ||
| - | + | ||
| - | + | ==AVEXCEPTLEN== | |
| + | * '''Type:''' integer | ||
| + | * '''Default:''' 40 | ||
| - | MAXEXCEPTS | + | This is the expected average except mask length. Leave it at 40. |
| - | + | ||
| - | + | ==MAXEXCEPTS== | |
| + | * '''Type:''' integer | ||
| + | * '''Default:''' 100 | ||
This is the maximum number of excepts a user may set on a given channel. | This is the maximum number of excepts a user may set on a given channel. | ||
| - | CHANNELLEN | + | ==CHANNELLEN== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 200 | |
| - | This is the allowed length of locally created channels. | + | This is the allowed length of locally created channels. It may not be larger than the CHANNELLEN <nowiki>#define</nowiki>. Like the NICKLEN feature, this is intended to ease changes in channel name length across a network. |
| - | larger than the CHANNELLEN #define. | + | |
| - | intended to ease changes in channel name length across a network. | + | |
| - | AVBANLEN | + | ==AVBANLEN== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 40 | |
| - | This is the expected average ban mask length. | + | This is the expected average ban mask length. Leave it at 40. |
| - | MAXBANS | + | ==MAXBANS== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 100 | |
This is the maximum number of bans a user may set on a given channel. | This is the maximum number of bans a user may set on a given channel. | ||
| - | MAXSILES | + | ==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. | ||
| - | + | ==HALFOPS== | |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | + | ||
| - | + | ||
| - | + | This controls the use of half ops (+h). The server will still accept half ops from other servers if its set to FALSE (to prevent desyncs) just not from users. | |
| - | + | ||
| - | + | ||
| - | + | ==HANGONGOODLINK== | |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 300 | |
| - | + | Ocassionally 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 <big number> before registration. | |
| - | this must be at *LEAST* 10. | + | |
| - | 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 <big | + | |
| - | number> before registration. | + | |
| - | TIMESEC | + | ==TIMESEC== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 60 | |
| - | This is the maximum idle time for the server. If no messages are | + | This is the maximum idle time for the server. If no messages are received in TIMESEC seconds, PINGFREQUENCY and CONNECTFREQUENCY are checked. Recommended value is 60 seconds. |
| - | received in TIMESEC seconds, PINGFREQUENCY and CONNECTFREQUENCY are | + | |
| - | checked. | + | |
| - | MAXIMUM_LINKS | + | ==MAXIMUM_LINKS== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 1 | |
| - | This is the maximum number of links for the built-in client class 0. | + | This is the maximum number of links for the built-in client class 0. Leave this value at 1. |
| - | Leave this value at 1. | + | |
| - | PINGFREQUENCY | + | ==PINGFREQUENCY== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 120 | |
| - | If the daemon doesn't receive anything from any of its links within | + | 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 Y-line in "ircd.conf" if the connection's I- or C-line in "ircd.conf" assigns a specific class to the connection (recommended). |
| - | PINGFREQUENCY seconds, then the it will attempt to check for an active | + | |
| - | link with a PING message. | + | |
| - | (PINGFREQUENCY * 2) seconds, then the connection will be closed. | + | |
| - | value may be overridden by a Y-line in "ircd.conf" if the connection's | + | |
| - | I- or C-line in "ircd.conf" assigns a specific class to the connection | + | |
| - | (recommended). | + | |
| - | CONNECTFREQUENCY | + | ==CONNECTFREQUENCY== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 600 | |
| - | This is the default frequency that the server attempts to reconnect | + | 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 Y-line in ircd.conf if the C-lines in ircd.conf assign a specific class to the connection (recommended). |
| - | with its uplink server if it is set to auto connect to it. Note that | + | |
| - | this value is overridden by a Y-line in ircd.conf if the C-lines in | + | |
| - | ircd.conf assign a specific class to the connection (recommended). | + | |
| - | DEFAULTMAXSENDQLENGTH | + | ==DEFAULTMAXSENDQLENGTH== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 40000 | |
| - | This is the default value of the maximum sendQ length of Y-line | + | This is the default value of the maximum sendQ length of Y-line classes (see doc/example.conf for details on Y-lines). You will probably always override this value in your "ircd.conf" with the Y-lines. The given value used to be an often used value for client sendQs. |
| - | classes (see doc/example.conf for details on Y-lines). | + | |
| - | probably always override this value in your "ircd.conf" with the | + | |
| - | Y-lines. | + | |
| - | sendQs. | + | |
| - | GLINEMAXUSERCOUNT | + | ==GLINEMAXUSERCOUNT== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 20 | |
| - | G-lines that affect too many users have to be set with a special | + | 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. |
| - | command, to prevent accidental G-lines of large blocks of users. | + | |
| - | feature sets that particular threshold. | + | |
| - | MPATH | + | ==MPATH== |
| - | + | * '''Type:''' string | |
| - | + | * '''Default:''' "ircd.motd" | |
| - | MPATH is the filename (relative to DPATH) or the full path of the | + | 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. |
| - | "Message of the Day" file. | + | |
| - | every client that connects to the server, after registration. | + | |
| - | OMPATH | + | '''OMPATH |