Re: [PATCH nf-next 1/1] netfilter: cttimeout: Refine cttimeout_del_timeout

2017-04-13 Thread Pablo Neira Ayuso
On Fri, Apr 07, 2017 at 07:25:36PM +0800, gfree.w...@foxmail.com wrote:
> From: Gao Feng 
> 
> 1. Return one error when try to delete all timeouts and meet one erorr;
> 2. Delete the condition block when fail to delete specified timeout.
> It is more clear that it would stop the loop when find one matched timeout.
> 
> Signed-off-by: Gao Feng 
> ---
>  net/netfilter/nfnetlink_cttimeout.c | 15 +--
>  1 file changed, 9 insertions(+), 6 deletions(-)
> 
> diff --git a/net/netfilter/nfnetlink_cttimeout.c 
> b/net/netfilter/nfnetlink_cttimeout.c
> index baa75f3..220847a 100644
> --- a/net/netfilter/nfnetlink_cttimeout.c
> +++ b/net/netfilter/nfnetlink_cttimeout.c
> @@ -361,11 +361,17 @@ static int cttimeout_del_timeout(struct net *net, 
> struct sock *ctnl,
>   char *name;
>  
>   if (!cda[CTA_TIMEOUT_NAME]) {
> + int cur_ret;
> +
> + ret = 0;
>   list_for_each_entry_safe(cur, tmp, &net->nfct_timeout_list,
> -  head)
> - ctnl_timeout_try_del(net, cur);

This code ignores ctnl_timeout_try_del() on purpose, to implement the
flush operation.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH nf-next 1/1] netfilter: cttimeout: Refine cttimeout_del_timeout

2017-04-07 Thread gfree . wind
From: Gao Feng 

1. Return one error when try to delete all timeouts and meet one erorr;
2. Delete the condition block when fail to delete specified timeout.
It is more clear that it would stop the loop when find one matched timeout.

Signed-off-by: Gao Feng 
---
 net/netfilter/nfnetlink_cttimeout.c | 15 +--
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/net/netfilter/nfnetlink_cttimeout.c 
b/net/netfilter/nfnetlink_cttimeout.c
index baa75f3..220847a 100644
--- a/net/netfilter/nfnetlink_cttimeout.c
+++ b/net/netfilter/nfnetlink_cttimeout.c
@@ -361,11 +361,17 @@ static int cttimeout_del_timeout(struct net *net, struct 
sock *ctnl,
char *name;
 
if (!cda[CTA_TIMEOUT_NAME]) {
+   int cur_ret;
+
+   ret = 0;
list_for_each_entry_safe(cur, tmp, &net->nfct_timeout_list,
-head)
-   ctnl_timeout_try_del(net, cur);
+head) {
+   cur_ret = ctnl_timeout_try_del(net, cur);
+   if (cur_ret && !ret)
+   ret = cur_ret;
+   }
 
-   return 0;
+   return ret;
}
name = nla_data(cda[CTA_TIMEOUT_NAME]);
 
@@ -374,9 +380,6 @@ static int cttimeout_del_timeout(struct net *net, struct 
sock *ctnl,
continue;
 
ret = ctnl_timeout_try_del(net, cur);
-   if (ret < 0)
-   return ret;
-
break;
}
return ret;
-- 
1.9.1




--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html