diff options
Diffstat (limited to 'os')
-rw-r--r-- | os/unix/unixd.c | 13 |
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: |