From: Timo Sirainen Date: Fri, 18 Jul 2025 11:28:47 +0000 (+0300) Subject: [PATCH] *-login: Add LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED X-Git-Tag: archive/raspbian/1%2.4.1+dfsg1-6+rpi1+deb13u7^2~16 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a2c13e2515ff1513de423c4bb0aea3e852dd8a2b;p=dovecot.git [PATCH] *-login: Add LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED Gbp-Pq: Name 0001-login-Add-LOGIN_PROXY_FAILURE_TYPE_AUTH_NOT_REPLIED.patch --- diff --git a/src/imap-login/imap-proxy.c b/src/imap-login/imap-proxy.c index 69680ea..03dad69 100644 --- a/src/imap-login/imap-proxy.c +++ b/src/imap-login/imap-proxy.c @@ -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); diff --git a/src/login-common/client-common.c b/src/login-common/client-common.c index 0c11a92..eeb9d6d 100644 --- a/src/login-common/client-common.c +++ b/src/login-common/client-common.c @@ -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; diff --git a/src/login-common/login-proxy.c b/src/login-common/login-proxy.c index 0e3e8c9..10c07b7 100644 --- a/src/login-common/login-proxy.c +++ b/src/login-common/login-proxy.c @@ -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) diff --git a/src/login-common/login-proxy.h b/src/login-common/login-proxy.h index 65895f3..736c2eb 100644 --- a/src/login-common/login-proxy.h +++ b/src/login-common/login-proxy.h @@ -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, diff --git a/src/pop3-login/pop3-proxy.c b/src/pop3-login/pop3-proxy.c index f8010d3..ad77869 100644 --- a/src/pop3-login/pop3-proxy.c +++ b/src/pop3-login/pop3-proxy.c @@ -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; diff --git a/src/submission-login/submission-proxy.c b/src/submission-login/submission-proxy.c index 6f2c7f4..f86845d 100644 --- a/src/submission-login/submission-proxy.c +++ b/src/submission-login/submission-proxy.c @@ -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);