version 1.2, 2022/07/11 17:03:15
|
version 1.3, 2022/07/11 21:26:34
|
Line 1
|
Line 1
|
diff --git a/sys/netinet/libalias/alias_db.c b/sys/netinet/libalias/alias_db.c |
diff --git a/sys/netinet/libalias/alias_db.c b/sys/netinet/libalias/alias_db.c |
index 4612b32c139..47fcc5c259c 100644 | index 4612b32c139..2cb25981d17 100644 |
--- a/sys/netinet/libalias/alias_db.c |
--- a/sys/netinet/libalias/alias_db.c |
+++ b/sys/netinet/libalias/alias_db.c |
+++ b/sys/netinet/libalias/alias_db.c |
@@ -708,6 +708,10 @@ AddLink(struct libalias *la, struct in_addr src_addr, struct in_addr dst_addr, | @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); |
| #include <netinet/libalias/alias_local.h> |
| #include <netinet/libalias/alias_mod.h> |
| #include <net/if.h> |
| +#include <net/vnet.h> |
| #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 |
| + |
| +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) |
if (la->packetAliasMode & PKT_ALIAS_LOG) |
ShowAliasStats(la); |
ShowAliasStats(la); |
|
|
+#ifdef IPFW_INTERNAL |
|
+ if (lnk && V_hook_alias) |
+ if (lnk && V_hook_alias) |
+ V_hook_alias(lnk); |
+ V_hook_alias(lnk); |
+#endif | + |
return (lnk); |
return (lnk); |
} |
} |
|
|