version 1.3, 2022/08/09 23:42:44
|
version 1.5, 2022/08/19 09:41:25
|
Line 1
|
Line 1
|
diff --git a/sys/netpfil/ipfw/ip_fw2.c b/sys/netpfil/ipfw/ip_fw2.c |
diff --git a/sys/netpfil/ipfw/ip_fw2.c b/sys/netpfil/ipfw/ip_fw2.c |
index 99d3a9c58cb..18c5664871a 100644 | index 99d3a9c58cb..0f9badd08a0 100644 |
--- a/sys/netpfil/ipfw/ip_fw2.c |
--- a/sys/netpfil/ipfw/ip_fw2.c |
+++ b/sys/netpfil/ipfw/ip_fw2.c |
+++ b/sys/netpfil/ipfw/ip_fw2.c |
@@ -186,6 +186,9 @@ ipfw_nat_cfg_t *ipfw_nat_del_ptr; | @@ -186,6 +186,10 @@ ipfw_nat_cfg_t *ipfw_nat_del_ptr; |
ipfw_nat_cfg_t *ipfw_nat_get_cfg_ptr; |
ipfw_nat_cfg_t *ipfw_nat_get_cfg_ptr; |
ipfw_nat_cfg_t *ipfw_nat_get_log_ptr; |
ipfw_nat_cfg_t *ipfw_nat_get_log_ptr; |
|
|
+VNET_DEFINE(ipfw_hook_t, hook_state) = NULL; |
+VNET_DEFINE(ipfw_hook_t, hook_state) = NULL; |
+VNET_DEFINE(ipfw_hook_t, sync_state) = NULL; |
+VNET_DEFINE(ipfw_hook_t, sync_state) = NULL; |
|
+VNET_DEFINE(ipfw_hook_t, sync_alias) = NULL; |
+ |
+ |
#ifdef SYSCTL_NODE |
#ifdef SYSCTL_NODE |
uint32_t dummy_def = IPFW_DEFAULT_RULE; |
uint32_t dummy_def = IPFW_DEFAULT_RULE; |
static int sysctl_ipfw_table_num(SYSCTL_HANDLER_ARGS); |
static int sysctl_ipfw_table_num(SYSCTL_HANDLER_ARGS); |
@@ -2866,6 +2869,9 @@ do { \ | @@ -2866,6 +2870,9 @@ do { \ |
if (cmd->opcode == O_CHECK_STATE) |
if (cmd->opcode == O_CHECK_STATE) |
l = 0; /* exit inner loop */ |
l = 0; /* exit inner loop */ |
match = 1; |
match = 1; |
Line 22 index 99d3a9c58cb..18c5664871a 100644
|
Line 23 index 99d3a9c58cb..18c5664871a 100644
|
break; |
break; |
|
|
case O_SKIP_ACTION: |
case O_SKIP_ACTION: |
|
@@ -3200,6 +3207,9 @@ do { \ |
|
* non IPv4 packets. Libalias expects only IPv4. |
|
*/ |
|
if (!is_ipv4 || !IPFW_NAT_LOADED) { |
|
+ /* purge waiting aliases for sync */ |
|
+ if (V_sync_alias) |
|
+ V_sync_alias(NULL, NULL); |
|
retval = IP_FW_DENY; |
|
break; |
|
} |