diff options
author | Damien Miller <djm@mindrot.org> | 2009-09-26 14:53:59 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2009-09-26 14:53:59 +1000 |
commit | 78e5bf0ab3e8d7f8aabf547880160cc39ae59574 (patch) | |
tree | f86fffcee972c422e37fa9fe42a2831211700b8d | |
parent | 6e0d6d64b2100fbe0ea7bb0010fe51b2224d74ee (diff) |
- (djm) [packet.c] Restore EWOULDBLOCK handling that got lost somewhere
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | packet.c | 9 |
2 files changed, 7 insertions, 3 deletions
@@ -2,6 +2,7 @@ - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec] [contrib/suse/openssh.spec] Update for release - (djm) [README] update relnotes URL + - (djm) [packet.c] Restore EWOULDBLOCK handling that got lost somewhere 20090911 - (dtucker) [configure.ac] Change the -lresolv check so it works on Mac OS X @@ -1070,7 +1070,8 @@ packet_read_seqnr(u_int32_t *seqnr_p) if ((ret = select(active_state->connection_in + 1, setp, NULL, NULL, timeoutp)) >= 0) break; - if (errno != EAGAIN && errno != EINTR) + if (errno != EAGAIN && errno != EINTR && + errno != EWOULDBLOCK) break; if (active_state->packet_timeout_ms == -1) continue; @@ -1643,7 +1644,8 @@ packet_write_poll(void) len = roaming_write(active_state->connection_out, buffer_ptr(&active_state->output), len, &cont); if (len == -1) { - if (errno == EINTR || errno == EAGAIN) + if (errno == EINTR || errno == EAGAIN || + errno == EWOULDBLOCK) return; fatal("Write failed: %.100s", strerror(errno)); } @@ -1685,7 +1687,8 @@ packet_write_wait(void) if ((ret = select(active_state->connection_out + 1, NULL, setp, NULL, timeoutp)) >= 0) break; - if (errno != EAGAIN && errno != EINTR) + if (errno != EAGAIN && errno != EINTR && + errno != EWOULDBLOCK) break; if (active_state->packet_timeout_ms == -1) continue; |