--- fwsync/patches/alias_db.patch 2022/06/22 13:01:55 1.1.1.1 +++ fwsync/patches/alias_db.patch 2022/07/11 21:26:34 1.3 @@ -1,16 +1,40 @@ diff --git a/sys/netinet/libalias/alias_db.c b/sys/netinet/libalias/alias_db.c -index 1f85a606b2d..82caa0a2218 100644 +index 4612b32c139..2cb25981d17 100644 --- a/sys/netinet/libalias/alias_db.c +++ b/sys/netinet/libalias/alias_db.c -@@ -1054,6 +1054,11 @@ AddLink(struct libalias *la, struct in_addr src_addr, struct in_addr dst_addr, - if (la->packetAliasMode & PKT_ALIAS_LOG) { - ShowAliasStats(la); - } +@@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); + #include + #include + #include ++#include + #else + #include "alias.h" + #include "alias_local.h" +@@ -63,6 +64,17 @@ __FBSDID("$FreeBSD$"); + + #include "alias_db.h" + ++#ifndef V_hook_alias ++typedef int (*ipfw_hook_t)(const void *arg); ++/* callback hooks for notify on update of internal states and aliases */ ++VNET_DECLARE(ipfw_hook_t, hook_state); ++#define V_hook_state VNET(hook_state) ++VNET_DECLARE(ipfw_hook_t, hook_alias); ++#define V_hook_alias VNET(hook_alias) ++#endif + -+#ifdef IPFW_INTERNAL ++VNET_DEFINE(ipfw_hook_t, hook_alias) = NULL; ++ + static LIST_HEAD(, libalias) instancehead = LIST_HEAD_INITIALIZER(instancehead); + int LibAliasTime; + +@@ -708,6 +720,9 @@ AddLink(struct libalias *la, struct in_addr src_addr, struct in_addr dst_addr, + if (la->packetAliasMode & PKT_ALIAS_LOG) + ShowAliasStats(la); + + if (lnk && V_hook_alias) -+ V_hook_alias((void*) lnk); -+#endif ++ V_hook_alias(lnk); ++ return (lnk); }