diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2018-11-22 02:06:37 +0400 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2019-01-14 00:44:29 +0100 |
commit | 039d5b6312738ba552527046509777e94a388ed5 (patch) | |
tree | 75aeaa41a7f925b6402cea001ec26175e55d73ff /slirp/slirp.c | |
parent | 208408c3ed3f02ca97598f90319a2c5760271454 (diff) |
slirp: introduce SLIRP_DEBUG environment variable
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>
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'slirp/slirp.c')
-rw-r--r-- | slirp/slirp.c | 15 |
1 files changed, 15 insertions, 0 deletions
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 <net/if.h> #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); |