Log in | Back to darenet.org

Server Features

Line 1: Line 1:
{{NeedUpdate}}
{{NeedUpdate}}
-
This document is intended to document features supported by ircd-darenet. NOTE: THE NAMES OF THESE FEATURES ARE CASE SENSITIVE! Values are not case sensitive unless otherwise noted in the documetation for that specific feature. And, although logging is also configuried through F-lines, it is documented in doc/readme.log.
+
This page is an attempt to document the various features (f-lines) supported by ircd-darenet. While we'll try to update it after every release, we can't gurauntee it is 100% accurate / complete, since starting with version 1.2.2 a serious effort has been made to remove unneeded f-lines and merge them where it makes sense. Nonetheless, it's still a useful reference.
 +
 
==DOMAINNAME==
==DOMAINNAME==
-
* '''Type:''' string
+
{| class="wikitable"
-
* '''Default:''' ircd.darenet
+
| '''Type'''
 +
| string
 +
|-
 +
| '''Default:'''
 +
| ircd.darenet
 +
|}
-
This option allows you to specify what you consider to be "local." It is only used for statistical purposes. When the IRC command <code>/STATS w</code> is issued, the server will respond with statistics of how many clients have been connecting to the 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.
+
This option allows the server administrator to specify what should be consider "local." It is used for statistical purposes only. When the IRC command <code>/STATS w</code> is issued, the server will respond with statistics of how many clients have connected to the server in the last minute, hour and day. It lists these statistics for all connections (including 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.
+
So, if you are an ISP and would like to know what the client load on your own domain is, you could specify that domain here. If you are unsure what to do, then you don't need to specify this f-line at all. Whatever you do, don't give an empty string. Also, please note that the string you give should NOT start with a "." or use quotes.  
==RELIABLE_CLOCK==
==RELIABLE_CLOCK==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' FALSE
+
| '''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.
+
You should ONLY specify "TRUE" here when your system is 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 unreliable results on Linux in some cases.
-
Note that an unstable clock is worse then a 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 DareNET. Otherwise leave your clock alone and specify "FALSE" here. If unsure specify "FALSE"!
+
Note that an unreliable clock is worse than a 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 DareNET. Otherwise, leave your clock alone and specify "FALSE" here. If unsure specify "FALSE"!
==BUFFERPOOL==
==BUFFERPOOL==
-
* '''Type:''' integer
+
{| class="wikitable"
-
* '''Default:''' 27000000
+
| 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).   
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).   
Line 30: Line 45:
==HAS_FERGUSON_FLUSHER==
==HAS_FERGUSON_FLUSHER==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' FALSE
+
| '''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.
+
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.
==CLIENT_FLOOD==
==CLIENT_FLOOD==
-
* '''Type:''' integer
+
{| class="wikitable"
-
* '''Default:''' 1024
+
| '''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.
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==
==SERVER_PORT==
-
* '''Type:''' integer
+
{| class="wikitable"
-
* '''Default:''' 7325
+
| '''Type'''
 +
| integer
 +
|-
 +
| '''Default:'''
 +
| 7325
 +
|}
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 C-line. If no port is specified in the C-line, however, the port specified by this option will be used instead.
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 C-line. If no port is specified in the C-line, however, the port specified by this option will be used instead.
==NODEFAULTMOTD==
==NODEFAULTMOTD==
-
* '''Type:''' boolean
+
{| class="wikitable"
-
* '''Default:''' TRUE
+
| '''Type'''
 +
| boolean
 +
|-
 +
| '''Default:'''
 +
| TRUE
 +
|}
Every time a client connects to your server, the full Message of the Day (as specified by the T-lines 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.
Every time a client connects to your server, the full Message of the Day (as specified by the T-lines 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.
Line 283: Line 318:
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.
-
 
-
==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==
==HANGONGOODLINK==
Line 357: Line 386:
OMPATH 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 operator upon opering.
OMPATH 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 operator upon opering.
-
 
-
==QPATH==
 
-
* '''Type:''' string
 
-
* '''Default:''' "ircd.quotes"
 
-
 
-
QPATH is the filename (relative to DPATH) or the full path of the random quotes file. These quotes will only display if the QUOTES feature is enabled.
 
-
 
-
NOTE: This should not be used on DareNET. It has been deprecated, and will be removed from the next version of ircd-darenet.
 
-
 
-
==EPATH==
 
-
* '''Type:''' string
 
-
* '''Default:''' "ircd.rules"
 
-
 
-
EPATH is the filename (relative to DPATH) or the full path of the rules file. Users can see these using the rules command which will need to be enabled if you wish to use RULES. See the RULES feature.
 
-
 
-
NOTE: This should not be used on DareNET. It has been deprecated, and will be removed from the next version of ircd-darenet.
 
==RPATH==
==RPATH==
Line 489: Line 502:
Extended oper levels can be enabled. Currently this adds support for a Server Administrator oper level, and a few additional privileges granted through oper flags. See example.conf for enabling these on your O:Line if using this feature.
Extended oper levels can be enabled. Currently this adds support for a Server Administrator oper level, and a few additional privileges granted through oper flags. See example.conf for enabling these on your O:Line if using this feature.
-
 
-
==QUOTES==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' FALSE
 
-
 
-
Controls random quote display for connecting users.
 
-
 
-
NOTE: This is slated to be removed from the next release of ircd-darenet.
 
==POLICY_NOTICE==
==POLICY_NOTICE==
Line 571: Line 576:
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.
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.
-
 
-
==TOPIC_BURST==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
This will burst channel topics on netjoins.
 
==HOST_IN_TOPIC==
==HOST_IN_TOPIC==
Line 652: Line 651:
NOTE: On DareNET, users in this class will also be exempted from <code>/LIST</code> restrictions. Intended for IRC search crawlers (e.g. SearchIRC, netsplit.de, etc).
NOTE: On DareNET, users in this class will also be exempted from <code>/LIST</code> restrictions. Intended for IRC search crawlers (e.g. SearchIRC, netsplit.de, etc).
-
==RULES==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' FALSE
 
-
 
-
Controls the use of the RULES command.
 
==OPERMOTD==
==OPERMOTD==
Line 663: Line 657:
Controls the use of the OPERMOTD command.
Controls the use of the OPERMOTD command.
-
 
-
==EXCEPTS==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows the use of channel ban exemptions. THIS WILL BREAK SERVICES THAT ARE UNPATCHED TO HANDLE THE NEW BURST LINE WE USE! To also use this feature you MUST enable BREAK_P10.
 
-
 
-
==BREAK_P10==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
If enabled and EXCEPTS is enabled then channel ban exemptions will be allowed to be used.
 
==FLEXABLEKEYS==
==FLEXABLEKEYS==
Line 723: Line 705:
Anyone in this class is immune to DNSBL checks if they are enabled.
Anyone in this class is immune to DNSBL checks if they are enabled.
-
 
-
==STATS_C_IPS==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Hides IP addresses in STATS C output for users.
 
-
 
-
NOTE: This feature is slated to be removed in the next version of ircd-darenet, as non-admins/netadmins will not be shown IPs regardless.
 
==HIS_IRCOPS==
==HIS_IRCOPS==
Line 1,133: Line 1,107:
The maximum results in a <code>/CHECK</code> response.
The maximum results in a <code>/CHECK</code> response.
-
 
-
==AUTOINVISIBLE==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' FALSE
 
-
 
-
When enabled all users upon connect will have +i automatically set on them.
 
-
 
-
NOTE: This is slated to be removed from the next release of ircd-darenet; use DEFAULT_UMODE instead.
 
-
 
-
==CHMODE_a==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode a (admin only) to be used.
 
-
 
-
==CHMODE_c==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode c (no colours) to be used.
 
-
 
-
==CHMODE_z==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode z (persistant channels) to be used.
 
-
 
-
==CHMODE_C==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode C (no ctcps) to be used.
 
-
 
-
==CHMODE_L==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode L (hide modes in /list) to be used.
 
-
 
-
==CHMODE_M==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode M (account only) to be used.
 
-
 
-
==CHMODE_N==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode N (no notice) to be used.
 
-
 
-
==CHMODE_O==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode O (oper only) to be used.
 
-
 
-
==CHMODE_Q==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode Q (no quit/part messages) to be used.
 
-
 
-
==CHMODE_S==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode S (strip control codes) to be used.
 
-
 
-
==CHMODE_T==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode T (no AMSG's) to be used.
 
-
 
-
==CHMODE_Z==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Allows channel mode Z (SSL only) to be used.
 
-
 
-
==CHMODE_e_CHMODEEXCEPTION==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
If enabled anyone on the +e exemption list will be able to bypass modes +i/+k/+l.
 
==SWHOIS==
==SWHOIS==
Line 1,243: Line 1,131:
One of the 3 unique host hiding keys used to encrypt style 2 hidden hosts. These must all be different.
One of the 3 unique host hiding keys used to encrypt style 2 hidden hosts. These must all be different.
-
 
-
==AUTOJOIN_USER==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' FALSE
 
-
 
-
Forces users to be autojoined on connect into the channel set for AUTOJOIN_USER_CHANNEL.
 
-
 
-
NOTE: This feature is slated to be removed in the next release of ircd-darenet.
 
-
 
-
==AUTOJOIN_USER_CHANNEL==
 
-
* '''Type:''' string
 
-
* '''Default:''' #darenet
 
-
 
-
Channel users will be forced to join if AUTOJOIN_USER is enabled.
 
-
 
-
NOTE: This feature is slated to be removed in the next release of ircd-darenet.
 
-
 
-
==AUTOJOIN_USER_NOTICE==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
If enabled the notice set for AUTOJOIN_USER_NOTICE_VALUE will be notice'd to users just before forced autojoin.
 
-
 
-
NOTE: This feature is slated to be removed in the next release of ircd-darenet.
 
-
 
-
==AUTOJOIN_USER_NOTICE_VALUE==
 
-
* '''Type:''' string
 
-
* '''Default:''' <nowiki>***</nowiki> Notice -- You are now being autojoined into #darenet
 
-
 
-
Notice for AUTOJOIN_USER_NOTICE (see above).
 
-
 
-
NOTE: This feature is slated to be removed in the next release of ircd-darenet.
 
-
 
-
==AUTOJOIN_OPER==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' FALSE
 
-
 
-
Forces opers to be autojoined upon /oper into the channel set for AUTOJOIN_OPER_CHANNEL.
 
-
 
-
==AUTOJOIN_OPER_CHANNEL==
 
-
* '''Type:''' string
 
-
* '''Default:''' #opers
 
-
 
-
Channel users will be forced to join if AUTOJOIN_OPER is enabled.
 
-
 
-
==AUTOJOIN_OPER_NOTICE==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
If enabled the notice set for AUTOJOIN_OPER_NOTICE_VALUE will be notice'd to users just before forced autojoin.
 
-
 
-
==AUTOJOIN_OPER_NOTICE_VALUE==
 
-
* '''Type:''' string
 
-
* '''Default:''' <nowiki>***</nowiki> Notice -- You are now being autojoined into #opers
 
-
 
-
Notice for AUTOJOIN_OPER_NOTICE (see above).
 
-
 
-
==AUTOJOIN_ADMIN==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' FALSE
 
-
 
-
Forces admins to be autojoined upon /oper into the channel set for AUTOJOIN_ADMIN_CHANNEL.
 
-
 
-
==AUTOJOIN_ADMIN_CHANNEL==
 
-
* '''Type:''' string
 
-
* '''Default:''' #admin
 
-
 
-
Channel users will be forced to join if AUTOJOIN_ADMIN is enabled.
 
-
 
-
==AUTOJOIN_ADMIN_NOTICE==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
If enabled the notice set for AUTOJOIN_ADMIN_NOTICE_VALUE will be notice'd to users just before forced autojoin.
 
-
 
-
==AUTOJOIN_ADMIN_NOTICE_VALUE==
 
-
* '''Type:''' string
 
-
* '''Default:''' <nowiki>***</nowiki> Notice -- You are now being autojoined into #admin
 
-
 
-
Notice for AUTOJOIN_ADMIN_NOTICE (see above).
 
==CTCP_VERSIONING==
==CTCP_VERSIONING==
Line 1,389: Line 1,197:
If enabled then strict ident/username rules will be applied.
If enabled then strict ident/username rules will be applied.
-
 
-
==SET_ACTIVE_ON_CREATE==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
Sets a channel as active when a user creates one.
 
==ZLINEMAXUSERCOUNT==
==ZLINEMAXUSERCOUNT==
Line 1,413: Line 1,215:
How often a user can request /HELP (in seconds).
How often a user can request /HELP (in seconds).
-
 
-
==LOC_SENDHOST==
 
-
* '''Type:''' boolean
 
-
* '''Default:''' TRUE
 
-
 
-
If enabled hostnames will be sent in Login on connect messages to servers.
 
==IPCHECK==
==IPCHECK==

Revision as of 08:22, 25 February 2009

Important
This page needs an update. Information posted here has been viewed as incorrect, incomplete, or out of date. Anyone is welcome to correct these flaws if this page has not been locked. Otherwise, contact a Support Team member and give them notice of this issue. Thank you.


This page is an attempt to document the various features (f-lines) supported by ircd-darenet. While we'll try to update it after every release, we can't gurauntee it is 100% accurate / complete, since starting with version 1.2.2 a serious effort has been made to remove unneeded f-lines and merge them where it makes sense. Nonetheless, it's still a useful reference.


In This Guide: