Integer type name change.
[silc.git] / apps / silcd / serverconfig.h
index 8be6d7cb7ccec9fec883c62321ae4fd72e781a51..c4190e36dffcfc070d4c1b8a6ee7baa99a13c50e 100644 (file)
@@ -4,7 +4,7 @@
 
   Author: Johnny Mnemonic <johnny@themnemonic.org>
 
-  Copyright (C) 1997 - 2002 Pekka Riikonen
+  Copyright (C) 1997 - 2002 Johnny Mnemonic
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
 #ifndef SERVERCONFIG_H
 #define SERVERCONFIG_H
 
-typedef struct SilcServerConfigSectionCipherStruct {
+typedef struct SilcServerConfigCipherStruct {
   char *name;
   char *module;
-  uint32 key_length;
-  uint32 block_length;
-  struct SilcServerConfigSectionCipherStruct *next;
-} SilcServerConfigSectionCipher;
+  SilcUInt32 key_length;
+  SilcUInt32 block_length;
+  struct SilcServerConfigCipherStruct *next;
+} SilcServerConfigCipher;
 
-typedef struct SilcServerConfigSectionHashStruct {
+typedef struct SilcServerConfigHashStruct {
   char *name;
   char *module;
-  uint32 block_length;
-  uint32 digest_length;
-  struct SilcServerConfigSectionHashStruct *next;
-} SilcServerConfigSectionHash;
+  SilcUInt32 block_length;
+  SilcUInt32 digest_length;
+  struct SilcServerConfigHashStruct *next;
+} SilcServerConfigHash;
 
-typedef struct SilcServerConfigSectionHmacStruct {
+typedef struct SilcServerConfigHmacStruct {
   char *name;
   char *hash;
-  uint32 mac_length;
-  struct SilcServerConfigSectionHmacStruct *next;
-} SilcServerConfigSectionHmac;
+  SilcUInt32 mac_length;
+  struct SilcServerConfigHmacStruct *next;
+} SilcServerConfigHmac;
 
-typedef struct SilcServerConfigSectionPkcsStruct {
+typedef struct SilcServerConfigPkcsStruct {
   char *name;
-  struct SilcServerConfigSectionPkcsStruct *next;
-} SilcServerConfigSectionPkcs;
+  struct SilcServerConfigPkcsStruct *next;
+} SilcServerConfigPkcs;
 
