126ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#include <stdio.h>
226ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#include <stdlib.h>
326ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#include <string.h>
426ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#include "xshared.h"
526ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski
64598ed7d3e22d74ffaad7948ddc3455ac9aa7576Maciej Żenczykowski#include "xtables-multi.h"
74598ed7d3e22d74ffaad7948ddc3455ac9aa7576Maciej Żenczykowski
826ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#ifdef ENABLE_IPV4
926ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#include "iptables-multi.h"
1026ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#endif
1126ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski
1226ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#ifdef ENABLE_IPV6
1326ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#include "ip6tables-multi.h"
1426ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#endif
1526ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski
1626ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowskistatic const struct subcommand multi_subcommands[] = {
1726ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#ifdef ENABLE_IPV4
1826ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"iptables",            iptables_main},
1926ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"main4",               iptables_main},
2026ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"iptables-save",       iptables_save_main},
2126ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"save4",               iptables_save_main},
2226ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"iptables-restore",    iptables_restore_main},
2326ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"restore4",            iptables_restore_main},
2426ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#endif
254598ed7d3e22d74ffaad7948ddc3455ac9aa7576Maciej Żenczykowski	{"iptables-xml",        iptables_xml_main},
264598ed7d3e22d74ffaad7948ddc3455ac9aa7576Maciej Żenczykowski	{"xml",                 iptables_xml_main},
2726ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#ifdef ENABLE_IPV6
2826ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"ip6tables",           ip6tables_main},
2926ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"main6",               ip6tables_main},
3026ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"ip6tables-save",      ip6tables_save_main},
3126ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"save6",               ip6tables_save_main},
3226ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"ip6tables-restore",   ip6tables_restore_main},
3326ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{"restore6",            ip6tables_restore_main},
3426ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski#endif
3526ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	{NULL},
3626ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski};
3726ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski
3826ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowskiint main(int argc, char **argv)
3926ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski{
4026ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski	return subcmd_main(argc, argv, multi_subcommands);
4126ed9ea93564bb5ffdb5238eaa202cd9bcf6d6d1Maciej Żenczykowski}
42