From: Timo Sirainen Date: Fri, 8 Aug 2025 11:48:45 +0000 (+0300) Subject: lib-ssl-iostream: Implement ssl_iostream_is_handshaked() with ssl_iostream_get_state() X-Git-Tag: 2.4.2~561 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c86067788aae6cc63929fcfa2651a16dda4e3b95;p=thirdparty%2Fdovecot%2Fcore.git lib-ssl-iostream: Implement ssl_iostream_is_handshaked() with ssl_iostream_get_state() --- diff --git a/src/lib-ssl-iostream/iostream-openssl.c b/src/lib-ssl-iostream/iostream-openssl.c index 1988edab77..7d33c678fa 100644 --- a/src/lib-ssl-iostream/iostream-openssl.c +++ b/src/lib-ssl-iostream/iostream-openssl.c @@ -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, diff --git a/src/lib-ssl-iostream/iostream-ssl-private.h b/src/lib-ssl-iostream/iostream-ssl-private.h index 6b06f9fa47..d9d74b2a44 100644 --- a/src/lib-ssl-iostream/iostream-ssl-private.h +++ b/src/lib-ssl-iostream/iostream-ssl-private.h @@ -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); diff --git a/src/lib-ssl-iostream/iostream-ssl.c b/src/lib-ssl-iostream/iostream-ssl.c index d33b0571f2..67e6b27d2b 100644 --- a/src/lib-ssl-iostream/iostream-ssl.c +++ b/src/lib-ssl-iostream/iostream-ssl.c @@ -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) diff --git a/src/lib-ssl-iostream/iostream-ssl.h b/src/lib-ssl-iostream/iostream-ssl.h index fffa63722b..8e6068f4e6 100644 --- a/src/lib-ssl-iostream/iostream-ssl.h +++ b/src/lib-ssl-iostream/iostream-ssl.h @@ -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. */