我正在为net-snmp开发共享库和子代理。我需要为特定的硬件事件发送v3陷阱。我想知道send_v3trap API的上下文值中需要填充什么值。
void send_v3trap(netsnmp_variable_list * vars,const char * context )
此上下文值是否与用户定义的引擎ID相同?即需要在snmptrapd.conf中进行如下配置?
createUser -e ENGINEID myuser SHA "my authentication pass" AES "my encryption pass"
有关在此link中进行配置的更多信息
有一个示例源代码可用于发送 v2traps
通过查看net-snmp源代码,send_v3trap在内部调用send_v2trap,最终,
/* A context name was provided, so copy it and its length to the v2 pdu
* template. */
if (context != NULL)
{
template_v2pdu->contextName = strdup(context);
template_v2pdu->contextNameLen = strlen(context);
}
答案 0 :(得分:0)
回答我自己的问题。
“上下文”值可以用
填充只要就v3而言配置正确,即在主机和目标上指定的陷阱-v3,则指定net-snmp的engineid,则一切正常。
唯一不清楚的是,如果某人能够发送v3陷阱而未指定“上下文”,那么在哪种情况下确实有用!