X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserverconfig.h;h=183f6501634cc1263bf8be9dc56265b61370a66f;hb=52e57c880aba9c5e89f59d962eb9af75670b76e0;hp=fc6c109592c84e13229e7db28f69e0d2245a9385;hpb=675d6cba5a80e53c09c5eb6a03bafffebb6edab0;p=silc.git diff --git a/apps/silcd/serverconfig.h b/apps/silcd/serverconfig.h index fc6c1095..183f6501 100644 --- a/apps/silcd/serverconfig.h +++ b/apps/silcd/serverconfig.h @@ -2,14 +2,13 @@ serverconfig.h - Author: Johnny Mnemonic + Author: Giovanni Giacobbi - Copyright (C) 1997 - 2002 Pekka Riikonen + Copyright (C) 1997 - 2007 Pekka Riikonen 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 - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. + the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -51,6 +50,7 @@ typedef struct SilcServerConfigPkcsStruct { typedef struct SilcServerConfigServerInfoInterfaceStruct { char *server_ip; + char *public_ip; SilcUInt16 port; struct SilcServerConfigServerInfoInterfaceStruct *next; } SilcServerConfigServerInfoInterface; @@ -78,20 +78,27 @@ typedef struct SilcServerConfigLoggingStruct { /* Connection parameters */ typedef struct SilcServerConfigConnParams { + struct SilcServerConfigConnParams *next; char *name; + char *version_protocol; + char *version_software; + char *version_software_vendor; 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; - char *version_protocol; - char *version_software; - char *version_software_vendor; - struct SilcServerConfigConnParams *next; + SilcUInt32 qos_rate_limit; + SilcUInt32 qos_bytes_limit; + SilcUInt32 qos_limit_sec; + SilcUInt32 qos_limit_usec; + SilcUInt32 chlimit; + unsigned int key_exchange_pfs : 1; + unsigned int reconnect_keep_trying : 1; + unsigned int anonymous : 1; + unsigned int qos : 1; } SilcServerConfigConnParams; /* Holds all client authentication data from config file */ @@ -99,7 +106,7 @@ typedef struct SilcServerConfigClientStruct { char *host; unsigned char *passphrase; SilcUInt32 passphrase_len; - SilcHashTable publickeys; + SilcBool publickeys; SilcServerConfigConnParams *param; struct SilcServerConfigClientStruct *next; } SilcServerConfigClient; @@ -111,7 +118,7 @@ typedef struct SilcServerConfigAdminStruct { char *nick; unsigned char *passphrase; SilcUInt32 passphrase_len; - SilcHashTable publickeys; + SilcBool publickeys; struct SilcServerConfigAdminStruct *next; } SilcServerConfigAdmin; @@ -127,9 +134,9 @@ typedef struct SilcServerConfigServerStruct { char *host; unsigned char *passphrase; SilcUInt32 passphrase_len; - SilcHashTable publickeys; + SilcBool publickeys; SilcServerConfigConnParams *param; - bool backup_router; + SilcBool backup_router; struct SilcServerConfigServerStruct *next; } SilcServerConfigServer; @@ -138,19 +145,21 @@ typedef struct SilcServerConfigRouterStruct { char *host; unsigned char *passphrase; SilcUInt32 passphrase_len; - SilcHashTable publickeys; + SilcBool publickeys; SilcUInt16 port; SilcServerConfigConnParams *param; - bool initiator; - bool backup_router; + SilcBool initiator; + SilcBool backup_router; + SilcBool dynamic_connection; char *backup_replace_ip; SilcUInt16 backup_replace_port; - bool backup_local; + SilcBool backup_local; struct SilcServerConfigRouterStruct *next; } SilcServerConfigRouter; /* define the SilcServerConfig object */ typedef struct { + SilcServer server; void *tmp; /* Reference count (when this reaches zero, config object is destroyed) */ @@ -158,16 +167,23 @@ typedef struct { /* The General section */ char *module_path; - bool prefer_passphrase_auth; - bool require_reverse_lookup; + SilcBool prefer_passphrase_auth; + SilcBool require_reverse_lookup; SilcUInt32 channel_rekey_secs; SilcUInt32 key_exchange_timeout; SilcUInt32 conn_auth_timeout; SilcServerConfigConnParams param; - bool detach_disabled; + SilcBool detach_disabled; SilcUInt32 detach_timeout; - bool logging_quick; + SilcBool logging_timestamp; + SilcBool logging_quick; long logging_flushdelay; + char *debug_string; + SilcBool httpd; + char *httpd_ip; + SilcUInt16 httpd_port; + SilcBool dynamic_server; + SilcBool local_channels; /* Other configuration sections */ SilcServerConfigCipher *cipher; @@ -195,17 +211,18 @@ typedef struct { /* Prototypes */ /* Basic config operations */ -SilcServerConfig silc_server_config_alloc(const char *filename); +SilcServerConfig silc_server_config_alloc(const char *filename, + SilcServer server); void silc_server_config_destroy(SilcServerConfig config); void silc_server_config_ref(SilcServerConfigRef *ref, SilcServerConfig config, void *ref_ptr); void silc_server_config_unref(SilcServerConfigRef *ref); /* 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); +SilcBool silc_server_config_register_ciphers(SilcServer server); +SilcBool silc_server_config_register_hashfuncs(SilcServer server); +SilcBool silc_server_config_register_hmacs(SilcServer server); +SilcBool silc_server_config_register_pkcs(SilcServer server); void silc_server_config_setlogfiles(SilcServer server); /* Run-time config access functions */ @@ -220,7 +237,9 @@ 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_find_backup_conn(SilcServer server, char *host); +SilcBool silc_server_config_is_primary_route(SilcServer server); SilcServerConfigRouter * silc_server_config_get_primary_router(SilcServer server); SilcServerConfigRouter *