]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
login-common: Set correct disconnect reason if TLS handshake failed
authorAki Tuomi <aki.tuomi@open-xchange.com>
Tue, 4 Jun 2024 08:05:25 +0000 (11:05 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 1 Jul 2024 13:40:56 +0000 (13:40 +0000)
src/login-common/client-common.c

index c052b3383444df1c2db88a96ebfb16f90ff84ac4..211f7620bea2caf33adcda67ce4f12bc87ff70c0 100644 (file)
@@ -1293,6 +1293,13 @@ bool client_get_extra_disconnect_reason(struct client *client,
 
        *event_reason_r = NULL;
 
+       if (client->ssl_iostream != NULL &&
+           !ssl_iostream_is_handshaked(client->ssl_iostream)) {
+               *event_reason_r = "tls_handshake_not_finished";
+               *human_reason_r = "disconnected during TLS handshake";
+               return TRUE;
+       }
+
        if (!client->notified_auth_ready) {
                *event_reason_r = "auth_process_not_ready";
                *human_reason_r = t_strdup_printf(