git: b02e02958dad - main - libfetch: Fix handling of connection failures

Mark Johnston <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.src
Message-ID <6a67e584.32768.6fc20c11__12640.2242852905$1785193912$gmane$org@gitrepo.freebsd.org>
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=b02e02958dad2d5ce3675cbc18b9a94635d09e66

commit b02e02958dad2d5ce3675cbc18b9a94635d09e66
Author:     Mark Johnston <[email protected]>
AuthorDate: 2026-07-27 18:58:34 +0000
Commit:     Mark Johnston <[email protected]>
CommitDate: 2026-07-27 23:03:16 +0000

    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
---
 lib/libfetch/common.c | 4 ++++
 1 file changed, 4 insertions(+)

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;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.