summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2021-01-14 23:15:57 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2021-01-14 23:23:50 +0100
commit3132697b9a0f6ce9574f52e56b0f2a13624e5aa7 (patch)
tree38d6d6e4104de0f5572178799f31ea05e6dd5605 /src
parent258b4540f451277950c95c87183002ed53960331 (diff)
conntrack: add do_command_ct()
Wrap the code to run the command around the do_command_ct() function. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/conntrack.c44
1 files changed, 24 insertions, 20 deletions
diff --git a/src/conntrack.c b/src/conntrack.c
index 0192996..987d936 100644
--- a/src/conntrack.c
+++ b/src/conntrack.c
@@ -1444,8 +1444,7 @@ split_address_and_port(const char *arg, char **address, char **port_str)
}
}
-static void
-usage(char *prog)
+static void usage(const char *prog)
{
fprintf(stdout, "Command line interface for the connection "
"tracking system. Version %s\n", VERSION);
@@ -3084,26 +3083,12 @@ static void do_parse(struct ct_cmd *ct_cmd, int argc, char *argv[])
ct_cmd->socketbuffersize = socketbuffersize;
}
-int main(int argc, char *argv[])
+static int do_command_ct(const char *progname, struct ct_cmd *cmd)
{
- struct ct_cmd _cmd = {}, *cmd = &_cmd;
+ struct nfct_filter_dump *filter_dump;
int res = 0;
- register_tcp();
- register_udp();
- register_udplite();
- register_sctp();
- register_dccp();
- register_icmp();
- register_icmpv6();
- register_gre();
- register_unknown();
-
- do_parse(cmd, argc, argv);
-
switch(cmd->command) {
- struct nfct_filter_dump *filter_dump;
-
case CT_LIST:
if (cmd->type == CT_TABLE_DYING) {
if (nfct_mnl_socket_open(0) < 0)
@@ -3508,12 +3493,12 @@ try_proc:
printf("%s v%s (conntrack-tools)\n", PROGNAME, VERSION);
break;
case CT_HELP:
- usage(argv[0]);
+ usage(progname);
if (options & CT_OPT_PROTO)
extension_help(h, cmd->protonum);
break;
default:
- usage(argv[0]);
+ usage(progname);
break;
}
@@ -3535,3 +3520,22 @@ try_proc:
return EXIT_SUCCESS;
}
+
+int main(int argc, char *argv[])
+{
+ struct ct_cmd _cmd = {}, *cmd = &_cmd;
+
+ register_tcp();
+ register_udp();
+ register_udplite();
+ register_sctp();
+ register_dccp();
+ register_icmp();
+ register_icmpv6();
+ register_gre();
+ register_unknown();
+
+ do_parse(cmd, argc, argv);
+
+ return do_command_ct(argv[0], cmd);
+}