实现net-snmp子代理(linux / C)

时间:2011-06-29 08:42:40

标签: c locking net-snmp

我已经了解了如何使用net-snmp库实现snmp子代理(http://net-snmp.sourceforge.net/tutorial/tutorial-5/toolkit/demon/index.html)

这个例子效果很好,但我在“netsnmp_register_int_instance(& variable)”中询问有关参考传递的变量的问题

当snmp守护程序接收snmp请求时,会读取此变量,要求“agentx”请求子代理提供变量的值。

但洛克斯怎么样?我将把子代理与我自己的二进制文件联系起来,允许他每秒钟给出有关其状态的信息。

有时候snmp库代码会在我自己的代码写入时读取变量吗?

我必须修改读取变量以设置锁定的snmp库块的代码吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您的二进制文件是多线程的,那么您需要锁定。如果没有,请不要担心。

最简单的方法是在调用代理x处理例程(例如agent_check_and_process)之前设置锁。如果您需要更细粒度的锁定,那么您将不得不实现自己的处理程序而不是使用net_snmp_register_int_instance。