Когда snmp_synch_response () в NET SNMP возвращает STAT_TIMEOUT? - PullRequest
1 голос
/ 16 июля 2011

Я пытаюсь сделать запрос на получение SNMP v3 от простой программы c, использующей net-snmp5.5. Код как ниже:

struct snmp_session session;
/* I've set all the properties, to make an SNMPv3 get */

sessionHandle = snmp_sess_open(&session);

/* setup pdu with a get request for some oid */
status = snmp_synch_response(pdu, &response);

Я использую это на той же машине, что и snmpd (то есть параметр peer для моего сеанса = localhost). Я всегда получаю статус == STAT_TIMEOUT.

Однако, если делать snmpwalk или snmpget для тех же учетных данных / пользователя, я получаю возвращаемое значение?

Что заставило бы snmp_synch_response всегда возвращать STAT_TIMEOUT? Любая помощь с благодарностью!

1 Ответ

1 голос
/ 25 августа 2011

Просто отвечая на это, поскольку понять это было практически невозможно.

Проблема, с которой я столкнулся, заключалась в том, что крипто-библиотека, которую я использовал для связи по SNMPV3, имела некоторые проблемы с реализацией DES.Однако похоже, что net-snmp вернет эту ошибку почти для любой ошибки в протоколе связи.

Т.е.неверный заголовок / не удается расшифровать / не удается декодировать ASN и т. д., все вернет STAT_TIMEOUT (конечно, включая фактическое время ожидания запроса)

...