aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRod Vagg <rod@vagg.org>2013-07-11 18:34:49 +1000
committerAris Adamantiadis <aris@0xbadc0de.be>2013-11-18 17:23:52 +0100
commit94db97821876532de7c49d2561498159d3d3eb61 (patch)
tree4dccc2e520e58f1bb03fcbfacb9faba2db651932 /src
parent78ea8608b00a6f435db851eb0aa49b3ea56aa4c7 (diff)
downloadlibssh-94db97821876532de7c49d2561498159d3d3eb61.tar.gz
libssh-94db97821876532de7c49d2561498159d3d3eb61.tar.xz
libssh-94db97821876532de7c49d2561498159d3d3eb61.zip
flush channel after EOF and CLOSE
Diffstat (limited to 'src')
-rw-r--r--src/channels.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/channels.c b/src/channels.c
index 728f6c18..c62da229 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -1147,6 +1147,10 @@ int ssh_channel_send_eof(ssh_channel channel){
channel->local_channel,
channel->remote_channel);
+ rc = ssh_channel_flush(channel);
+ if(rc == SSH_ERROR)
+ goto error;
+
channel->local_eof = 1;
return rc;
@@ -1203,6 +1207,10 @@ int ssh_channel_close(ssh_channel channel){
channel->state=SSH_CHANNEL_STATE_CLOSED;
}
+ rc = ssh_channel_flush(channel);
+ if(rc == SSH_ERROR)
+ goto error;
+
return rc;
error:
buffer_reinit(session->out_buffer);