diff options
| author | Kristof Provost <kp@FreeBSD.org> | 2025-08-27 15:51:29 +0000 |
|---|---|---|
| committer | Kristof Provost <kp@FreeBSD.org> | 2025-09-25 12:41:09 +0000 |
| commit | b9d652bb75ffa0945a3bebf68d6d82de26efd269 (patch) | |
| tree | 20554b72b0993980996f6ead44a44257d646338a /sys | |
| parent | d3b73a944b11311b8428f30b019802ebe7aeaef8 (diff) | |
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/net/pfvar.h | 1 | ||||
| -rw-r--r-- | sys/netpfil/pf/pf.c | 2 | ||||
| -rw-r--r-- | sys/netpfil/pf/pf_nl.c | 1 | ||||
| -rw-r--r-- | sys/netpfil/pf/pf_nl.h | 1 |
4 files changed, 4 insertions, 1 deletions
diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index d7d69615151d..c6a3448584ac 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -901,6 +901,7 @@ struct pf_krule { LIST_ENTRY(pf_krule) allrulelist; bool allrulelinked; #endif + time_t exptime; }; struct pf_krule_item { diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 450e465e926a..ec6960180413 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -5747,7 +5747,7 @@ pf_match_rule(struct pf_test_ctx *ctx, struct pf_kruleset *ruleset) if ((rule_flag & PFRULE_EXPIRED) == 0 && atomic_cmpset_int(&r->rule_flag, rule_flag, rule_flag | PFRULE_EXPIRED)) { - //r->exptime = gettime(); + r->exptime = time_uptime; } else { r = TAILQ_NEXT(r, entries); continue; diff --git a/sys/netpfil/pf/pf_nl.c b/sys/netpfil/pf/pf_nl.c index 5c8f56ea4567..ff3edd43e3a5 100644 --- a/sys/netpfil/pf/pf_nl.c +++ b/sys/netpfil/pf/pf_nl.c @@ -1025,6 +1025,7 @@ pf_handle_getrule(struct nlmsghdr *hdr, struct nl_pstate *npt) nlattr_add_u64(nw, PF_RT_SRC_NODES_NAT, counter_u64_fetch(rule->src_nodes[PF_SN_NAT])); nlattr_add_u64(nw, PF_RT_SRC_NODES_ROUTE, counter_u64_fetch(rule->src_nodes[PF_SN_ROUTE])); nlattr_add_pf_threshold(nw, PF_RT_PKTRATE, &rule->pktrate); + nlattr_add_u64(nw, PF_RT_EXPTIME, time_second - (time_uptime - rule->exptime)); error = pf_kanchor_copyout(ruleset, rule, anchor_call, sizeof(anchor_call)); MPASS(error == 0); diff --git a/sys/netpfil/pf/pf_nl.h b/sys/netpfil/pf/pf_nl.h index b769421bbfcc..38891339450e 100644 --- a/sys/netpfil/pf/pf_nl.h +++ b/sys/netpfil/pf/pf_nl.h @@ -285,6 +285,7 @@ enum pf_rule_type_t { PF_RT_MAX_PKT_SIZE = 83, /* u16 */ PF_RT_TYPE_2 = 84, /* u16 */ PF_RT_CODE_2 = 85, /* u16 */ + PF_RT_EXPTIME = 86, /* u64 */ }; enum pf_addrule_type_t { |
