Commit 83fc8102 authored by Alexey Dobriyan's avatar Alexey Dobriyan Committed by Patrick McHardy

netfilter: xt_connlimit: netns support

Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
parent 9592a5c0
...@@ -90,7 +90,8 @@ same_source_net(const union nf_inet_addr *addr, ...@@ -90,7 +90,8 @@ same_source_net(const union nf_inet_addr *addr,
} }
} }
static int count_them(struct xt_connlimit_data *data, static int count_them(struct net *net,
struct xt_connlimit_data *data,
const struct nf_conntrack_tuple *tuple, const struct nf_conntrack_tuple *tuple,
const union nf_inet_addr *addr, const union nf_inet_addr *addr,
const union nf_inet_addr *mask, const union nf_inet_addr *mask,
...@@ -113,7 +114,7 @@ static int count_them(struct xt_connlimit_data *data, ...@@ -113,7 +114,7 @@ static int count_them(struct xt_connlimit_data *data,
/* check the saved connections */ /* check the saved connections */
list_for_each_entry_safe(conn, tmp, hash, list) { list_for_each_entry_safe(conn, tmp, hash, list) {
found = nf_conntrack_find_get(&init_net, &conn->tuple); found = nf_conntrack_find_get(net, &conn->tuple);
found_ct = NULL; found_ct = NULL;
if (found != NULL) if (found != NULL)
...@@ -171,6 +172,7 @@ static int count_them(struct xt_connlimit_data *data, ...@@ -171,6 +172,7 @@ static int count_them(struct xt_connlimit_data *data,
static bool static bool
connlimit_mt(const struct sk_buff *skb, const struct xt_match_param *par) connlimit_mt(const struct sk_buff *skb, const struct xt_match_param *par)
{ {
struct net *net = dev_net(par->in ? par->in : par->out);
const struct xt_connlimit_info *info = par->matchinfo; const struct xt_connlimit_info *info = par->matchinfo;
union nf_inet_addr addr; union nf_inet_addr addr;
struct nf_conntrack_tuple tuple; struct nf_conntrack_tuple tuple;
...@@ -195,7 +197,7 @@ connlimit_mt(const struct sk_buff *skb, const struct xt_match_param *par) ...@@ -195,7 +197,7 @@ connlimit_mt(const struct sk_buff *skb, const struct xt_match_param *par)
} }
spin_lock_bh(&info->data->lock); spin_lock_bh(&info->data->lock);
connections = count_them(info->data, tuple_ptr, &addr, connections = count_them(net, info->data, tuple_ptr, &addr,
&info->mask, par->family); &info->mask, par->family);
spin_unlock_bh(&info->data->lock); spin_unlock_bh(&info->data->lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment