netfilter: nf_conntrack: prepare l4proto->init_net cleanup
authorGao feng <gaofeng@cn.fujitsu.com>
Thu, 21 Jun 2012 04:36:39 +0000 (04:36 +0000)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 27 Jun 2012 16:31:14 +0000 (18:31 +0200)
l4proto->init contain quite redundant code. We can simplify this
by adding a new parameter l3proto.

This patch prepares that code simplification.

Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/net/netfilter/nf_conntrack_l4proto.h
net/ipv4/netfilter/nf_conntrack_proto_icmp.c
net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c
net/netfilter/nf_conntrack_proto.c
net/netfilter/nf_conntrack_proto_dccp.c
net/netfilter/nf_conntrack_proto_generic.c
net/netfilter/nf_conntrack_proto_gre.c
net/netfilter/nf_conntrack_proto_sctp.c
net/netfilter/nf_conntrack_proto_tcp.c
net/netfilter/nf_conntrack_proto_udp.c
net/netfilter/nf_conntrack_proto_udplite.c

index 81c52b5205f2ea891aec766073af8edfcb527e3d..5dd60f2d02a1e0e24b0ac2f2a849baacfaca8ae4 100644 (file)
@@ -97,7 +97,7 @@ struct nf_conntrack_l4proto {
 #endif
        int     *net_id;
        /* Init l4proto pernet data */
-       int (*init_net)(struct net *net);
+       int (*init_net)(struct net *net, u_int16_t proto);
 
        /* Protocol name */
        const char *name;
index 041923cb67adce410f9d9ca896dd3641bf78baed..76f7a2f657fe1783ff50eb5742a1108bb1d91ab0 100644 (file)
@@ -337,7 +337,7 @@ static struct ctl_table icmp_compat_sysctl_table[] = {
 #endif /* CONFIG_NF_CONNTRACK_PROC_COMPAT */
 #endif /* CONFIG_SYSCTL */
 
-static int icmp_init_net(struct net *net)
+static int icmp_init_net(struct net *net, u_int16_t proto)
 {
        struct nf_icmp_net *in = icmp_pernet(net);
        struct nf_proto_net *pn = (struct nf_proto_net *)in;
index 63ed0121836cffeaac2e6f98e43e4f3aa670fbdb..807ae09df0ca5b2005717f082f98d958ffa21a16 100644 (file)
@@ -333,7 +333,7 @@ static struct ctl_table icmpv6_sysctl_table[] = {
 };
 #endif /* CONFIG_SYSCTL */
 
-static int icmpv6_init_net(struct net *net)
+static int icmpv6_init_net(struct net *net, u_int16_t proto)
 {
        struct nf_icmp_net *in = icmpv6_pernet(net);
        struct nf_proto_net *pn = (struct nf_proto_net *)in;
index 9bd88aa3c74f5c850a5e3125258677bad7d96ae5..6f4b6f3deee5b7312395b827666ecde11a731331 100644 (file)
@@ -461,7 +461,7 @@ int nf_conntrack_l4proto_register(struct net *net,
        int ret = 0;
 
        if (l4proto->init_net) {
-               ret = l4proto->init_net(net);
+               ret = l4proto->init_net(net, l4proto->l3proto);
                if (ret < 0)
                        return ret;
        }
@@ -515,7 +515,8 @@ int nf_conntrack_proto_init(struct net *net)
 {
        unsigned int i;
        int err;
-       err = nf_conntrack_l4proto_generic.init_net(net);
+       err = nf_conntrack_l4proto_generic.init_net(net,
+                                       nf_conntrack_l4proto_generic.l3proto);
        if (err < 0)
                return err;
        err = nf_ct_l4proto_register_sysctl(net,
index c33f76af913ffc39d063e708d0bb47f119f0f3df..52da8f0293b585597575606bc050b46f7d496d3f 100644 (file)
@@ -815,7 +815,7 @@ static struct ctl_table dccp_sysctl_table[] = {
 };
 #endif /* CONFIG_SYSCTL */
 
-static int dccp_init_net(struct net *net)
+static int dccp_init_net(struct net *net, u_int16_t proto)
 {
        struct dccp_net *dn = dccp_pernet(net);
        struct nf_proto_net *pn = (struct nf_proto_net *)dn;
index bb0e74fe0fae5df05c3114286c49a47cd7437a33..d1ed7b44e07916d0fb09246069f8f4bce379fa79 100644 (file)
@@ -135,7 +135,7 @@ static struct ctl_table generic_compat_sysctl_table[] = {
 #endif /* CONFIG_NF_CONNTRACK_PROC_COMPAT */
 #endif /* CONFIG_SYSCTL */
 
-static int generic_init_net(struct net *net)
+static int generic_init_net(struct net *net, u_int16_t proto)
 {
        struct nf_generic_net *gn = generic_pernet(net);
        struct nf_proto_net *pn = (struct nf_proto_net *)gn;
index 5cac41c2fa09eca98ef756387eab97d843e45f05..b09b7af7f6f803414b962039e37d41df9fbb8a29 100644 (file)
@@ -348,7 +348,7 @@ gre_timeout_nla_policy[CTA_TIMEOUT_GRE_MAX+1] = {
 };
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
 
-static int gre_init_net(struct net *net)
+static int gre_init_net(struct net *net, u_int16_t proto)
 {
        struct netns_proto_gre *net_gre = gre_pernet(net);
        int i;
index 8fb0582ad39758708cadd040974539eef8cf4f58..1e7836cead7440ef1b568904ddec65ee734a4c27 100644 (file)
@@ -767,7 +767,7 @@ static int sctp_kmemdup_compat_sysctl_table(struct nf_proto_net *pn)
        return 0;
 }
 
-static int sctpv4_init_net(struct net *net)
+static int sctpv4_init_net(struct net *net, u_int16_t proto)
 {
        int ret;
        struct sctp_net *sn = sctp_pernet(net);
@@ -793,7 +793,7 @@ static int sctpv4_init_net(struct net *net)
        return ret;
 }
 
-static int sctpv6_init_net(struct net *net)
+static int sctpv6_init_net(struct net *net, u_int16_t proto)
 {
        struct sctp_net *sn = sctp_pernet(net);
        struct nf_proto_net *pn = (struct nf_proto_net *)sn;
index 99caa13044775111f2d5eca4b45a08bb8c2d157d..6db9d3c44820dade339d8dd58df08c933103f2f8 100644 (file)
@@ -1593,7 +1593,7 @@ static int tcp_kmemdup_compat_sysctl_table(struct nf_proto_net *pn)
        return 0;
 }
 
-static int tcpv4_init_net(struct net *net)
+static int tcpv4_init_net(struct net *net, u_int16_t proto)
 {
        int i;
        int ret = 0;
@@ -1631,7 +1631,7 @@ static int tcpv4_init_net(struct net *net)
        return ret;
 }
 
-static int tcpv6_init_net(struct net *net)
+static int tcpv6_init_net(struct net *net, u_int16_t proto)
 {
        int i;
        struct nf_tcp_net *tn = tcp_pernet(net);
index a83cf93545cdb6a2108bdfad815b6e6ea8942864..2b978e6fd1c25d6c797408633c132c1f29fa33f6 100644 (file)
@@ -283,7 +283,7 @@ static void udp_init_net_data(struct nf_udp_net *un)
        }
 }
 
-static int udpv4_init_net(struct net *net)
+static int udpv4_init_net(struct net *net, u_int16_t proto)
 {
        int ret;
        struct nf_udp_net *un = udp_pernet(net);
@@ -307,7 +307,7 @@ static int udpv4_init_net(struct net *net)
        return ret;
 }
 
-static int udpv6_init_net(struct net *net)
+static int udpv6_init_net(struct net *net, u_int16_t proto)
 {
        struct nf_udp_net *un = udp_pernet(net);
        struct nf_proto_net *pn = (struct nf_proto_net *)un;
index b32e700f8dde7a50672d55f312d8b56dbc78b4fd..d33e5115803973b20d6673b61d67a6453b1a23d0 100644 (file)
@@ -234,7 +234,7 @@ static struct ctl_table udplite_sysctl_table[] = {
 };
 #endif /* CONFIG_SYSCTL */
 
-static int udplite_init_net(struct net *net)
+static int udplite_init_net(struct net *net, u_int16_t proto)
 {
        int i;
        struct udplite_net *un = udplite_pernet(net);