1
1
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@490 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
Andreas Schneider 2009-04-16 08:53:57 +00:00
родитель c8269682fc
Коммит c608883205

Просмотреть файл

@ -586,22 +586,47 @@ char *ssh_get_issue_banner(SSH_SESSION *session) {
return string_to_char(session->banner); return string_to_char(session->banner);
} }
/** \brief disconnect from a session (client or server) /**
* \param session ssh session * @brief Disconnect from a session (client or server).
*
* @param session The SSH session to disconnect.
*/ */
void ssh_disconnect(SSH_SESSION *session){ void ssh_disconnect(SSH_SESSION *session) {
STRING *str; STRING *str = NULL;
enter_function(); enter_function();
if(ssh_socket_is_open(session->socket)) {
buffer_add_u8(session->out_buffer,SSH2_MSG_DISCONNECT); if (session == NULL) {
buffer_add_u32(session->out_buffer,htonl(SSH2_DISCONNECT_BY_APPLICATION)); leave_function();
str=string_from_char("Bye Bye"); return;
buffer_add_ssh_string(session->out_buffer,str); }
free(str);
if (ssh_socket_is_open(session->socket)) {
if (buffer_add_u8(session->out_buffer, SSH2_MSG_DISCONNECT) < 0) {
goto error;
}
if (buffer_add_u32(session->out_buffer,
htonl(SSH2_DISCONNECT_BY_APPLICATION)) < 0) {
goto error;
}
str = string_from_char("Bye Bye");
if (str == NULL) {
goto error;
}
if (buffer_add_ssh_string(session->out_buffer,str) < 0) {
string_free(str);
goto error;
}
string_free(str);
packet_send(session); packet_send(session);
ssh_socket_close(session->socket); ssh_socket_close(session->socket);
} }
session->alive=0; session->alive = 0;
error:
leave_function(); leave_function();
ssh_cleanup(session); ssh_cleanup(session);
} }