]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:kdc: If we set the kerberos debug level to 10 write a trace file
authorAndreas Schneider <asn@samba.org>
Thu, 20 Jan 2022 07:46:55 +0000 (08:46 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 25 Mar 2022 20:58:33 +0000 (20:58 +0000)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/kdc/kdc-service-mit.c

index e146c9f8588d14a9e296f168d5f685d61a9dbcc0..f9aaedefc2336a2b6a565a7ef758c522d70b01e0 100644 (file)
@@ -146,6 +146,7 @@ NTSTATUS mitkdc_task_init(struct task_server *task)
        kadm5_ret_t ret;
        kadm5_config_params config;
        void *server_handle;
+       int dbglvl = 0;
 
        task_server_set_title(task, "task[mitkdc_parent]");
 
@@ -188,6 +189,21 @@ NTSTATUS mitkdc_task_init(struct task_server *task)
        setenv("KRB5_KDC_PROFILE", kdc_config, 0);
        TALLOC_FREE(kdc_config);
 
+       dbglvl = debuglevel_get_class(DBGC_KERBEROS);
+       if (dbglvl >= 10) {
+               char *kdc_trace_file = talloc_asprintf(task,
+                                                      "%s/mit_kdc_trace.log",
+                                                      get_dyn_LOGFILEBASE());
+               if (kdc_trace_file == NULL) {
+                       task_server_terminate(task,
+                                       "KDC: no memory",
+                                       false);
+                       return NT_STATUS_NO_MEMORY;
+               }
+
+               setenv("KRB5_TRACE", kdc_trace_file, 1);
+       }
+
        /* start it as a child process */
        kdc_cmd = lpcfg_mit_kdc_command(task->lp_ctx);