summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/src/transports/smtp.h8
-rw-r--r--src/src/verify.c14
2 files changed, 19 insertions, 3 deletions
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);