- /* Pointer back to the server */
- void *server;
-
- /* Filename of the configuration file */
- char *filename;
-
- /* Configuration sections */
- SilcServerConfigSectionAlg *cipher;
- SilcServerConfigSectionAlg *pkcs;
- SilcServerConfigSectionAlg *hash_func;
- SilcServerConfigSectionAlg *hmac;
- SilcServerConfigSectionServerKeys *server_keys;
- SilcServerConfigSectionServerInfo *server_info;
- SilcServerConfigSectionAdminInfo *admin_info;
- SilcServerConfigSectionListenPort *listen_port;
- SilcServerConfigSectionIdentity *identity;
- SilcServerConfigSectionLogging *logging;
- SilcServerConfigSectionConnectionClass *conn_class;
- SilcServerConfigSectionClientConnection *clients;
- SilcServerConfigSectionServerConnection *servers;
- SilcServerConfigSectionServerConnection *routers;
- SilcServerConfigSectionAdminConnection *admins;
- SilcServerConfigSectionDenyConnection *denied;
- SilcServerConfigSectionMotd *motd;
-} SilcServerConfigObject;
-
-typedef SilcServerConfigObject *SilcServerConfig;
-
-/* Configuration section type enumerations. */
-typedef enum {
- SILC_CONFIG_SERVER_SECTION_TYPE_NONE = 0,
- SILC_CONFIG_SERVER_SECTION_TYPE_CIPHER,
- SILC_CONFIG_SERVER_SECTION_TYPE_PKCS,
- SILC_CONFIG_SERVER_SECTION_TYPE_HASH_FUNCTION,
- SILC_CONFIG_SERVER_SECTION_TYPE_HMAC,
- SILC_CONFIG_SERVER_SECTION_TYPE_SERVER_KEYS,
- SILC_CONFIG_SERVER_SECTION_TYPE_SERVER_INFO,
- SILC_CONFIG_SERVER_SECTION_TYPE_ADMIN_INFO,
- SILC_CONFIG_SERVER_SECTION_TYPE_LISTEN_PORT,
- SILC_CONFIG_SERVER_SECTION_TYPE_IDENTITY,
- SILC_CONFIG_SERVER_SECTION_TYPE_LOGGING,
- SILC_CONFIG_SERVER_SECTION_TYPE_CONNECTION_CLASS,
- SILC_CONFIG_SERVER_SECTION_TYPE_CLIENT_CONNECTION,
- SILC_CONFIG_SERVER_SECTION_TYPE_SERVER_CONNECTION,
- SILC_CONFIG_SERVER_SECTION_TYPE_ROUTER_CONNECTION,
- SILC_CONFIG_SERVER_SECTION_TYPE_ADMIN_CONNECTION,
- SILC_CONFIG_SERVER_SECTION_TYPE_DENY_CONNECTION,
- SILC_CONFIG_SERVER_SECTION_TYPE_MOTD,
-} SilcServerConfigSectionType;
+ void *tmp;
+
+ /* Reference count (when this reaches zero, config object is destroyed) */
+ SilcInt32 refcount;
+
+ /* 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;
+ bool detach_disabled;
+ SilcUInt32 detach_timeout;
+ bool logging_timestamp;
+ bool logging_quick;
+ long logging_flushdelay;
+ char *debug_string;
+
+ /* 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;