]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/conf.h
New configuration option "OperServerMode".
[ngircd-alex.git] / src / ngircd / conf.h
index 4c730a6cdea2bdac9d47fa398084499849347fab..797c5a5c6d935a6e0b8f02247e7042cc499bc493 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.32 2005/03/15 16:56:18 alex Exp $
  *
  * Configuration management (header)
  */
@@ -26,6 +26,7 @@ typedef struct _Conf_Oper
 {
        CHAR name[CLIENT_PASS_LEN];     /* Name (ID) of IRC operator */
        CHAR pwd[CLIENT_PASS_LEN];      /* Password */
+       char *mask;
 } CONF_OPER;
 
 typedef struct _Conf_Server
@@ -39,6 +40,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 +52,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 +73,26 @@ 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];
+
+/* File with PID of daemon */
+GLOBAL CHAR Conf_PidFile[FNAME_LEN];
+
 /* Timeouts for PING and PONG */
 GLOBAL INT Conf_PingTimeout;
 GLOBAL INT Conf_PongTimeout;
@@ -87,7 +106,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];
@@ -96,13 +114,33 @@ GLOBAL INT Conf_Channel_Count;
 /* Are IRC operators allowed to always use MODE? */
 GLOBAL BOOLEAN Conf_OperCanMode;
 
+/* If an IRC op gives chanop privileges without being a chanop,
+ * ircd2 will ignore the command. This enables a workaround:
+ * It masks the command as coming from the server */
+GLOBAL BOOLEAN Conf_OperServerMode;
+
 /* 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