Release 4.11 net/netfilter/xt_length.c
/* Kernel module to match packet length. */
/* (C) 1999-2001 James Morris <jmorros@intercode.com.au>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/module.h>
#include <linux/skbuff.h>
#include <linux/ipv6.h>
#include <net/ip.h>
#include <linux/netfilter/xt_length.h>
#include <linux/netfilter/x_tables.h>
MODULE_AUTHOR("James Morris <jmorris@intercode.com.au>");
MODULE_DESCRIPTION("Xtables: Packet length (Layer3,4,5) match");
MODULE_LICENSE("GPL");
MODULE_ALIAS("ipt_length");
MODULE_ALIAS("ip6t_length");
static bool
length_mt(const struct sk_buff *skb, struct xt_action_param *par)
{
const struct xt_length_info *info = par->matchinfo;
u_int16_t pktlen = ntohs(ip_hdr(skb)->tot_len);
return (pktlen >= info->min && pktlen <= info->max) ^ info->invert;
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Pablo Neira Ayuso | 28 | 47.46% | 1 | 14.29% |
Harald Welte | 22 | 37.29% | 1 | 14.29% |
Jan Engelhardt | 6 | 10.17% | 4 | 57.14% |
Arnaldo Carvalho de Melo | 3 | 5.08% | 1 | 14.29% |
Total | 59 | 100.00% | 7 | 100.00% |
static bool
length_mt6(const struct sk_buff *skb, struct xt_action_param *par)
{
const struct xt_length_info *info = par->matchinfo;
const u_int16_t pktlen = ntohs(ipv6_hdr(skb)->payload_len) +
sizeof(struct ipv6hdr);
return (pktlen >= info->min && pktlen <= info->max) ^ info->invert;
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Harald Welte | 31 | 46.97% | 1 | 14.29% |
Pablo Neira Ayuso | 25 | 37.88% | 1 | 14.29% |
Jan Engelhardt | 6 | 9.09% | 4 | 57.14% |
Arnaldo Carvalho de Melo | 4 | 6.06% | 1 | 14.29% |
Total | 66 | 100.00% | 7 | 100.00% |
static struct xt_match length_mt_reg[] __read_mostly = {
{
.name = "length",
.family = NFPROTO_IPV4,
.match = length_mt,
.matchsize = sizeof(struct xt_length_info),
.me = THIS_MODULE,
},
{
.name = "length",
.family = NFPROTO_IPV6,
.match = length_mt6,
.matchsize = sizeof(struct xt_length_info),
.me = THIS_MODULE,
},
};
static int __init length_mt_init(void)
{
return xt_register_matches(length_mt_reg, ARRAY_SIZE(length_mt_reg));
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Pablo Neira Ayuso | 12 | 60.00% | 1 | 25.00% |
Patrick McHardy | 4 | 20.00% | 1 | 25.00% |
Jan Engelhardt | 3 | 15.00% | 1 | 25.00% |
Harald Welte | 1 | 5.00% | 1 | 25.00% |
Total | 20 | 100.00% | 4 | 100.00% |
static void __exit length_mt_exit(void)
{
xt_unregister_matches(length_mt_reg, ARRAY_SIZE(length_mt_reg));
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Pablo Neira Ayuso | 11 | 57.89% | 1 | 25.00% |
Patrick McHardy | 4 | 21.05% | 1 | 25.00% |
Jan Engelhardt | 3 | 15.79% | 1 | 25.00% |
Harald Welte | 1 | 5.26% | 1 | 25.00% |
Total | 19 | 100.00% | 4 | 100.00% |
module_init(length_mt_init);
module_exit(length_mt_exit);
Overall Contributors
Person | Tokens | Prop | Commits | CommitProp |
Pablo Neira Ayuso | 132 | 45.52% | 1 | 7.14% |
Harald Welte | 88 | 30.34% | 1 | 7.14% |
Patrick McHardy | 34 | 11.72% | 3 | 21.43% |
Jan Engelhardt | 26 | 8.97% | 6 | 42.86% |
Arnaldo Carvalho de Melo | 7 | 2.41% | 2 | 14.29% |
David S. Miller | 3 | 1.03% | 1 | 7.14% |
Total | 290 | 100.00% | 14 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.