I am testing out re connection attempts with mbedTLS. To do this I physically disconnect my Ethernet and plug it back in.
When the Ethernet is physically disconnected the code calls
mbedtls_ssl_close_notify() which returns 0.
The problem is when I try to do
mbedtls_ssl_handshake() again the
state of handshake is in
MBEDTLS_SSL_HANDSHAKE_OVER. Thus, it never does the handshake because the method
mbedtls_ssl_handshake() only does it if it’s handshake is NOT over.
To get the handshake to run again I have had to call
mbedtls_ssl_session_reset() after I call
mbedtls_ssl_close_notify() regardless of the
mbedtls_ssl_close_notify() return code.
What is the correct process for disconnecting the TLS session?