summaryrefslogtreecommitdiffstats
path: root/src/sync-mode.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2012-07-30 02:22:58 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2012-07-30 02:22:58 +0200
commit3cd88a6d9c66360dad983578259ab92ba083fca8 (patch)
treec373f88f6279a79465d17ad6598550fbdc174e3a /src/sync-mode.c
parent7eb63b5872f07903d952aa5cfd6ad0e7647a066a (diff)
conntrackd: implement selective flushing for `-t' and `-F' commands
This patch changes the current behaviour of `-t' and `-F' commands, that results in flushing the kernel conntrack table. With this patch, the entries that match the Filter clauses in conntrackd.conf are ignored. This fixes the situation in which some local ssh connection to the firewall is lost during the failover (since `-t' is invoked from the primary-backup.sh script). Note that the Filter clause tells what entries have to be ignored, ie. the entries that do not need to be replicated. It makes sense not to flush entries that are not replicated (usually traffic to the local firewall). Reported-by: Gaurav Sinha <gaurav.sinha@vyatta.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/sync-mode.c')
-rw-r--r--src/sync-mode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/sync-mode.c b/src/sync-mode.c
index 7fb3eba..17f866a 100644
--- a/src/sync-mode.c
+++ b/src/sync-mode.c
@@ -304,7 +304,7 @@ static void do_reset_cache_alarm(struct alarm_block *a, void *data)
* meanwhile the parent process handles events. */
if (fork_process_new(CTD_PROC_FLUSH, CTD_PROC_F_EXCL,
NULL, NULL) == 0) {
- nl_flush_conntrack_table(STATE(flush));
+ nl_flush_conntrack_table_selective();
exit(EXIT_SUCCESS);
}
/* this is not required if events don't get lost */