diff options
author | milo <milo@r0ot.me> | 2010-08-08 23:00:23 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cynapses.org> | 2010-08-09 20:54:06 +0200 |
commit | 06df7c1b3186bfac123377f1433fcb4bb778eb9c (patch) | |
tree | df772f490748561ec42e2f39239243981b9d5a6a /libssh | |
parent | 2b108483ce01ef2e4cb4ed84ec201ea5ebf61b27 (diff) | |
download | libssh-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')
-rw-r--r-- | libssh/socket.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libssh/socket.c b/libssh/socket.c index d8e3ac1..9f50e20 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; |