mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-11-27 13:21:11 +03:00
client: If SSHv1 is disabled send the banner immediately
This saves a round-trip with SSHv2 connecting to the server. See RFC 4253 section 5.2 (New Client, Old Server). Thanks to Yang Yubo <yang@yangyubo.com> for the suggestion. Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
@@ -386,7 +386,13 @@ static void ssh_client_connection_callback(ssh_session session){
|
|||||||
switch(session->session_state){
|
switch(session->session_state){
|
||||||
case SSH_SESSION_STATE_NONE:
|
case SSH_SESSION_STATE_NONE:
|
||||||
case SSH_SESSION_STATE_CONNECTING:
|
case SSH_SESSION_STATE_CONNECTING:
|
||||||
|
break;
|
||||||
case SSH_SESSION_STATE_SOCKET_CONNECTED:
|
case SSH_SESSION_STATE_SOCKET_CONNECTED:
|
||||||
|
/* If SSHv1 is disabled, we can send the banner immedietly */
|
||||||
|
if (session->opts.ssh1 == 0) {
|
||||||
|
ssh_set_fd_towrite(session);
|
||||||
|
ssh_send_banner(session, 0);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case SSH_SESSION_STATE_BANNER_RECEIVED:
|
case SSH_SESSION_STATE_BANNER_RECEIVED:
|
||||||
if (session->serverbanner == NULL) {
|
if (session->serverbanner == NULL) {
|
||||||
@@ -433,7 +439,9 @@ static void ssh_client_connection_callback(ssh_session session){
|
|||||||
#endif
|
#endif
|
||||||
ssh_packet_set_default_callbacks(session);
|
ssh_packet_set_default_callbacks(session);
|
||||||
session->session_state=SSH_SESSION_STATE_INITIAL_KEX;
|
session->session_state=SSH_SESSION_STATE_INITIAL_KEX;
|
||||||
|
if (session->opts.ssh1 == 1) {
|
||||||
ssh_send_banner(session, 0);
|
ssh_send_banner(session, 0);
|
||||||
|
}
|
||||||
set_status(session, 0.5f);
|
set_status(session, 0.5f);
|
||||||
break;
|
break;
|
||||||
case SSH_SESSION_STATE_INITIAL_KEX:
|
case SSH_SESSION_STATE_INITIAL_KEX:
|
||||||
|
|||||||
Reference in New Issue
Block a user