From: Jeremy Harris Date: Wed, 22 May 2013 00:09:08 +0000 (+0100) Subject: Log AUTH info on cutthrough deliveries. X-Git-Tag: exim-4_82_RC1~28^2 X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=b4a2b536841292bde7e8e6dc6ef25d97a11641a3;p=exim.git Log AUTH info on cutthrough deliveries. --- diff --git a/src/src/transports/smtp.h b/src/src/transports/smtp.h index 4bea2030d..8e85294bc 100644 --- a/src/src/transports/smtp.h +++ b/src/src/transports/smtp.h @@ -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 */ diff --git a/src/src/verify.c b/src/src/verify.c index ea7869d25..a09782bcd 100644 --- a/src/src/verify.c +++ b/src/src/verify.c @@ -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);