updates
[silc.git] / apps / silcd / serverconfig.h
index f6612d4d76df4a62f3633305229ede744e6c21a0..4bf80bd018110b8cecece8866c9116c887be309b 100644 (file)
@@ -56,8 +56,8 @@ typedef struct {
 
 /* Holds all the ports the server is listenning on */
 typedef struct SilcServerConfigSectionListenPortStruct {
-  char *host;
-  char *remote_ip;
+  char *local_ip;
+  char *listener_ip;
   uint16 port;
   struct SilcServerConfigSectionListenPortStruct *next;
   struct SilcServerConfigSectionListenPortStruct *prev;
@@ -66,8 +66,8 @@ typedef struct SilcServerConfigSectionListenPortStruct {
 /* Holds server's execution identity, or the user and group which
    to change from root when server starts */
 typedef struct {
- char *user;
- char *group;
 char *user;
 char *group;
 } SilcServerConfigSectionIdentity;
 
 /* Holds all the configured log files. */
@@ -83,6 +83,8 @@ typedef struct SilcServerConfigSectionLoggingStruct {
 #define SILC_CONFIG_SERVER_LF_WARNING "warninglogfile"
 #define SILC_CONFIG_SERVER_LF_ERROR "errorlogfile"
 #define SILC_CONFIG_SERVER_LF_FATAL "fatallogfile"
+#define SILC_CONFIG_SERVER_LO_QUICK "quicklogs"
+#define SILC_CONFIG_SERVER_LO_FDELAY "flushdelay"
 } SilcServerConfigSectionLogging;
 
 /* Holds all configured connection classes */
@@ -132,6 +134,10 @@ typedef struct SilcServerConfigSectionServerConnectionStruct {
   char *version;
   uint32 class;
   bool initiator;
+  bool backup_router;
+  char *backup_replace_ip;
+  uint16 backup_replace_port;
+  bool backup_local;
   struct SilcServerConfigSectionServerConnectionStruct *next;
   struct SilcServerConfigSectionServerConnectionStruct *prev;
 } SilcServerConfigSectionServerConnection;
@@ -150,6 +156,11 @@ typedef struct {
   char *motd_file;
 } SilcServerConfigSectionMotd;
 
+/* holds pid file */
+typedef struct {
+   char *pid_file;
+} SilcServerConfigSectionPid;
+
 /* 
    SILC Server Config object. 
 
@@ -182,6 +193,7 @@ typedef struct {
   SilcServerConfigSectionAdminConnection *admins;
   SilcServerConfigSectionDenyConnection *denied;
   SilcServerConfigSectionMotd *motd;
+  SilcServerConfigSectionPid *pidfile;
 } SilcServerConfigObject;
 
 typedef SilcServerConfigObject *SilcServerConfig;
@@ -206,6 +218,7 @@ typedef enum {
   SILC_CONFIG_SERVER_SECTION_TYPE_ADMIN_CONNECTION,
   SILC_CONFIG_SERVER_SECTION_TYPE_DENY_CONNECTION,
   SILC_CONFIG_SERVER_SECTION_TYPE_MOTD,
+  SILC_CONFIG_SERVER_SECTION_TYPE_PID,
 } SilcServerConfigSectionType;
 
 /* SILC Configuration Section structure. */
@@ -256,7 +269,7 @@ int silc_server_config_parse(SilcServerConfig config, SilcBuffer buffer,
 int silc_server_config_parse_lines(SilcServerConfig config, 
                                   SilcServerConfigParse parse_config);
 int silc_server_config_check_sections(uint32 checkmask);
-void silc_server_config_setlogfiles(SilcServerConfig config);
+void silc_server_config_setlogfiles(SilcServerConfig config, SilcSchedule sked);
 bool silc_server_config_register_ciphers(SilcServerConfig config);
 bool silc_server_config_register_pkcs(SilcServerConfig config);
 bool silc_server_config_register_hashfuncs(SilcServerConfig config);
@@ -271,6 +284,8 @@ SilcServerConfigSectionServerConnection *
 silc_server_config_find_router_conn(SilcServerConfig config, 
                                    char *host, int port);
 bool silc_server_config_is_primary_route(SilcServerConfig config);
+SilcServerConfigSectionServerConnection *
+silc_server_config_get_primary_router(SilcServerConfig config);
 SilcServerConfigSectionAdminConnection *
 silc_server_config_find_admin(SilcServerConfig config,
                              char *host, char *username, char *nickname);