Log AUTH info on cutthrough deliveries.
authorJeremy Harris <jgh146exb@wizmail.org>
Wed, 22 May 2013 00:09:08 +0000 (01:09 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Wed, 22 May 2013 17:48:18 +0000 (18:48 +0100)
src/src/transports/smtp.h
src/src/verify.c

index 4bea203..8e85294 100644 (file)
@@ -90,4 +90,12 @@ extern BOOL smtp_transport_entry(transport_instance *, address_item *);
 extern void smtp_transport_init(transport_instance *);
 extern void smtp_transport_closedown(transport_instance *);
 
+
+
+extern int     smtp_auth(uschar *, unsigned, address_item *, host_item *,
+                smtp_transport_options_block *, BOOL,
+                smtp_inblock *, smtp_outblock *);
+extern BOOL    smtp_mail_auth_str(uschar *, unsigned,
+                address_item *, smtp_transport_options_block *);
+
 /* End of transports/smtp.h */
index ea7869d..a09782b 100644 (file)
@@ -727,13 +727,21 @@ else
     else done = smtp_auth(responsebuffer, sizeof(responsebuffer),
        addr, host, ob, esmtp, &inblock, &outblock) == OK  &&
 
+               /* Copy AUTH info for logging */
+      ( (addr->authenticator = client_authenticator),
+        (addr->auth_id = client_authenticated_id),
+
     /* Build a mail-AUTH string (re-using responsebuffer for convenience */
-      !smtp_mail_auth_str(responsebuffer, sizeof(responsebuffer), addr, ob)  &&
+        !smtp_mail_auth_str(responsebuffer, sizeof(responsebuffer), addr, ob)
+      )  &&
+
+      ( (addr->auth_sndr = client_authenticated_sender),
 
     /* Send the MAIL command */
+        (smtp_write_command(&outblock, FALSE, "MAIL FROM:<%s>%s\r\n",
+          from_address, responsebuffer) >= 0)
+      )  &&
 
-      smtp_write_command(&outblock, FALSE, "MAIL FROM:<%s>%s\r\n",
-        from_address, responsebuffer) >= 0 &&
       smtp_read_response(&inblock, responsebuffer, sizeof(responsebuffer),
         '2', callout);