Log in | Back to darenet.org

Server Features

m
Line 1,010: Line 1,010:
This replaces hopcount to a static 3 in replies to <code>/WHO</code>.
This replaces hopcount to a static 3 in replies to <code>/WHO</code>.
-
HIS_BANWHO
+
==HIS_BANWHO==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
-
As per UnderNet CFV-165, this doesn't show which server set a ban.
+
This doesn't show which server set a ban.
-
HIS_EXCEPTWHO
+
==HIS_EXCEPTWHO==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
-
As per UnderNet CFV-165, this doesn't show which server set a except.
+
This doesn't show which server set an except.
-
HIS_KILLWHO
+
==HIS_KILLWHO==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
-
As per UnderNet CFV-165, this doesn't show which server or oper performed a
+
This doesn't show which server or oper performed a kill to.
-
kill.
+
-
HIS_HIDEWHO
+
==HIS_HIDEWHO==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
-
This doesn't show which server preformed various functions like mode, opmode
+
This doesn't show which server preformed various functions like mode, opmode kick, etc when server preforms..
-
kick, etc when server preforms..
+
-
HIS_REWRITE
+
==HIS_REWRITE==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
-
As per UnderNet CFV-165, this remaps remote numerics to come from the local
+
This remaps remote numerics to come from the local server.
-
server.
+
-
HIS_GLINE
+
==HIS_GLINE==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
-
This will hide the user who done the gline in the gline message when enabled.
+
This will hide the user who performed the gline in the gline message when enabled.
-
HIS_USERGLINE
+
==HIS_USERGLINE==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
-
This will disable users using the gline command. (If the nessecary options are
+
This will disable users using the gline command. (If the nessecary options are enabled, users can query the gline list using the gline command).
-
enabled, users can query the gline list using the gline command).
+
-
HIS_REMOTE
+
==HIS_REMOTE==
-
* Type: integer
+
* '''Type:''' integer
-
* Default: 1
+
* '''Default:''' 1
-
As per UnderNet CFV-165, this disallows remote queries. (*sob!*)
+
This disallows remote queries from non-opers. (*sob!*)
-
HIS_USERIP
+
==HIS_USERIP==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' FALSE
-
This will hide the IP of a user in the output of a USERIP command. The real IP
+
This will hide the IP of a user in the output of a <code>USERIP</code> command. The real IP will be shown for opers.
-
will be shown for opers.
+
-
HIS_SCRAMBLED_CACHE_TIME
+
==HIS_SCRAMBLED_CACHE_TIME==
-
* Type: integer
+
* '''Type:''' integer
-
* Default: 604800
+
* '''Default:''' 604800
-
Amount of seconds a split server is cached for before dissapearing off MAPS
+
Amount of seconds a split server is cached for before dissapearing off MAPS and LINKS for normal users.
-
and LINKS for normal users.
+
-
HIS_NETSPLIT
+
==HIS_NETSPLIT==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
-
As per UnderNet CFV-165, this removes server names in net break sign-offs.
+
This removes server names in net break sign-offs. Instead they are shown as (*.net *.split).
-
HIS_SERVERNAME
+
==HIS_SERVERNAME==
-
* Type: string
+
* '''Type:''' string
-
* Default: "*.Nefarious"
+
* '''Default:''' "*.darenet.org"
-
As per UnderNet CFV-165, this is the "name" of the server shown to users on a
+
This is the "name" of the server shown to users on a <code>/WHOIS</code> of another user.
-
/WHOIS of another user.
+
-
HIS_SERVERINFO
+
==HIS_SERVERINFO==
-
* Type: string
+
* '''Type:''' string
-
* Default: "evilnet development"
+
* '''Default:''' "DareNET Client Server"
-
As per UnderNet CFV-165, this is the "info" of the server shown to users on a
+
This is the "info" of the server shown to users on a <code>/WHOIS</code> of another user.
-
/WHOIS of another user.
+
-
HIS_URLSERVERS         
+
==HIS_URLSERVERS==        
-
* Type: string  
+
* '''Type:''' string  
-
* Default: "http://sourceforge.net/projects/evilnet/""
+
* '''Default:''' "http://www.darenet.org/servers"
   
   
-
As per UnderNet CFV-165, this is the URL shown to users when they do a /MAP or  
+
This is the URL shown to users when they do a <code>/MAP</code> or <code>/LINKS</code>.
-
/LINKS.
+
-
NETWORK
+
==NETWORK==
-
* Type: string
+
* '''Type:''' string
-
* Default: "Nefarious"
+
* '''Default:''' "DareNET"
-
This defines the network name as reported in the 005 "supported features"
+
This defines the network name as reported in the 005 "supported features" numeric, and as used by the "Failed to deliver" message.
-
numeric, and as used by the "Failed to deliver" message.
+
-
URL_CLIENTS
+
==URL_CLIENTS==
-
* Type: string
+
* '''Type:''' string
-
* Default: "http://www.ircreviews.org/clients/"
+
* '''Default:''' "http://wiki.darenet.org/index.php/IRC_Clients"
This defines a URL that users may visit to find compatible IRC clients.
This defines a URL that users may visit to find compatible IRC clients.
-
BADUSER_URL
+
==BADUSER_URL==
-
* Type: string
+
* '''Type:''' string
-
* Default: "http://www.mirc.co.uk/help/servererrors.html"
+
* '''Default:''' "http://wiki.darenet.org/index.php/Why_do_I_get_error_Bad_Username"
-
This defines a URL that users may visit to fix their username/ident when
+
This defines a URL that users may visit to fix their username/ident when it is invalid.
-
it is invalid.
+
-
NETWORK_REHASH
+
==NETWORK_REHASH==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: FALSE
+
* '''Default:''' FALSE
Allow this server to act upon a network-issued /rehash.
Allow this server to act upon a network-issued /rehash.
-
NETWORK_RESTART
+
==NETWORK_RESTART==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: FALSE
+
* '''Default:''' FALSE
Allow this server to act upon a network-issued /restart.
Allow this server to act upon a network-issued /restart.
-
NETWORK_DIE
+
==NETWORK_DIE==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: FALSE
+
* '''Default:''' FALSE
Allow this server to act upon a network-issued /die.
Allow this server to act upon a network-issued /die.
-
NOIDENT
+
==MAX_CHECK_OUTPUT==
-
* Type: boolean
+
* '''Type:''' integer
-
* Default: FALSE
+
* '''Default:''' 1000
-
NOIDENT disables RFC 1413 (ident protocol) lookups of clients'
+
The maximum results in a <code>/CHECK</code> response.
-
usernames.
+
-
MAX_CHECK_OUTPUT
+
==EXTENDED_ACCOUNTS==
-
* Type: integer
+
* '''Type:''' boolean
-
* Default: 1000
+
* '''Default:''' TRUE
-
The maximum results in a /CHECK response.
+
Allows the IRCd to use the extended account system which services-darenet uses. If you plan to use services other than services-darenet then this will need to be set to FALSE in most cases.
-
EXTENDED_ACCOUNTS
+
==AUTOINVISIBLE==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' FALSE
-
Allows the IRCd to use the extended account system which X3 uses. If
+
When enabled all users upon connect will have +i automatically set on them.
-
you plan to use services other than X3 then this will need to be set
+
-
to FALSE in most cases.
+
-
AUTOINVISIBLE
+
==CHMODE_a==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: FALSE
+
* '''Default:''' TRUE
-
 
