diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2009-02-15 15:40:47 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2009-02-15 15:40:47 +0100 |
commit | c4ef74420bc09b82146190870186fb067ac163e9 (patch) | |
tree | 48a54a159968119991d1d294af7ce613fa471c7d /src/main.c | |
parent | fe42b4085b7dab5847bb29155ebc70b4d7880ebe (diff) | |
download | conntrack-tools-c4ef74420bc09b82146190870186fb067ac163e9.tar.gz conntrack-tools-c4ef74420bc09b82146190870186fb067ac163e9.zip |
conntrackd: add `-f internal' and `-f external' options
This patch allows flushing the internal and/or the external cache.
The `-f' with no extra parameters still works to flush both the
internal and the external cache.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 23 |
1 files changed, 21 insertions, 2 deletions
@@ -38,7 +38,7 @@ static const char usage_daemon_commands[] = static const char usage_client_commands[] = "Client mode commands:\n" " -c, commit external cache to conntrack table\n" - " -f, flush internal and external cache\n" + " -f [|internal|external], flush internal and external cache\n" " -F, flush kernel conntrack table\n" " -i, display content of the internal cache\n" " -e, display the content of the external cache\n" @@ -144,7 +144,26 @@ int main(int argc, char *argv[]) break; case 'f': set_operation_mode(&type, REQUEST, argv); - action = FLUSH_CACHE; + if (i+1 < argc && argv[i+1][0] != '-') { + if (strncmp(argv[i+1], "internal", + strlen(argv[i+1])) == 0) { + action = FLUSH_INT_CACHE; + i++; + } else if (strncmp(argv[i+1], "external", + strlen(argv[i+1])) == 0) { + action = FLUSH_EXT_CACHE; + i++; + } else { + fprintf(stderr, "ERROR: unknown " + "parameter `%s' for " + "option `-f'\n", + argv[i+1]); + exit(EXIT_FAILURE); + } + } else { + /* default to general flushing */ + action = FLUSH_CACHE; + } break; case 'R': set_operation_mode(&type, REQUEST, argv); |