]> dgit.raspbian.org Git - dovecot.git/commitdiff
[PATCH] *-login: Add LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Fri, 18 Jul 2025 11:28:47 +0000 (14:28 +0300)
committerNoah Meyerhans <noahm@debian.org>
Wed, 16 Sep 2026 19:06:35 +0000 (15:06 -0400)
Gbp-Pq: Name 0001-login-Add-LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED.patch

src/imap-login/imap-proxy.c
src/login-common/client-common.c
src/login-common/login-proxy.c
src/login-common/login-proxy.h
src/pop3-login/pop3-proxy.c
src/submission-login/submission-proxy.c

index 69680ea75230d428c06ca7a2009b2fb2acd112b9..03dad690e1ef1b57c2635aacc40e0bd6bd1cb083 100644 (file)
@@ -586,6 +586,7 @@ imap_proxy_send_failure_reply(struct imap_client *imap_client,
                break;
        case LOGIN_PROXY_FAILURE_TYPE_REMOTE_CONFIG:
        case LOGIN_PROXY_FAILURE_TYPE_INTERNAL_CONFIG:
+       case LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED:
                client_send_reply_code(&imap_client->common, IMAP_CMD_REPLY_NO,
                                       IMAP_RESP_CODE_SERVERBUG,
                                       LOGIN_PROXY_FAILURE_MSG);
index 0c11a925f1583760e670aea01fcdb325d540a992..eeb9d6da053dbf9f230ea6d37337da350fa2b041 100644 (file)
@@ -1386,6 +1386,7 @@ bool client_get_extra_disconnect_reason(struct client *client,
                        last_reason = "protocol failure";
                        break;
                case LOGIN_PROXY_FAILURE_TYPE_AUTH_REPLIED:
+               case LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED:
                        event_reason = "auth_failed";
                        last_reason = "authentication failure";
                        break;
index 0e3e8c9be23921fa6151d9c04b5945adcef0ff1f..10c07b711d4f33347671ccabfe0077109b159d73 100644 (file)
@@ -830,6 +830,7 @@ bool login_proxy_failed(struct login_proxy *proxy, struct event *event,
                log_prefix = "Remote server sent invalid input: ";
                break;
        case LOGIN_PROXY_FAILURE_TYPE_AUTH_REPLIED:
+       case LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED:
        case LOGIN_PROXY_FAILURE_TYPE_AUTH_LIMIT_REACHED_REPLIED:
                log_prefix = "";
                try_reconnect = FALSE;
@@ -857,6 +858,7 @@ bool login_proxy_failed(struct login_proxy *proxy, struct event *event,
 
        if (type != LOGIN_PROXY_FAILURE_TYPE_AUTH_REPLIED &&
            type != LOGIN_PROXY_FAILURE_TYPE_AUTH_LIMIT_REACHED_REPLIED &&
+           type != LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED &&
            type != LOGIN_PROXY_FAILURE_TYPE_AUTH_TEMPFAIL)
                e_error(event, "%s%s", log_prefix, reason);
        else if (proxy->client->set->auth_verbose)
index 65895f3d750c09fbe935ff2418e19d604f16cf3b..736c2eb586f82e43da8b65d9429b84982e384552 100644 (file)
@@ -35,6 +35,9 @@ enum login_proxy_failure_type {
        /* Authentication failed to backend. The LOGIN/AUTH command reply was
           already sent to the client. */
        LOGIN_PROXY_FAILURE_TYPE_AUTH_REPLIED,
+       /* Authentication failed to backend. The LOGIN/AUTH command reply was
+          NOT sent to the client yet. */
+       LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED,
        /* Authentication failed with a temporary failure code. Attempting it
           again might work. */
        LOGIN_PROXY_FAILURE_TYPE_AUTH_TEMPFAIL,
index f8010d3d1285c1efd860ab47e972e3d5ad881b40..ad7786903b6245ec9bf577e95100e4768714bac0 100644 (file)
@@ -368,6 +368,7 @@ pop3_proxy_send_failure_reply(struct client *client,
                break;
        case LOGIN_PROXY_FAILURE_TYPE_INTERNAL_CONFIG:
        case LOGIN_PROXY_FAILURE_TYPE_REMOTE_CONFIG:
+       case LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED:
                client_send_reply(client, POP3_CMD_REPLY_ERROR,
                                  LOGIN_PROXY_FAILURE_MSG);
                break;
index 6f2c7f436a4b13e4c3ec960f1d392d920cd085e5..f86845dcbca0f795cd034a51fe6953777c4bba23 100644 (file)
@@ -752,6 +752,7 @@ submission_proxy_send_failure_reply(struct submission_client *subm_client,
        case LOGIN_PROXY_FAILURE_TYPE_REMOTE_CONFIG:
        case LOGIN_PROXY_FAILURE_TYPE_PROTOCOL:
        case LOGIN_PROXY_FAILURE_TYPE_AUTH_REDIRECT:
+       case LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED:
                i_assert(cmd != NULL);
                subm_client->pending_auth = NULL;
                smtp_server_reply(cmd, 454, "4.7.0", LOGIN_PROXY_FAILURE_MSG);