From: Michal Privoznik <mpriv...@redhat.com>

As promised in previous commit, make NSS modules silent by
default and enable debug printings if LIBVIRT_NSS_DEBUG envvar is
set.

Signed-off-by: Michal Privoznik <mpriv...@redhat.com>
---
 docs/nss.rst                | 13 +++++++++++++
 tools/nss/libvirt_nss_log.c |  4 ++++
 tools/nss/libvirt_nss_log.h |  2 ++
 3 files changed, 19 insertions(+)

diff --git a/docs/nss.rst b/docs/nss.rst
index be137d987b..3df85cee0a 100644
--- a/docs/nss.rst
+++ b/docs/nss.rst
@@ -111,6 +111,19 @@ their IP addresses in any other way (usermode networking, 
assigned network
 devices and so on) will not be able to have their hostnames resolved through
 it.
 
+Debugging
+---------
+
+:since:`Since 11.5.0` both NSS modules check for ``LIBVIRT_NSS_DEBUG``
+environment variable¸ which if set to any value turns on printing of debug and
+error messages onto standard error output. This can be useful when debugging
+either of the module.
+
+::
+
+  $ LIBVIRT_NSS_DEBUG=1 getent hosts mydomain
+
+
 Alternatives
 ------------
 
diff --git a/tools/nss/libvirt_nss_log.c b/tools/nss/libvirt_nss_log.c
index 0863897c07..9a28a91800 100644
--- a/tools/nss/libvirt_nss_log.c
+++ b/tools/nss/libvirt_nss_log.c
@@ -24,6 +24,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdarg.h>
+#include <stdlib.h>
 
 #include "libvirt_nss_log.h"
 #include "libvirt_nss.h"
@@ -54,6 +55,9 @@ nssLog(nssLogPriority prio,
     g_autofree char *ebuf = NULL;
     va_list ap;
 
+    if (!getenv(NSS_LOG_ENV_VAR))
+        return;
+
     fprintf(stderr, "%s %s:%d : ", nssLogPriorityToString(prio), func, linenr);
 
     va_start(ap, fmt);
diff --git a/tools/nss/libvirt_nss_log.h b/tools/nss/libvirt_nss_log.h
index bac64d4bc7..25926fb6de 100644
--- a/tools/nss/libvirt_nss_log.h
+++ b/tools/nss/libvirt_nss_log.h
@@ -31,6 +31,8 @@ typedef enum {
 #define ERROR(...) \
     nssLog(NSS_ERROR, __FUNCTION__, __LINE__, __VA_ARGS__)
 
+#define NSS_LOG_ENV_VAR "LIBVIRT_NSS_DEBUG"
+
 void
 nssLog(nssLogPriority prio,
        const char *func,
-- 
2.49.0

Reply via email to