]> git.ipfire.org Git - thirdparty/nftables.git/commit
segtree: copy expr data to closing element
authorFlorian Westphal <fw@strlen.de>
Thu, 15 Oct 2020 14:47:21 +0000 (16:47 +0200)
committerFlorian Westphal <fw@strlen.de>
Thu, 15 Oct 2020 14:48:07 +0000 (16:48 +0200)
commitc1f0476fd59002db14172072d9f192c23deb2a1f
tree70898cd2972de11b1bd72aa1b3772224da2d6f8f
parent09a3b2ba0c8228d1c6bf0f030cae97addb397351
segtree: copy expr data to closing element

When last expr has no closing element we did not propagate
expr properties such as comment or expire date to the newly
allocated set elem.

Before:
nft create table t
nft 'add set t s { type ipv4_addr; flags interval; timeout 60s; }'
nft add element t s { 224.0.0.0/3 }
nft list set t s | grep -o 'elements.*'
elements = { 224.0.0.0-255.255.255.255 }

nft flush set t s
nft add element t s { 224.0.0.0/4, 240.0.0.0/4 }
nft list set t s | grep -o 'elements.*'
elements = { 224.0.0.0/4 expires 55s152ms, 240.0.0.0-255.255.255.255 }

nft delete set t s
nft 'add set t s { type ipv4_addr; flags interval; auto-merge; timeout 60s; }'
nft add element t s { 224.0.0.0/4, 240.0.0.0/4 }
nft list set t s | grep -o 'elements.*'
elements = { 224.0.0.0-255.255.255.255 }

After:
elements = { 224.0.0.0-255.255.255.255 expires 58s515ms }
elements = { 224.0.0.0/4 expires 54s622ms, 240.0.0.0-255.255.255.255 expires 54s622ms }
elements = { 224.0.0.0-255.255.255.255 expires 57s92ms }

Bugzilla: https://bugzilla.netfilter.org/show_bug.cgi?id=1454
Signed-off-by: Florian Westphal <fw@strlen.de>
src/segtree.c