extensions: libxt_length: Add translation to nft
PATCH 1/1 extensions: libxt_length: Add translation to nft
Add translation for module length to nftables.
Examples:
$ sudo iptables-translate -A INPUT -p icmp -m length --length 86:0xffff -j DROP nft add rule ip filter INPUT ip protocol icmp meta length 86-65535 counter drop
$ sudo iptables-translate -A INPUT -p udp -m length --length :400 nft add rule ip filter INPUT ip protocol udp meta length 0-400 counter
$ sudo iptables-translate -A INPUT -p udp -m length --length 40 nft add rule ip filter INPUT ip protocol udp meta length 40 counter
Signed-off-by Shivani Bhardwaj <[email protected]>
--- extensions/libxt_length.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
extensions/libxt_length.c +16 -0
@@ -56,6 +56,21 @@ static void length_save(const void *ip, const struct xt_entry_match *match)printf ("%u:%u" , info->min, info->max); } +static int length_xlate (const struct xt_entry_match *match, +struct xt_buf *buf,int numeric) +{ +const struct xt_length_info *info = (void *)match->data; + +xt_buf_add (buf,"meta length %s" , info->invert ?" !=" :"" ); +if (info->min == info->max) +xt_buf_add (buf,"%u " , info->min); +else +xt_buf_add (buf,"%u-%u " , info->min, info->max); + +return 1 ; +} + +static struct xtables_match length_match = { .family =NFPROTO_UNSPEC , .name ="length" ,
@@ -67,6 +82,7 @@ static struct xtables_match length_match = { .save = length_save, .x6_parse = length_parse, .x6_options = length_opts, + .xlate = length_xlate, };void _init (void )
Signature · 1 line
1.9.1