summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2009-02-15 15:40:47 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2009-02-15 15:40:47 +0100
commitc4ef74420bc09b82146190870186fb067ac163e9 (patch)
tree48a54a159968119991d1d294af7ce613fa471c7d /src/main.c
parentfe42b4085b7dab5847bb29155ebc70b4d7880ebe (diff)
downloadconntrack-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.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index 8f75904..82f0d27 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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);