diff options
author | Arturo Borrero Gonzalez <arturo@debian.org> | 2017-04-20 19:28:11 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2017-05-08 19:50:28 +0200 |
commit | 131df891f77dc75515d5eabdedd9818105d29f5a (patch) | |
tree | f3796e75c40ebd4ac63d0a1d013934b358d22abf /src/resync.c | |
parent | 381827a8152d27d8afe92a914968b814ec9ac155 (diff) |
conntrackd: factorize resync operations
Resync operations factorization. There are two:
* resync_send --> conntrackd -B (send bulk resync)
* resync_req --> conntrackd -n (request resync)
Future patches reuse this factorized code.
Signed-off-by: Arturo Borrero Gonzalez <arturo@debian.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/resync.c')
-rw-r--r-- | src/resync.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/resync.c b/src/resync.c new file mode 100644 index 0000000..dbb2b6f --- /dev/null +++ b/src/resync.c @@ -0,0 +1,40 @@ +/* + * (C) 2006-2011 by Pablo Neira Ayuso <pablo@netfilter.org> + * (C) 2011 by Vyatta Inc. <http://www.vyatta.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "conntrackd.h" +#include "network.h" +#include "log.h" +#include "queue_tx.h" +#include "resync.h" +#include "cache.h" + +void resync_req(void) +{ + dlog(LOG_NOTICE, "resync requested"); + tx_queue_add_ctlmsg(NET_F_RESYNC, 0, 0); +} + +void resync_send(int (*do_cache_to_tx)(void *data1, void *data2)) +{ + dlog(LOG_NOTICE, "sending bulk update"); + cache_iterate(STATE(mode)->internal->ct.data, + NULL, do_cache_to_tx); + cache_iterate(STATE(mode)->internal->exp.data, + NULL, do_cache_to_tx); +} |