netfilter: nf_conntrack: prepare l4proto->init_net cleanup
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>
This commit is contained in:
committed by
Pablo Neira Ayuso
parent
fa0f61f05e
commit
f1caad2745
@@ -97,7 +97,7 @@ struct nf_conntrack_l4proto {
|
|||||||
#endif
|
#endif
|
||||||
int *net_id;
|
int *net_id;
|
||||||
/* Init l4proto pernet data */
|
/* Init l4proto pernet data */
|
||||||
int (*init_net)(struct net *net);
|
int (*init_net)(struct net *net, u_int16_t proto);
|
||||||
|
|
||||||
/* Protocol name */
|
/* Protocol name */
|
||||||
const char *name;
|
const char *name;
|
||||||
|
|||||||
@@ -337,7 +337,7 @@ static struct ctl_table icmp_compat_sysctl_table[] = {
|
|||||||
#endif /* CONFIG_NF_CONNTRACK_PROC_COMPAT */
|
#endif /* CONFIG_NF_CONNTRACK_PROC_COMPAT */
|
||||||
#endif /* CONFIG_SYSCTL */
|
#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_icmp_net *in = icmp_pernet(net);
|
||||||
struct nf_proto_net *pn = (struct nf_proto_net *)in;
|
struct nf_proto_net *pn = (struct nf_proto_net *)in;
|
||||||
|
|||||||
@@ -333,7 +333,7 @@ static struct ctl_table icmpv6_sysctl_table[] = {
|
|||||||
};
|
};
|
||||||
#endif /* CONFIG_SYSCTL */
|
#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_icmp_net *in = icmpv6_pernet(net);
|
||||||
struct nf_proto_net *pn = (struct nf_proto_net *)in;
|
struct nf_proto_net *pn = (struct nf_proto_net *)in;
|
||||||
|
|||||||
@@ -461,7 +461,7 @@ int nf_conntrack_l4proto_register(struct net *net,
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
if (l4proto->init_net) {
|
if (l4proto->init_net) {
|
||||||
ret = l4proto->init_net(net);
|
ret = l4proto->init_net(net, l4proto->l3proto);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -515,7 +515,8 @@ int nf_conntrack_proto_init(struct net *net)
|
|||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
int err;
|
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)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
err = nf_ct_l4proto_register_sysctl(net,
|
err = nf_ct_l4proto_register_sysctl(net,
|
||||||
|
|||||||
@@ -815,7 +815,7 @@ static struct ctl_table dccp_sysctl_table[] = {
|
|||||||
};
|
};
|
||||||
#endif /* CONFIG_SYSCTL */
|
#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 dccp_net *dn = dccp_pernet(net);
|
||||||
struct nf_proto_net *pn = (struct nf_proto_net *)dn;
|
struct nf_proto_net *pn = (struct nf_proto_net *)dn;
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ static struct ctl_table generic_compat_sysctl_table[] = {
|
|||||||
#endif /* CONFIG_NF_CONNTRACK_PROC_COMPAT */
|
#endif /* CONFIG_NF_CONNTRACK_PROC_COMPAT */
|
||||||
#endif /* CONFIG_SYSCTL */
|
#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_generic_net *gn = generic_pernet(net);
|
||||||
struct nf_proto_net *pn = (struct nf_proto_net *)gn;
|
struct nf_proto_net *pn = (struct nf_proto_net *)gn;
|
||||||
|
|||||||
@@ -348,7 +348,7 @@ gre_timeout_nla_policy[CTA_TIMEOUT_GRE_MAX+1] = {
|
|||||||
};
|
};
|
||||||
#endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
|
#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);
|
struct netns_proto_gre *net_gre = gre_pernet(net);
|
||||||
int i;
|
int i;
|
||||||
|
|||||||
@@ -767,7 +767,7 @@ static int sctp_kmemdup_compat_sysctl_table(struct nf_proto_net *pn)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sctpv4_init_net(struct net *net)
|
static int sctpv4_init_net(struct net *net, u_int16_t proto)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct sctp_net *sn = sctp_pernet(net);
|
struct sctp_net *sn = sctp_pernet(net);
|
||||||
@@ -793,7 +793,7 @@ static int sctpv4_init_net(struct net *net)
|
|||||||
return ret;
|
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 sctp_net *sn = sctp_pernet(net);
|
||||||
struct nf_proto_net *pn = (struct nf_proto_net *)sn;
|
struct nf_proto_net *pn = (struct nf_proto_net *)sn;
|
||||||
|
|||||||
@@ -1593,7 +1593,7 @@ static int tcp_kmemdup_compat_sysctl_table(struct nf_proto_net *pn)
|
|||||||
return 0;
|
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 i;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
@@ -1631,7 +1631,7 @@ static int tcpv4_init_net(struct net *net)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tcpv6_init_net(struct net *net)
|
static int tcpv6_init_net(struct net *net, u_int16_t proto)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
struct nf_tcp_net *tn = tcp_pernet(net);
|
struct nf_tcp_net *tn = tcp_pernet(net);
|
||||||
|
|||||||
@@ -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;
|
int ret;
|
||||||
struct nf_udp_net *un = udp_pernet(net);
|
struct nf_udp_net *un = udp_pernet(net);
|
||||||
@@ -307,7 +307,7 @@ static int udpv4_init_net(struct net *net)
|
|||||||
return ret;
|
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_udp_net *un = udp_pernet(net);
|
||||||
struct nf_proto_net *pn = (struct nf_proto_net *)un;
|
struct nf_proto_net *pn = (struct nf_proto_net *)un;
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ static struct ctl_table udplite_sysctl_table[] = {
|
|||||||
};
|
};
|
||||||
#endif /* CONFIG_SYSCTL */
|
#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;
|
int i;
|
||||||
struct udplite_net *un = udplite_pernet(net);
|
struct udplite_net *un = udplite_pernet(net);
|
||||||
|
|||||||
Reference in New Issue
Block a user