diff options
author | Andreas Schneider <mail@cynapses.org> | 2009-04-09 10:23:23 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-04-09 10:23:23 +0000 |
commit | e9a7d98eaccf6a361d77505c303df15e4e585919 (patch) | |
tree | 055969e4db53a826574db63e2d1d9d9f071f700e /libssh/messages.c | |
parent | 1715736f0f062f846f1d17c77f0c878f8c1c0ed7 (diff) | |
download | libssh-e9a7d98eaccf6a361d77505c303df15e4e585919.tar.gz libssh-e9a7d98eaccf6a361d77505c303df15e4e585919.tar.xz libssh-e9a7d98eaccf6a361d77505c303df15e4e585919.zip |
Add return value to handle_unimplemented().
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@439 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh/messages.c')
-rw-r--r-- | libssh/messages.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/libssh/messages.c b/libssh/messages.c index dd952af..19f5a00 100644 --- a/libssh/messages.c +++ b/libssh/messages.c @@ -99,9 +99,16 @@ error: return rc; } -static void handle_unimplemented(SSH_SESSION *session){ - buffer_add_u32(session->out_buffer,htonl(session->recv_seq-1)); - packet_send(session); +static int handle_unimplemented(SSH_SESSION *session) { + if (buffer_add_u32(session->out_buffer, htonl(session->recv_seq - 1)) < 0) { + return -1; + } + + if (packet_send(session) != SSH_OK) { + return -1; + } + + return 0; } static SSH_MESSAGE *handle_userauth_request(SSH_SESSION *session){ @@ -430,8 +437,10 @@ SSH_MESSAGE *ssh_message_get(SSH_SESSION *session){ leave_function(); return ret; default: - handle_unimplemented(session); - ssh_set_error(session,SSH_FATAL,"Unhandled message %d\n",session->in_packet.type); + if (handle_unimplemented(session) == 0) { + ssh_set_error(session, SSH_FATAL, + "Unhandled message %d\n", session->in_packet.type); + } leave_function(); return NULL; } |