Make sure we trigger retransmits in DTLS testing
authorMatt Caswell <matt@openssl.org>
Fri, 18 Jan 2019 15:24:57 +0000 (15:24 +0000)
committerMatt Caswell <matt@openssl.org>
Thu, 24 Jan 2019 13:39:38 +0000 (13:39 +0000)
commit80c455d5ae405e855391e298a2bf8a24629dd95d
tree6be1fb350cbf48c795bec820907f70690387a968
parent5cae2d349b561a84dbfc93d6b6abc5fb7263fb7c
Make sure we trigger retransmits in DTLS testing

During a DTLS handshake we may need to periodically handle timeouts in the
DTLS timer to ensure retransmits due to lost packets are performed. However,
one peer will always complete a handshake before the other. The DTLS timer
stops once the handshake has finished so any handshake messages lost after
that point will not automatically get retransmitted simply by calling
DTLSv1_handle_timeout(). However attempting an SSL_read implies a
DTLSv1_handle_timeout() and additionally will process records received from
the peer. If those records are themselves retransmits then we know that the
peer has not completed its handshake yet and a retransmit of our final
flight automatically occurs.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/8047)
test/dtlstest.c
test/sslapitest.c
test/ssltestlib.c
test/ssltestlib.h