]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/conf.h
New "chroot" feature (from Benjamin Pineau), introducing new configuration
[ngircd-alex.git] / src / ngircd / conf.h
index 4c730a6cdea2bdac9d47fa398084499849347fab..4fbf2d68597c4d8a69f990d5244570ff69d11104 100644 (file)
@@ -8,7 +8,7 @@
  * (at your option) any later version.
  * Please read the file COPYING, README and AUTHORS for more information.
  *
- * $Id: conf.h,v 1.22 2002/12/12 11:26:08 alex Exp $
+ * $Id: conf.h,v 1.29 2004/05/07 11:19:21 alex Exp $
  *
  * Configuration management (header)
  */
@@ -39,6 +39,8 @@ typedef struct _Conf_Server
        INT group;                      /* Group of server */
        time_t lasttry;                 /* Last connect attempt */
        RES_STAT *res_stat;             /* Status of the resolver */
+       INT flags;                      /* Flags */
+       CONN_ID conn_id;                /* ID of server connection or NONE */
 } CONF_SERVER;
 
 typedef struct _Conf_Channel
@@ -49,6 +51,10 @@ typedef struct _Conf_Channel
 } CONF_CHANNEL;
 
 
+#define CONF_SFLAG_ONCE        1               /* Delete this entry after next disconnect */
+#define CONF_SFLAG_DISABLED 2          /* This server configuration entry is disabled */
+
+
 /* Name ("Nick") of the servers */
 GLOBAL CHAR Conf_ServerName[CLIENT_ID_LEN];
 
@@ -66,14 +72,23 @@ GLOBAL CHAR Conf_ServerAdminMail[CLIENT_INFO_LEN];
 /* File with MOTD text */
 GLOBAL CHAR Conf_MotdFile[FNAME_LEN];
 
+/* Phrase with MOTD text */
+GLOBAL CHAR Conf_MotdPhrase[LINE_LEN];
+
 /* Ports the server should listen on */
 GLOBAL UINT Conf_ListenPorts[MAX_LISTEN_PORTS];
 GLOBAL INT Conf_ListenPorts_Count;
 
+/* Address to which the socket should be bound or empty (=all) */
+GLOBAL CHAR Conf_ListenAddress[16];
+
 /* User and group ID the server should run with */
 GLOBAL UINT Conf_UID;
 GLOBAL UINT Conf_GID;
 
+/* A directory to chroot() in */
+GLOBAL CHAR Conf_Chroot[FNAME_LEN];
+
 /* Timeouts for PING and PONG */
 GLOBAL INT Conf_PingTimeout;
 GLOBAL INT Conf_PongTimeout;
@@ -87,7 +102,6 @@ GLOBAL INT Conf_Oper_Count;
 
 /* Servers */
 GLOBAL CONF_SERVER Conf_Server[MAX_SERVERS];
-GLOBAL INT Conf_Server_Count;
 
 /* Pre-defined channels */
 GLOBAL CONF_CHANNEL Conf_Channel[MAX_DEFCHANNELS];
@@ -99,10 +113,25 @@ GLOBAL BOOLEAN Conf_OperCanMode;
 /* Maximum number of connections to this server */
 GLOBAL LONG Conf_MaxConnections;
 
+/* Maximum number of channels a user can join */
+GLOBAL INT Conf_MaxJoins;
+
+/* Maximum number of connections per IP address */
+GLOBAL INT Conf_MaxConnectionsIP;
+
 
 GLOBAL VOID Conf_Init PARAMS((VOID ));
+GLOBAL VOID Conf_Rehash PARAMS((VOID ));
 GLOBAL INT Conf_Test PARAMS((VOID ));
 
+GLOBAL VOID Conf_UnsetServer PARAMS(( CONN_ID Idx ));
+GLOBAL VOID Conf_SetServer PARAMS(( INT ConfServer, CONN_ID Idx ));
+GLOBAL INT Conf_GetServer PARAMS(( CONN_ID Idx ));
+
+GLOBAL BOOLEAN Conf_EnableServer PARAMS(( CHAR *Name, INT Port ));
+GLOBAL BOOLEAN Conf_DisableServer PARAMS(( CHAR *Name ));
+GLOBAL BOOLEAN Conf_AddServer PARAMS(( CHAR *Name, INT Port, CHAR *Host, CHAR *MyPwd, CHAR *PeerPwd ));
+
 
 #endif