[Qemu-devel] [PULL 55/65] slirp: introduce SLIRP_DEBUG environment variable

2019-01-14 Thread Samuel Thibault
From: Marc-André Lureau 

Learn to read SLIRP_DEBUG=call,misc,error (all or help also handled)
to set the slirp_debug flags.

Signed-off-by: Marc-André Lureau 
Signed-off-by: Samuel Thibault 
---
 slirp/misc.c  |  8 
 slirp/slirp.c | 15 +++
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/slirp/misc.c b/slirp/misc.c
index e30d2ceb2a..a0f104be5e 100644
--- a/slirp/misc.c
+++ b/slirp/misc.c
@@ -11,14 +11,6 @@
 #include "qemu/error-report.h"
 #include "qemu/main-loop.h"
 
-#ifdef DEBUG
-#define SLIRP_DEBUG (DBG_CALL | DBG_MISC | DBG_ERROR)
-#else
-#define SLIRP_DEBUG 0
-#endif
-
-int slirp_debug = SLIRP_DEBUG;
-
 inline void
 insque(void *a, void *b)
 {
diff --git a/slirp/slirp.c b/slirp/slirp.c
index ce5f571d0f..0b70cb9fb6 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -35,6 +35,8 @@
 #include 
 #endif
 
+int slirp_debug;
+
 /* Define to 1 if you want KEEPALIVE timers */
 bool slirp_do_keepalive;
 
@@ -250,6 +252,7 @@ int get_dns6_addr(struct in6_addr *pdns6_addr, uint32_t 
*scope_id)
 static void slirp_init_once(void)
 {
 static int initialized;
+const char *debug;
 #ifdef _WIN32
 WSADATA Data;
 #endif
@@ -266,6 +269,18 @@ static void slirp_init_once(void)
 
 loopback_addr.s_addr = htonl(INADDR_LOOPBACK);
 loopback_mask = htonl(IN_CLASSA_NET);
+
+debug = g_getenv("SLIRP_DEBUG");
+if (debug) {
+const GDebugKey keys[] = {
+{ "call", DBG_CALL },
+{ "misc", DBG_MISC },
+{ "error", DBG_ERROR },
+};
+slirp_debug = g_parse_debug_string(debug, keys, G_N_ELEMENTS(keys));
+}
+
+
 }
 
 static void slirp_state_save(QEMUFile *f, void *opaque);
-- 
2.20.1




[Qemu-devel] [PULL 55/65] slirp: introduce SLIRP_DEBUG environment variable

2019-01-13 Thread Samuel Thibault
From: Marc-André Lureau 

Learn to read SLIRP_DEBUG=call,misc,error (all or help also handled)
to set the slirp_debug flags.

Signed-off-by: Marc-André Lureau 
Signed-off-by: Samuel Thibault 
---
 slirp/misc.c  |  8 
 slirp/slirp.c | 15 +++
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/slirp/misc.c b/slirp/misc.c
index e30d2ceb2a..a0f104be5e 100644
--- a/slirp/misc.c
+++ b/slirp/misc.c
@@ -11,14 +11,6 @@
 #include "qemu/error-report.h"
 #include "qemu/main-loop.h"
 
-#ifdef DEBUG
-#define SLIRP_DEBUG (DBG_CALL | DBG_MISC | DBG_ERROR)
-#else
-#define SLIRP_DEBUG 0
-#endif
-
-int slirp_debug = SLIRP_DEBUG;
-
 inline void
 insque(void *a, void *b)
 {
diff --git a/slirp/slirp.c b/slirp/slirp.c
index ce5f571d0f..0b70cb9fb6 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -35,6 +35,8 @@
 #include 
 #endif
 
+int slirp_debug;
+
 /* Define to 1 if you want KEEPALIVE timers */
 bool slirp_do_keepalive;
 
@@ -250,6 +252,7 @@ int get_dns6_addr(struct in6_addr *pdns6_addr, uint32_t 
*scope_id)
 static void slirp_init_once(void)
 {
 static int initialized;
+const char *debug;
 #ifdef _WIN32
 WSADATA Data;
 #endif
@@ -266,6 +269,18 @@ static void slirp_init_once(void)
 
 loopback_addr.s_addr = htonl(INADDR_LOOPBACK);
 loopback_mask = htonl(IN_CLASSA_NET);
+
+debug = g_getenv("SLIRP_DEBUG");
+if (debug) {
+const GDebugKey keys[] = {
+{ "call", DBG_CALL },
+{ "misc", DBG_MISC },
+{ "error", DBG_ERROR },
+};
+slirp_debug = g_parse_debug_string(debug, keys, G_N_ELEMENTS(keys));
+}
+
+
 }
 
 static void slirp_state_save(QEMUFile *f, void *opaque);
-- 
2.20.1