Server Features
m (→CONNECTTIMEOUT) |
m |
||
| Line 442: | Line 442: | ||
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. | 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 | + | ==IPCHECK_CLONE_LIMIT== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 4 | |
| - | The number of times you are allowed to connect within IPCHECK_CLONE_PERIOD | + | The number of times you are allowed to connect within IPCHECK_CLONE_PERIOD seconds before you are considered abusing the server and throttled. |
| - | seconds before you are considered abusing the server and throttled. | + | |
| - | IPCHECK_CLONE_PERIOD | + | ==IPCHECK_CLONE_PERIOD== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 40 | |
| - | The number of seconds you are allowed to connect IPCHECK_CLONE_LIMIT times | + | The number of seconds you are allowed to connect IPCHECK_CLONE_LIMIT times within before you are considered abusing the server and throttled. |
| - | within before you are considered abusing the server and | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | 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 | |
| - | + | ||
| - | + | ||
| - | SOCKSENDBUF | + | 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. | The send window size used for connections to other servers. | ||
| - | SOCKRECVBUF | + | ==SOCKRECVBUF== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 61440 | |
The receive window size used for connections to other servers. | The receive window size used for connections to other servers. | ||
| - | ANNOUNCE_INVITES | + | ==ANNOUNCE_INVITES== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | When a channel operator invites a user to their channel, all other opers | + | When a channel operator invites a user to their channel, all other opers will be notified of the invite. |
| - | will be notified of the invite. | + | |
| - | BADCHAN_REASON | + | ==BADCHAN_REASON== |
| - | + | * '''Type:''' string | |
| - | + | * '''Default:''' "This channel has been closed" | |
| - | This is the kick reason for users being autokicked from a channel when | + | This is the kick reason for users being autokicked from a channel when it has been bad channel glined. |
| - | it has been bad channel glined. | + | |
| - | OPERFLAGS | + | ==OPERFLAGS== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | Extended oper levels can be enabled. Currently this | + | 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. |
| - | + | ||
| - | 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== | |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | POLICY_NOTICE | + | |
| - | + | ||
| - | + | ||
Controls the display of the policy notice for connecting users. | Controls the display of the policy notice for connecting users. | ||
| - | LOCAL_CHANNELS | + | ==LOCAL_CHANNELS== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' FALSE | |
When enabled local channels (& perfix) can be used. | When enabled local channels (& perfix) can be used. | ||
| - | OPER_LOCAL_CHANNELS | + | '''OPER_LOCAL_CHANNELS''' |
| - | + | * Type: boolean | |
| - | + | * Default: FALSE | |
Only opers can create local channels if LOCAL_CHANNELS is enabled. | Only opers can create local channels if LOCAL_CHANNELS is enabled. | ||
| - | OPER_XTRAOP | + | '''OPER_XTRAOP''' |
| - | + | * Type: boolean | |
| - | + | * Default: FALSE | |
Controls the use of the Xtra Op oper mode (+X). | Controls the use of the Xtra Op oper mode (+X). | ||
| - | XTRAOP_CLASS | + | ==XTRAOP_CLASS== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 0 | |
| - | This is the class an oper must be in to use the Xtra Op mode if it | + | This is the class an oper must be in to use the Xtra Op mode if it is enabled. |
| - | is enabled. | + | |
| - | OPER_HIDECHANS | + | ==OPER_HIDECHANS== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | Controls the use of the oper mode for hiding their channels in their | + | Controls the use of the oper mode for hiding their channels in their WHOIS output. |
| - | WHOIS output. | + | |
| - | OPER_HIDEIDLE | + | ==OPER_HIDEIDLE== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | Controls the use of the oper mode for hiding their idle time in their | + | Controls the use of the oper mode for hiding their idle time in their WHOIS output. |
| - | WHOIS output. | + | |
| - | CHECK | + | ==CHECK== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
When enabled an oper is allowed to use the CHECK command. | When enabled an oper is allowed to use the CHECK command. | ||
| - | CHECK_EXTENDED | + | ==CHECK_EXTENDED== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | When enabled extra information will be displayed for opers who are | + | When enabled extra information will be displayed for opers who are using CHECK on local clients. Extra information like traffic counts. |
| - | using CHECK on local clients. Extra information like traffic counts. | + | |
| - | OPER_SINGLELETTERNICK | + | ==OPER_SINGLELETTERNICK== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
This limits single letter nicknames to IRC operators only. | This limits single letter nicknames to IRC operators only. | ||
| - | MAX_CHECK_OUTPUT | + | ==MAX_CHECK_OUTPUT== |
| - | + | * '''Type:''' integer | |
| - | + | * '''Default:''' 1000 | |
Maximum amount of records displayed in any CHECK query. | Maximum amount of records displayed in any CHECK query. | ||
| - | CONFIG_OPERCMDS | + | ==CONFIG_OPERCMDS== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' FALSE | |
| + | |||
| + | Several new oper-only features have been added that involve changes to the server<->server protocol. Until the entire network is running the new version, these features cannot be enabled. | ||
| - | + | 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. | + | |
| - | not required that all servers set this to "TRUE" in order for the | + | |
| - | features to be used. | + | |
| - | TOPIC_BURST | + | ==TOPIC_BURST== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
This will burst channel topics on netjoins. | This will burst channel topics on netjoins. | ||
| - | HOST_IN_TOPIC | + | ==HOST_IN_TOPIC== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | When an channel operator changes the channel topic their full | + | When an channel operator changes the channel topic their full nick!ident@host will be displayed for the person who set the topic. This can eliminate people faking other people when setting the topic. |
| - | nick!ident@host will be displayed for the person who set the topic. | + | |
| - | This can eliminate people faking other people when setting the topic. | + | |
| - | TIME_IN_TIMEOUT | + | ==TIME_IN_TIMEOUT== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' FALSE | |
| - | This will display the amount of seconds it took for the user to timeout | + | This will display the amount of seconds it took for the user to timeout in their Ping Timeout quit message. |
| - | in their Ping Timeout quit message. | + | |
| - | AUTOCHANMODES | + | ==AUTOCHANMODES== |
| - | + | * '''Type: boolean''' | |
| - | + | * '''Default:''' TRUE | |
| - | When a user joins a new channel the modes in AUTOCHANMODES_LIST will | + | When a user joins a new channel the modes in AUTOCHANMODES_LIST will be automatically set |
| - | be automatically set | + | |
| - | AUTOCHANMODES_LIST | + | ==AUTOCHANMODES_LIST== |
| - | + | * '''Type:''' string | |
| - | + | * '''Default:''' "nt" | |
| - | If AUTOCHANMODES is enabled then any modes in here will be the modes | + | If AUTOCHANMODES is enabled then any modes in here will be the modes set for new channels upon join. Modes should be added in this format "nt" etc. |
| - | set for new channels upon join. Modes should be added in this format | + | |
| - | " | + | |
FAKEHOST | FAKEHOST | ||
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
This enables the FAKEHOST command used for fake hosts (duh). | This enables the FAKEHOST command used for fake hosts (duh). | ||
| - | DEFAULT_FAKEHOST | + | ==DEFAULT_FAKEHOST== |
| - | + | * Type: string | |
| - | + | * Default: (empty) | |
| - | This is the default fakehost given to users who are connecting to the server. If | + | This is the default fakehost given to users who are connecting to the server. If it is empty or not set then no hostname is set. |
| - | it is empty or not set then no hostname is set. | + | |
| - | SETHOST | + | ==SETHOST== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' FALSE | |
| - | + | This enables the <code>/SETHOST</code> command and user mode +h for opers activating Sethosts. | |
| - | SETHOST_USER | + | ==SETHOST_USER== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' FALSE | |
| - | + | This enabled the <code>/SETHOST</code> command and user mode +h for users activating Sethosts with passwords. | |
| - | + | ||
| - | SETHOST_AUTO | + | ==SETHOST_AUTO== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' FALSE | |
| - | + | This enables the automatic application of Sethosts on matching idents and hosts. | |
| - | SETHOST_FREEFORM | + | ==SETHOST_FREEFORM== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' FALSE | |
| - | + | This enables opers to set new hostnames that do not have a corresponding S: line in the configuration file, as long as the hostname supplied is reasonably valid. The usage if this is logged via SNOTICE. | |
| - | + | ||
| - | + | ||
| - | REMOTE_OPER | + | ==REMOTE_OPER== |
| - | + | * '''Type:''' boolean | |
| - | + | * '''Default:''' TRUE | |
| - | Allows remote users to oper up remotly witthout requiring an O:Line on the server | + | Allows remote users to oper up remotly witthout requiring an O:Line on the server they are on. |
| - | they are on. | + | |
BOT_CLASS | BOT_CLASS | ||
Revision as of 09:22, 8 January 2009
This document is intended to document features which may be defined in the server configuration file, ircd.conf. PLEASE NOTE THAT 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.
DOMAINNAME
- Type: string
- Default: ircd.darenet
This option allows you to specify what you consider to be "local." It is only used for statisyical purposes. When the IRC command /STATS w 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.
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 DareNET. 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 valueis 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 Y: lines 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: 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.
NODEFAULTMOTD
- 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