diff options
author | Andreas Schneider <mail@cynapses.org> | 2009-05-04 06:50:16 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-05-04 06:50:16 +0000 |
commit | a08c56baf471ad3d318e80bcb1b1f3140537edca (patch) | |
tree | 3697c7b863c63f8822ff1e460eee4aa76d7a85c7 /libssh/channels.c | |
parent | 137669db3fc33e8575cb1dddeffcb600db068326 (diff) | |
download | libssh-a08c56baf471ad3d318e80bcb1b1f3140537edca.tar.gz libssh-a08c56baf471ad3d318e80bcb1b1f3140537edca.tar.xz libssh-a08c56baf471ad3d318e80bcb1b1f3140537edca.zip |
Improve channel_request().
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@692 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh/channels.c')
-rw-r--r-- | libssh/channels.c | 19 |
1 files 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; } |