Added "debug_string" configuration option to enable debugging
authorPekka Riikonen <priikone@silcnet.org>
Thu, 2 Oct 2003 11:58:43 +0000 (11:58 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Thu, 2 Oct 2003 11:58:43 +0000 (11:58 +0000)
via silcd.conf.

apps/silcd/server.c
apps/silcd/serverconfig.c
apps/silcd/serverconfig.h

index 4e88ff4a4e9d96b94914fc2124f25303f297268c..06e5d017a165c27f9b9bb2cd6442f9646c2f1ddd 100644 (file)
@@ -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;
index 40e2bf0a0fabbabb7cd624cf1c0766f4f7c1ee8a..8ff643c1e0f4fc126349a05cdba23d956d3ec844 100644 (file)
@@ -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);
index 03cb63a0d89b57304e2508dd961e9216d55c0ecb..2104976ed3e87275c5c485ab67a941d792cd930f 100644 (file)
@@ -175,6 +175,7 @@ typedef struct {
   bool logging_timestamp;
   bool logging_quick;
   long logging_flushdelay;
+  char *debug_string;
 
   /* Other configuration sections */
   SilcServerConfigCipher *cipher;