Loading net/netfilter/xt_connlimit.c +14 −14 Original line number Diff line number Diff line Loading @@ -33,13 +33,13 @@ /* we will save the tuples of all connections we care about */ struct xt_connlimit_conn { struct list_head list; struct hlist_node node; struct nf_conntrack_tuple tuple; union nf_inet_addr addr; }; struct xt_connlimit_data { struct list_head iphash[256]; struct hlist_head iphash[256]; spinlock_t lock; }; Loading Loading @@ -102,9 +102,9 @@ static int count_them(struct net *net, { const struct nf_conntrack_tuple_hash *found; struct xt_connlimit_conn *conn; struct xt_connlimit_conn *tmp; struct hlist_node *pos, *n; struct nf_conn *found_ct; struct list_head *hash; struct hlist_head *hash; bool addit = true; int matches = 0; Loading @@ -116,7 +116,7 @@ static int count_them(struct net *net, rcu_read_lock(); /* check the saved connections */ list_for_each_entry_safe(conn, tmp, hash, list) { hlist_for_each_entry_safe(conn, pos, n, hash, node) { found = nf_conntrack_find_get(net, NF_CT_DEFAULT_ZONE, &conn->tuple); found_ct = NULL; Loading @@ -136,7 +136,7 @@ static int count_them(struct net *net, if (found == NULL) { /* this one is gone */ list_del(&conn->list); hlist_del(&conn->node); kfree(conn); continue; } Loading @@ -147,7 +147,7 @@ static int count_them(struct net *net, * closed already -> ditch it */ nf_ct_put(found_ct); list_del(&conn->list); hlist_del(&conn->node); kfree(conn); continue; } Loading @@ -167,7 +167,7 @@ static int count_them(struct net *net, return -ENOMEM; conn->tuple = *tuple; conn->addr = *addr; list_add(&conn->list, hash); hlist_add_head(&conn->node, hash); ++matches; } Loading Loading @@ -246,7 +246,7 @@ static int connlimit_mt_check(const struct xt_mtchk_param *par) spin_lock_init(&info->data->lock); for (i = 0; i < ARRAY_SIZE(info->data->iphash); ++i) INIT_LIST_HEAD(&info->data->iphash[i]); INIT_HLIST_HEAD(&info->data->iphash[i]); return 0; } Loading @@ -255,15 +255,15 @@ static void connlimit_mt_destroy(const struct xt_mtdtor_param *par) { const struct xt_connlimit_info *info = par->matchinfo; struct xt_connlimit_conn *conn; struct xt_connlimit_conn *tmp; struct list_head *hash = info->data->iphash; struct hlist_node *pos, *n; struct hlist_head *hash = info->data->iphash; unsigned int i; nf_ct_l3proto_module_put(par->family); for (i = 0; i < ARRAY_SIZE(info->data->iphash); ++i) { list_for_each_entry_safe(conn, tmp, &hash[i], list) { list_del(&conn->list); hlist_for_each_entry_safe(conn, pos, n, &hash[i], node) { hlist_del(&conn->node); kfree(conn); } } Loading Loading
net/netfilter/xt_connlimit.c +14 −14 Original line number Diff line number Diff line Loading @@ -33,13 +33,13 @@ /* we will save the tuples of all connections we care about */ struct xt_connlimit_conn { struct list_head list; struct hlist_node node; struct nf_conntrack_tuple tuple; union nf_inet_addr addr; }; struct xt_connlimit_data { struct list_head iphash[256]; struct hlist_head iphash[256]; spinlock_t lock; }; Loading Loading @@ -102,9 +102,9 @@ static int count_them(struct net *net, { const struct nf_conntrack_tuple_hash *found; struct xt_connlimit_conn *conn; struct xt_connlimit_conn *tmp; struct hlist_node *pos, *n; struct nf_conn *found_ct; struct list_head *hash; struct hlist_head *hash; bool addit = true; int matches = 0; Loading @@ -116,7 +116,7 @@ static int count_them(struct net *net, rcu_read_lock(); /* check the saved connections */ list_for_each_entry_safe(conn, tmp, hash, list) { hlist_for_each_entry_safe(conn, pos, n, hash, node) { found = nf_conntrack_find_get(net, NF_CT_DEFAULT_ZONE, &conn->tuple); found_ct = NULL; Loading @@ -136,7 +136,7 @@ static int count_them(struct net *net, if (found == NULL) { /* this one is gone */ list_del(&conn->list); hlist_del(&conn->node); kfree(conn); continue; } Loading @@ -147,7 +147,7 @@ static int count_them(struct net *net, * closed already -> ditch it */ nf_ct_put(found_ct); list_del(&conn->list); hlist_del(&conn->node); kfree(conn); continue; } Loading @@ -167,7 +167,7 @@ static int count_them(struct net *net, return -ENOMEM; conn->tuple = *tuple; conn->addr = *addr; list_add(&conn->list, hash); hlist_add_head(&conn->node, hash); ++matches; } Loading Loading @@ -246,7 +246,7 @@ static int connlimit_mt_check(const struct xt_mtchk_param *par) spin_lock_init(&info->data->lock); for (i = 0; i < ARRAY_SIZE(info->data->iphash); ++i) INIT_LIST_HEAD(&info->data->iphash[i]); INIT_HLIST_HEAD(&info->data->iphash[i]); return 0; } Loading @@ -255,15 +255,15 @@ static void connlimit_mt_destroy(const struct xt_mtdtor_param *par) { const struct xt_connlimit_info *info = par->matchinfo; struct xt_connlimit_conn *conn; struct xt_connlimit_conn *tmp; struct list_head *hash = info->data->iphash; struct hlist_node *pos, *n; struct hlist_head *hash = info->data->iphash; unsigned int i; nf_ct_l3proto_module_put(par->family); for (i = 0; i < ARRAY_SIZE(info->data->iphash); ++i) { list_for_each_entry_safe(conn, tmp, &hash[i], list) { list_del(&conn->list); hlist_for_each_entry_safe(conn, pos, n, &hash[i], node) { hlist_del(&conn->node); kfree(conn); } } Loading