mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-13 05:41:26 +01:00
libpfctl: add pfctl_get_rule_h()
Add a handle variant of pfctl_get_rule(). This converts us from using the nvlist variant to the netlink variant, and also moves us closer to a world where all libpfctl functions take the handle. While here have pfctl use the new function. Sponsored by: Rubicon Communications, LLC ("Netgate")
This commit is contained in:
parent
2780e5f43d
commit
cd2054d48b
@ -1388,6 +1388,14 @@ pfctl_get_rules_info(int dev __unused, struct pfctl_rules_info *rules, uint32_t
|
||||
return (error);
|
||||
}
|
||||
|
||||
int
|
||||
pfctl_get_rule_h(struct pfctl_handle *h, uint32_t nr, uint32_t ticket, const char *anchor,
|
||||
uint32_t ruleset, struct pfctl_rule *rule, char *anchor_call)
|
||||
{
|
||||
return (pfctl_get_clear_rule_h(h, nr, ticket, anchor, ruleset, rule,
|
||||
anchor_call, false));
|
||||
}
|
||||
|
||||
int
|
||||
pfctl_get_rule(int dev, uint32_t nr, uint32_t ticket, const char *anchor,
|
||||
uint32_t ruleset, struct pfctl_rule *rule, char *anchor_call)
|
||||
|
@ -420,6 +420,9 @@ int pfctl_get_rules_info(int dev, struct pfctl_rules_info *rules,
|
||||
int pfctl_get_rule(int dev, uint32_t nr, uint32_t ticket,
|
||||
const char *anchor, uint32_t ruleset, struct pfctl_rule *rule,
|
||||
char *anchor_call);
|
||||
int pfctl_get_rule_h(struct pfctl_handle *h, uint32_t nr, uint32_t ticket,
|
||||
const char *anchor, uint32_t ruleset, struct pfctl_rule *rule,
|
||||
char *anchor_call);
|
||||
int pfctl_get_clear_rule(int dev, uint32_t nr, uint32_t ticket,
|
||||
const char *anchor, uint32_t ruleset, struct pfctl_rule *rule,
|
||||
char *anchor_call, bool clear);
|
||||
|
@ -1444,7 +1444,7 @@ pfctl_show_nat(int dev, char *path, int opts, char *anchorname, int depth)
|
||||
brace = 0;
|
||||
INDENT(depth, !(opts & PF_OPT_VERBOSE));
|
||||
|
||||
if (pfctl_get_rule(dev, nr, ri.ticket, path,
|
||||
if (pfctl_get_rule_h(pfh, nr, ri.ticket, path,
|
||||
nattype[i], &rule, anchor_call)) {
|
||||
warn("DIOCGETRULE");
|
||||
return (-1);
|
||||
|
@ -903,7 +903,7 @@ load_feedback_profile(struct pfctl *pf, struct superblocks *superblocks)
|
||||
return (1);
|
||||
}
|
||||
|
||||
if (pfctl_get_rule(pf->dev, nr, rules.ticket, "", PF_PASS,
|
||||
if (pfctl_get_rule_h(pf->h, nr, rules.ticket, "", PF_PASS,
|
||||
&rule, anchor_call)) {
|
||||
warn("DIOCGETRULENV");
|
||||
return (1);
|
||||
|
@ -1526,7 +1526,7 @@ pfl_scan_ruleset(const char *path)
|
||||
}
|
||||
|
||||
for (nr = rules.nr, i = 0; i < nr; i++) {
|
||||
if (pfctl_get_rule(pfctl_fd(pfh), i, rules.ticket, path,
|
||||
if (pfctl_get_rule_h(pfh, i, rules.ticket, path,
|
||||
PF_PASS, &rule, anchor_call)) {
|
||||
syslog(LOG_ERR, "pfl_scan_ruleset: ioctl(DIOCGETRULE):"
|
||||
" %s", strerror(errno));
|
||||
|
Loading…
Reference in New Issue
Block a user