summaryrefslogtreecommitdiffstats
path: root/libssh/channels.c
diff options
context:
space:
mode:
authorAndreas Schneider <mail@cynapses.org>2009-05-04 06:50:16 +0000
committerAndreas Schneider <mail@cynapses.org>2009-05-04 06:50:16 +0000
commita08c56baf471ad3d318e80bcb1b1f3140537edca (patch)
tree3697c7b863c63f8822ff1e460eee4aa76d7a85c7 /libssh/channels.c
parent137669db3fc33e8575cb1dddeffcb600db068326 (diff)
downloadlibssh-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.c19
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;
}