From: Stephan Bosch Date: Sun, 7 Jun 2020 23:22:47 +0000 (+0200) Subject: lmtp: lmtp-proxy - Add approved recipient hook before initiating connection. X-Git-Tag: 2.4.0~4817 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b37187d5ae87e51939bf689fd04fff4cca04ecd8;p=thirdparty%2Fdovecot%2Fcore.git lmtp: lmtp-proxy - Add approved recipient hook before initiating connection. Before, it was added in the client login callback, which can be called more than once after later commits. --- diff --git a/src/lmtp/lmtp-proxy.c b/src/lmtp/lmtp-proxy.c index 36808c5251..4dc20add1e 100644 --- a/src/lmtp/lmtp-proxy.c +++ b/src/lmtp/lmtp-proxy.c @@ -575,10 +575,6 @@ lmtp_proxy_rcpt_login_cb(const struct smtp_reply *proxy_reply, void *context) lprcpt->forward_fields, lprcpt->forward_fields_size); } - smtp_server_recipient_add_hook( - rcpt, SMTP_SERVER_RECIPIENT_HOOK_APPROVED, - lmtp_proxy_rcpt_approved, lprcpt); - relay_rcpt = smtp_client_transaction_add_pool_rcpt( conn->lmtp_trans, rcpt->pool, lprcpt->address, rcpt_params, lmtp_proxy_rcpt_cb, lprcpt); @@ -706,6 +702,10 @@ int lmtp_proxy_rcpt(struct client *client, lprcpt->address = smtp_address_clone(rcpt->pool, address); lprcpt->conn = conn; + smtp_server_recipient_add_hook( + rcpt, SMTP_SERVER_RECIPIENT_HOOK_APPROVED, + lmtp_proxy_rcpt_approved, lprcpt); + /* Copy forward fields returned from passdb */ fwfields = NULL; for (const char *const *ptr = fields; *ptr != NULL; ptr++) {