Add support for toggling debug output
authorMarcel Holtmann <marcel@holtmann.org>
Wed, 21 Jan 2009 21:11:58 +0000 (22:11 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 21 Jan 2009 21:11:58 +0000 (22:11 +0100)
src/connman.h
src/log.c
src/main.c

index 4238234..729dc42 100644 (file)
@@ -58,6 +58,7 @@ void __connman_profile_list(DBusMessageIter *iter);
 int __connman_log_init(gboolean detach, gboolean debug);
 void __connman_log_cleanup(void);
 
+void __connman_toggle_debug(void);
 gboolean __connman_debug_enabled(void);
 
 #include <connman/plugin.h>
index 33d2bf5..3a87b93 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -90,6 +90,14 @@ void connman_debug(const char *format, ...)
        va_end(ap);
 }
 
+void __connman_toggle_debug(void)
+{
+       if (debug_enabled == TRUE)
+               debug_enabled = FALSE;
+       else
+               debug_enabled = TRUE;
+}
+
 int __connman_log_init(gboolean detach, gboolean debug)
 {
        int option = LOG_NDELAY | LOG_PID;
index 581446e..457776c 100644 (file)
@@ -43,6 +43,11 @@ static void sig_term(int sig)
        g_main_loop_quit(main_loop);
 }
 
+static void sig_debug(int sig)
+{
+       __connman_toggle_debug();
+}
+
 static void disconnect_callback(DBusConnection *conn, void *user_data)
 {
        DBG("D-Bus disconnect");
@@ -194,6 +199,9 @@ int main(int argc, char *argv[])
        sigaction(SIGINT, &sa, NULL);
        sigaction(SIGTERM, &sa, NULL);
 
+       sa.sa_handler = sig_debug;
+       sigaction(SIGUSR2, &sa, NULL);
+
        g_main_loop_run(main_loop);
 
        __connman_element_stop();