netfilter: xtables: move extension arguments into compound structure (1/6)
[deliverable/linux.git] / net / netfilter / xt_connlimit.c
index 70907f6baac3f28c0c1f3f3ad526558279f5f9bb..8b8f70e76646966bc1a9cdecf69d2688750b9245 100644 (file)
@@ -82,9 +82,9 @@ static inline bool already_closed(const struct nf_conn *conn)
 static inline unsigned int
 same_source_net(const union nf_inet_addr *addr,
                const union nf_inet_addr *mask,
-               const union nf_inet_addr *u3, unsigned int family)
+               const union nf_inet_addr *u3, u_int8_t family)
 {
-       if (family == AF_INET) {
+       if (family == NFPROTO_IPV4) {
                return (addr->ip & mask->ip) == (u3->ip & mask->ip);
        } else {
                union nf_inet_addr lh, rh;
@@ -114,7 +114,7 @@ static int count_them(struct xt_connlimit_data *data,
        int matches = 0;
 
 
-       if (match->family == AF_INET6)
+       if (match->family == NFPROTO_IPV6)
                hash = &data->iphash[connlimit_iphash6(addr, mask)];
        else
                hash = &data->iphash[connlimit_iphash(addr->ip & mask->ip)];
@@ -123,7 +123,7 @@ static int count_them(struct xt_connlimit_data *data,
 
        /* check the saved connections */
        list_for_each_entry_safe(conn, tmp, hash, list) {
-               found    = __nf_conntrack_find(&conn->tuple);
+               found    = __nf_conntrack_find(&init_net, &conn->tuple);
                found_ct = NULL;
 
                if (found != NULL)
@@ -178,12 +178,9 @@ static int count_them(struct xt_connlimit_data *data,
 }
 
 static bool
-connlimit_mt(const struct sk_buff *skb, const struct net_device *in,
-             const struct net_device *out, const struct xt_match *match,
-             const void *matchinfo, int offset, unsigned int protoff,
-             bool *hotdrop)
+connlimit_mt(const struct sk_buff *skb, const struct xt_match_param *par)
 {
-       const struct xt_connlimit_info *info = matchinfo;
+       const struct xt_connlimit_info *info = par->matchinfo;
        union nf_inet_addr addr;
        struct nf_conntrack_tuple tuple;
        const struct nf_conntrack_tuple *tuple_ptr = &tuple;
@@ -195,10 +192,10 @@ connlimit_mt(const struct sk_buff *skb, const struct net_device *in,
        if (ct != NULL)
                tuple_ptr = &ct->tuplehash[0].tuple;
        else if (!nf_ct_get_tuplepr(skb, skb_network_offset(skb),
-                                   match->family, &tuple))
+                                   par->match->family, &tuple))
                goto hotdrop;
 
-       if (match->family == AF_INET6) {
+       if (par->match->family == NFPROTO_IPV6) {
                const struct ipv6hdr *iph = ipv6_hdr(skb);
                memcpy(&addr.ip6, &iph->saddr, sizeof(iph->saddr));
        } else {
@@ -208,19 +205,19 @@ connlimit_mt(const struct sk_buff *skb, const struct net_device *in,
 
        spin_lock_bh(&info->data->lock);
        connections = count_them(info->data, tuple_ptr, &addr,
-                                &info->mask, match);
+                                &info->mask, par->match);
        spin_unlock_bh(&info->data->lock);
 
        if (connections < 0) {
                /* kmalloc failed, drop it entirely */
-               *hotdrop = true;
+               *par->hotdrop = true;
                return false;
        }
 
        return (connections > info->limit) ^ info->inverse;
 
  hotdrop:
-       *hotdrop = true;
+       *par->hotdrop = true;
        return false;
 }
 
@@ -276,7 +273,7 @@ connlimit_mt_destroy(const struct xt_match *match, void *matchinfo)
 static struct xt_match connlimit_mt_reg[] __read_mostly = {
        {
                .name       = "connlimit",
-               .family     = AF_INET,
+               .family     = NFPROTO_IPV4,
                .checkentry = connlimit_mt_check,
                .match      = connlimit_mt,
                .matchsize  = sizeof(struct xt_connlimit_info),
@@ -285,7 +282,7 @@ static struct xt_match connlimit_mt_reg[] __read_mostly = {
        },
        {
                .name       = "connlimit",
-               .family     = AF_INET6,
+               .family     = NFPROTO_IPV6,
                .checkentry = connlimit_mt_check,
                .match      = connlimit_mt,
                .matchsize  = sizeof(struct xt_connlimit_info),
This page took 0.032301 seconds and 5 git commands to generate.