[master] 81aa74ccb Accept all ENET* ECONN* EHOST* errnos
Nils Goroll
nils.goroll at uplex.de
Tue Mar 2 13:06:09 UTC 2021
commit 81aa74ccbd6682a69a08141e7058b001b7c47efe
Author: Nils Goroll <nils.goroll at uplex.de>
Date: Tue Mar 2 13:59:50 2021 +0100
Accept all ENET* ECONN* EHOST* errnos
... documented on Linux as POSIX.1
The exception here is ECONNREFUSED which so far we only tolerate for
Solaris and which seems to make sense for connect() only.
To be discussed in #3539
diff --git a/lib/libvarnish/vtcp.c b/lib/libvarnish/vtcp.c
index 9ac383769..4c99beac1 100644
--- a/lib/libvarnish/vtcp.c
+++ b/lib/libvarnish/vtcp.c
@@ -604,6 +604,13 @@ VTCP_Check(ssize_t a)
* some time. */
if (errno == ETIMEDOUT)
return (1);
+ /* #3539 various errnos documented on linux as POSIX.1 */
+ if (errno == ENETDOWN || errno == ENETUNREACH || errno == ENETRESET ||
+ errno == ECONNABORTED || /* ECONNRESET see above */
+ errno == EHOSTUNREACH || errno == EHOSTDOWN) {
+ return (1);
+ }
+
#if (defined (__SVR4) && defined (__sun))
if (errno == ECONNREFUSED) // in r02702.vtc
return (1);
More information about the varnish-commit
mailing list