Explicit log of failiing bind addr & port
authorJeremy Harris <jgh146exb@wizmail.org>
Thu, 6 Jul 2023 20:43:50 +0000 (21:43 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Thu, 6 Jul 2023 20:43:50 +0000 (21:43 +0100)
src/src/deliver.c
src/src/ip.c
test/log/0227
test/log/0477
test/stderr/0227

index 47368a860e3d66420338f720bff159f717ccf5e5..8f0f350d729e9bda4ccc817d507344b66d886fbf 100644 (file)
@@ -3353,8 +3353,8 @@ while (!done)
 
   pipeheader[PIPE_HEADER_SIZE] = '\0';
   DEBUG(D_deliver)
-    debug_printf("got %ld bytes (pipeheader) from transport process %d\n",
-      (long) got, pid);
+    debug_printf("got %ld bytes (pipeheader) '%c' from transport process %d\n",
+      (long) got, *id, pid);
 
   {
   /* If we can't decode the pipeheader, the subprocess seems to have a
@@ -3469,7 +3469,7 @@ while (!done)
 
     /* Put the amount of data written into the parlist block */
 
-    case 'S':
+    case 'S':          /* Size */
       memcpy(&(p->transport_count), ptr, sizeof(transport_count));
       ptr += sizeof(transport_count);
       break;
@@ -3559,7 +3559,7 @@ while (!done)
       if (*subid > '1') setflag(addr, af_tcp_fastopen_data);
       break;
 
-    case 'D':
+    case 'D':          /* DSN */
       if (!addr) goto ADDR_MISMATCH;
       memcpy(&(addr->dsn_aware), ptr, sizeof(addr->dsn_aware));
       ptr += sizeof(addr->dsn_aware);
index b50130be3ec694e0bbc548319fa2ec2171ec5016..6ff8fe6261976fa343ad4884a3460841bdc057d7 100644 (file)
@@ -161,7 +161,10 @@ ip_bind(int sock, int af, uschar *address, int port)
 {
 union sockaddr_46 sin;
 int s_len = ip_addr(&sin, af, address, port);
-return bind(sock, (struct sockaddr *)&sin, s_len);
+int rc = bind(sock, (struct sockaddr *)&sin, s_len);
+if (rc < 0)
+  log_write(0, LOG_MAIN, "bind of [%s]:%d failed", address, port);
+return rc;
 }
 
 
index 3f56272cdfb7ab26a2ac91f04a871181157a77dc..fd4c64d10e4cd8a6fcb0f6e36ec1d2f578ba4fc2 100644 (file)
@@ -8,6 +8,7 @@
 1999-03-02 09:44:33 H=(test) [V4NET.0.0.1] U=root F=<uncheckable@localhost1> rejected RCPT <z@test.ex>: Sender verify failed
 1999-03-02 09:44:33 H=(test) [V4NET.0.0.1] U=root sender verify fail for <uncheckable2@localhost1>: 127.0.0.1 [127.0.0.1] : response to "MAIL FROM:<>" was: 550 Bad-char error for <> topbitchar:\200\377\377
 1999-03-02 09:44:33 H=(test) [V4NET.0.0.1] U=root F=<uncheckable2@localhost1> rejected RCPT <z@test.ex>: Sender verify failed
+1999-03-02 09:44:33 bind of [1.1.1.1]:1111 failed
 1999-03-02 09:44:33 recipient verify defer (making calloout connection): T=smtp Netwk addr not available
 1999-03-02 09:44:33 H=(test) [V4NET.0.0.1] U=root sender verify defer for <bindfail@localhost1>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : Netwk addr not available
 1999-03-02 09:44:33 H=(test) [V4NET.0.0.1] U=root F=<bindfail@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
index 8bbf3edc85134127b1f0f2931c0b4428a83d2eab..3594ad2d041c502739b391a79a67c82bfa7f0881 100644 (file)
@@ -1,3 +1,4 @@
 1999-03-02 09:44:33 10HmaX-000000005vi-0000 <= CALLER@the.local.host.name U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaX-000000005vi-0000 bind of [99.99.99.99]:1111 failed
 1999-03-02 09:44:33 10HmaX-000000005vi-0000 H=127.0.0.1 [127.0.0.1] Netwk addr not available
 1999-03-02 09:44:33 10HmaX-000000005vi-0000 == userx@test.ex R=r1 T=t1 defer (EEE): Netwk addr not available
index 7150fbd72538a93f93542072cb70129bb4846965..0a4c4f1df623eac4b1d260a51d2c58815eb9b40d 100644 (file)
@@ -115,7 +115,9 @@ LOG: smtp_connection MAIN
   SMTP connection from root D=qqs closed by QUIT
 LOG: smtp_connection MAIN
   SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S from 1.1.1.1 ... unable to bind outgoing SMTP call to 1.1.1.1: Netwk addr not available
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S from 1.1.1.1 ... LOG: MAIN
+  bind of [1.1.1.1]:1111 failed
+unable to bind outgoing SMTP call to 1.1.1.1: Netwk addr not available
  failed: Netwk addr not available
 LOG: MAIN PANIC
   recipient verify defer (making calloout connection): T=smtp Netwk addr not available