|
@@ -149,6 +149,10 @@ static int xt_ct_tg_check_v0(const struct xt_tgchk_param *par)
|
|
|
|
|
|
__set_bit(IPS_TEMPLATE_BIT, &ct->status);
|
|
|
__set_bit(IPS_CONFIRMED_BIT, &ct->status);
|
|
|
+
|
|
|
+ /* Overload tuple linked list to put us in template list. */
|
|
|
+ hlist_nulls_add_head_rcu(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode,
|
|
|
+ &par->net->ct.tmpl);
|
|
|
out:
|
|
|
info->ct = ct;
|
|
|
return 0;
|
|
@@ -289,6 +293,10 @@ static int xt_ct_tg_check_v1(const struct xt_tgchk_param *par)
|
|
|
|
|
|
__set_bit(IPS_TEMPLATE_BIT, &ct->status);
|
|
|
__set_bit(IPS_CONFIRMED_BIT, &ct->status);
|
|
|
+
|
|
|
+ /* Overload tuple linked list to put us in template list. */
|
|
|
+ hlist_nulls_add_head_rcu(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode,
|
|
|
+ &par->net->ct.tmpl);
|
|
|
out:
|
|
|
info->ct = ct;
|
|
|
return 0;
|