[tls] Ensure that window change is propagated to plainstream interface
authorMichael Brown <mcb30@ipxe.org>
Sat, 24 Mar 2018 21:44:09 +0000 (21:44 +0000)
committerMichael Brown <mcb30@ipxe.org>
Sat, 24 Mar 2018 21:51:07 +0000 (21:51 +0000)
commitbaaf50017d1a5e7a5a029a00e1f90ecfcb4336f5
tree8d6f1b06025203145917146eecce883f82c3de9b
parent4152aff10300408d9b1b932e5e269001cc38cebf
[tls] Ensure that window change is propagated to plainstream interface

The cipherstream xfer_window_changed() message is used to retrigger
the TLS transmit state machine.  If the transmit state machine is
idle, then the window change message will not be propagated to the
plainstream interface.  This can potentially cause the plainstream
interface peer (e.g. httpcore) to block waiting for a window change
message that will never arrive.

Fix by ensuring that the window change message is propagated to the
plainstream interface if the transmit state machine is idle.  (If the
transmit state machine is not idle then the plainstream window will be
zero anyway.)

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/net/tls.c