]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
submission: relay backend: In backend_relay_handle_relay_reply(): Only determine...
authorStephan Bosch <stephan.bosch@dovecot.fi>
Tue, 30 Oct 2018 08:57:31 +0000 (09:57 +0100)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Tue, 12 Feb 2019 13:41:46 +0000 (15:41 +0200)
src/submission/submission-backend-relay.c

index ea8029c2185b4d63a1e0edb87d6accb416bb7eb0..f68191d6893af0efece6382985ab9ad52590e68b 100644 (file)
@@ -48,7 +48,7 @@ backend_relay_handle_relay_reply(struct submission_backend_relay *backend,
                                 const struct smtp_reply *reply,
                                 struct smtp_reply *reply_r)
 {
-       const char *enh_code, *msg, *log_msg = NULL, *detail = "";
+       const char *enh_code, *msg, *log_msg = NULL;
        bool result = TRUE;
 
        *reply_r = *reply;
@@ -88,32 +88,34 @@ backend_relay_handle_relay_reply(struct submission_backend_relay *backend,
                break;
        }
 
-       switch (reply->status) {
-       case SMTP_CLIENT_COMMAND_ERROR_ABORTED:
-               i_unreached();
-       case SMTP_CLIENT_COMMAND_ERROR_HOST_LOOKUP_FAILED:
-               detail = " (DNS lookup)";
-               break;
-       case SMTP_CLIENT_COMMAND_ERROR_CONNECT_FAILED:
-       case SMTP_CLIENT_COMMAND_ERROR_AUTH_FAILED:
-               detail = " (connect)";
-               break;
-       case SMTP_CLIENT_COMMAND_ERROR_CONNECTION_LOST:
-       case SMTP_CLIENT_COMMAND_ERROR_CONNECTION_CLOSED:
-               detail = " (connection lost)";
-               break;
-       case SMTP_CLIENT_COMMAND_ERROR_BAD_REPLY:
-               detail = " (bad reply)";
-               break;
-       case SMTP_CLIENT_COMMAND_ERROR_TIMED_OUT:
-               detail = " (timed out)";
-               break;
-       default:
-               break;
-       }
-
        if (!result) {
-               const char *reason = t_strdup_printf("%s%s", msg, detail);
+               const char *detail = "", *reason;
+
+               switch (reply->status) {
+               case SMTP_CLIENT_COMMAND_ERROR_ABORTED:
+                       i_unreached();
+               case SMTP_CLIENT_COMMAND_ERROR_HOST_LOOKUP_FAILED:
+                       detail = " (DNS lookup)";
+                       break;
+               case SMTP_CLIENT_COMMAND_ERROR_CONNECT_FAILED:
+               case SMTP_CLIENT_COMMAND_ERROR_AUTH_FAILED:
+                       detail = " (connect)";
+                       break;
+               case SMTP_CLIENT_COMMAND_ERROR_CONNECTION_LOST:
+               case SMTP_CLIENT_COMMAND_ERROR_CONNECTION_CLOSED:
+                       detail = " (connection lost)";
+                       break;
+               case SMTP_CLIENT_COMMAND_ERROR_BAD_REPLY:
+                       detail = " (bad reply)";
+                       break;
+               case SMTP_CLIENT_COMMAND_ERROR_TIMED_OUT:
+                       detail = " (timed out)";
+                       break;
+               default:
+                       break;
+               }
+
+               reason = t_strdup_printf("%s%s", msg, detail);
                smtp_client_transaction_destroy(&backend->trans);
                if (log_msg != NULL)
                        i_error("%s: %s", log_msg, smtp_reply_log(reply));