diff options
| author | Mark Johnston <markj@FreeBSD.org> | 2026-07-27 18:58:34 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2026-07-27 23:03:16 +0000 |
| commit | b02e02958dad2d5ce3675cbc18b9a94635d09e66 (patch) | |
| tree | 3dc0c01f46ae2bbe20538eaa9e937448ea189c4d | |
| parent | d93d235291282b8eec90e49be95a1e78a295b34e (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.c | 4 |
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; |
