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:44:27 +0000 (13:44 +0000)
commitf9ad0abb29aca7e765b041c3a13457a58ce66314
tree70e4b2d6bea48138339346614a507c612d8282e4
parentd0a4e858bb658c098cd267252e1e7cfffe554aff
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)

(cherry picked from commit 80c455d5ae405e855391e298a2bf8a24629dd95d)
test/dtlstest.c
test/sslapitest.c
test/ssltestlib.c
test/ssltestlib.h