mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 23:27:06 +00:00
[NETFILTER]: xt_connlimit: use the new union nf_inet_addr
Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e79ec50b95
commit
22c2d8bca2
2 changed files with 10 additions and 6 deletions
|
@ -5,8 +5,13 @@ struct xt_connlimit_data;
|
||||||
|
|
||||||
struct xt_connlimit_info {
|
struct xt_connlimit_info {
|
||||||
union {
|
union {
|
||||||
__be32 v4_mask;
|
union nf_inet_addr mask;
|
||||||
__be32 v6_mask[4];
|
#ifndef __KERNEL__
|
||||||
|
union {
|
||||||
|
__be32 v4_mask;
|
||||||
|
__be32 v6_mask[4];
|
||||||
|
};
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
unsigned int limit, inverse;
|
unsigned int limit, inverse;
|
||||||
|
|
||||||
|
|
|
@ -185,7 +185,7 @@ connlimit_mt(const struct sk_buff *skb, const struct net_device *in,
|
||||||
bool *hotdrop)
|
bool *hotdrop)
|
||||||
{
|
{
|
||||||
const struct xt_connlimit_info *info = matchinfo;
|
const struct xt_connlimit_info *info = matchinfo;
|
||||||
union nf_inet_addr addr, mask;
|
union nf_inet_addr addr;
|
||||||
struct nf_conntrack_tuple tuple;
|
struct nf_conntrack_tuple tuple;
|
||||||
const struct nf_conntrack_tuple *tuple_ptr = &tuple;
|
const struct nf_conntrack_tuple *tuple_ptr = &tuple;
|
||||||
enum ip_conntrack_info ctinfo;
|
enum ip_conntrack_info ctinfo;
|
||||||
|
@ -202,15 +202,14 @@ connlimit_mt(const struct sk_buff *skb, const struct net_device *in,
|
||||||
if (match->family == AF_INET6) {
|
if (match->family == AF_INET6) {
|
||||||
const struct ipv6hdr *iph = ipv6_hdr(skb);
|
const struct ipv6hdr *iph = ipv6_hdr(skb);
|
||||||
memcpy(&addr.ip6, &iph->saddr, sizeof(iph->saddr));
|
memcpy(&addr.ip6, &iph->saddr, sizeof(iph->saddr));
|
||||||
memcpy(&mask.ip6, info->v6_mask, sizeof(info->v6_mask));
|
|
||||||
} else {
|
} else {
|
||||||
const struct iphdr *iph = ip_hdr(skb);
|
const struct iphdr *iph = ip_hdr(skb);
|
||||||
addr.ip = iph->saddr;
|
addr.ip = iph->saddr;
|
||||||
mask.ip = info->v4_mask;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_lock_bh(&info->data->lock);
|
spin_lock_bh(&info->data->lock);
|
||||||
connections = count_them(info->data, tuple_ptr, &addr, &mask, match);
|
connections = count_them(info->data, tuple_ptr, &addr,
|
||||||
|
&info->mask, match);
|
||||||
spin_unlock_bh(&info->data->lock);
|
spin_unlock_bh(&info->data->lock);
|
||||||
|
|
||||||
if (connections < 0) {
|
if (connections < 0) {
|
||||||
|
|
Loading…
Reference in a new issue