blob: 671558c507bed76042c277725290682e25b46827 [file] [log] [blame]
Hann-Huei Chioue8665f82007-10-31 11:48:04 +00001#include <stdio.h>
2#include <stdlib.h>
3#include <string.h>
4#include <libgen.h>
5
6int ip6tables_main(int argc, char **argv);
7int ip6tables_save_main(int argc, char **argv);
8int ip6tables_restore_main(int argc, char **argv);
9
Jan Engelhardtde054f72009-07-25 14:28:07 +020010int main(int argc, char **argv)
11{
12 char *progname;
Hann-Huei Chioue8665f82007-10-31 11:48:04 +000013
Jan Engelhardtde054f72009-07-25 14:28:07 +020014 if (argc < 1) {
15 fprintf(stderr, "ERROR: This should not happen.\n");
16 exit(EXIT_FAILURE);
17 }
Hann-Huei Chioue8665f82007-10-31 11:48:04 +000018
Jan Engelhardtde054f72009-07-25 14:28:07 +020019 progname = basename(argv[0]);
20 if (strcmp(progname, "ip6tables") == 0)
21 return ip6tables_main(argc, argv);
22 if (strcmp(progname, "ip6tables-save") == 0)
23 return ip6tables_save_main(argc, argv);
24 if (strcmp(progname, "ip6tables-restore") == 0)
25 return ip6tables_restore_main(argc, argv);
26
27 ++argv;
28 --argc;
29 if (argc < 1) {
30 fprintf(stderr, "ERROR: No subcommand given.\n");
31 exit(EXIT_FAILURE);
32 }
33
34 progname = basename(argv[0]);
35 if (strcmp(progname, "main") == 0)
36 return ip6tables_main(argc, argv);
37 if (strcmp(progname, "save") == 0)
38 return ip6tables_save_main(argc, argv);
39 if (strcmp(progname, "restore") == 0)
40 return ip6tables_restore_main(argc, argv);
41
42 fprintf(stderr, "ip6tables multi-purpose version: "
43 "unknown subcommand \"%s\"\n", progname);
44 exit(EXIT_FAILURE);
Hann-Huei Chioue8665f82007-10-31 11:48:04 +000045}