-typedef struct SilcServerConfigSectionServerInfoStruct {
+typedef struct SilcServerConfigServerInfoStruct {
   char *server_name;
   char *server_ip;
-  uint16 port;
+  SilcUInt16 port;
   char *server_type;   /* E.g. "Test Server" */
   char *location;      /* geographic location */
   char *admin;         /* admin full name */
@@ -63,138 +63,144 @@ typedef struct SilcServerConfigSectionServerInfoStruct {
   SilcPrivateKey private_key;
   char *motd_file;     /* path to text motd file (reading only) */
   char *pid_file;      /* path to the pid file (for reading and writing) */
-} SilcServerConfigSectionServerInfo;
+} SilcServerConfigServerInfo;
 
-typedef struct SilcServerConfigSectionLoggingStruct {
+typedef struct SilcServerConfigLoggingStruct {
   char *file;
-  uint32 maxsize;
-} SilcServerConfigSectionLogging;
-
-/* Holds all configured connection classes */
-/* typedef struct SilcServerConfigSectionClassStruct {
-  uint32 class;
-  uint32 ping_freq;
-  uint32 connect_freq;
-  uint32 max_links;
-  struct SilcServerConfigSectionClassStruct *next;
-} SilcServerConfigSectionClass; */
+  SilcUInt32 maxsize;
+} SilcServerConfigLogging;
+
+/* Connection parameters */
+typedef struct SilcServerConfigConnParams {
+  char *name;
+  SilcUInt32 connections_max;
+  SilcUInt32 connections_max_per_host;
+  SilcUInt32 keepalive_secs;
+  SilcUInt32 reconnect_count;
+  SilcUInt32 reconnect_interval;
+  SilcUInt32 reconnect_interval_max;
+  bool reconnect_keep_trying;
+  SilcUInt32 key_exchange_rekey;
+  bool key_exchange_pfs;
+  struct SilcServerConfigConnParams *next;
+} SilcServerConfigConnParams;
 
 /* Holds all client authentication data from config file */
-typedef struct SilcServerConfigSectionClientStruct {
+typedef struct SilcServerConfigClientStruct {
   char *host;
-  SilcAuthMethod auth_meth;
-  void *auth_data;
-  uint32 auth_data_len;
-  uint16 port;
-  uint32 class;
-  struct SilcServerConfigSectionClientStruct *next;
-} SilcServerConfigSectionClient;
+  unsigned char *passphrase;
+  SilcUInt32 passphrase_len;
+  void *publickey;
+  SilcServerConfigConnParams *param;
+  struct SilcServerConfigClientStruct *next;
+} SilcServerConfigClient;
 
 /* Holds all server's administrators authentication data from config file */
-typedef struct SilcServerConfigSectionAdminStruct {
+typedef struct SilcServerConfigAdminStruct {
   char *host;
   char *user;
   char *nick;
-  SilcAuthMethod auth_meth;
-  void *auth_data;
-  uint32 auth_data_len;
-  struct SilcServerConfigSectionAdminStruct *next;
-} SilcServerConfigSectionAdmin;
+  unsigned char *passphrase;
+  SilcUInt32 passphrase_len;
+  void *publickey;
+  struct SilcServerConfigAdminStruct *next;
+} SilcServerConfigAdmin;
 
 /* Holds all configured denied connections from config file */
-typedef struct SilcServerConfigSectionDenyStruct {
+typedef struct SilcServerConfigDenyStruct {
   char *host;
-  uint16 port;
   char *reason;
-  struct SilcServerConfigSectionDenyStruct *next;
-} SilcServerConfigSectionDeny;
+  struct SilcServerConfigDenyStruct *next;
+} SilcServerConfigDeny;
 
 /* Holds all configured server connections from config file */
-typedef struct SilcServerConfigSectionServerStruct {
+typedef struct SilcServerConfigServerStruct {
   char *host;
-  SilcAuthMethod auth_meth;
-  void *auth_data;
-  uint32 auth_data_len;
-  uint16 port;
+  unsigned char *passphrase;
+  SilcUInt32 passphrase_len;
+  void *publickey;
   char *version;
-  uint32 class;
+  SilcServerConfigConnParams *param;
   bool backup_router;
-  struct SilcServerConfigSectionServerStruct *next;
-} SilcServerConfigSectionServer;
+  struct SilcServerConfigServerStruct *next;
+} SilcServerConfigServer;
 
 /* Holds all configured router connections from config file */
-typedef struct SilcServerConfigSectionRouterStruct {
+typedef struct SilcServerConfigRouterStruct {
   char *host;
-  SilcAuthMethod auth_meth;
-  void *auth_data;
-  uint32 auth_data_len;
-  uint16 port;
+  unsigned char *passphrase;
+  SilcUInt32 passphrase_len;
+  void *publickey;
+  SilcUInt16 port;
   char *version;
-  uint32 class;
+  SilcServerConfigConnParams *param;
   bool initiator;
   bool backup_router;
   char *backup_replace_ip;
-  uint16 backup_replace_port;
+  SilcUInt16 backup_replace_port;
   bool backup_local;
-  struct SilcServerConfigSectionRouterStruct *next;
-} SilcServerConfigSectionRouter;
+  struct SilcServerConfigRouterStruct *next;
+} SilcServerConfigRouter;
 
 /* define the SilcServerConfig object */
 typedef struct {
   void *tmp;
-  char *module_path;
 
-  SilcServerConfigSectionCipher *cipher;
-  SilcServerConfigSectionHash *hash;
-  SilcServerConfigSectionHmac *hmac;
-  SilcServerConfigSectionPkcs *pkcs;
-  SilcServerConfigSectionLogging *logging_info;
-  SilcServerConfigSectionLogging *logging_warnings;
-  SilcServerConfigSectionLogging *logging_errors;
-  SilcServerConfigSectionLogging *logging_fatals;
-  SilcServerConfigSectionServerInfo *server_info;
-/*SilcServerConfigSectionClass *conn_class; */
-  SilcServerConfigSectionClient *clients;
-  SilcServerConfigSectionAdmin *admins;
-  SilcServerConfigSectionDeny *denied;
-  SilcServerConfigSectionServer *servers;
-  SilcServerConfigSectionRouter *routers;
+  /* The General section */
+  char *module_path;
+  bool prefer_passphrase_auth;
+  bool require_reverse_lookup;
+  SilcUInt32 channel_rekey_secs;
+  SilcUInt32 key_exchange_timeout;
+  SilcUInt32 conn_auth_timeout;
+  SilcServerConfigConnParams param;
+
+  /* Other configuration sections */
+  SilcServerConfigCipher *cipher;
+  SilcServerConfigHash *hash;
+  SilcServerConfigHmac *hmac;
+  SilcServerConfigPkcs *pkcs;
+  SilcServerConfigLogging *logging_info;
+  SilcServerConfigLogging *logging_warnings;
+  SilcServerConfigLogging *logging_errors;
+  SilcServerConfigLogging *logging_fatals;
+  SilcServerConfigServerInfo *server_info;
+  SilcServerConfigConnParams *conn_params;
+  SilcServerConfigClient *clients;
+  SilcServerConfigAdmin *admins;
+  SilcServerConfigDeny *denied;
+  SilcServerConfigServer *servers;
+  SilcServerConfigRouter *routers;
 } *SilcServerConfig;
 
 /* Prototypes */
 
-/* basic config operations */
+/* Basic config operations */
 SilcServerConfig silc_server_config_alloc(char *filename);
 void silc_server_config_destroy(SilcServerConfig config);
 
-/* algorithm registering and reset functions */
+/* Algorithm registering and reset functions */
 bool silc_server_config_register_ciphers(SilcServer server);
 bool silc_server_config_register_hashfuncs(SilcServer server);
 bool silc_server_config_register_hmacs(SilcServer server);
 bool silc_server_config_register_pkcs(SilcServer server);
-void silc_server_config_setlogfiles(SilcServerConfig config, SilcSchedule sked);
-
-/* run-time config access functions */
-SilcServerConfigSectionClient *
-silc_server_config_find_client(SilcServerConfig config, char *host, int port);
-
-SilcServerConfigSectionAdmin *
-silc_server_config_find_admin(SilcServerConfig config,
-                             char *host, char *user, char *nick);
-
-SilcServerConfigSectionDeny *
-silc_server_config_find_denied(SilcServerConfig config,
-                              char *host, uint16 port);
-
-/* Prototypes - OLD */
-SilcServerConfigSectionServer *
-silc_server_config_find_server_conn(SilcServerConfig config,
-                                   char *host, int port);
-SilcServerConfigSectionRouter *
-silc_server_config_find_router_conn(SilcServerConfig config,
-                                   char *host, int port);
-bool silc_server_config_is_primary_route(SilcServerConfig config);
-SilcServerConfigSectionRouter *
-silc_server_config_get_primary_router(SilcServerConfig config);
+void silc_server_config_setlogfiles(SilcServer server);
+
+/* Run-time config access functions */
+SilcServerConfigClient *
+silc_server_config_find_client(SilcServer server, char *host);
+SilcServerConfigAdmin *
+silc_server_config_find_admin(SilcServer server, char *host, char *user, 
+                             char *nick);
+SilcServerConfigDeny *
+silc_server_config_find_denied(SilcServer server, char *host);
+SilcServerConfigServer *
+silc_server_config_find_server_conn(SilcServer server, char *host);
+SilcServerConfigRouter *
+silc_server_config_find_router_conn(SilcServer server, char *host, int port);
+bool silc_server_config_is_primary_route(SilcServer server);
+SilcServerConfigRouter *
+silc_server_config_get_primary_router(SilcServer server);
+bool silc_server_config_set_defaults(SilcServer server);
 
 #endif /* !SERVERCONFIG_H */