unkin-agent
d949fc4772
Create the nftables table in the configured address family
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-04 15:36:03 +11:00
benvin
1e32bde555
Merge pull request 'Emit the implied ACCEPT for DNAT and REDIRECT rules' ( #29 ) from benvin/dnat-implied-accept into main
...
ci/woodpecker/tag/release Pipeline was successful
Reviewed-on: #29
v0.3.1
2026-10-04 15:28:05 +11:00
unkin-agent
87be6bc6af
Merge remote-tracking branch 'origin/main' into benvin/dnat-implied-accept
...
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
# Conflicts:
# internal/nftables/compiler.go
# internal/nftables/compiler_test.go
2026-10-04 15:22:41 +11:00
benvin
599c483cd8
Merge pull request 'Accept DHCP on dhcp interfaces as shorewall does' ( #27 ) from benvin/dhcp-option into main
...
Reviewed-on: #27
2026-10-04 15:21:51 +11:00
benvin
110b109d97
Merge pull request 'Include firewall zone in all/any rule expansion' ( #28 ) from benvin/all-includes-fw into main
...
Reviewed-on: #28
2026-10-04 15:21:24 +11:00
unkin-agent
ac63f65f2f
Keep rule extras off the DNAT implied accept, expand all/any DNAT sources and match SPORT
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-04 15:12:29 +11:00
unkin-agent
e3130b6c3b
Expand all/any firewall pairs per zone and dedupe fw
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-04 15:10:49 +11:00
unkin-agent
df9326330a
Count firewall-expanded all/any specs for limiter guard
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-04 15:08:48 +11:00
unkin-agent
b29ed2446e
Emit the implied ACCEPT for DNAT and REDIRECT rules
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-04 15:08:11 +11:00
unkin-agent
0551120eec
Scope DHCP accept rules to IPv4
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-04 15:07:41 +11:00
unkin-agent
ff4c9b63e8
Include firewall zone in all/any rule expansion
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-04 15:06:24 +11:00
unkin-agent
e48e9079bd
Accept DHCP on dhcp interfaces as shorewall does
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-04 15:06:11 +11:00
benvin
2dd408c54e
Merge pull request 'Create a Gitea release on tag' ( #26 ) from benvin/gitea-releases into main
...
ci/woodpecker/tag/release Pipeline was successful
Reviewed-on: #26
v0.3.0
2026-10-04 15:00:18 +11:00
unkin-agent
6fc8ae9256
Run release step on prebuilt tea image
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-04 14:51:14 +11:00
benvin
b849626a8c
Merge pull request 'Attach conntrack helpers via ct helper objects' ( #25 ) from benvin/ct-helpers into main
...
Reviewed-on: #25
2026-10-04 14:17:23 +11:00
unkin-agent
da32729556
Create a Gitea release with binary, RPM and checksums on tag
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-04 13:59:34 +11:00
unkin-agent
b85ba61fe6
Merge remote-tracking branch 'origin/main' into benvin/ct-helpers
...
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
# Conflicts:
# internal/nftables/compiler.go
# internal/nftables/compiler_test.go
# internal/nftables/engine.go
2026-10-04 13:58:25 +11:00
benvin
9abaa85d6a
Merge pull request 'Compile conntrack rules into raw-priority chains' ( #22 ) from benvin/notrack-raw into main
...
Reviewed-on: #22
2026-10-04 13:55:36 +11:00
unkin-agent
9078f410ee
Reject conntrack fw DEST without an address in prerouting
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 23:56:29 +10:00
unkin-agent
da65c5d0a8
Treat conntrack SOURCE all/any as global like an omitted source
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 23:54:37 +10:00
unkin-agent
90d2875301
Reject zone exclusions in conntrack entries
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 23:53:09 +10:00
unkin-agent
c557c4b78a
Attach conntrack helpers via ct helper objects
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
2026-10-03 23:50:31 +10:00
unkin-agent
bf235291d0
Fail closed on unknown/none conntrack DEST and pair all+ symmetrically
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 23:50:18 +10:00
unkin-agent
1c379bf5f1
Merge remote-tracking branch 'origin/main' into benvin/notrack-raw
2026-10-03 23:49:40 +10:00
unkin-agent
b6d67897de
Expand all!zone exclusions and fail closed on unknown zones
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
2026-10-03 23:48:08 +10:00
unkin-agent
9432bb05c9
Reject unknown and excluded zone names in rule, blrule and conntrack specs
2026-10-03 23:48:08 +10:00
benvin
9a7d1ab35b
Merge pull request 'Bump google/nftables to v0.3.0' ( #23 ) from benvin/nftables-v0.3.0 into main
...
Reviewed-on: #23
2026-10-03 23:45:34 +10:00
benvin
3c5d23a811
Merge pull request 'Match source/dest zones on conntrack rules' ( #24 ) from benvin/conntrack-zones into benvin/notrack-raw
...
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
Reviewed-on: #24
2026-10-03 23:44:11 +10:00
unkin-agent
337490d995
Reject fw source on prerouting conntrack and pin global omitted-zone entries
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 23:01:29 +10:00
unkin-agent
6af17a4c02
Restrict raw_output to fw sources and reject unmatched prerouting dest zones
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 22:59:14 +10:00
unkin-agent
3c5f1cacd4
Match source/dest zones and addresses on conntrack rules
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 22:56:26 +10:00
unkin-agent
445d14c61e
bump google/nftables to v0.3.0
...
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
Set NAT.Specified on DNAT with a port so compiled exprs match kernel readback.
2026-10-03 22:56:20 +10:00
unkin-agent
c9adff32f6
Compile conntrack rules into raw-priority chains
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 22:54:34 +10:00
benvin
63c46fec81
Merge pull request 'Match dest zone oif on output-chain rules and policies' ( #20 ) from benvin/output-oif into main
...
ci/woodpecker/tag/release Pipeline was successful
Reviewed-on: #20
v0.2.1
2026-10-03 22:51:28 +10:00
unkin-agent
5238886c6e
Merge remote-tracking branch 'origin/main' into benvin/output-oif
...
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
# Conflicts:
# internal/nftables/compiler_test.go
2026-10-03 22:46:09 +10:00
benvin
532bd80a8a
Merge pull request 'Match ORIGDEST in DNAT and filter rules' ( #21 ) from benvin/origdest into main
...
Reviewed-on: #21
2026-10-03 22:44:37 +10:00
unkin-agent
036021d726
Treat only non-negated addresses as scoping interfaceless zones
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 22:20:41 +10:00
unkin-agent
ff5a52b9e2
Reject ORIGDEST on forwarded rules and mixed-family lists
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 22:18:48 +10:00
unkin-agent
44e1ba852e
Skip rules and policies for zones without interfaces
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 22:18:10 +10:00
unkin-agent
34cf6dc9ab
Match ORIGDEST in DNAT and filter rules
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 22:16:40 +10:00
unkin-agent
b5be665902
Match dest zone oif on output-chain rules and policies
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-10-03 22:15:24 +10:00
benvin
78afe7c242
Merge pull request 'fix: stop differential apply rewriting unchanged rules' ( #18 ) from benvin/diff-expr-equality into main
...
ci/woodpecker/tag/release Pipeline was successful
Reviewed-on: #18
v0.2.0
2026-10-03 21:24:48 +10:00
unkin-agent
1ad025a4b7
Merge remote-tracking branch 'origin/main' into benvin/diff-expr-equality
...
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
# Conflicts:
# internal/nftables/diff.go
2026-10-03 21:16:39 +10:00
unkin-agent
aa0d3e10c2
Merge remote-tracking branch 'origin/main' into benvin/diff-expr-equality
...
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
# Conflicts:
# internal/nftables/compiler.go
# internal/nftables/compiler_test.go
2026-10-03 21:15:27 +10:00
benvin
3687baabe5
Merge pull request 'Fix MSS clamp loading the option as an IPv6 exthdr' ( #19 ) from benvin/mss-clamp-tcpopt into main
...
Reviewed-on: #19
2026-10-03 21:15:19 +10:00
unkin-agent
abbf434af5
Merge remote-tracking branch 'origin/main' into benvin/mss-clamp-tcpopt
...
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
# Conflicts:
# internal/nftables/compiler_test.go
2026-10-03 21:14:10 +10:00
benvin
937556abeb
Merge pull request 'Add try/confirm safe-apply with out-of-process revert' ( #17 ) from benvin/safe-apply into main
...
Reviewed-on: #17
2026-10-03 21:13:57 +10:00
benvin
a7be035456
Merge pull request 'Match any listed port or protocol in a rule' ( #15 ) from benvin/multiport-multiproto into main
...
Reviewed-on: #15
2026-10-03 21:13:10 +10:00
benvin
e6244d6bf0
Merge pull request 'Expand comma zone lists in rule source and dest' ( #16 ) from benvin/comma-zones into benvin/multiport-multiproto
...
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
Reviewed-on: #16
2026-10-03 21:12:52 +10:00
unkin-agent
0b92f1c2f3
Refuse mutating commands during a try and scope reverts to the try ID
...
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
apply, flush and purge take the try lock and fail with ErrPending, which now
names 'tomswall revert' as the recovery after a failed automatic revert. Each
try gets an ID passed to the timer's 'revert --id', so a stale timer cannot
revert a newer try. Adds tests for Revert success/failure/stale ID and for
restoring a present table at the engine level.
2026-10-03 20:56:52 +10:00