$Id: configuration_file,v 2.8 2003/05/19 17:02:23 ericprev Exp $

The configuration file contains all information required by the hub.

key:       type
HUBNAME    string    name of this hub. This value is sent to incoming client and
                     also used while registring hub to DChublist. This value is
                     used to compute HUB_ID, the uniq HUB identifier. If you 
                     change this value, you must restart the hub.

HUB_ID     string    First, this value is read-only. If you modify it,
                     internally, no change occurs. This value is used to 
                     identify a hub in a cluster without error. (see cluster
                     documentation for more information).

HUBADDR    string    This value is only used while registring hub to DChublist.
                     If empty, the hub will use host default address else it
                     uses this value. It can be either an IP or a FQDN.

HUBPORT    int       This value is the port used to connect to the hub. If the
                     hub is registered on DChublist, this value is automatically
                     appended to the HUBADDR string. This value is read only
                     at the hub start. Its default value is 411.

CLUSTERPORT int      This value is the port used by the cluster. 
                     This value is read only at the hub start.

HUBDESC    string    This value is only used while registring hub to DChublist.
                     This value can be empty or not.

REG_HUB    int       if ==0, the hub is not register on DChublist. If !=0, the
                     hub is registered to the DChublist.

REG_SERV   string    You should not change this value. It is the address of the
                     DChublist server (vandel405.dynip.com).

MAXUSER    int       Maximum number of users accepted on the hub. (only taken
                     into account for unregistered users). 

REDIR_FULL int       if ==0, when the hub is full, incoming users are disconnec-
                     ted. If !=0 and REDIR_ADDR is not empty, incoming users are
                     redirected to REDIR_ADDR.

REDIR_ADDR string    address of a hub to redirect users to when the hub is full.

ONLY_REG   int       if ==1, only registered users are accepted.
                     if ==2, only registered users are accepted, others are
                             redirected.
                     if ==0, all users can come in.

ALL_REDIR  int       if !=0, automaticaly redirect everyone on login.

MHUBPASS   string    it is the password used by multihub functions.

MHUBLIST   string    it is the list of all linked hubs. String format is:
                     hubaddr:hubport[$hubaddr:hubport......]

WELCOME    string    if exists and not empty, this value is a message sent as 
                     private message when a user logs in. (cf. MOTD)

MOTD       string    if exists and not empty, this value is the path to a file
                     containing a message sent as private message when a user
                     logs in. If both WELCOME and MOTD exists, WELCOME is
                     ignored unless MOTD file is invalid.

MIN_SHARE  string    minimum share size (in bytes). Used by the default
                     dchub_myinfo_handler.pl script. This is not an error, it is
                     really a string.

MULTICHAT  int       if not exists, multi-user chat creation is disabled.
                     if ==0, it is disabled for everyone.
                     if ==1, multi-user chat creation is only allowed for Master
                             and op.
                     if ==2, creation is possible for everyone.
                     NOTE: this only affect multi-chat creation, a normal user
                     can still be invited by someone of the chat. Thus, ==1 is
                     probably a good value because, only master/op can initiate
                     a new chat but normal user can be invited by them.

PUBCHAT  int         exacly like MULTICHAT but for public chat.

KICKTEMPBAN int      if not exists or is ==0, when a user is kicked, he is not
                     automatically banned. if exists and !=0, the user is kicked
                     and temporarily banned for KICKTEMPBAN minutes.
                     (cmd: -skick)

KICKTEMPBAN2 int     if not exists or is ==0, when a user is kicked, he is not
                     automatically banned. if exists and !=0, the user is kicked
                     and temporarily banned for KICKTEMPBAN days. (cmd: -tbanip,-tbankick)

KICKPERMBAN int      if not exists or is ==0, when a user is kicked, he is not
                     automatically banned. if exists and !=0, the user is kicked
                     and permanently banned for KICKTEMPBAN days. (cmd: -pbanip, -pbankick)

HUB_MAX     int      for dc++ client only: it is the number of hubs that a user
                     can be at the same time.

SLOT_MIN    int      for dc++ client only: it is the min slots/hub that a user 
                     must have.

MIN_SR_INTERVAL int  set minimal interval between 2 searchs.

SPAM_SILENT_LIMIT int first chat spam limit. if a user sends more than 
                     SPAM_SILENT_LIMIT Private messages or public chat
                     messages at more than 1 msg/sec, he won't be able to
                     talk anymore.

SPAM_KICK_LIMIT int  beyond this limit the user gets disconnect. 

LOCK_PATTERN string  this option allows you to deny access to the username
                     matching with the reg exp contained in this variable.
                     DC protocol does not allow you to use the '|' in the
                     regular expression. Then substitute the '|' by ''
                     ex: if you want to deny access to users having a nickname
                     containing foo and all the ones starting by # use the
                     following pattern:
                     foo^# man regex(7) for more information.
                     If the key is not defined, all nicknames are allowed.

MAX_CNX_IDLE int     this key defines the maximum idle time for a connection.
                     If the key does not exist, there is no limit else the
                     key value is the duration in seconds.

BUFFER_SCALE int     input buffer size in KByte. The input buffer contains
                     the maximum size of an incoming DC command. Default value
                     is 8 (=8192 bytes). This value is mainly used to find user
                     sending enormous message and to kick them. Honestly, even
                     a value of 1 should be enough.

SILENT_KICK  int     if not exists or is ==0, when a user is kicked (using nmdc
                     kick, not -kick command), the kick message is displayed on
                     the public chat. If exists and !=0, this message is not
                     displayed (like with the -skick command).

DISPLAY_BOT_KICK  int   if exists and is ==0 kicks by a bot is just send as a
                        private message to the kicked user and is not diplayed in
                        the global chat (Default==1) (cmd: -kick)

NO_MY_INFO   int     some buggy clients do not send their $MyINFO command
                     (connection type, share size, ...). The default (0 or not
                     defined) is to kick them if they try to send a search or
                     transfer query. A non-zero value allows such client to use
                     the hub.

FLOOD_COUNT  int     number of flood "messages" to send to a user when the
                     -flood command is used. If not defined, the value 1 is used


