e5ff6216ff
Motivation: SslHandler owns the responsibility to flush non-application data (e.g. handshake, renegotiation, etc.) to the socket. However when TCP Fast Open is supported but the client_hello cannot be written in the SYN the client_hello may not always be flushed. SslHandler may not wrap/flush previously written/flushed data in the event it was not able to be wrapped due to NEED_UNWRAP state being encountered in wrap (e.g. peer initiated renegotiation). Modifications: - SslHandler to flush in channelActive() if TFO is enabled and the client_hello cannot be written in the SYN. - SslHandler to wrap application data after non-application data wrap and handshake status is FINISHED. - SocketSslEchoTest only flushes when writes are done, and waits for the handshake to complete before writing. Result: SslHandler flushes handshake data for TFO, and previously flushed application data after peer initiated renegotiation finishes. |
||
---|---|---|
.. | ||
src | ||
pom.xml |