src/uid_wrapper.c: also log the process name
authorStefan Metzmacher <metze@samba.org>
Tue, 8 Nov 2022 20:30:18 +0000 (21:30 +0100)
committerAndreas Schneider <asn@samba.org>
Tue, 17 Jan 2023 13:22:25 +0000 (14:22 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
src/uid_wrapper.c

index 20dc437dc738193b9d49eb6b6bcce83e39f4e279..28e2c435c7ecb99f1d6172fdfaeb64c78fa2453e 100644 (file)
@@ -142,6 +142,19 @@ enum uwrap_dbglvl_e {
        UWRAP_LOG_TRACE
 };
 
+#ifndef HAVE_GETPROGNAME
+static const char *getprogname(void)
+{
+#if defined(HAVE_PROGRAM_INVOCATION_SHORT_NAME)
+       return program_invocation_short_name;
+#elif defined(HAVE_GETEXECNAME)
+       return getexecname();
+#else
+       return NULL;
+#endif /* HAVE_PROGRAM_INVOCATION_SHORT_NAME */
+}
+#endif /* HAVE_GETPROGNAME */
+
 static void uwrap_log(enum uwrap_dbglvl_e dbglvl, const char *function, const char *format, ...) PRINTF_ATTRIBUTE(3, 4);
 # define UWRAP_LOG(dbglvl, ...) uwrap_log((dbglvl), __func__, __VA_ARGS__)
 
@@ -152,6 +165,7 @@ static void uwrap_log(enum uwrap_dbglvl_e dbglvl, const char *function, const ch
        const char *d;
        unsigned int lvl = 0;
        const char *prefix = "UWRAP";
+       const char *progname = getprogname();
 
        d = getenv("UID_WRAPPER_DEBUGLEVEL");
        if (d != NULL) {
@@ -181,9 +195,14 @@ static void uwrap_log(enum uwrap_dbglvl_e dbglvl, const char *function, const ch
                        break;
        }
 
+       if (progname == NULL) {
+               progname = "<unknown>";
+       }
+
        fprintf(stderr,
-               "%s(%d) - %s: %s\n",
+               "%s[%s (%u)] - %s: %s\n",
                prefix,
+               progname,
                (int)getpid(),
                function,
                buffer);