diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | packet.c | 9 |
2 files changed, 7 insertions, 3 deletions
@@ -2,6 +2,7 @@ | |||
2 | - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec] | 2 | - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec] |
3 | [contrib/suse/openssh.spec] Update for release | 3 | [contrib/suse/openssh.spec] Update for release |
4 | - (djm) [README] update relnotes URL | 4 | - (djm) [README] update relnotes URL |
5 | - (djm) [packet.c] Restore EWOULDBLOCK handling that got lost somewhere | ||
5 | 6 | ||
6 | 20090911 | 7 | 20090911 |
7 | - (dtucker) [configure.ac] Change the -lresolv check so it works on Mac OS X | 8 | - (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) | |||
1070 | if ((ret = select(active_state->connection_in + 1, setp, | 1070 | if ((ret = select(active_state->connection_in + 1, setp, |
1071 | NULL, NULL, timeoutp)) >= 0) | 1071 | NULL, NULL, timeoutp)) >= 0) |
1072 | break; | 1072 | break; |
1073 | if (errno != EAGAIN && errno != EINTR) | 1073 | if (errno != EAGAIN && errno != EINTR && |
1074 | errno != EWOULDBLOCK) | ||
1074 | break; | 1075 | break; |
1075 | if (active_state->packet_timeout_ms == -1) | 1076 | if (active_state->packet_timeout_ms == -1) |
1076 | continue; | 1077 | continue; |
@@ -1643,7 +1644,8 @@ packet_write_poll(void) | |||
1643 | len = roaming_write(active_state->connection_out, | 1644 | len = roaming_write(active_state->connection_out, |
1644 | buffer_ptr(&active_state->output), len, &cont); | 1645 | buffer_ptr(&active_state->output), len, &cont); |
1645 | if (len == -1) { | 1646 | if (len == -1) { |
1646 | if (errno == EINTR || errno == EAGAIN) | 1647 | if (errno == EINTR || errno == EAGAIN || |
1648 | errno == EWOULDBLOCK) | ||
1647 | return; | 1649 | return; |
1648 | fatal("Write failed: %.100s", strerror(errno)); | 1650 | fatal("Write failed: %.100s", strerror(errno)); |
1649 | } | 1651 | } |
@@ -1685,7 +1687,8 @@ packet_write_wait(void) | |||
1685 | if ((ret = select(active_state->connection_out + 1, | 1687 | if ((ret = select(active_state->connection_out + 1, |
1686 | NULL, setp, NULL, timeoutp)) >= 0) | 1688 | NULL, setp, NULL, timeoutp)) >= 0) |
1687 | break; | 1689 | break; |
1688 | if (errno != EAGAIN && errno != EINTR) | 1690 | if (errno != EAGAIN && errno != EINTR && |
1691 | errno != EWOULDBLOCK) | ||
1689 | break; | 1692 | break; |
1690 | if (active_state->packet_timeout_ms == -1) | 1693 | if (active_state->packet_timeout_ms == -1) |
1691 | continue; | 1694 | continue; |