summaryrefslogtreecommitdiff
path: root/lib/agentx.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/agentx.c')
-rw-r--r--lib/agentx.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/lib/agentx.c b/lib/agentx.c
index 5351f8bda2..b5a035ee2b 100644
--- a/lib/agentx.c
+++ b/lib/agentx.c
@@ -34,7 +34,9 @@
#include "lib_errors.h"
#include "xref.h"
-XREF_SETUP()
+XREF_SETUP();
+
+DEFINE_HOOK(agentx_enabled, (), ());
static int agentx_enabled = 0;
@@ -226,6 +228,7 @@ DEFUN (agentx_enable,
events = list_new();
agentx_events_update();
agentx_enabled = 1;
+ hook_call(agentx_enabled);
}
return CMD_SUCCESS;
@@ -243,6 +246,11 @@ DEFUN (no_agentx,
return CMD_WARNING_CONFIG_FAILED;
}
+int smux_enabled(void)
+{
+ return agentx_enabled;
+}
+
void smux_init(struct thread_master *tm)
{
agentx_tm = tm;
@@ -259,6 +267,16 @@ void smux_init(struct thread_master *tm)
install_element(CONFIG_NODE, &no_agentx_cmd);
}
+void smux_agentx_enable(void)
+{
+ if (!agentx_enabled) {
+ init_snmp(FRR_SMUX_NAME);
+ events = list_new();
+ agentx_events_update();
+ agentx_enabled = 1;
+ }
+}
+
void smux_register_mib(const char *descr, struct variable *var, size_t width,
int num, oid name[], size_t namelen)
{
@@ -379,4 +397,9 @@ int smux_trap_multi_index(struct variable *vp, size_t vp_len, const oid *ename,
return 1;
}
+void smux_events_update(void)
+{
+ agentx_events_update();
+}
+
#endif /* SNMP_AGENTX */