]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/netfilter/xt_connlimit.c
module: neaten __find_symbol, rename to find_symbol
[linux-2.6-omap-h63xx.git] / net / netfilter / xt_connlimit.c
index e00ecd974fa3cf9882b406d5c33157f1fd29d93c..2e89a00df92cfe223f93158099cf53713ebcf449 100644 (file)
@@ -72,9 +72,7 @@ connlimit_iphash6(const union nf_inet_addr *addr,
 
 static inline bool already_closed(const struct nf_conn *conn)
 {
-       u_int16_t proto = conn->tuplehash[0].tuple.dst.protonum;
-
-       if (proto == IPPROTO_TCP)
+       if (nf_ct_protonum(conn) == IPPROTO_TCP)
                return conn->proto.tcp.state == TCP_CONNTRACK_TIME_WAIT;
        else
                return 0;
@@ -106,10 +104,10 @@ static int count_them(struct xt_connlimit_data *data,
                      const union nf_inet_addr *mask,
                      const struct xt_match *match)
 {
-       struct nf_conntrack_tuple_hash *found;
+       const struct nf_conntrack_tuple_hash *found;
        struct xt_connlimit_conn *conn;
        struct xt_connlimit_conn *tmp;
-       struct nf_conn *found_ct;
+       const struct nf_conn *found_ct;
        struct list_head *hash;
        bool addit = true;
        int matches = 0;
@@ -120,11 +118,11 @@ static int count_them(struct xt_connlimit_data *data,
        else
                hash = &data->iphash[connlimit_iphash(addr->ip & mask->ip)];
 
-       read_lock_bh(&nf_conntrack_lock);
+       rcu_read_lock();
 
        /* check the saved connections */
        list_for_each_entry_safe(conn, tmp, hash, list) {
-               found    = __nf_conntrack_find(&conn->tuple, NULL);
+               found    = __nf_conntrack_find(&conn->tuple);
                found_ct = NULL;
 
                if (found != NULL)
@@ -163,7 +161,7 @@ static int count_them(struct xt_connlimit_data *data,
                        ++matches;
        }
 
-       read_unlock_bh(&nf_conntrack_lock);
+       rcu_read_unlock();
 
        if (addit) {
                /* save the new connection in our list */
@@ -256,7 +254,7 @@ connlimit_mt_check(const char *tablename, const void *ip,
 static void
 connlimit_mt_destroy(const struct xt_match *match, void *matchinfo)
 {
-       struct xt_connlimit_info *info = matchinfo;
+       const struct xt_connlimit_info *info = matchinfo;
        struct xt_connlimit_conn *conn;
        struct xt_connlimit_conn *tmp;
        struct list_head *hash = info->data->iphash;