| Joszef Kadlecsik | 2c0aa97 | 2004-06-27 01:12:07 +0000 | [diff] [blame] | 1 | #include <stdio.h> |
| 2 | #include <stdlib.h> |
| 3 | #include <string.h> |
| 4 | #include <libgen.h> |
| 5 | |
| 6 | int iptables_main(int argc, char **argv); |
| 7 | int iptables_save_main(int argc, char **argv); |
| 8 | int iptables_restore_main(int argc, char **argv); |
| Lutz Jaenicke | e78c69c | 2006-12-09 13:06:04 +0000 | [diff] [blame] | 9 | int iptables_xml_main(int argc, char **argv); |
| Joszef Kadlecsik | 2c0aa97 | 2004-06-27 01:12:07 +0000 | [diff] [blame] | 10 | |
| Jan Engelhardt | de054f7 | 2009-07-25 14:28:07 +0200 | [diff] [blame^] | 11 | int main(int argc, char **argv) |
| 12 | { |
| 13 | char *progname; |
| Joszef Kadlecsik | 2c0aa97 | 2004-06-27 01:12:07 +0000 | [diff] [blame] | 14 | |
| Jan Engelhardt | de054f7 | 2009-07-25 14:28:07 +0200 | [diff] [blame^] | 15 | if (argc < 1) { |
| 16 | fprintf(stderr, "ERROR: This should not happen.\n"); |
| 17 | exit(EXIT_FAILURE); |
| 18 | } |
| Joszef Kadlecsik | 2c0aa97 | 2004-06-27 01:12:07 +0000 | [diff] [blame] | 19 | |
| Jan Engelhardt | de054f7 | 2009-07-25 14:28:07 +0200 | [diff] [blame^] | 20 | progname = basename(argv[0]); |
| 21 | if (strcmp(progname, "iptables") == 0) |
| 22 | return iptables_main(argc, argv); |
| 23 | if (strcmp(progname, "iptables-save") == 0) |
| 24 | return iptables_save_main(argc, argv); |
| 25 | if (strcmp(progname, "iptables-restore") == 0) |
| 26 | return iptables_restore_main(argc, argv); |
| 27 | if (strcmp(progname, "iptables-xml") == 0) |
| 28 | return iptables_xml_main(argc, argv); |
| 29 | |
| 30 | ++argv; |
| 31 | --argc; |
| 32 | if (argc < 1) { |
| 33 | fprintf(stderr, "ERROR: No subcommand given.\n"); |
| 34 | exit(EXIT_FAILURE); |
| 35 | } |
| 36 | |
| 37 | progname = basename(argv[0]); |
| 38 | if (strcmp(progname, "main") == 0) |
| 39 | return iptables_main(argc, argv); |
| 40 | if (strcmp(progname, "save") == 0) |
| 41 | return iptables_save_main(argc, argv); |
| 42 | if (strcmp(progname, "restore") == 0) |
| 43 | return iptables_restore_main(argc, argv); |
| 44 | if (strcmp(progname, "xml") == 0) |
| 45 | return iptables_xml_main(argc, argv); |
| 46 | |
| 47 | fprintf(stderr, "iptables multi-purpose version: " |
| 48 | "unknown subcommand \"%s\"\n", progname); |
| 49 | exit(EXIT_FAILURE); |
| Joszef Kadlecsik | 2c0aa97 | 2004-06-27 01:12:07 +0000 | [diff] [blame] | 50 | } |