From nobody Thu Feb 26 18:16:35 2026 X-Original-To: dev-commits-src-branches@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 4fMKR85CwLz6T3P6 for ; Thu, 26 Feb 2026 18:16:36 +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 4fMKR80xVfz3hJM for ; Thu, 26 Feb 2026 18:16:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772129796; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pwuY3LvKcUIQcOWQmyxZtGgvLSm2Vh8Qv8pinhf5Zg8=; b=jmD5+KgXOqfYPWpdeYkG8iHDeuR044WrbXZyDficjsrutiq8OEn5c96C+oYCGhh1nPm89V GfJCNLD1EkKvu+sklp568NaQ+a2Judp8uw/tydSkRJDudgVw3ODIPO4UkbV9uLeYBSY7Js GdfOcYjJnT0E+UIce1iHyJA6+LZJ4o+fH/2fP431zsHd0vGGHgJkBXgIbD/p9HaGhX4sIq o334DgncSsIWKcUguzsFioo1ZewxjBvT0VTSSqR/6OgsTEoccbXi4xWAn8urtA3lyOwoQU l4UpPj+hWK5s/9ZElTxfBRb9Mn5xrQDY5pJtwO/e5ZJdDROxdQpUGFLsda7CSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772129796; a=rsa-sha256; cv=none; b=j/dOe+WGqzlzrtgRKzsp7uSkwC5uB0JuuwJrIX6fjPGLsPYCIPOGEXsOWSm5F0x60cA07E bo17BWeuEGXky8B4pakdMgyUHf8QWVkfRNhY9LFsXGIPITRp5iBWxguS9dBZQd2uUqII4Z 22dM5fWLPv4UNllLzF/+Z/npAatNMwjvawRxOTwEIOrh217t5lKwdJv++ohaKfgm10pbIS bjcbSCHy1KwjDq2UAOmir/ICHzCgL9UO7Is0FvU7Qi0OqleP2zxttQoApPBanKPz6dCqss uIPSqo2uYMJz1r/F59NlIcLGMk6KbU2OiMRJ21DUhlxXErS4z9PjVgGOxqj6mw== 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=1772129796; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pwuY3LvKcUIQcOWQmyxZtGgvLSm2Vh8Qv8pinhf5Zg8=; b=doJ3M8Hu+lmYEHdaeWOP613FRzAdMg+qOQYZgAyTRvUjy+NMpW85bSyysj5V+g+dDww+8Z yqNtYYwbVGFTNwkHcXSU7EP0dekRFY6TRBlP3GG2c69tkIhwlNsBnHWS1wWCGF4gJDtxcZ 9zmzI7Q1mO20M7Etxc9GD5dLOhDfho5g+YJRyqkRaBbnLT7gsxH+9qEIkc2s+H7oKp4wX4 3e+c3cqxP7KBlW6OkwAaoLnmm2q6oZTrzqZ09VcL0Z1iokpa/ZFQKPNAfYLZJH7EsL2eQ0 SgOIJSLYIjQBDNDD51csbMhtBV4bKx9opL+Y0tnd6vGBa8IP0T2SAaH4DQricQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMKR76mfLzjhD for ; Thu, 26 Feb 2026 18:16:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 430e8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 18:16:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Colin Percival Subject: git: ca76ec7c4e56 - releng/14.4 - libfetch: Fail hard if interrupted while connecting List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: ca76ec7c4e563292a0c75781683b0421a4439a02 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 18:16:35 +0000 Message-Id: <69a08e03.430e8.389b45c0@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=ca76ec7c4e563292a0c75781683b0421a4439a02 commit ca76ec7c4e563292a0c75781683b0421a4439a02 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:15 +0000 Commit: Colin Percival CommitDate: 2026-02-26 18:00:38 +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) (cherry picked from commit cca6f5eadb796b03379eb21f38c74ca46a64e45b) --- 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 bdc72f67c9a0..949addd8e6e2 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -658,7 +658,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);