summaryrefslogtreecommitdiffstats
path: root/os
diff options
context:
space:
mode:
Diffstat (limited to 'os')
-rw-r--r--os/unix/unixd.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/os/unix/unixd.c b/os/unix/unixd.c
index 082b3cf6a7..6d43fe70f5 100644
--- a/os/unix/unixd.c
+++ b/os/unix/unixd.c
@@ -531,6 +531,19 @@ AP_DECLARE(apr_status_t) unixd_accept(void **accepted, ap_listen_rec *lr,
#ifdef ENETUNREACH
case ENETUNREACH:
#endif
+ /* EAGAIN/EWOULDBLOCK can be returned on BSD-derived
+ * TCP stacks when the connection is aborted before
+ * we call connect, but only because our listener
+ * sockets are non-blocking (AP_NONBLOCK_WHEN_MULTI_LISTEN)
+ */
+#ifdef EAGAIN
+ case EAGAIN:
+#endif
+#ifdef EWOULDBLOCK
+#if !defined(EAGAIN) || EAGAIN != EWOULDBLOCK
+ case EWOULDBLOCK:
+#endif
+#endif
break;
#ifdef ENETDOWN
case ENETDOWN: