diff --git a/libssh/channels.c b/libssh/channels.c index a046e89f..b976b718 100644 --- a/libssh/channels.c +++ b/libssh/channels.c @@ -552,6 +552,15 @@ static void channel_rcv_request(ssh_session session) { return; } + if(strcmp(request,"keepalive@openssh.com")==0){ + SAFE_FREE(request); + ssh_log(session, SSH_LOG_PROTOCOL,"Responding to Openssh's keepalive"); + buffer_add_u8(session->out_buffer, SSH2_MSG_CHANNEL_SUCCESS); + buffer_add_u32(session->out_buffer, htonl(channel->remote_channel)); + packet_send(session); + leave_function(); + return; + } /* TODO call message_handle since it handles channel requests as messages */ /* *but* reset buffer before !! */