--- ssl_timeoutio.c.orig 2017-04-12 15:31:17.900440000 +0200 +++ ssl_timeoutio.c 2017-04-12 15:31:04.264932000 +0200 @@ -74,10 +74,10 @@ int ssl_timeoutrehandshake(int t, int rf SSL_renegotiate(ssl); r = ssl_timeoutio(SSL_do_handshake, t, rfd, wfd, ssl, NULL, 0); - if (r <= 0 || ssl->type == SSL_ST_CONNECT) return r; + if (r <= 0 || SSL_get_state(ssl) == SSL_ST_CONNECT) return r; /* this is for the server only */ - ssl->state = SSL_ST_ACCEPT; + SSL_set_connect_state(ssl); return ssl_timeoutio(SSL_do_handshake, t, rfd, wfd, ssl, NULL, 0); } --- qmail-remote.c.orig 2017-04-12 15:31:17.889574000 +0200 +++ qmail-remote.c 2017-04-12 15:31:11.336043000 +0200 @@ -266,7 +266,7 @@ char *append; { #ifdef TLS /* shouldn't talk to the client unless in an appropriate state */ - int state = ssl ? ssl->state : SSL_ST_BEFORE; + int state = SSL_get_state(ssl); if (state & SSL_ST_OK || (!smtps && state & SSL_ST_BEFORE)) #endif substdio_putsflush(&smtpto,"QUIT\r\n");