diff options
author | Joel Sing <jsing@cvs.openbsd.org> | 2021-09-16 19:25:31 +0000 |
---|---|---|
committer | Joel Sing <jsing@cvs.openbsd.org> | 2021-09-16 19:25:31 +0000 |
commit | a227a26963461392b8af083c50c10f609a5db45d (patch) | |
tree | 02c3de2bdebac25924423326a0d02de8ada69c65 /lib/libssl/tls13_lib.c | |
parent | 4b5e3adb113c8072a54bdc7e136b651b519c2946 (diff) |
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@
Diffstat (limited to 'lib/libssl/tls13_lib.c')
-rw-r--r-- | lib/libssl/tls13_lib.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/libssl/tls13_lib.c b/lib/libssl/tls13_lib.c index 6615efc4d2b..1a9596adca8 100644 --- a/lib/libssl/tls13_lib.c +++ b/lib/libssl/tls13_lib.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tls13_lib.c,v 1.61 2021/09/02 11:58:30 beck Exp $ */ +/* $OpenBSD: tls13_lib.c,v 1.62 2021/09/16 19:25:30 jsing Exp $ */ /* * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> * Copyright (c) 2019 Bob Beck <beck@openbsd.org> @@ -374,6 +374,7 @@ tls13_phh_received_cb(void *cb_arg, CBS *cbs) static const struct tls13_record_layer_callbacks rl_callbacks = { .wire_read = tls13_legacy_wire_read_cb, .wire_write = tls13_legacy_wire_write_cb, + .wire_flush = tls13_legacy_wire_flush_cb, .alert_recv = tls13_alert_received_cb, .alert_sent = tls13_alert_sent_cb, .phh_recv = tls13_phh_received_cb, |