added basic ssl support to ircu
[ircu2.10.12-pk.git] / doc / readme.features
index c98ba109a1c8a06b345498da397fba2c50369c1e..de1b33276cf3769e9bea5e8de4cbfb6c062926cd 100644 (file)
@@ -1,7 +1,7 @@
 Many of the old compile-time options are now configured through the
 server configuration file, ircd.conf.  This file is intended to
 document each of these features.  Logging, although also configured
-through the use of F-lines, is documented in doc/readme.log.  NOTE
+through the use of Feature entries, is documented in doc/readme.log.  NOTE
 THAT THESE NAMES ARE CASE SENSITIVE!  Values are not case sensitive
 unless stated otherwise in the documentation for that feature.
 
@@ -185,11 +185,10 @@ 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 in the General block (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.
+here, then a DNS lookup will be done only for the real hostname, and
+the server will not try to resolve clients that connect to
+"localhost."  Note that other DNS lookups are still done for outbound
+connections.
 
 RANDOM_SEED
  * Type: string
@@ -294,7 +293,7 @@ This is the expected average ban mask length.  Leave it at 40.
 
 MAXBANS
  * Type: integer
- * Default: 30
+ * Default: 45
 
 This is the maximum number of bans a user may set on a given channel.
 
@@ -339,14 +338,6 @@ 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
- * Type: integer
- * Default: 60
-
-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.
-
 MAXIMUM_LINKS
  * Type: integer
  * Default: 1
@@ -372,8 +363,8 @@ CONNECTFREQUENCY
 
 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 Class block in ircd.conf if the C-lines
-in ircd.conf assign a specific class to the connection (recommended).
+this value is overridden by a Class block in ircd.conf if the Connect
+entries in ircd.conf assign a specific class to the connection.
 
 DEFAULTMAXSENDQLENGTH
  * Type: integer
@@ -381,9 +372,7 @@ DEFAULTMAXSENDQLENGTH
 
 This is the default value of the maximum sendQ length of connection
 classes (see doc/example.conf for details on Class blocks).  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.
+generally override this value in your "ircd.conf" with a Class block.
 
 GLINEMAXUSERCOUNT
  * Type: integer
@@ -419,18 +408,6 @@ PPATH is the filename (relative to DPATH) or the full path of the
 "PID" file.  It is used for storing the server's process ID so that a
 ps(1) isn't necessary.
 
-VIRTUAL_HOST
- * Type: boolean
- * Default: FALSE
-
-This option is only needed when you wish to run multiple IRC servers
-on the same machine, and they must share at least one port.  This will
-require having multiple IP addresses for the machine that will be
-hosting the servers.  If you specify "TRUE" here, you can cause the
-server to bind to one of these IP addresses.  Use the vhost field of
-the General block to specify the IP address.  If you are unsure, stick
-with "FALSE."
-
 TOS_SERVER
  * Type: integer
  * Default: 0x08
@@ -456,330 +433,16 @@ from the kernel at once.  Since the number retrieved can impact
 performance, it can be tuned by modifying this value.  The engines
 enforce a lower limit of 20.
 
-CRYPT_OPER_PASSWORD
- * Type: boolean
- * Default: TRUE
-
-In order to allow certain users to become IRC operators, they must
-authenticate themselves with a password.  This password is matched
-against an Operator block in the "ircd.conf" configuration file; see
-doc/example.conf for more details.  If you specify "TRUE" here, you
-must use the crypted form of these passwords in your "ircd.conf" file.
-Since compromises of the "ircd.conf" file have happened in the past,
-you are highly encouraged to use this option.  You can find a program
-called "mkpasswd" in the tools directory that will allow you to
-generate crypted passwords.
-
-OPER_NO_CHAN_LIMIT
- * Type: boolean
- * Default: TRUE
-
-If this option is set to "TRUE," IRC operators may join as many
-channels as they need to.  This is primarily intended to permit
-administrators to run a channel service for local ("&") channels.
-
-OPER_MODE_LCHAN
- * Type: boolean
- * Default: TRUE
-
-If this option is set to "TRUE," IRC operators may change the channel
-modes on local ("&") channels.  This is primarily intended to permit
-administrators to run a channel service for local channels.
-
-OPER_WALK_THROUGH_LMODES
- * Type: boolean
- * Default: FALSE
-
-If this option is set to "TRUE," IRC operators may join local ("&")
-channels regardless of any restrictive modes, including bans.  This
-requires giving the special password "OVERRIDE."  This is primarily
-intended to permit administrators to run a channel service for local
-channels.
-
-NO_OPER_DEOP_LCHAN
- * Type: boolean
- * Default: FALSE
-
-If this option is set to "TRUE," IRC operators may not be deopped on
-local ("&") channels.  This is primarily intended to permit
-administrators to run a channel service for local channels.
-
-SHOW_INVISIBLE_USERS
- * Type: boolean
- * Default: TRUE
-
-If you specify "TRUE" here, then your (local) IRC Operators will be
-able to see all local invisible users (clients connected to your own
-server).  This should be used only for investigating instances of
-abuse; make sure your operators do not use this for spying on
-individuals.
-
-SHOW_ALL_INVISIBLE_USERS
- * Type: boolean
- * Default: TRUE
-
-If you specify "TRUE" here, then your global IRC Operators will be
-able to see ALL invisible users.  This should be used only for
-investigating instances of abuse; make sure your operators do not use
-this for spying on individuals.
-
-UNLIMIT_OPER_QUERY
- * Type: boolean
- * Default: FALSE
-
-A /WHO command can sometimes return several hundred lines of
-information.  To reduce the flood potential, the output is truncated.
-By setting this option to "TRUE," when an IRC Operator uses /WHO, the
-output will not be truncated, no matter how much data is returned.
-
-LOCAL_KILL_ONLY
- * Type: boolean
- * Default: FALSE
-
-If this option is set to "TRUE," operators of this server may only
-KILL clients directly connected to this server.  Operators will not be
-able to issue KILLs for clients on other servers.  Some networks may
-require that this be turned on for newly linking servers.
-
 CONFIG_OPERCMDS
  * Type: boolean
  * Default: FALSE
 
-For u2.10.11, 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.
-
-OPER_KILL
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to issue the /KILL command.
-
-OPER_REHASH
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to issue the /REHASH command.
-
-OPER_RESTART
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to issue the /RESTART command.
-
-OPER_DIE
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to issue the /DIE command.
-
-OPER_GLINE
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to issue global G-lines.
-
-OPER_LGLINE
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to issue local G-lines.
-
-OPER_JUPE
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to issue global jupes.
-
-OPER_LJUPE
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to issue local jupes.
-
-OPER_OPMODE
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to use /OPMODE and /CLEARMODE on ordinary ("#") channels.
-
-OPER_LOPMODE
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to use /OPMODE and /CLEARMODE on local ("&") channels.
-
-OPER_FORCE_OPMODE
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to override Q-lines set for /OPMODE and /CLEARMODE on ordinary ("#") channels
-
-OPER_FORCE_LOPMODE
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to override Q-lines set for /OPMODE and /CLEARMODE on local ("&") channels
-
-OPER_BADCHAN
- * Type: boolean
- * Default: FALSE
-
-This selects whether global IRC operators on this server are permitted
-to issue global BADCHANs.  USE OF THIS ON THE UNDERNET IS STRICTLY
-REGULATED BY THE UNDERNET ADMINISTRATION.
-
-OPER_LBADCHAN
- * Type: boolean
- * Default: FALSE
-
-This selects whether global IRC operators on this server are permitted
-to issue local BADCHANs.  USE OF THIS ON THE UNDERNET IS STRICTLY
-REGULATED BY THE UNDERNET ADMINISTRATION.
-
-OPER_SET
- * Type: boolean
- * Default: FALSE
-
-This selects whether global IRC operators on this server are permitted
-to use the /SET command to set various feature values.
-
-OPERS_SEE_IN_SECRET_CHANNELS
- * Type: boolean
- * Default: TRUE
-
-If you specify "TRUE" here, then your global IRC Operators will be
-able to see who is on a specified secret channel, without joining
-themselves.  This can be used to make a reasonable judgment in the
-case of a "channel takeover" being reported, while the channel is set
-invite-only.  See doc/readme.who for more details.
-
-OPER_WIDE_GLINE
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators on this server are permitted
-to use the /GLINE command with the ! flag to force slightly wide
-G-lines to be set.
-
-OPER_LIST_CHAN 
- * Type: boolean
- * Default: TRUE
-
-This selects whether global IRC operators are permitted to list secret 
-(+s) channels.
-
-LOCOP_KILL
- * Type: boolean
- * Default: TRUE
-
-This selects whether local IRC operators are permitted to use the
-/KILL command on local clients.
-
-LOCOP_REHASH
- * Type: boolean
- * Default: TRUE
-
-This selects whether local IRC operators are permitted to use the
-/REHASH command.
-
-LOCOP_RESTART
- * Type: boolean
- * Default: FALSE
-
-This selects whether local IRC operators are permitted to use the
-/RESTART command.
-
-LOCOP_DIE
- * Type: boolean
- * Default: FALSE
-
-This selects whether local IRC operators are permitted to use the /DIE
-command.
-
-LOCOP_LGLINE
- * Type: boolean
- * Default: TRUE
-
-This selects whether local IRC operators are permitted to issue local
-G-lines.
-
-LOCOP_LJUPE
- * Type: boolean
- * Default: TRUE
-
-This selects whether local IRC operators are permitted to issue local
-jupes.
-
-LOCOP_LOPMODE
- * Type: boolean
- * Default: TRUE
-
-This selects whether local IRC operators are permitted to use /OPMODE
-and /CLEARMODE on local ("&") channels.
-
-LOCOP_FORCE_LOPMODE
- * Type: boolean
- * Default: TRUE
-
-This selects whether local IRC operators on this server are permitted
-to override Q-lines set for /OPMODE and /CLEARMODE on local ("&") channels
-
-LOCOP_LBADCHAN
- * Type: boolean
- * Default: FALSE
-
-This selects whether local IRC operators are permitted to issue local
-BADCHANs.  USE OF THIS ON THE UNDERNET IS STRICTLY REGULATED BY THE
-UNDERNET ADMINISTRATION.
-
-LOCOP_SET
- * Type: boolean
- * Default: FALSE
-
-This selects whether local IRC operators are permitted to use the /SET
-command to set various feature values.
-
-LOCOP_SEE_IN_SECRET_CHANNELS
- * Type: boolean
- * Default: FALSE
-
-If you specify "TRUE" here, then your local IRC Operators will be
-able to see who is on a specified secret channel, without joining
-themselves.  This can be used to make a reasonable judgment in the
-case of a "channel takeover" being reported, while the channel is set
-invite-only.  See doc/readme.who for more details.
-
-LOCOP_WIDE_GLINE
- * Type: boolean
- * Default: FALSE
-
-This selects whether local IRC operators are permitted to use the
-/GLINE command with the ! flag to force slightly wide G-lines to be
-set.
-
-LOCOP_LIST_CHAN
- * Type: boolean
- * Default: FALSE
-This selects whether local IRC operators are permitted to list secret 
-(+s) channels.
+Since u2.10.11, several new oper-only features have been added that
+involve changes to the server<->server protocol.  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,
+as long as all servers are running u2.10.11 or above.
 
 HIS_MAP
  * Type: boolean
@@ -792,18 +455,12 @@ HIS_SNOTICES
  * Default: TRUE
 
 As per UnderNet CFV-165, this removes server notices from users.
+
 HIS_SNOTICES_OPER_ONLY
  * Type: boolean
  * Default: TRUE
 
 As per UnderNet CFV-165, this removes server notices from users.
-HIS_DESYNCS
- * Type: boolean
- * Default: TRUE
-
-As per UnderNet CFV-165, this removes server wallops from users.
 
 HIS_DEBUG_OPER_ONLY
  * Type: boolean
@@ -829,11 +486,11 @@ HIS_TRACE
 
 As per UnderNet CFV-165, this removes /TRACE from users.
 
-HIS_STATS_l
+HIS_STATS_a
  * Type: boolean
  * Default: TRUE
 
-As per UnderNet CFV-165, this removes /STATS l from users.
+As per UnderNet CFV-165, this removes /STATS a from users.
 
 HIS_STATS_c
  * Type: boolean
@@ -841,29 +498,29 @@ HIS_STATS_c
 
 As per UnderNet CFV-165, this removes /STATS c from users.
 
-HIS_STATS_g
+HIS_STATS_d
  * Type: boolean
  * Default: TRUE
 
-As per UnderNet CFV-165, this removes /STATS g from users.
+As per UnderNet CFV-165, this removes /STATS d from users.
 
-HIS_STATS_h
+HIS_STATS_e
  * Type: boolean
  * Default: TRUE
 
-As per UnderNet CFV-165, this removes /STATS h from users.
+As per UnderNet CFV-165, this removes /STATS e from users.
 
-HIS_STATS_k
+HIS_STATS_f
  * Type: boolean
  * Default: TRUE
 
-As per UnderNet CFV-165, this removes /STATS k from users.
+As per UnderNet CFV-165, this removes /STATS f from users.
 
-HIS_STATS_f
+HIS_STATS_g
  * Type: boolean
  * Default: TRUE
 
-As per UnderNet CFV-165, this removes /STATS f from users.
+As per UnderNet CFV-165, this removes /STATS g from users.
 
 HIS_STATS_i
  * Type: boolean
@@ -877,6 +534,30 @@ HIS_STATS_j
 
 As per UnderNet CFV-165, this removes /STATS j from users.
 
+HIS_STATS_J
+ * Type: boolean
+ * Default: TRUE
+
+As per UnderNet CFV-165, this removes /STATS J from users.
+
+HIS_STATS_k
+ * Type: boolean
+ * Default: TRUE
+
+As per UnderNet CFV-165, this removes /STATS k from users.
+
+HIS_STATS_l
+ * Type: boolean
+ * Default: TRUE
+
+As per UnderNet CFV-165, this removes /STATS l from users.
+
+HIS_STATS_L
+ * Type: boolean
+ * Default: TRUE
+
+As per UnderNet CFV-165, this removes /STATS L from users.
+
 HIS_STATS_M
  * Type: boolean
  * Default: TRUE
@@ -904,7 +585,7 @@ As per UnderNet CFV-165, this removes /STATS p from users.
 HIS_STATS_q
  * Type: boolean
  * Default: TRUE
+
 As per UnderNet CFV-165, this removes /STATS q from users.
 
 HIS_STATS_r
@@ -913,17 +594,11 @@ HIS_STATS_r
 
 As per UnderNet CFV-165, this removes /STATS r from users.
 
-HIS_STATS_d
- * Type: boolean
- * Default: TRUE
-
-As per UnderNet CFV-165, this removes /STATS d from users.
-
-HIS_STATS_e
+HIS_STATS_R
  * Type: boolean
  * Default: TRUE
 
-As per UnderNet CFV-165, this removes /STATS e from users.
+As per UnderNet CFV-165, this removes /STATS R from users.
 
 HIS_STATS_t
  * Type: boolean
@@ -979,6 +654,13 @@ HIS_STATS_z
 
 As per UnderNet CFV-165, this removes /STATS z from users.
 
+HIS_STATS_IAUTH
+ * Type: boolean
+ * Default: TRUE
+
+As per UnderNet CFV-165, this disables /STATS IAUTH and
+/STATS IAUTHCONF from users.
+
 HIS_WHOIS_SERVERNAME
  * Type: boolean
  * Default: TRUE
@@ -1001,7 +683,15 @@ HIS_WHO_HOPCOUNT
  * Type: boolean
  * Default: TRUE
 
-As per UnderNet CFV-165, this replaces hopcount to a static 3 in replies to /WHO.
+As per UnderNet CFV-165, this replaces hopcount to a static 3 in
+replies to /WHO.
+
+HIS_MODEWHO
+ * Type: boolean
+ * Default: TRUE
+
+As per UnderNet CFV-165, this doesn't show which server performed a channel
+mode change.
 
 HIS_BANWHO
  * Type: boolean
@@ -1035,6 +725,12 @@ HIS_NETSPLIT
 
 As per UnderNet CFV-165, this removes server names in net break sign-offs.
 
+HIS_WHOIS_LOCALCHAN
+ * Type: boolean
+ * Default: TRUE
+
+As per UnderNet CFV-165, this removes local channels in replies to /WHOIS.
+
 HIS_SERVERNAME
  * Type: string
  * Default: "*.undernet.org"
@@ -1049,11 +745,11 @@ HIS_SERVERINFO
 As per UnderNet CFV-165, this is the "info" of the server shown to users on a
 /WHOIS of another user.
 
-HIS_URLSERVERS        
- * Type: string 
+HIS_URLSERVERS
+ * Type: string
  * Default: "http://www.undernet.org/servers.php"
 
-As per UnderNet CFV-165, this is the URL shown to users when they do a /MAP or 
+As per UnderNet CFV-165, this is the URL shown to users when they do a /MAP or
 /LINKS.
 
 NETWORK
@@ -1069,9 +765,17 @@ URL_CLIENTS
 
 This defines a URL that users may visit to find compatible IRC clients.
 
+URLREG
+ * Type: string
+ * Default: "http://cservice.undernet.org/live/"
+
+This defines a URL that is used in server response 477 (ERR_NEEDREGGEDNICK) to
+let users know which website they must visit to obtain a proper account for
+authentication.
+
 NICKLEN
  * Type: integer
- * Default: 9
+ * Default: 12
 
 This is the allowed length of the nickname length.  It may not be
 larger than the NICKLEN #define, and should usually be the same
@@ -1082,9 +786,8 @@ IRCD_RES_RETRIES
  * Type: integer
  * Default: 2
 
-This is the number of attempts the irc daemon's resolver will have at 
+This is the number of attempts the irc daemon's resolver will have at
 trying to solicit a response from the DNS server.
-NOTE: Has no effect when using the adns resolver.
 
 IRCD_RES_TIMEOUT
  * Type: integer
@@ -1100,7 +803,7 @@ AUTH_TIMEOUT
  * Type: integer
  * Default: 9
 
-This is the maximum number of seconds to wait for the ident lookup and 
+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.
 
@@ -1113,10 +816,10 @@ seconds before you are considered abusing the server and throttled.
 
 IPCHECK_CLONE_PERIOD
  * Type: integer
- * Defualt: 40
+ * Default: 40
 
 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 throttled.
 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
@@ -1127,19 +830,67 @@ IPCHECK_CLONE_DELAY
  * Default: 600
 
 The number of seconds grace after restarting the server before the throttle
-code kicks in.  Even if a user connects repeditively 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 
+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: 0
+ * Default: 61440
 
 The send window size used for connections to other servers.
 
 SOCKRECVBUF
  * Type: integer
- * Default: 0
+ * Default: 61440
 
 The receive window size used for connections to other servers.
+
+ANNOUNCE_INVITES
+ * Type: boolean
+ * Default: FALSE
+
+If set, send RPL_ISSUEDINVITE (345) to a channel's operators to
+announce when someone is invited to the channel.
+
+LOCAL_CHANNELS
+ * Type: boolean
+ * Default: TRUE
+
+If set, allow users to create local channels.
+
+TOPIC_BURST
+ * Type: boolean
+ * Default: FALSE
+
+If set, send the current topic value and timestamp for channels during
+burst.  This generally only makes sense for hubs to use, and it causes
+a large increase in net.burst size.
+
+CHANNELLEN
+ * Type: integer
+ * Default: 200
+
+This is the allowed length of locally created channels.  It may not be
+larger than the CHANNELLEN #define.  Like the NICKLEN feature, this is
+intended to ease changes in channel name length across a network.
+
+OPLEVELS
+ * Type: boolean
+ * Default: TRUE
+
+This allows local users to set the +A and +U modes (admin and user
+passwords, respectively) on channels where they are marked as channel
+managers.  This feature must be disabled until all servers on the
+network are able to interpret and handle these modes correctly.
+
+ZANNELS
+ * Type: boolean
+ * Default: TRUE
+
+This preserves empty channels with no admin password so that it is
+impractical to become the channel manager by clearing out the channel.
+It must be set to FALSE if there are both 2.10.11.x servers and
+2.10.12.y servers on the network where y < 4.  It should be set to
+TRUE whenever the OPLEVELS features is TRUE.