aboutsummaryrefslogtreecommitdiff
path: root/libssh/socket.c
diff options
context:
space:
mode:
authormilo <milo@r0ot.me>2010-08-08 23:00:23 +0200
committerAndreas Schneider <asn@cynapses.org>2010-08-09 20:54:06 +0200
commit06df7c1b3186bfac123377f1433fcb4bb778eb9c (patch)
treedf772f490748561ec42e2f39239243981b9d5a6a /libssh/socket.c
parent2b108483ce01ef2e4cb4ed84ec201ea5ebf61b27 (diff)
downloadlibssh-06df7c1b3186bfac123377f1433fcb4bb778eb9c.tar.gz
libssh-06df7c1b3186bfac123377f1433fcb4bb778eb9c.tar.xz
libssh-06df7c1b3186bfac123377f1433fcb4bb778eb9c.zip
socket: Make sure we only transmit data if we have some.
Signed-off-by: Andreas Schneider <asn@cynapses.org>
Diffstat (limited to 'libssh/socket.c')
-rw-r--r--libssh/socket.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libssh/socket.c b/libssh/socket.c
index d8e3ac12..9f50e20b 100644
--- a/libssh/socket.c
+++ b/libssh/socket.c
@@ -511,8 +511,11 @@ void ssh_socket_fd_set(ssh_socket s, fd_set *set, socket_t *max_fd) {
int ssh_socket_write(ssh_socket s, const void *buffer, int len) {
ssh_session session = s->session;
enter_function();
- if (buffer_add_data(s->out_buffer, buffer, len) < 0) {
- return SSH_ERROR;
+ if(len > 0) {
+ if (buffer_add_data(s->out_buffer, buffer, len) < 0) {
+ return SSH_ERROR;
+ }
+ ssh_socket_set_towrite(s);
}
leave_function();
return SSH_OK;