]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-ssl-iostream: Implement ssl_iostream_is_handshaked() with ssl_iostream_get_state()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Fri, 8 Aug 2025 11:48:45 +0000 (14:48 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 11 Aug 2025 07:47:35 +0000 (07:47 +0000)
src/lib-ssl-iostream/iostream-openssl.c
src/lib-ssl-iostream/iostream-ssl-private.h
src/lib-ssl-iostream/iostream-ssl.c
src/lib-ssl-iostream/iostream-ssl.h

index 1988edab77f3fca9fe9537e716f54584943edf94..7d33c678fa7bd94ce32fa43961677ea9afc3dbe6 100644 (file)
@@ -707,11 +707,6 @@ openssl_iostream_get_state(const struct ssl_iostream *ssl_io)
        return ssl_io->state;
 }
 
-static bool openssl_iostream_is_handshaked(const struct ssl_iostream *ssl_io)
-{
-       return ssl_io->handshaked;
-}
-
 static bool
 openssl_iostream_has_handshake_failed(const struct ssl_iostream *ssl_io)
 {
@@ -1109,7 +1104,6 @@ static const struct iostream_ssl_vfuncs ssl_vfuncs = {
 
        .set_log_prefix = openssl_iostream_set_log_prefix,
        .get_state = openssl_iostream_get_state,
-       .is_handshaked = openssl_iostream_is_handshaked,
        .has_handshake_failed = openssl_iostream_has_handshake_failed,
        .has_valid_client_cert = openssl_iostream_has_valid_client_cert,
        .has_client_cert = openssl_iostream_has_client_cert,
index 6b06f9fa470409a485c3d9b218ce11c4f79daf7e..d9d74b2a44f35a4dd5f7646612f4057c746405d6 100644 (file)
@@ -37,7 +37,6 @@ struct iostream_ssl_vfuncs {
 
        void (*set_log_prefix)(struct ssl_iostream *ssl_io, const char *prefix);
        enum ssl_iostream_state (*get_state)(const struct ssl_iostream *ssl_io);
-       bool (*is_handshaked)(const struct ssl_iostream *ssl_io);
        bool (*has_handshake_failed)(const struct ssl_iostream *ssl_io);
        bool (*has_valid_client_cert)(const struct ssl_iostream *ssl_io);
        bool (*has_client_cert)(struct ssl_iostream *ssl_io);
index d33b0571f2226e7e4fc383f49b3611f2d39b2544..67e6b27d2be0285a804e553987cb20fd4119a585 100644 (file)
@@ -266,7 +266,7 @@ ssl_iostream_get_state(const struct ssl_iostream *ssl_io)
 
 bool ssl_iostream_is_handshaked(const struct ssl_iostream *ssl_io)
 {
-       return ssl_vfuncs->is_handshaked(ssl_io);
+       return ssl_iostream_get_state(ssl_io) == SSL_IOSTREAM_STATE_OK;
 }
 
 bool ssl_iostream_has_handshake_failed(const struct ssl_iostream *ssl_io)
index fffa63722b142056baaf542ab4d455dcbd6a3412..8e6068f4e693602dc024b3bb90d616b2da8752cc 100644 (file)
@@ -202,6 +202,8 @@ void ssl_iostream_change_context(struct ssl_iostream *ssl_io,
 enum ssl_iostream_state
 ssl_iostream_get_state(const struct ssl_iostream *ssl_io);
 
+/* Returns TRUE if SSL iostream handshake is finished and certificate is valid.
+   This is the same as state being SSL_IOSTREAM_STATE_OK. */
 bool ssl_iostream_is_handshaked(const struct ssl_iostream *ssl_io);
 /* Returns TRUE if the remote cert is invalid, or handshake callback returned
    failure. */