]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
winbind: enable "debug traceid" in main winbindd
authorPavel Filipenský <pfilipen@redhat.com>
Sun, 5 Sep 2021 18:36:15 +0000 (20:36 +0200)
committerJeremy Allison <jra@samba.org>
Tue, 10 May 2022 17:31:31 +0000 (17:31 +0000)
Signed-off-by: Pavel Filipenský <pfilipen@redhat.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/winbindd/winbindd.c

index af5963195793a52100e51bcdfc8f47a5ab8ed411..710df3c74d5b251ad0258c2467d1011a1d7dee56 100644 (file)
@@ -52,6 +52,7 @@
 #include "rpc_server/rpc_config.h"
 #include "lib/global_contexts.h"
 #include "source3/lib/substitute.h"
+#include "winbindd_traceid.h"
 
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_WINBIND
@@ -421,7 +422,18 @@ static struct tevent_req *process_request_send(
        enum winbindd_cmd cmd = cli_state->request->cmd;
        size_t i;
        bool ok;
+       static uint64_t request_index = 1;
 
+       /*
+        * debug traceid values:
+        * 0   .. inactive
+        * 1   .. not processing a winbind request, but in other code (timers)
+        * >=2 .. winbind request processing
+        */
+       if (debug_traceid_get() != 0) {
+               request_index = ++request_index == 0 ? 2 : request_index;
+               debug_traceid_set(request_index);
+       }
        req = tevent_req_create(mem_ctx, &state,
                                struct process_request_state);
        if (req == NULL) {
@@ -1623,6 +1635,9 @@ int main(int argc, const char **argv)
                exit_daemon("Winbindd reinit_after_fork() failed", map_errno_from_nt_status(status));
        }
 
+       if (lp_winbind_debug_traceid()) {
+               winbind_debug_traceid_setup(global_event_context());
+       }
        ok = initialize_password_db(true, global_event_context());
        if (!ok) {
                exit_daemon("Failed to initialize passdb backend! "