Signed-off-by: Anders Selhammer <[email protected]>
---
snmp4lptp.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/snmp4lptp.c b/snmp4lptp.c
index c70aefa..50426cc 100644
--- a/snmp4lptp.c
+++ b/snmp4lptp.c
@@ -31,8 +31,13 @@
#include "util.h"
#define SNMP_NFD 1
+
static struct pmc *pmc;
+struct snmp_mibs {
+ void *ptpbase;
+};
+
struct ptp_message* snmp4lptp_run_pmc(char *cmd)
{
struct pollfd pollfd[SNMP_NFD];
@@ -83,18 +88,29 @@ static int open_pmc(struct config *cfg)
return pmc ? 0 : -1;
}
-static int open_snmp()
+static int open_snmp(struct snmp_mibs *mibs)
{
snmp_enable_calllog();
netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_ROLE, 1);
init_agent("linuxptpAgent");
+ if (init_ptpbase_mib(mibs->ptpbase)) {
+ return -1;
+ }
+
init_snmp("linuxptpAgent");
return 0;
}
+static void free_snmp_mibs(struct snmp_mibs *mibs)
+{
+ if (mibs->ptpbase) {
+ free_ptpbase_mib(mibs->ptpbase);
+ }
+}
+
static void usage(char *progname)
{
fprintf(stderr,
@@ -110,6 +126,7 @@ static void usage(char *progname)
int main(int argc, char *argv[])
{
char *config = NULL, *progname;
+ struct snmp_mibs mibs = {0};
int c, err = 0, index;
struct option *opts;
struct config *cfg;
@@ -176,7 +193,7 @@ int main(int argc, char *argv[])
goto pmc_out;
}
- if (open_snmp()) {
+ if (open_snmp(&mibs)) {
err = -1;
goto snmp_out;
}
@@ -188,6 +205,7 @@ int main(int argc, char *argv[])
snmp_shutdown("linuxptpAgent");
snmp_out:
+ free_snmp_mibs(&mibs);
pmc_destroy(pmc);
msg_cleanup();
pmc_out:
--
1.8.3.1
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel