Istr
Интересующийся
Сообщений: 1
|
|
« : 08 Июнь, 2012, 09:49:35 » |
|
Добрый день. Столкнулся с необходимостью написать в Momentics под qnx650 своё приложение, оперирующее данными MIB по протоколу SNMPv1, тем более что постановщик задачи уверил меня что весь необходимый функционал в Momentics 470 есть. Действительно, в хэлпе полно функций с префиксом snmp_ , напичканных всевозможными параметрами, но нет ни одного примера. С огорчением убедился, что И В МИРЕ в cети не выложено правильного примера посылки простого snmp-запроса(и получения ответа) на qnx-хост, используя ВСТРОЕННЫЕ ПРОГРАММНЫЕ СРЕДСТВА Momentics 470. Вопросы на Foundry 27, в техподдержку СВД и на форум qnx.org.ru оостаются без ответа. (В техподдержке СВД мне посоветовали скачать некую библиотеку snmp++, а для документации gnu man, вот только заказчика такой набор совершенно не устроит ввиду отсутствия сертификации)
-- В связи с этим встаёт вопрос: а зачем они(программные средства) нужны, раз никто из юзеров не может ими воспользоваться? Для отчёта разработчиков самим себе?
Застрял я на отсылке запроса значения переменной MIB, например system.sysObjID.0 . Непонятно как заполнять структуру snmp_pdu чтобы snmp_send cработал. Когда я пробую ставить тип ASN_OBJECT_ID или ASN_OСTET_STR из asn1.h получается всё время: snmp_open success! затем thread terminated.
Когда я не записываю в поле snmp_pdu.variables заполненную для 1 этой переменной структуру variable.list snmp_send проходит и срабатывает callback-функция на ответ(печатается сообщ.внутри неё), но понятно что посылается пустышка и принимается тоже. Сейчас заполняю так:
oid MyOID[] ={1,3,6,1,2,1,1,2,0}; // system.sysObjectID.0
variable_list new_variable;
new_variable.name = &MyOID[0]; new_variable.name_length = sizeof(MyOID); new_variable.next_variable = NULL; new_variable.type = ASN_OBJECT_ID; // или ASN_ OСTET_STR? . . . new_snmp_pdu->variables = &new_variable; // когда нет этой строки snmp_send и вызов callback срабатывают
При открытии snmp-соединения ставлю:
snmp_session snmp_session_settings; snmp_session_settings.community = 0; // default snmp_session_settings.community_len = SNMP_DEFAULT_COMMUNITY_LEN; // default snmp_session_settings.retries = 0; snmp_session_settings.timeout = SNMP_DEFAULT_TIMEOUT;//(-1) бесконечное время ожидания?
В timeout для snmp_select_info ставил : timeout->tv_sec=5 //10, 20... Но до этого даже не доходит т.к. snmp_send не срабатывает.
Команды snmp_test и snmp_walk работают.
Может у техподдержки есть мысли почему snmp-агент qnx650 не принимает запрос значения переменной MIB?
|