- /* Pointer back to the server */
- void *server;
-
- /* Filename of the configuration file */
- char *filename;
-
- /* Configuration sections */
- SilcConfigServerSectionAlg *cipher;
- SilcConfigServerSectionAlg *pkcs;
- SilcConfigServerSectionAlg *hash_func;
- SilcConfigServerSectionServerInfo *server_info;
- SilcConfigServerSectionAdminInfo *admin_info;
- SilcConfigServerSectionListenPort *listen_port;
- SilcConfigServerSectionLogging *logging;
- SilcConfigServerSectionConnectionClass *conn_class;
- SilcConfigServerSectionClientConnection *clients;
- SilcConfigServerSectionServerConnection *servers;
- SilcConfigServerSectionServerConnection *routers;
- SilcConfigServerSectionAdminConnection *admins;
- SilcConfigServerSectionDenyConnection *denied;
- SilcConfigServerSectionRedirectClient *redirect;
-} SilcConfigServerObject;
-
-typedef SilcConfigServerObject *SilcConfigServer;
-
-/* 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_SERVER_INFO,
- SILC_CONFIG_SERVER_SECTION_TYPE_ADMIN_INFO,
- SILC_CONFIG_SERVER_SECTION_TYPE_LISTEN_PORT,
- 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_REDIRECT_CLIENT,
-} SilcConfigServerSectionType;
-
-/* SILC Configuration Section structure. */
+ 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;
+