]> git.netwichtig.de Git - user/henk/code/exim.git/blobdiff - src/src/daemon.c
Debug: _exit() process-termination
[user/henk/code/exim.git] / src / src / daemon.c
index ac507b0236813e55fdb508655b4a21c9ba4863e2..aa36a5dc9361a713cfd5b8256491cda5b4bd7f18 100644 (file)
@@ -418,7 +418,7 @@ if (pid == 0)
           "please try again later.\r\n", FALSE);
         mac_smtp_fflush();
         search_tidyup();
-        exim_underbar_exit(EXIT_FAILURE);
+        exim_underbar_exit(EXIT_FAILURE, US"conn-accept");
         }
       }
     else if (*nah) smtp_active_hostname = nah;
@@ -505,7 +505,7 @@ if (pid == 0)
     {
     mac_smtp_fflush();
     search_tidyup();
-    exim_underbar_exit(EXIT_SUCCESS);
+    exim_underbar_exit(EXIT_SUCCESS, US"conn-smtp");
     }
 
   for (;;)
@@ -533,7 +533,7 @@ if (pid == 0)
        cancel_cutthrough_connection(TRUE, US"receive dropped");
         mac_smtp_fflush();
         smtp_log_no_mail();               /* Log no mail if configured */
-        exim_underbar_exit(EXIT_SUCCESS);
+        exim_underbar_exit(EXIT_SUCCESS, US"conn-receive");
         }
       if (message_id[0] == 0) continue;   /* No message was accepted */
       }
@@ -556,7 +556,7 @@ if (pid == 0)
       /*XXX should we pause briefly, hoping that the client will be the
       active TCP closer hence get the TCP_WAIT endpoint? */
       DEBUG(D_receive) debug_printf("SMTP>>(close on process exit)\n");
-      exim_underbar_exit(rc ? EXIT_FAILURE : EXIT_SUCCESS);
+      exim_underbar_exit(rc ? EXIT_FAILURE : EXIT_SUCCESS, US"conn-setup");
       }
 
     /* Show the recipients when debugging */
@@ -692,7 +692,7 @@ if (pid == 0)
 
         (void) deliver_message(message_id, FALSE, FALSE);
         search_tidyup();
-        exim_underbar_exit(EXIT_SUCCESS);
+        exim_underbar_exit(EXIT_SUCCESS, US"deliver_msg");
         }
 
       if (dpid > 0)
@@ -972,7 +972,7 @@ if (daemon_notifier_fd >= 0)
   daemon_notifier_fd = -1;
 #ifndef EXIM_HAVE_ABSTRACT_UNIX_SOCKETS
     {
-    uschar * s = string_sprintf("%s/%s", spool_directory, NOTIFIER_SOCKET_NAME);
+    uschar * s = expand_string(notifier_socket);
     DEBUG(D_any) debug_printf("unlinking notifier socket %s\n", s);
     Uunlink(s);
     }
@@ -1010,7 +1010,14 @@ const uschar * where;
 struct sockaddr_un sa_un = {.sun_family = AF_UNIX};
 int len;
 
-DEBUG(D_any) debug_printf("creating notifier socket ");
+if (override_local_interfaces && !override_pid_file_path)
+  {
+  DEBUG(D_any)
+    debug_printf("-oX used without -oP so not creating notifier socket\n");
+  return;
+  }
+
+DEBUG(D_any) debug_printf("creating notifier socket\n");
 
 #ifdef SOCK_CLOEXEC
 if ((fd = socket(PF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0)) < 0)
@@ -1024,13 +1031,14 @@ if ((fd = socket(PF_UNIX, SOCK_DGRAM, 0)) < 0)
 #ifdef EXIM_HAVE_ABSTRACT_UNIX_SOCKETS
 sa_un.sun_path[0] = 0; /* Abstract local socket addr - Linux-specific? */
 len = offsetof(struct sockaddr_un, sun_path) + 1
-  + snprintf(sa_un.sun_path+1, sizeof(sa_un.sun_path)-1, "%s", NOTIFIER_SOCKET_NAME);
-DEBUG(D_any) debug_printf("@%s\n", sa_un.sun_path+1);
+  + snprintf(sa_un.sun_path+1, sizeof(sa_un.sun_path)-1, "%s",
+             expand_string(notifier_socket));
+DEBUG(D_any) debug_printf(" @%s\n", sa_un.sun_path+1);
 #else                  /* filesystem-visible and persistent; will neeed removal */
 len = offsetof(struct sockaddr_un, sun_path)
-  + snprintf(sa_un.sun_path, sizeof(sa_un.sun_path), "%s/%s", 
-               spool_directory, NOTIFIER_SOCKET_NAME);
-DEBUG(D_any) debug_printf("%s\n", sa_un.sun_path);
+  + snprintf(sa_un.sun_path, sizeof(sa_un.sun_path), "%s", 
+             expand_string(notifier_socket));
+DEBUG(D_any) debug_printf(" %s\n", sa_un.sun_path);
 #endif
 
 if (bind(fd, (const struct sockaddr *)&sa_un, len) < 0)
@@ -2213,7 +2221,7 @@ for (;;)
          else
 #endif
            queue_run(NULL, NULL, FALSE);
-          exim_underbar_exit(EXIT_SUCCESS);
+          exim_underbar_exit(EXIT_SUCCESS, US"queue-runner");
           }
 
         if (pid < 0)