aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2026-07-27 18:58:34 +0000
committerMark Johnston <markj@FreeBSD.org>2026-07-27 23:03:16 +0000
commitb02e02958dad2d5ce3675cbc18b9a94635d09e66 (patch)
tree3dc0c01f46ae2bbe20538eaa9e937448ea189c4d
parentd93d235291282b8eec90e49be95a1e78a295b34e (diff)
libfetch: Fix handling of connection failures
After commit 848f360c8f9a, if one tries to connect to a closed port, fetch reports "Operation now in progress", which is rather confusing. Return a more useful error message, restoring the old behaviour. Fixes: 848f360c8f9a ("libfetch: Apply timeout to connection attempts") Reviewed by: des MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D58481
-rw-r--r--lib/libfetch/common.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c
index dabc8c4b16b3..8ae51d37481b 100644
--- a/lib/libfetch/common.c
+++ b/lib/libfetch/common.c
@@ -681,6 +681,10 @@ fetch_connect(const char *host, int port, int af, int verbose)
delta.tv_usec / 1000;
}
}
+ if (pfd.revents & POLLHUP) {
+ errno = ECONNREFUSED;
+ break;
+ }
if (pfd.revents == POLLOUT) {
/* connection established */
err = 0;