]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
submission: submission-backend-relay - Handle relay server replies consistently.
authorStephan Bosch <stephan.bosch@open-xchange.com>
Mon, 17 Aug 2020 16:06:14 +0000 (18:06 +0200)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Mon, 24 Aug 2020 07:20:17 +0000 (07:20 +0000)
Initial connection setup errors were handled differently when the reply came
into the ready callback first.

src/submission/submission-backend-relay.c

index c8da8f0323b65d2f4efb8e1454f925aa5ab64e99..cf0956cae0ba3251f4bd7a74b1c9d8784e34ad2d 100644 (file)
@@ -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));