mirror of
https://github.com/openssl/openssl.git
synced 2025-04-06 20:20:50 +08:00
s_client: Support interactive reconnect command
This change adds the 'C' command character to allow a user to drop the current session and reconnect to the server. It has the same behavior as the `-reconnect` option except this allows reconnect to be triggered at an arbitrary point in the session. The primary use case for this change is to provide a way for the user to probe a server for TLS1.3 session resumption support. This is not currently reliably supported by the `-reconnect` option. Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/18683)
This commit is contained in:
parent
8c7d847e2e
commit
511c49189e
@ -3081,6 +3081,16 @@ int s_client_main(int argc, char **argv)
|
||||
goto shut;
|
||||
}
|
||||
|
||||
if ((!c_ign_eof) && ((i <= 0) || (cbuf[0] == 'C' && cmdletters))) {
|
||||
cbuf_len = 0;
|
||||
BIO_printf(bio_c_out,
|
||||
"RECONNECTING\n");
|
||||
do_ssl_shutdown(con);
|
||||
SSL_set_connect_state(con);
|
||||
BIO_closesocket(SSL_get_fd(con));
|
||||
goto re_start;
|
||||
}
|
||||
|
||||
if ((!c_ign_eof) && (cbuf[0] == 'R' && cmdletters)) {
|
||||
BIO_printf(bio_err, "RENEGOTIATING\n");
|
||||
SSL_renegotiate(con);
|
||||
|
Loading…
x
Reference in New Issue
Block a user