From d4dfa24d16d5799636ae89be46e37cf853fbad9c Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Thu, 2 Oct 2003 11:58:43 +0000 Subject: [PATCH] Added "debug_string" configuration option to enable debugging via silcd.conf. --- apps/silcd/server.c | 10 ++++++++++ apps/silcd/serverconfig.c | 6 ++++++ apps/silcd/serverconfig.h | 1 + 3 files changed, 17 insertions(+) diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 4e88ff4a..06e5d017 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -286,6 +286,16 @@ bool silc_server_init(SilcServer server) silc_server_config_ref(&server->config_ref, server->config, server->config); +#ifdef SILC_DEBUG + /* Set debugging on if configured */ + if (server->config->debug_string) { + silc_debug = TRUE; + silc_log_set_debug_string(server->config->debug_string); + } else { + silc_debug = FALSE; + } +#endif /* SILC_DEBUG */ + /* Steal public and private key from the config object */ server->public_key = server->config->server_info->public_key; server->private_key = server->config->server_info->private_key; diff --git a/apps/silcd/serverconfig.c b/apps/silcd/serverconfig.c index 40e2bf0a..8ff643c1 100644 --- a/apps/silcd/serverconfig.c +++ b/apps/silcd/serverconfig.c @@ -303,6 +303,10 @@ SILC_CONFIG_CALLBACK(fetch_generic) else if (!strcmp(name, "qos_limit_usec")) { config->param.qos_limit_usec = *(SilcUInt32 *)val; } + else if (!strcmp(name, "debug_string")) { + CONFIG_IS_DOUBLE(config->debug_string); + config->debug_string = (*(char *)val ? strdup((char *) val) : NULL); + } else return SILC_CONFIG_EINTERNAL; @@ -1165,6 +1169,7 @@ static const SilcConfigTable table_general[] = { { "qos_bytes_limit", SILC_CONFIG_ARG_INT, fetch_generic, NULL }, { "qos_limit_sec", SILC_CONFIG_ARG_INT, fetch_generic, NULL }, { "qos_limit_usec", SILC_CONFIG_ARG_INT, fetch_generic, NULL }, + { "debug_string", SILC_CONFIG_ARG_STR, fetch_generic, NULL }, { 0, 0, 0, 0 } }; @@ -1537,6 +1542,7 @@ void silc_server_config_destroy(SilcServerConfig config) /* Destroy general config stuff */ silc_free(config->module_path); + silc_free(config->debug_string); silc_free(config->param.version_protocol); silc_free(config->param.version_software); silc_free(config->param.version_software_vendor); diff --git a/apps/silcd/serverconfig.h b/apps/silcd/serverconfig.h index 03cb63a0..2104976e 100644 --- a/apps/silcd/serverconfig.h +++ b/apps/silcd/serverconfig.h @@ -175,6 +175,7 @@ typedef struct { bool logging_timestamp; bool logging_quick; long logging_flushdelay; + char *debug_string; /* Other configuration sections */ SilcServerConfigCipher *cipher; -- 2.24.0