From nobody Thu Feb 26 04:22:54 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fLyxC1ytXz6TFGM for ; Thu, 26 Feb 2026 04:22:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyxB74gVz3JK6 for ; Thu, 26 Feb 2026 04:22:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c3WS2lPLutTqtOtDdkTdl3nOkfyB9jo1W0wQjR//yfE=; b=cf20FBkBXkP0ctwS0+8rXZ08z0dujCa4ZpXetA/LzZ3Gx1gJ1cOvh6lrzfAfnyt2auvO/+ F3uxMU0Yoooy2mbNU2sgyyHeJeQqSI4Xg7/ZO/r6tHAx5aY6mupDRLLSjD7WFYiXOTkjDc Zx8aw3BzTsf+3fWYuncoYhFO5SZpzGI7Mm9SZefP921gFgRXgb3dHpccCrtR+ZzNqsZO7x +IPnEkCffv2LfELESjQA3h+Gk+CTcYEePPSaK8c0t/AD8vZ0QeVJeDZDDeztlZlRjnmUKp 2TdaJj2rQ9DDn8Ql6usQgZxPVHOoHSUwu5H15WXTZWgvZ+YSEHyU/Qc3kn2Cvw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079775; a=rsa-sha256; cv=none; b=eXhwZcIvL5bUmsmYPhNQInUE/ORLkQfYCKD1QHCxcNyAbvgtOx2hO3FIWCT6qUsvGq5hbH mBVOnvEsu3I4I82vIAIyoi0OydwCHj8+G9T3fDA91zYeAfkCnbJWPfvrPWVM+qT+cTXuac SVHSYGRbdIo/sozPzNRFobRe+8vZembD7+YdROxFCFzbAdadOiT3u4aYagTQ3h3vuviEsH U5nZ69AomkPONITr0DHS9NOpX229xqVCbJS2Pw2kvmDIf+OENOI0pkQqQ12om3W4dHvshV AzwuxjEQQot1Ep3nWLDYKvUN1dNqKx8eumbd/9JifASuZ8ggdK6ypvFzKWESDQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c3WS2lPLutTqtOtDdkTdl3nOkfyB9jo1W0wQjR//yfE=; b=YdZdbez6MKxt6XoPcOOElD/Behpd8PPCULBU5spC3AqHtIqnEDtc+O+7IxaJOil1ZNdrfa 8vZ0s4zCxk8muscgzYF6DaFwE3m+VyhEyfNmgYbUL9nDV6fABpqf2haukYqupasVLLyENT UDZA4rs878IZ9galA0YFUjx6g//27Idky61UFGMlui/UVxkDspo6Ql2LVWIPf44ySY19Rg Ik3aRpxdjOzx1RuGFpSA/AHnuvpr79xm2KOC2owZZXjqqE8RHlk/Y22cLhIbmemAJgG4FC QthyDylIbuVjGLcPDYouhyNTL1U4fLVuAmtrycZL5PUyIk57WxJ8ZIe2R55Uew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyxB6dQGz1rv for ; Thu, 26 Feb 2026 04:22:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3622f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: c0ec07280e92 - stable/13 - libfetch: Fail hard if interrupted while connecting List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c0ec07280e920cf8c672cffa0730676e2dd40d72 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:54 +0000 Message-Id: <699fca9e.3622f.561b6b87@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=c0ec07280e920cf8c672cffa0730676e2dd40d72 commit c0ec07280e920cf8c672cffa0730676e2dd40d72 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:15 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:03:52 +0000 libfetch: Fail hard if interrupted while connecting This fixes an issue where the first address that DNS returns is blocked by a packet filter, so we hang for a while, then the user hits Ctrl-C, interrupting connect(2), whereupon we move on to the next address, get a connection, request the file, and return to fetch(1), which sees that SIGINT was caught and bails. Note that we make no attempt to enforce fetchTimeout in the connection phase, and never have. It's feasible, but non-trivial, so we'll leave it as an exercise for future us. PR: 293312 MFC after: 1 week Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55406 (cherry picked from commit afbdcd402bb439bd3d487baaad63b68e95929265) --- lib/libfetch/common.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 53d9c57b9fb0..aadd354c220d 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -651,7 +651,13 @@ fetch_connect(const char *host, int port, int af, int verbose) goto syserr; } /* attempt to connect to server address */ - if ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) == 0) + while ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) < 0) { + if (errno == EINTR && fetchRestartCalls) + continue; + break; + } + /* success? */ + if (err == 0) break; /* clean up before next attempt */ close(sd);