Added "debug" and "debug_string" Irssi SILC client settings for
authorPekka Riikonen <priikone@silcnet.org>
Fri, 14 Jun 2002 21:08:41 +0000 (21:08 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Fri, 14 Jun 2002 21:08:41 +0000 (21:08 +0000)
printing runtime debugging.  Avail if compiled with --enable-debug.

CHANGES
apps/irssi/src/silc/core/silc-core.c

diff --git a/CHANGES b/CHANGES
index ed32fb8320bda45ee209a2d9912db25b0d0245b5..bb94fa24d8a7f7befc1b3e36b6464e0d4afa71d7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -9,6 +9,11 @@ Fri Jun 14 22:59:02 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
          misbehaviour.  Affected files are lib/silcsftp/sftp_client.c
          and lib/silcsftp/sftp_util.c.
 
+       * Added new "debug" and "debug_string" settings to Irssi SILC
+         client which can be used to print runtime debugging on the
+         Irssi's screen.  Available when compiled with --enable-debug
+         option.  Affected file irssi/src/silc/core/silc-core.c.
+
 Tue Jun 11 16:36:02 CEST 2002 Johnny Mnemonic <johnny@themnemonic.org>
 
        * Fixed a missing variadic parameter in a function call that
index 9578ce9b5518253764e9dfd242bfac94de055ea9..3fca79d2f0749fa708ead419633dcb3135700f33 100644 (file)
@@ -145,6 +145,31 @@ static void silc_init_userinfo(void)
   }
 }
 
+#ifdef SILC_DEBUG
+static bool i_debug;
+static bool silc_irssi_debug_print(char *file, char *function, int line,
+                                  char *message, void *context)
+{
+  printtext(NULL, NULL, MSGLEVEL_CLIENTNOTICE,
+           "DEBUG: %s:%d:%s", function, line, message);
+  return TRUE;
+}
+
+static void sig_debug_setup_changed(void)
+{
+  bool debug = settings_get_bool("debug");
+  if (debug) {
+    const char *debug_string = settings_get_str("debug_string");
+    i_debug = silc_debug = TRUE;
+    silc_log_set_debug_string(debug_string);
+    silc_log_set_debug_callbacks(silc_irssi_debug_print, NULL, NULL, NULL);
+    return;
+  }
+  if (i_debug)
+    silc_debug = FALSE;
+}
+#endif
+
 /* Log callbacks */
 
 static bool silc_log_misc(SilcLogType type, char *message, void *context)
@@ -347,6 +372,12 @@ void silc_core_init(void)
   settings_add_int("server", "key_exchange_rekey_secs", 3600);
   settings_add_int("server", "connauth_request_secs", 2);
 
+#ifdef SILC_DEBUG
+  settings_add_bool("debug", "debug", FALSE);
+  settings_add_str("debug", "debug_string", "");
+  signal_add("setup changed", (SIGNAL_FUNC) sig_debug_setup_changed);
+#endif
+
   silc_init_userinfo();
 
   /* Initialize client parameters */
@@ -431,6 +462,9 @@ void silc_core_deinit(void)
                chat_protocol_find("SILC"));
     signal_remove("irssi init read settings", 
                  (SIGNAL_FUNC) sig_init_read_settings);
+#ifdef SILC_DEBUG
+    signal_remove("setup changed", (SIGNAL_FUNC) sig_debug_setup_changed);
+#endif
     
     silc_server_deinit();
     silc_channels_deinit();