summaryrefslogtreecommitdiffstats
path: root/libssh/messages.c
diff options
context:
space:
mode:
authorAndreas Schneider <mail@cynapses.org>2009-04-09 10:23:23 +0000
committerAndreas Schneider <mail@cynapses.org>2009-04-09 10:23:23 +0000
commite9a7d98eaccf6a361d77505c303df15e4e585919 (patch)
tree055969e4db53a826574db63e2d1d9d9f071f700e /libssh/messages.c
parent1715736f0f062f846f1d17c77f0c878f8c1c0ed7 (diff)
downloadlibssh-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.c19
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;
}