diff options
Diffstat (limited to 'lib/agentx.c')
| -rw-r--r-- | lib/agentx.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/agentx.c b/lib/agentx.c index 5351f8bda2..c1ff7a61b1 100644 --- a/lib/agentx.c +++ b/lib/agentx.c @@ -36,6 +36,8 @@ XREF_SETUP() +DEFINE_HOOK(agentx_enabled, (), ()) + static int agentx_enabled = 0; static struct thread_master *agentx_tm; @@ -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 */ |
