diff options
Diffstat (limited to 'lib/agentx.c')
| -rw-r--r-- | lib/agentx.c | 25 |
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 */ |
