Expand and fix resend infrastructure
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index c839ea7..a0bb653 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -1805,6 +1805,11 @@
ssl->state++;
+#if defined(POLARSSL_SSL_PROTO_DTLS)
+ if( ssl->transport == SSL_TRANSPORT_DATAGRAM )
+ ssl_recv_flight_completed( ssl );
+#endif
+
SSL_DEBUG_MSG( 2, ( "<= parse client hello" ) );
return( 0 );
@@ -3485,6 +3490,16 @@
if( ( ret = ssl_flush_output( ssl ) ) != 0 )
return( ret );
+#if defined(POLARSSL_SSL_PROTO_DTLS)
+ if( ssl->transport == SSL_TRANSPORT_DATAGRAM &&
+ ssl->handshake != NULL &&
+ ssl->handshake->retransmit_state == SSL_RETRANS_SENDING )
+ {
+ if( ( ret = ssl_resend( ssl ) ) != 0 )
+ return( ret );
+ }
+#endif
+
switch( ssl->state )
{
case SSL_HELLO_REQUEST: