【发布时间】:2018-08-13 12:01:01
【问题描述】:
我为我的 SNMPv3 子代理创建了一个单元测试,但我似乎遇到了问题。当它工作时,它工作得很好。但是,每隔几次我运行单元测试,主服务器就会断开子代理会话。另外,我绝对不希望使用 SNMP,但这是必需的。
我正在使用 net-snmp 5.7.3 运行 Fedora 28
这里是单元测试的描述:
- 启动 SNMPv3 子代理(每次都有效)
- 创建客户端会话并连接到本地主机上的 SNMP 主机
- 为子代理注册的每个 OID 设置整数或字符串值 (通常在这里失败)
- 获取子代理注册的每个 OID 的整数或字符串值,并 EXPECT_TRUE(value == TEST_VALUE)
我看到以下行为:
- 一切正常
- 客户端有时在 GET 或 SET 上永远挂起
- 就是这个错误:“AgentX master 断开了我们的连接,在 15 后重新连接”
- 这两个错误消息: “AgentX 主机断开了我们的连接,15 分钟后重新连接” "transport->sock 的 fd 值为负 -1"
- 这三个消息:“收到损坏的数据包。关闭会话” “AgentX 主机断开了我们的连接,在 15 内重新连接” “AgentX 主机断开了我们的连接,在 15 内重新连接”
查看 net-snmp 源代码后,我能说的最好的结果是,有时数据包由于某种原因格式不正确,但我认为这并不是我遇到的所有不同问题。
我还有一个 C# SNMP 客户端,它从未遇到任何这些问题,所以我看不出它与服务器的关系。
【问题讨论】:
标签: c++ snmp googletest net-snmp