summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArturo Borrero Gonzalez <arturo@debian.org>2017-05-09 09:41:10 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2017-05-15 12:39:10 +0200
commitd31baccc493ec6484bfcb51d6bce78ff8c3ddc64 (patch)
tree8aac32cd5f5f804dbfcf5092171abdb641024245
parent131df891f77dc75515d5eabdedd9818105d29f5a (diff)
conntrackd: consolidate more code to use resync_send()
These digest_msg() functions can use resync_send() as well. While at it, bring back a call to kernel_resync() in notrack_local() which was lost in a previous commit. Fixes: 131df891f77dc75515d5eabdedd9818105d29f5a ("conntrackd: factorize resync operations") Signed-off-by: Arturo Borrero Gonzalez <arturo@debian.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--src/sync-ftfw.c5
-rw-r--r--src/sync-notrack.c15
2 files changed, 8 insertions, 12 deletions
diff --git a/src/sync-ftfw.c b/src/sync-ftfw.c
index 6fdb058..6dca3dc 100644
--- a/src/sync-ftfw.c
+++ b/src/sync-ftfw.c
@@ -313,10 +313,7 @@ static int digest_msg(const struct nethdr *net)
} else if (IS_RESYNC(net)) {
dlog(LOG_NOTICE, "resync requested by other node");
- cache_iterate(STATE(mode)->internal->ct.data, NULL,
- do_cache_to_tx);
- cache_iterate(STATE(mode)->internal->exp.data, NULL,
- do_cache_to_tx);
+ resync_send(do_cache_to_tx);
return MSG_CTL;
} else if (IS_ALIVE(net))
diff --git a/src/sync-notrack.c b/src/sync-notrack.c
index 7ce62d9..1b53e1b 100644
--- a/src/sync-notrack.c
+++ b/src/sync-notrack.c
@@ -107,7 +107,10 @@ static int notrack_local(int fd, int type, void *data)
resync_req();
break;
case SEND_BULK:
- resync_send(do_cache_to_tx);
+ if (CONFIG(sync).internal_cache_disable)
+ kernel_resync();
+ else
+ resync_send(do_cache_to_tx);
break;
default:
ret = 0;
@@ -124,14 +127,10 @@ static int digest_msg(const struct nethdr *net)
if (IS_RESYNC(net)) {
dlog(LOG_NOTICE, "resync requested by other node");
- if (CONFIG(sync).internal_cache_disable) {
+ if (CONFIG(sync).internal_cache_disable)
kernel_resync();
- } else {
- cache_iterate(STATE(mode)->internal->ct.data,
- NULL, do_cache_to_tx);
- cache_iterate(STATE(mode)->internal->exp.data,
- NULL, do_cache_to_tx);
- }
+ else
+ resync_send(do_cache_to_tx);
return MSG_CTL;
}