netfilter: ecache: Refine the nf_ct_deliver_cached_events
authorGao Feng <fgao@ikuai8.com>
Thu, 13 Apr 2017 01:35:49 +0000 (09:35 +0800)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sat, 15 Apr 2017 09:43:49 +0000 (11:43 +0200)
commit6e354a5e565110c3a0eb7da3788340d4809a42b6
tree6b0dcd1febc964a1afe5afc7821f02a641b3d459
parent7025bac47fba90cb39a53c011ee78f7f66d72793
netfilter: ecache: Refine the nf_ct_deliver_cached_events

1. Remove single !events condition check to deliver the missed event
even though there is no new event happened.

Consider this case:
1) nf_ct_deliver_cached_events is invoked at the first time, the
event is failed to deliver, then the missed is set.
2) nf_ct_deliver_cached_events is invoked again, but there is no
any new event happened.
The missed event is lost really.

It would try to send the missed event again after remove this check.
And it is ok if there is no missed event because the latter check
!((events | missed) & e->ctmask) could avoid it.

2. Correct the return value check of notify->fcn.
When send the event successfully, it returns 0, not postive value.

Signed-off-by: Gao Feng <fgao@ikuai8.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_ecache.c