diff options
author | Andreas Schneider <asn@cynapses.org> | 2010-09-07 18:50:38 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cynapses.org> | 2010-09-07 18:50:38 +0200 |
commit | ab2dafc44a993547ff3caca09603186dc62a4903 (patch) | |
tree | 1b185e2a8985a6d8730f8fb0657c8223668563cd | |
parent | 325cc4e39568831565fce816cfc3bb74a67ccb2c (diff) | |
download | libssh-ab2dafc44a993547ff3caca09603186dc62a4903.tar.gz libssh-ab2dafc44a993547ff3caca09603186dc62a4903.tar.xz libssh-ab2dafc44a993547ff3caca09603186dc62a4903.zip |
socket: Make code easier to read and debug.
-rw-r--r-- | src/socket.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/socket.c b/src/socket.c index 2f1f553..9d53207 100644 --- a/src/socket.c +++ b/src/socket.c @@ -528,6 +528,7 @@ int ssh_socket_write(ssh_socket s, const void *buffer, int len) { */ int ssh_socket_nonblocking_flush(ssh_socket s) { ssh_session session = s->session; + uint32_t len; int w; enter_function(); @@ -543,9 +544,9 @@ int ssh_socket_nonblocking_flush(ssh_socket s) { return SSH_ERROR; } - if (s->data_to_write && buffer_get_rest_len(s->out_buffer) > 0) { - w = ssh_socket_unbuffered_write(s, buffer_get_rest(s->out_buffer), - buffer_get_rest_len(s->out_buffer)); + len = buffer_get_rest_len(s->out_buffer); + if (s->data_to_write && len > 0) { + w = ssh_socket_unbuffered_write(s, buffer_get_rest(s->out_buffer), len); if (w < 0) { session->alive = 0; ssh_socket_close(s); @@ -561,11 +562,12 @@ int ssh_socket_nonblocking_flush(ssh_socket s) { } /* Is there some data pending? */ - if (buffer_get_rest_len(s->out_buffer) > 0 && s->poll_out) { - /* force the poll system to catch pollout events */ - ssh_poll_set_events(s->poll_out, ssh_poll_get_events(s->poll_out) |POLLOUT); - leave_function(); - return SSH_AGAIN; + len = buffer_get_rest_len(s->out_buffer); + if (s->poll_out && len > 0) { + /* force the poll system to catch pollout events */ + ssh_poll_set_events(s->poll_out, ssh_poll_get_events(s->poll_out) | POLLOUT); + leave_function(); + return SSH_AGAIN; } /* all data written */ |