diff options
author | Donald Sharp <sharpd@nvidia.com> | 2022-11-04 19:20:57 +0100 |
---|---|---|
committer | Donald Sharp <sharpd@nvidia.com> | 2022-12-15 17:14:53 +0100 |
commit | 6f83bbd614b9bc8b05d73227e1268c018a1c0c17 (patch) | |
tree | 5d4d192fa278c1d8caf36fada4a9a7897bfc48c0 | |
parent | lib: Convert agentx_enabled to a bool (diff) | |
download | frr-6f83bbd614b9bc8b05d73227e1268c018a1c0c17.tar.xz frr-6f83bbd614b9bc8b05d73227e1268c018a1c0c17.zip |
lib: On shutdown, disable snmp from working
When shutting down ensure that any daemon operating with
snmp tells it to stop operating so no more data is sent.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
-rw-r--r-- | lib/agentx.c | 11 | ||||
-rw-r--r-- | lib/smux.h | 3 |
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/agentx.c b/lib/agentx.c index bdf0d9716..5f6245980 100644 --- a/lib/agentx.c +++ b/lib/agentx.c @@ -32,6 +32,8 @@ #include "linklist.h" #include "lib/version.h" #include "lib_errors.h" +#include "hook.h" +#include "libfrr.h" #include "xref.h" XREF_SETUP(); @@ -245,6 +247,13 @@ DEFUN (no_agentx, return CMD_WARNING_CONFIG_FAILED; } +static int smux_disable(void) +{ + agentx_enabled = false; + + return 0; +} + bool smux_enabled(void) { return agentx_enabled; @@ -264,6 +273,8 @@ void smux_init(struct thread_master *tm) install_node(&agentx_node); install_element(CONFIG_NODE, &agentx_enable_cmd); install_element(CONFIG_NODE, &no_agentx_cmd); + + hook_register(frr_early_fini, smux_disable); } void smux_agentx_enable(void) diff --git a/lib/smux.h b/lib/smux.h index 27f03b685..1d73406a2 100644 --- a/lib/smux.h +++ b/lib/smux.h @@ -109,6 +109,9 @@ struct index_oid { #define SNMP_IP6ADDRESS(V) (*var_len = sizeof(struct in6_addr), (uint8_t *)&V) +/* + * Check to see if snmp is enabled or not + */ extern bool smux_enabled(void); extern void smux_init(struct thread_master *tm); |