From a08c56baf471ad3d318e80bcb1b1f3140537edca Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 4 May 2009 06:50:16 +0000 Subject: [PATCH] Improve channel_request(). git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@692 7dcaeef0-15fb-0310-b436-a5af3365683c --- libssh/channels.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/libssh/channels.c b/libssh/channels.c index 8a485604..889a5b7a 100644 --- a/libssh/channels.c +++ b/libssh/channels.c @@ -1008,21 +1008,16 @@ static int channel_request(CHANNEL *channel, const char *request, if (req == NULL) { goto error; } - if (buffer_add_u8(session->out_buffer, SSH2_MSG_CHANNEL_REQUEST) < 0) { - goto error; - } - if (buffer_add_u32(session->out_buffer, htonl(channel->remote_channel)) < 0) { - goto error; - } - if (buffer_add_ssh_string(session->out_buffer, req) < 0) { - goto error; - } - if (buffer_add_u8(session->out_buffer, reply ? 1 : 0) < 0) { + + if (buffer_add_u8(session->out_buffer, SSH2_MSG_CHANNEL_REQUEST) < 0 || + buffer_add_u32(session->out_buffer, htonl(channel->remote_channel)) < 0 || + buffer_add_ssh_string(session->out_buffer, req) < 0 || + buffer_add_u8(session->out_buffer, reply == 0 ? 0 : 1) < 0) { goto error; } string_free(req); - if (buffer) { + if (buffer != NULL) { if (buffer_add_data(session->out_buffer, buffer_get(buffer), buffer_get_len(buffer)) < 0) { goto error; @@ -1036,7 +1031,7 @@ static int channel_request(CHANNEL *channel, const char *request, ssh_log(session, SSH_LOG_RARE, "Sent a SSH_MSG_CHANNEL_REQUEST %s", request); - if (! reply) { + if (reply == 0) { leave_function(); return SSH_OK; }