Log in | Back to darenet.org

Server Features

m (GLINE_URL)
m
Line 92: Line 92:
==MOTD_BANNER==
==MOTD_BANNER==
-
* '''Type:''' string
+
{| class="wikitable"
-
* '''Default:''' NULL
+
| '''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.
If you enable NODEFAULTMOTD, this specifies a one-line banner to be sent to the client in addition to the instructions mentioned above.
==REMOTE_MOTD==
==REMOTE_MOTD==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' FALSE
+
| '''Type'''
 +
| boolean
 +
|-
 +
| '''Default:'''
 +
| TRUE
 +
|}
Controls the use of remote message of the day's.
Controls the use of remote message of the day's.
==PROVIDER==
==PROVIDER==
-
* '''Type:''' string
+
{| class="wikitable"
-
* '''Default:''' NULL
+
| '''Type'''
 +
| string
 +
|-
 +
| '''Default:'''
 +
| NULL
 +
|}
This string is added to the 001 numeric prefixed with "via" before the nick. It's used for providing promotional space to providers.
This string is added to the 001 numeric prefixed with "via" before the nick. It's used for providing promotional space to providers.
==GEO_LOCATION==
==GEO_LOCATION==
-
* '''Type:''' string
+
{| class="wikitable"
-
* '''Default:''' NULL
+
| '''Type'''
 +
| string
 +
|-
 +
| '''Default:'''
 +
| NULL
 +
|}
-
This string as added to the 003 numeric, is used for providing the location of the server, e.g. "Staunton, MI, United States."
+
This string as added to the 003 numeric, is used for providing the location of the server, e.g. "Los Angeles, CA, United States."
==KILL_IPMISMATCH==
==KILL_IPMISMATCH==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' FALSE
+
| '''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.
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==
==IDLE_FROM_MSG==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' TRUE
+
| '''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.
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==
==HUB==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' FALSE
+
| '''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 DareNET, all newly linked servers are
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 DareNET, all newly linked servers are
Line 135: Line 169:
==WALLOPS_OPER_ONLY==
==WALLOPS_OPER_ONLY==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' FALSE
+
| '''Type'''
 +
| boolean
 +
|-
 +
| '''Default:'''
 +
| FALSE
 +
|}
Setting this option removes the ability for clients that are not IRC operators to see wallops messages.
Setting this option removes the ability for clients that are not IRC operators to see wallops messages.
==NODNS==
==NODNS==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' FALSE
+
| '''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 on the M-line (which usually isn't given in /etc/hosts) and for each connecting client. If you specify "TRUE" here, then a call to gethostbyname() will be done only for the real hostname, and the server will not try to resolve clients that connect to "localhost."  
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 on the M-line (which usually isn't given in /etc/hosts) and for each connecting client. If you specify "TRUE" here, then a call to gethostbyname() will be done only for the real hostname, and the server will not try to resolve clients that connect to "localhost."  
Line 149: Line 193:
==RANDOM_SEED==
==RANDOM_SEED==
-
* '''Type:''' string
+
{| class="wikitable"
-
* '''Default:''' none
+
| '''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.
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.
Line 157: Line 206:
==DEFAULT_LIST_PARAM==
==DEFAULT_LIST_PARAM==
-
* '''Type:''' string
+
{| class="wikitable"
-
* '''Default:''' none
+
| '''Type'''
 +
| string
 +
|-
 +
| '''Default:'''
 +
| NULL
 +
|}
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.
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==
==NICKNAMEHISTORYLENGTH==
-
* '''Type:''' integer
+
{| class="wikitable"
-
* '''Default:''' 800
+
| '''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.
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==
==HOST_HIDING==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' TRUE
+
| '''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 NickServ (i.e. they have the ACCOUNT flag set).
This selects whether local users can set umode +x, thus allowing them to hide their hostname if they have also registered and authenticated with NickServ (i.e. they have the ACCOUNT flag set).
==OPERHOST_HIDING==
==OPERHOST_HIDING==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' TRUE
+
| '''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.
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==
==HOST_HIDING_STYLE==
-
* '''Type:''' integer
+
{| class="wikitable"
-
* '''Default:''' 1
+
| '''Type'''
 +
| integer
 +
|-
 +
| '''Default:'''
 +
| 1
 +
|}
Value 1 will use ircu-style hostmasking. Value 2 uses Ultimate IRCd style hostmangling, such as a43sd.a3523f.isp.tld.
Value 1 will use ircu-style hostmasking. Value 2 uses Ultimate IRCd style hostmangling, such as a43sd.a3523f.isp.tld.
==HIDDEN_HOST==
==HIDDEN_HOST==
-
* '''Type:''' string
+
{| class="wikitable"
-
* '''Default:''' user.darenet
+
| '''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
+
{| class="wikitable"
-
* '''Default:''' DareNET
+
| '''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
+
{| class="wikitable"
-
* '''Default:''' staff.darenet
+
| '''Type'''
 +
| string
 +
|-
 +
| '''Default:'''
 +
| staff.darenet
 +
|}
This selects the suffix for the hidden hostmask for IRC Operators (see OPERHOST_HIDING).
This selects the suffix for the hidden hostmask for IRC Operators (see OPERHOST_HIDING).
==HIDDEN_IP==
==HIDDEN_IP==
-
* '''Type:''' string
+
{| class="wikitable"
-
* '''Default:''' 127.0.0.1
+
| '''Type'''
 +
| string
 +
|-
 +
| '''Default:'''
 +
| 127.0.0.1
 +
|}
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).
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).
==CONNEXIT_NOTICES==
==CONNEXIT_NOTICES==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' TRUE
+
| '''Type'''
 +
| boolean
 +
|-
 +
| '''Default:'''
 +
| TRUE
 +
|}
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 feature make sure you take a look at [[Server Notice Masks (SNOMASK)|SNOMASKs]].
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 feature make sure you take a look at [[Server Notice Masks (SNOMASK)|SNOMASKs]].
==EXTENDED_ACCOUNTS==
==EXTENDED_ACCOUNTS==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' TRUE
+
| '''Type'''
 +
| boolean
 +
|-
 +
| '''Default:'''
 +
| TRUE
 +
|}
This enables 'extended' style AC syntax (used by your service to set the account name.) TRUE uses the subcommand parameter R,M,U,C,A,D to do LOC, rename and removal. FALSE uses old style. Set this to TRUE if you're linking to DareNET / using services-darenet, FALSE for other services.
This enables 'extended' style AC syntax (used by your service to set the account name.) TRUE uses the subcommand parameter R,M,U,C,A,D to do LOC, rename and removal. FALSE uses old style. Set this to TRUE if you're linking to DareNET / using services-darenet, FALSE for other services.
==LOGIN_ON_CONNECT==
==LOGIN_ON_CONNECT==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' TRUE
+
| '''Type'''
 +
| boolean
 +
|-
 +
| '''Default:'''
 +
| TRUE
 +
|}
This selects whether local clients can specify a service bot login in the connection phase. Read doc/readme.login-on-connect for details.
This selects whether local clients can specify a service bot login in the connection phase. Read doc/readme.login-on-connect for details.
==DNSBL_LOC_EXEMPT==
==DNSBL_LOC_EXEMPT==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' TRUE
+
| '''Type'''
 +
| boolean
 +
|-
 +
| '''Default:'''
 +
| TRUE
 +
|}
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.
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.
==DNSBL_LOC_EXEMPT_N_ONE==
==DNSBL_LOC_EXEMPT_N_ONE==
-
* '''Type:''' string
+
{| class="wikitable"
-
* '''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):  
+
| '''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):  
 +
|}
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.
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.
==DNSBL_LOC_EXEMPT_N_TWO==
==DNSBL_LOC_EXEMPT_N_TWO==
-
* '''Type:''' string
+
{| class="wikitable"
-
* '''Default:''' Type \002/QUOTE PASS NickServ Account :Password\002 to connect
+
| '''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 sent a notice containing the string for this feature.
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.
==DNSBL_WALLOPS_ONLY==
==DNSBL_WALLOPS_ONLY==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' FALSE
+
| '''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
+
{| class="wikitable"
-
* '''Default:''' TRUE
+
| '''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
+
{| class="wikitable"
-
* '''Default:''' NickServ
+
| '''Type'''
 +
| string
 +
|-
 +
| '''Default:'''
 +
| NickServ
 +
|}
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.
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
+
{| class="wikitable"
-
* '''Default:''' "+iB"
+
| '''Type'''
 +
| string
 +
|-
 +
| '''Default:'''
 +
| +iw
 +
|}
-
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 even though it is specified here as a default umode.
+
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.
==KILLCHASETIMELIMIT==
==KILLCHASETIMELIMIT==
-
* '''Type:''' integer
+
{| class="wikitable"
-
* '''Default:''' 30
+
| '''Type'''
 +
| integer
 +
|-
 +
| '''Default:'''
 +
| 30
 +
|}
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
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
Line 278: Line 427:
==MAXCHANNELSPERUSER==
==MAXCHANNELSPERUSER==
-
* '''Type:''' integer
+
{| class="wikitable"
-
* '''Default:''' 10
+
| '''Type'''
 +
| integer
 +
|-
 +
| '''Default:'''
 +
| 50
 +
|}
-
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
+
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 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.
-
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.
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==
==AVEXCEPTLEN==
-
* '''Type:''' integer
+
{| class="wikitable"
-
* '''Default:''' 40
+
| '''Type'''
 +
| integer
 +
|-
 +
| '''Default:'''
 +
| 40
 +
|}
This is the expected average except mask length. Leave it at 40.
This is the expected average except mask length. Leave it at 40.
==MAXEXCEPTS==
==MAXEXCEPTS==
-
* '''Type:''' integer
+
{| class="wikitable"
-
* '''Default:''' 100
+
| '''Type'''
 +
| boolean
 +
|-
 +
| '''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
+
{| class="wikitable"
-
* '''Default:''' 200
+
| '''Type'''
 +
| integer
 +
|-
 +
| '''Default:'''
 +
| 200
 +
|}
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.
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.
==AVBANLEN==
==AVBANLEN==
-
* '''Type:''' integer
+
{| class="wikitable"
-
* '''Default:''' 40
+
| '''Type'''
 +
| integer
 +
|-
 +
| '''Default:'''
 +
| 40
 +
|}
This is the expected average ban mask length. Leave it at 40.
This is the expected average ban mask length. Leave it at 40.
==MAXBANS==
==MAXBANS==
-
* '''Type:''' integer
+
{| class="wikitable"
-
* '''Default:''' 100
+
| '''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
+
{| class="wikitable"
-
* '''Default:''' 15
+
| '''Type'''
 +
| integer
 +
|-
 +
| '''Default:'''
 +
| 50
 +
|}
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.
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.
 +
 +
==MAXACCEPTS==
 +
{| class="wikitable"
 +
| '''Type'''