summaryrefslogtreecommitdiff
path: root/packet.c
diff options
context:
space:
mode:
Diffstat (limited to 'packet.c')
-rw-r--r--packet.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/packet.c b/packet.c
index 600e015fb..994e35b6d 100644
--- a/packet.c
+++ b/packet.c
@@ -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;