Implement flushing for TLSv1.3 handshakes.
authorjsing <jsing@openbsd.org>
Thu, 16 Sep 2021 19:25:30 +0000 (19:25 +0000)
committerjsing <jsing@openbsd.org>
Thu, 16 Sep 2021 19:25:30 +0000 (19:25 +0000)
commit1e0f72fe26c6785f9422d87d6759217c278bd8c0
tree6c6eebd9e14e4a649cdff7b1e1276d5096641821
parent2777fba6f44d5fd87492f6535299f305ded20600
Implement flushing for TLSv1.3 handshakes.

When we finish sending a flight of records, flush the record layer output.
This effectively means calling BIO_flush() on the wbio.

Some things (such as apache2) have custom BIOs that perform buffering and
do not actually send on BIO_write(). Without BIO_flush() the server thinks
it has sent data and starts receiving records, however the client never
sends records since it never received those that the server should have
sent.

Joint work with tb@

ok tb@
lib/libssl/tls13_handshake.c
lib/libssl/tls13_internal.h
lib/libssl/tls13_legacy.c
lib/libssl/tls13_lib.c
lib/libssl/tls13_record_layer.c