From nobody Sun Dec 21 17:33:37 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 4dZ7fV32RRz6LBmK for ; Sun, 21 Dec 2025 17:33:38 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dZ7fT3KGHz3LGl for ; Sun, 21 Dec 2025 17:33:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1766338417; 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=s9WF2EgZmzEn8pfSNIYc0l3SvC+3tAgalHXXpUYJadU=; b=JppyuTzBl/dldZyIJ2/vzp7IM1yfy5+Bbd8aha+LQ7IWTMC8mV2ZTMk9nxC0TOpsP+XlII 8eUrNobqms4u4iN4ruQtbzEEv9m6vHa8riTeGjhCdsrpdqih6LguKfU5Z7mP7Idyqjztea XKV2z4VVU/shsewTCIaOtuQK0M/3maldfA5IUN7bgn7pyDEjegZttXB2be0aCNKQ6TozD8 2oj/gcBV/OWYr7d6sTFZxiW4fts/gVSYUObiL7dc8oSJwp36UpxBQWA2PAULy7sKXzxqTf EFTqsY2AfRszZQPHz8UnswLBhtPB5kkixg5de8CP2rzLq88VwF7LqpIbGf1KeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1766338417; 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=s9WF2EgZmzEn8pfSNIYc0l3SvC+3tAgalHXXpUYJadU=; b=fntcPXd1sJ6Yf9JO5q/cXXPff+fAFBYZ6vqwK82u1jf7bCtBslLbT3Y38KpHk3WxD2gveN AN+M6VBkN1aA/cVtsLM2iG+0n4Vp1IUOoP+V3Nq40fzJSkljSgyLyDI5l1FwfdedzFPlHl 90c3DOMNMtJJDYL2mnFl5EvYW7X1jWFfDiDraMFEwzvM9vkMOM4qzXMqBxUdFBqx4ki2WL kiG8Zi0rfeiVdcxoawrT2oALv3GFwV1jiyzARsJugvCLeJdmRs7F3WcINj8DRjAS/ZFRen n66AVIrrJeS4vedz5kBoYsFmdSzpZTW3abViv4kP8bY2N9w4ilJ+lJQHz5yzCw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1766338417; a=rsa-sha256; cv=none; b=pi+Pw8YKruFNAr/4sLYoStx4XbbWIf33khuNmfn3yFFbX2VOUUcEP4T7bK5cObE+OKdm/j w6jQp/fiTa64SMtEEDeO/iuiTO9Npsa5uRRiFjqPR9Mq3pYetukWirRNPPRFLhOW/UR1qf 9S/WE6lOHEckZ5EzHynF2P6a5I8bE3DzbdiF9Sk5wDHuGo3WIrTnWRCtfdp5kmGUZo05eN b2Aa25R/KGHiEDVNUv6+JiUiSHI33nuRuF+GhCxxdXVwrZ37f/VRmJXrJhVOBVnGzNAC/w tAku7ZmnkjVJnvbx8DLPw/OA5NWS8lGla9tlsEBvHaoRQfMxR+xYRi13RzqEQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dZ7fT1dSMzqbs for ; Sun, 21 Dec 2025 17:33:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 24980 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 21 Dec 2025 17:33:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 823ebd7c4f89 - main - libpfctl: export a get states variant that takes a pfctl_handle 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: 823ebd7c4f897b1c620b6f21a68221da1cef7449 Auto-Submitted: auto-generated Date: Sun, 21 Dec 2025 17:33:37 +0000 Message-Id: <69482f71.24980.389b2a8e@gitrepo.freebsd.org> The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=823ebd7c4f897b1c620b6f21a68221da1cef7449 commit 823ebd7c4f897b1c620b6f21a68221da1cef7449 Author: Kristof Provost AuthorDate: 2025-12-21 11:12:17 +0000 Commit: Kristof Provost CommitDate: 2025-12-21 17:33:06 +0000 libpfctl: export a get states variant that takes a pfctl_handle Sponsored by: Rubicon Communications, LLC ("Netgate") --- lib/libpfctl/libpfctl.c | 22 +++++++++++----------- lib/libpfctl/libpfctl.h | 1 + sbin/pfctl/pfctl.c | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index 1959f7bebc39..7e5a07ccd55a 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -1961,11 +1961,11 @@ static const struct snl_hdr_parser *all_parsers[] = { &creator_parser, &getrules_parser }; -static int -pfctl_get_states_nl(struct pfctl_state_filter *filter, struct snl_state *ss, pfctl_get_state_fn f, void *arg) +int +pfctl_get_states_h(struct pfctl_handle *h, struct pfctl_state_filter *filter, pfctl_get_state_fn f, void *arg) { SNL_VERIFY_PARSERS(all_parsers); - int family_id = snl_get_genl_family(ss, PFNL_FAMILY_NAME); + int family_id = snl_get_genl_family(&h->ss, PFNL_FAMILY_NAME); int ret; struct nlmsghdr *hdr; @@ -1974,7 +1974,7 @@ pfctl_get_states_nl(struct pfctl_state_filter *filter, struct snl_state *ss, pfc if (family_id == 0) return (ENOTSUP); - snl_init_writer(ss, &nw); + snl_init_writer(&h->ss, &nw); hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GETSTATES); hdr->nlmsg_flags |= NLM_F_DUMP; snl_add_msg_attr_string(&nw, PF_ST_IFNAME, filter->ifname); @@ -1989,13 +1989,13 @@ pfctl_get_states_nl(struct pfctl_state_filter *filter, struct snl_state *ss, pfc uint32_t seq_id = hdr->nlmsg_seq; - snl_send_message(ss, hdr); + snl_send_message(&h->ss, hdr); struct snl_errmsg_data e = {}; - while ((hdr = snl_read_reply_multi(ss, seq_id, &e)) != NULL) { + while ((hdr = snl_read_reply_multi(&h->ss, seq_id, &e)) != NULL) { struct pfctl_state s; bzero(&s, sizeof(s)); - if (!snl_parse_nlmsg(ss, hdr, &state_parser, &s)) + if (!snl_parse_nlmsg(&h->ss, hdr, &state_parser, &s)) continue; ret = f(&s, arg); @@ -2016,12 +2016,12 @@ pfctl_get_states_iter(pfctl_get_state_fn f, void *arg) int pfctl_get_filtered_states_iter(struct pfctl_state_filter *filter, pfctl_get_state_fn f, void *arg) { - struct snl_state ss = {}; + struct pfctl_handle h = {}; int error; - snl_init(&ss, NETLINK_GENERIC); - error = pfctl_get_states_nl(filter, &ss, f, arg); - snl_free(&ss); + snl_init(&h.ss, NETLINK_GENERIC); + error = pfctl_get_states_h(&h, filter, f, arg); + snl_free(&h.ss); return (error); } diff --git a/lib/libpfctl/libpfctl.h b/lib/libpfctl/libpfctl.h index 9cb596c1b280..9576118fe146 100644 --- a/lib/libpfctl/libpfctl.h +++ b/lib/libpfctl/libpfctl.h @@ -499,6 +499,7 @@ struct pfctl_state_filter { }; typedef int (*pfctl_get_state_fn)(struct pfctl_state *, void *); int pfctl_get_states_iter(pfctl_get_state_fn f, void *arg); +int pfctl_get_states_h(struct pfctl_handle *h, struct pfctl_state_filter *filter, pfctl_get_state_fn f, void *arg); int pfctl_get_filtered_states_iter(struct pfctl_state_filter *filter, pfctl_get_state_fn f, void *arg); int pfctl_get_states(int dev, struct pfctl_states *states); void pfctl_free_states(struct pfctl_states *states); diff --git a/sbin/pfctl/pfctl.c b/sbin/pfctl/pfctl.c index 5ab4687dd35f..da27afb0a179 100644 --- a/sbin/pfctl/pfctl.c +++ b/sbin/pfctl/pfctl.c @@ -1700,7 +1700,7 @@ pfctl_show_states(int dev, const char *iface, int opts) arg.dotitle = opts & PF_OPT_SHOWALL; arg.iface = iface; - if (pfctl_get_filtered_states_iter(&filter, pfctl_show_state, &arg)) + if (pfctl_get_states_h(pfh, &filter, pfctl_show_state, &arg)) return (-1); return (0);