From nobody Sat Jul 12 13:38:49 2025 X-Original-To: dev-commits-src-main@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 4bfV6K5BG9z61sWB; Sat, 12 Jul 2025 13:38:49 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bfV6K1SG6z3CTS; Sat, 12 Jul 2025 13:38:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1752327529; 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=e3iOSoXFmV8W5Lg88hxtRP9e6Kx6EHIIqvR0uDNEZ/0=; b=OH2fX5ufuRsQ276xc5Rupn89nDBmj5PZz0ze7OgPThM19wxe4hVJzMGT04ob3pnTaUhj2a bGHDFKrrtUvJotrBGBd/t6SM2rI2C/guvm9CJwlT0YKZpsIgKM7Z2+dXJedR/gxDAtGPL0 cnyveF036eX0SX7+eKRsUrmzVCJ1mgCL009684T1Q6MzO6rI2aserYJTVHpTDZ20AwFbtc EyMPk76CyU/pnpc4TJ7aROi1Xbr2X4w3zr8t4giATsV5k9uL21y50QplTMGP/mKEnW45LG Y4pC4BCK0RV1RhUvPGmPlH9IlFdTD1zYf7Td5+CXp0bAMyWDf/kXLCWizMylrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1752327529; 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=e3iOSoXFmV8W5Lg88hxtRP9e6Kx6EHIIqvR0uDNEZ/0=; b=KFYqpUOw3pPSIcWszzOHANul0hglkReX4LkXKrSlmle0mnYKNjZYyA62Swhbfz6YmklFzs onFg+QuUEHGxzTTc5wVPakMYLUvPTLOY+QhQ12vdQJI6RsWHy7OuCkmfmac+yqOHubB1Pr vT3R2SFcjBd0I8JjBliyAeDfm3H5v5/DIISBAfPBR/mIaCCvUxKRw/zo6ZTPcirIECRVIZ 4X5qh1sN/8HAJ3TtCQxAueHpnjH7zTQJpFZdUaWDDLqFd+LN9P8bazrl7N0fhmSt3CZZuF ZG4pjHKSh2+AJb7lVeEI8P+zAy+jydn63MHPymUkXcbwwI66A4Z0YaFPz0F5yg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1752327529; a=rsa-sha256; cv=none; b=c/qdOmOvpqr9+YPwdQLH/uqUMBxEFUO0wuPexRp2iMVxTGbt4+Jf5eHCECBYk7XZfKruMf 5Mbz0VEmCpDtMjQppzoxzoGi4NYCXnPWAefSGzKiwLGPJWZ/O/zDCyo5JuecRolp5qNfy1 4IlpWRMcDuXlS7LDchJDISMu+BTcPFfl+PWmp3hrivIhITXHtW9kI1i2PeaOtwdThXljMQ NDj0ghdD4nNfuRidos2g6qeiKHw5m43PEr/YnzxayT+QROxYbuJlHXe2dAbFdOJKXIt4TM mA2zHnLWCFx0SDBDzzsEXtIJwAoWbJHq6Y8J3mgeSjekd/9gaxVjv+2lDd6pbg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bfV6K0n1tz8px; Sat, 12 Jul 2025 13:38:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 56CDcnDP088854; Sat, 12 Jul 2025 13:38:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 56CDcnRX088851; Sat, 12 Jul 2025 13:38:49 GMT (envelope-from git) Date: Sat, 12 Jul 2025 13:38:49 GMT Message-Id: <202507121338.56CDcnRX088851@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 7153a62d2978 - main - pfctl: Unify error message for nonexisting anchors List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7153a62d29784780fdc1d61aebd92c76fb158627 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=7153a62d29784780fdc1d61aebd92c76fb158627 commit 7153a62d29784780fdc1d61aebd92c76fb158627 Author: Kristof Provost AuthorDate: 2025-07-07 06:45:04 +0000 Commit: Kristof Provost CommitDate: 2025-07-12 09:57:50 +0000 pfctl: Unify error message for nonexisting anchors pf(4) returns EINVAL for DIOCGETRULE, DIOCGETRULES and DIOCGETRULESET if the specified anchor does not exist. Extend and rename {pfr -> pf}_strerror() to make error message more consistent. There are other occasions as well but those need additional tweaks; that's stuff for another diff. OK and rename from sashan Obtained from: OpenBSD, kn , e5c920154c Sponsored by: Rubicon Communications, LLC ("Netgate") --- sbin/pfctl/pfctl.c | 24 +++++++++++++++++++----- sbin/pfctl/pfctl_optimize.c | 8 ++++---- sbin/pfctl/pfctl_radix.c | 13 ------------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/sbin/pfctl/pfctl.c b/sbin/pfctl/pfctl.c index 8d2b556d7085..b4453c850de4 100644 --- a/sbin/pfctl/pfctl.c +++ b/sbin/pfctl/pfctl.c @@ -1350,7 +1350,7 @@ pfctl_show_rules(int dev, char *path, int opts, enum pfctl_show format, for (nr = 0; nr < mnr; ++nr) { if ((ret = pfctl_get_ruleset(pfh, npath, nr, &prs)) != 0) - errc(1, ret, "DIOCGETRULESET"); + errx(1, "%s", pfr_strerror(ret)); INDENT(depth, !(opts & PF_OPT_VERBOSE)); printf("anchor \"%s\" all {\n", prs.name); pfctl_show_rules(dev, npath, opts, @@ -1365,14 +1365,14 @@ pfctl_show_rules(int dev, char *path, int opts, enum pfctl_show format, if (opts & PF_OPT_SHOWALL) { ret = pfctl_get_rules_info_h(pfh, &ri, PF_PASS, path); if (ret != 0) { - warnc(ret, "DIOCGETRULES"); + warnx("%s", pfr_strerror(ret)); goto error; } header++; } ret = pfctl_get_rules_info_h(pfh, &ri, PF_SCRUB, path); if (ret != 0) { - warnc(ret, "DIOCGETRULES"); + warnx("%s", pfr_strerror(ret)); goto error; } if (opts & PF_OPT_SHOWALL) { @@ -1565,12 +1565,12 @@ pfctl_show_nat(int dev, const char *path, int opts, char *anchorname, int depth, fprintf(stderr, "NAT anchor '%s' " "not found.\n", anchorname); else - errc(1, ret, "DIOCGETRULESETS"); + errx(1, "%s", pfr_strerror(ret)); } for (nr = 0; nr < mnr; ++nr) { if ((ret = pfctl_get_ruleset(pfh, npath, nr, &prs)) != 0) - errc(1, ret, "DIOCGETRULESET"); + errx(1, "%s", pfr_strerror(ret)); INDENT(depth, !(opts & PF_OPT_VERBOSE)); printf("nat-anchor \"%s\" all {\n", prs.name); pfctl_show_nat(dev, npath, opts, @@ -3643,3 +3643,17 @@ main(int argc, char *argv[]) exit(exit_val); } + +char * +pfr_strerror(int errnum) +{ + switch (errnum) { + case ESRCH: + return "Table does not exist"; + case EINVAL: + case ENOENT: + return "Anchor does not exist"; + default: + return strerror(errnum); + } +} diff --git a/sbin/pfctl/pfctl_optimize.c b/sbin/pfctl/pfctl_optimize.c index e727324bbf40..24b774bc66be 100644 --- a/sbin/pfctl/pfctl_optimize.c +++ b/sbin/pfctl/pfctl_optimize.c @@ -903,13 +903,13 @@ load_feedback_profile(struct pfctl *pf, struct superblocks *superblocks) struct pf_opt_queue queue; struct pfctl_rules_info rules; struct pfctl_rule a, b, rule; - int nr, mnr; + int nr, mnr, ret; TAILQ_INIT(&queue); TAILQ_INIT(&prof_superblocks); - if (pfctl_get_rules_info_h(pf->h, &rules, PF_PASS, "")) { - warn("DIOCGETRULES"); + if ((ret = pfctl_get_rules_info_h(pf->h, &rules, PF_PASS, "")) != 0) { + warnx("%s", pfr_strerror(ret)); return (1); } mnr = rules.nr; @@ -924,7 +924,7 @@ load_feedback_profile(struct pfctl *pf, struct superblocks *superblocks) if (pfctl_get_rule_h(pf->h, nr, rules.ticket, "", PF_PASS, &rule, anchor_call)) { - warn("DIOCGETRULENV"); + warnx("%s", pfr_strerror(ret)); free(por); return (1); } diff --git a/sbin/pfctl/pfctl_radix.c b/sbin/pfctl/pfctl_radix.c index 5f9f121bc81c..00e4207d377b 100644 --- a/sbin/pfctl/pfctl_radix.c +++ b/sbin/pfctl/pfctl_radix.c @@ -461,16 +461,3 @@ pfr_next_token(char buf[BUF_SIZE], FILE *fp) buf[i] = '\0'; return (1); } - -char * -pfr_strerror(int errnum) -{ - switch (errnum) { - case ESRCH: - return "Table does not exist"; - case ENOENT: - return "Anchor does not exist"; - default: - return strerror(errnum); - } -}