Fix bug with NewSessionTicket and non-blocking I/O
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index 7048f4d..99f7256 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -3003,15 +3003,18 @@
ssl->out_msglen = 10 + tlen;
+ /*
+ * Morally equivalent to updating ssl->state, but NewSessionTicket and
+ * ChangeCipherSpec share the same state.
+ */
+ ssl->handshake->new_session_ticket = 0;
+
if( ( ret = ssl_write_record( ssl ) ) != 0 )
{
SSL_DEBUG_RET( 1, "ssl_write_record", ret );
return( ret );
}
- /* No need to remember writing a NewSessionTicket any more */
- ssl->handshake->new_session_ticket = 0;
-
SSL_DEBUG_MSG( 2, ( "<= write new session ticket" ) );
return( 0 );