我正在用 C++ 为 Net-SNMP 编写 AgentX 子代理。
我尝试像这样注册 OID 1.3.6.1.4.1.4711.1.1
oid myOID[] = { 1, 3, 6, 1, 4, 1, 4711, 1, 1 };
handler = netsnmp_create_handler_registration("foo", handler, myOID, OID_LENGTH(myOID), HANDLER_CAN_RONLY);
if (handler)
netsnmp_register_scalar(handler);
奇怪的是 1.3.6.1.4.1.4711.1.1 的 snmpget 失败,并且我的处理程序仅在我为 1.3.6.1.4.1.4711.1.1.0 执行 snmpget 时才被调用(添加零)。
如何注册 1.3.6.1.4.1.4711.1.1 ?
net-snmp.org 上的示例都注册了一个实例变量,但我必须运行一些代码来收集该值。
我是否必须将我的回调声明为来自 C++ 应用程序的外部“C”?
是否有人有一个示例如何注册 1.3.6.1.4.1.4711.1 以下的所有 OID,所以我不必定义这么多处理程序?