diff options
author | Franco Fichtner <franco@opnsense.org> | 2021-09-18 11:42:43 +0000 |
---|---|---|
committer | Kristof Provost <kp@FreeBSD.org> | 2021-09-18 11:43:41 +0000 |
commit | 8e496ea1df1f00ea7832eb41754dbbb56dd244c8 (patch) | |
tree | 8b51879d9e3c3b943c6a4bc9f0f11808e8fe4cb1 | |
parent | f902e4bb04ad717935a97ce1ae59e2dd389d940d (diff) | |
download | src-8e496ea1df1f00ea7832eb41754dbbb56dd244c8.tar.gz src-8e496ea1df1f00ea7832eb41754dbbb56dd244c8.zip |
pf: always log nat rule and do it pre-rewrite
See also https://github.com/opnsense/core/issues/5005
Reviewed by: kp
Differential Revision: https://reviews.freebsd.org/D31504
-rw-r--r-- | sys/netpfil/pf/pf.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 221e0c87c11f..1d492370953a 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -3629,6 +3629,11 @@ pf_test_rule(struct pf_krule **rm, struct pf_kstate **sm, int direction, KASSERT(sk != NULL, ("%s: null sk", __func__)); KASSERT(nk != NULL, ("%s: null nk", __func__)); + if (nr->log) { + PFLOG_PACKET(kif, m, af, direction, PFRES_MATCH, nr, a, + ruleset, pd, 1); + } + if (pd->ip_sum) bip_sum = *pd->ip_sum; @@ -3857,10 +3862,10 @@ pf_test_rule(struct pf_krule **rm, struct pf_kstate **sm, int direction, /* apply actions for last matching pass/block rule */ pf_rule_to_actions(r, &pd->act); - if (r->log || (nr != NULL && nr->log)) { + if (r->log) { if (rewrite) m_copyback(m, off, hdrlen, pd->hdr.any); - PFLOG_PACKET(kif, m, af, direction, reason, r->log ? r : nr, a, + PFLOG_PACKET(kif, m, af, direction, reason, r, a, ruleset, pd, 1); } |