Subject: Re: [PATCH 02/10] netfilter: add parameter proto for l4proto.init_net

From: Gao feng <[email-masked]>
Date: Fri, 15 Jun 2012 09:38:39 +0800

于 2012年06月15日 01:59, Pablo Neira Ayuso 写道:
> On Thu, Jun 14, 2012 at 06:07:17PM +0800, Gao feng wrote:
>> there are redundancy codes in l4proto's init_net functions.
>> we can use one init_net function and l3proto to impletment
>> the same thing.
>>
>> So we should add l3proto as a parameter for init_net function.
>>
>> Signed-off-by: Gao feng <[email-masked]>
>> ---
>>  include/net/netfilter/nf_conntrack_l4proto.h   |    2 +-
>>  net/ipv4/netfilter/nf_conntrack_proto_icmp.c   |    2 +-
>>  net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c |    2 +-
>>  net/netfilter/nf_conntrack_proto.c             |    6 ++++--
>>  net/netfilter/nf_conntrack_proto_dccp.c        |    2 +-
>>  net/netfilter/nf_conntrack_proto_generic.c     |    2 +-
>>  net/netfilter/nf_conntrack_proto_gre.c         |    2 +-
>>  net/netfilter/nf_conntrack_proto_sctp.c        |    4 ++--
>>  net/netfilter/nf_conntrack_proto_tcp.c         |    4 ++--
>>  net/netfilter/nf_conntrack_proto_udp.c         |    4 ++--
>>  net/netfilter/nf_conntrack_proto_udplite.c     |    2 +-
>>  11 files changed, 17 insertions(+), 15 deletions(-)
>>
>> diff --git a/include/net/netfilter/nf_conntrack_l4proto.h b/include/net/netfilter/nf_conntrack_l4proto.h
>> index 81c52b5..5dd60f2 100644
>> --- a/include/net/netfilter/nf_conntrack_l4proto.h
>> +++ b/include/net/netfilter/nf_conntrack_l4proto.h
>> @@ -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;
>> diff --git a/net/ipv4/netfilter/nf_conntrack_proto_icmp.c b/net/ipv4/netfilter/nf_conntrack_proto_icmp.c
>> index 041923c..76f7a2f 100644
>> --- a/net/ipv4/netfilter/nf_conntrack_proto_icmp.c
>> +++ b/net/ipv4/netfilter/nf_conntrack_proto_icmp.c
>> @@ -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;
>> diff --git a/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c b/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c
>> index 63ed012..807ae09 100644
>> --- a/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c
>> +++ b/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c
>> @@ -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;
>> diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c
>> index a434dd7..8fc0332 100644
>> --- a/net/netfilter/nf_conntrack_proto.c
>> +++ b/net/netfilter/nf_conntrack_proto.c
>> @@ -193,6 +193,7 @@ static int nf_ct_l3proto_register_sysctl(struct net *net,
>>  					    l3proto->ctl_table_path,
>>  					    in->ctl_table,
>>  					    NULL);
>> +
> 
> This entire patchset contains many extra new lines. If you want to
> provide some cleanup, it should come in some follow-up patch.

Ok, I will make a follow-up patch to do some cleanup.

> 
>>  		if (err < 0) {
>>  			kfree(in->ctl_table);
>>  			in->ctl_table = NULL;
>> @@ -460,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;
>>  	}
>> @@ -514,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);
> 
> You have to make sure that lines break at 80-chars per column.
> 
> Something like this should be fine:
> 
>         err = nf_conntrack_l4proto_generic.init_net(net,
>                                         nf_conntrack_l4proto_generic.l3proto);
> 
> 

Get it, thanks.