--- fwsync/patches/ipfw_main.patch 2022/06/22 13:01:55 1.1 +++ fwsync/patches/ipfw_main.patch 2022/07/11 17:03:15 1.2 @@ -1,8 +1,8 @@ diff --git a/sbin/ipfw/main.c b/sbin/ipfw/main.c -index 89f21062811..9c773aa4364 100644 +index 1b9c7f324a9..0b2ca745e4d 100644 --- a/sbin/ipfw/main.c +++ b/sbin/ipfw/main.c -@@ -41,6 +41,8 @@ help(void) +@@ -42,6 +42,8 @@ help(void) "\tipfw [-abcdefhnNqStTv] \n\n" "where is one of the following:\n\n" "add [num] [set N] [prob x] RULE-BODY\n" @@ -11,7 +11,7 @@ index 89f21062811..9c773aa4364 100644 "{pipe|queue} N config PIPE-BODY\n" "[pipe|queue] {zero|delete|show} [N{,N}]\n" "nat N config {ip IPADDR|if IFNAME|log|deny_in|same_ports|unreg_only|unreg_cgn|\n" -@@ -364,11 +366,14 @@ ipfw_main(int oldac, char **oldav) +@@ -404,11 +406,14 @@ ipfw_main(int oldac, char **oldav) /* * Optional: pipe, queue or nat. */ @@ -19,14 +19,14 @@ index 89f21062811..9c773aa4364 100644 g_co.do_nat = 0; g_co.do_pipe = 0; g_co.use_set = 0; - if (!strncmp(*av, "nat", strlen(*av))) + if (is_ipfw() && !strncmp(*av, "nat", strlen(*av))) g_co.do_nat = 1; + else if (!strncmp(*av, "sync", strlen(*av))) + g_co.do_sync = 1; else if (!strncmp(*av, "pipe", strlen(*av))) g_co.do_pipe = 1; else if (_substrcmp(*av, "queue") == 0) -@@ -388,7 +393,7 @@ ipfw_main(int oldac, char **oldav) +@@ -428,7 +433,7 @@ ipfw_main(int oldac, char **oldav) } } @@ -35,7 +35,7 @@ index 89f21062811..9c773aa4364 100644 ac--; av++; } -@@ -399,7 +404,7 @@ ipfw_main(int oldac, char **oldav) +@@ -439,7 +444,7 @@ ipfw_main(int oldac, char **oldav) * but the code is easier to parse as 'nat|pipe config NN' * so we swap the two arguments. */ @@ -44,7 +44,7 @@ index 89f21062811..9c773aa4364 100644 char *p = av[0]; av[0] = av[1]; -@@ -411,10 +416,20 @@ ipfw_main(int oldac, char **oldav) +@@ -455,6 +460,16 @@ ipfw_main(int oldac, char **oldav) ipfw_add(av); else if (g_co.do_nat && _substrcmp(*av, "show") == 0) ipfw_show_nat(ac, av); @@ -56,12 +56,8 @@ index 89f21062811..9c773aa4364 100644 + ipfw_stop_sync(ac, av); + else if (g_co.do_sync && _substrcmp(*av, "flush") == 0) + ipfw_flush_sync(ac, av); ++ else if (g_co.do_sync&& _substrcmp(*av, "config") == 0) ++ ipfw_config_sync(ac, av); else if (g_co.do_pipe && _substrcmp(*av, "config") == 0) ipfw_config_pipe(ac, av); else if (g_co.do_nat && _substrcmp(*av, "config") == 0) - ipfw_config_nat(ac, av); -+ else if (g_co.do_sync&& _substrcmp(*av, "config") == 0) -+ ipfw_config_sync(ac, av); - else if (_substrcmp(*av, "set") == 0) - ipfw_sets_handler(av); - else if (_substrcmp(*av, "table") == 0)