【发布时间】:2012-09-25 04:36:45
【问题描述】:
我在 Ubuntu Linux 上的 c++ 应用程序代码中嵌入了一个 net-snmp agentx 子代理。我想在 agentx 子代理工作后禁用它,然后再次重新启用它。我能够成功地设置代理,从命令行使用 snmpget 轮询 mib,并使用 snmp_shutdown 禁用 agentx 套接字连接,但是一旦禁用它,我就无法再次重新启用套接字连接。
感谢任何帮助/指针。
我使用以下代码初始化 SNMP 库和 agentx 套接字连接。
一开始,初始化AgentX子代理-
netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE, 1);
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL, 120);
netsnmp_ds_set_string(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_X_SOCKET, m_agentx_socket.c_str());
/* initialize the agent library */
init_agent("MyApp");
// initialise MIB module
init_snmp("MyApp");
使用 snmpget 轮询 MIB 并使用以下函数禁用连接 -
snmp_shutdown("MyApp");
SOCK_CLEANUP;
到目前为止工作正常。
然后我使用下面的代码重新启用连接,但这不起作用。
netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE, 1);
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL, 120);
netsnmp_ds_set_string(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_X_SOCKET, m_agentx_socket.c_str());
/* initialize the agent library */
init_agent("MyApp");
init_snmp("MyApp");
【问题讨论】:
标签: net-snmp