+
-
When enabled all users upon connect will have +i automatically set on
+
-
them.
+
-
 
+
-
CHMODE_a
+
-
* Type: boolean
+
-
* Default: TRUE
+
Allows channel mode a (admin only) to be used.
Allows channel mode a (admin only) to be used.
-
CHMODE_c
+
==CHMODE_c==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
-
Allows channel mode c (no colours) to be used.
+
Allows channel mode c (no colours) to be used.
-
CHMODE_z
+
==CHMODE_z==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
Allows channel mode z (persistant channels) to be used.
Allows channel mode z (persistant channels) to be used.
-
CHMODE_C
+
==CHMODE_C==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
Allows channel mode C (no ctcps) to be used.
Allows channel mode C (no ctcps) to be used.
-
CHMODE_L
+
==CHMODE_L==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
Allows channel mode L (hide modes in /list) to be used.
Allows channel mode L (hide modes in /list) to be used.
-
CHMODE_M
+
==CHMODE_M==
-
* Type: boolean
+
* '''Type:''' boolean
-
* Default: TRUE
+
* '''Default:''' TRUE
Allows channel mode M (account only) to be used.
Allows channel mode M (account only) to be used.
-
CHMODE_N
+
==CHMODE_N==
-
  * Type: boolean
+
  * '''Type:''' boolean
-
  * Default: TRUE
+
  * '''Default:''' TRUE
Allows channel mode N (no notice) to be used.
Allows channel mode N (no notice) to be used.

Revision as of 10:06, 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.

In This Guide:

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 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.

REMOTE_MOTD

  • Type: boolean
  • Default: FALSE

Controls the use of remote message of the day's.

PROVIDER

  • 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.

GEO_LOCATION

  • Type: string
  • Default: NULL

This string as added to the 003 numeric. It's used for providing the location of the server, eg "Staunton, MI, United States."

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 DareNET, 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 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."

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

  • 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 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

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).

HOST_HIDING_PREFIX

  • Type: string
  • Default: DareNET

This selects the suffix for the hidden hostmask style 2.

HIDDEN_OPERHOST

  • Type: string
  • Default: staff.darenet

This selects the suffix for the hidden hostmask for IRC Operators (see OPERHOST_HIDING).

HIDDEN_IP

  • Type: string