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 <marcandre.lureau@redhat.com>
---
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 0b7ec89595..f9b2c64541 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 432adb02c4..51c5813c7c 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -34,6 +34,8 @@
#include <net/if.h>
#endif
+int slirp_debug;
+
/* Define to 1 if you want KEEPALIVE timers */
bool slirp_do_keepalive;
@@ -249,6 +251,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
@@ -265,6 +268,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.0.rc1