From: Stephan Bosch Date: Mon, 17 Aug 2020 16:06:14 +0000 (+0200) Subject: submission: submission-backend-relay - Handle relay server replies consistently. X-Git-Tag: 2.3.13~344 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4e264dad2f3cbb75d84a9f26543e6e8dbf7e300c;p=thirdparty%2Fdovecot%2Fcore.git submission: submission-backend-relay - Handle relay server replies consistently. Initial connection setup errors were handled differently when the reply came into the ready callback first. --- diff --git a/src/submission/submission-backend-relay.c b/src/submission/submission-backend-relay.c index c8da8f0323..cf0956cae0 100644 --- a/src/submission/submission-backend-relay.c +++ b/src/submission/submission-backend-relay.c @@ -45,7 +45,7 @@ static bool backend_relay_handle_relay_reply(struct submission_backend_relay *backend, struct smtp_server_cmd_ctx *cmd, const struct smtp_reply *reply, - struct smtp_reply *reply_r) + struct smtp_reply *reply_r) ATTR_NULL(2) { const char *enh_code, *msg, *log_msg = NULL; const char *const *reply_lines; @@ -1155,8 +1155,11 @@ static void backend_relay_ready_cb(const struct smtp_reply *reply, void *context) { struct submission_backend_relay *backend = context; + struct smtp_reply dummy; /* check relay status */ + if (!backend_relay_handle_relay_reply(backend, NULL, reply, &dummy)) + return; if (!smtp_reply_is_success(reply)) { i_error("Failed to establish relay connection: %s", smtp_reply_log(reply));