Hello all snmp lovers :))!
I wonder if anybody can explain to me, how handlers are invoked. The only
knowledge I have, I got from debugging net-snmp :(.
Beside that, I've written my own helper handler takes care for returning
values, etc... When handling multiple requests from the same handler and in
the same handler call, and one of the request is not valid, handler is
called once again for vars, that WERE SUCCESFULLY handled in previous call
(see trace log). Is this normal behaviour?
EXAMPLE
================================
Request for variables:
.1.3.6.1.4.1.1448.2.10.1.1.1.1.7.2.101.1
.1.3.6.1.4.1.1448.2.10.1.1.1.1.7.2.101.21 (index of this one is intentially
pushed out of limits)
--------------------------------
Returns:
snmpget -Ir -m ALL -v 2c -c public MyHost
.1.3.6.1.4.1.1448.2.10.1.1.1.1.7.2.101.1
.1.3.6.1.4.1.1448.2.10.1.1.1.1.7.2.101.21
Error in packet
Reason: (noSuchName) There is no such variable name in this MIB.
Failed object: .1.3.6.1.4.1.1448.2.10.1.1.1.1.7.2.101.21
what is legal result and that satisfies me. :)
TRACE
================================
trace: receive(): snmpd.c, 1171:
trace: _sess_read(): snmp_api.c, 5291:
trace: _sess_read(): snmp_api.c, 5291:
trace: netsnmp_udp_recv(): snmpUDPDomain.c, 134:
trace: _sess_process_packet(): snmp_api.c, 4973:
trace: _snmp_parse(): snmp_api.c, 4025:
trace: _snmp_parse(): snmp_api.c, 4033:
trace: snmp_comstr_parse(): snmp_auth.c, 132:
trace: snmp_comstr_parse(): snmp_auth.c, 144:
trace: _snmp_parse(): snmp_api.c, 4074:
trace: snmp_pdu_parse(): snmp_api.c, 4260:
trace: snmp_pdu_parse(): snmp_api.c, 4271:
trace: snmp_pdu_parse(): snmp_api.c, 4282:
trace: snmp_pdu_parse(): snmp_api.c, 4300:
trace: snmp_pdu_parse(): snmp_api.c, 4330:
trace: snmp_parse_var_op(): snmp.c, 166:
trace: snmp_pdu_parse(): snmp_api.c, 4339:
trace: snmp_pdu_parse(): snmp_api.c, 4330:
trace: snmp_parse_var_op(): snmp.c, 166:
trace: snmp_pdu_parse(): snmp_api.c, 4339:
trace: init_agent_snmp_session(): snmp_agent.c, 1244:
trace: init_agent_snmp_session(): snmp_agent.c, 1259:
trace: snmp_call_callbacks(): callback.c, 205:
trace: snmp_call_callbacks(): callback.c, 231:
trace: netsnmp_subtree_find_first(): agent_registry.c, 156:
trace: netsnmp_subtree_find_first(): agent_registry.c, 160:
trace: snmp_call_callbacks(): callback.c, 205:
trace: snmp_call_callbacks(): callback.c, 231:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1810:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1872:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1892:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1899:
trace: snmp_call_callbacks(): callback.c, 205:
trace: snmp_call_callbacks(): callback.c, 231:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1810:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1872:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1892:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1899:
trace: netsnmp_call_handlers(): agent_handler.c, 498:
trace: netsnmp_call_handler(): agent_handler.c, 418:
trace: netsnmp_call_handler(): agent_handler.c, 426:
trace: netsnmp_call_handler(): agent_handler.c, 418:
trace: row_idx_helper_itr_can_next(): itr_helpers.c, 1556:
Requested OID: .1.3.6.1.4.1.1448.2.10.1.1.1.1.7.2.101.1
returned object size: 4, exit code: 0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
trace: row_idx_helper_itr_can_next(): itr_helpers.c, 1556:
Requested OID: .1.3.6.1.4.1.1448.2.10.1.1.1.1.7.2.101.21
returned object size: 4, exit code: 2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
trace: netsnmp_call_handler(): agent_handler.c, 426:
trace: _snmp_build(): snmp_api.c, 2879:
trace: _snmp_build(): snmp_api.c, 2882:
trace: snmp_pdu_realloc_rbuild(): snmp_api.c, 3241:
trace: snmp_pdu_realloc_rbuild(): snmp_api.c, 3256:
trace: snmp_realloc_rbuild_var_op(): snmp.c, 341:
trace: snmp_realloc_rbuild_var_op(): snmp.c, 442:
trace: snmp_pdu_realloc_rbuild(): snmp_api.c, 3256:
trace: snmp_realloc_rbuild_var_op(): snmp.c, 341:
trace: snmp_realloc_rbuild_var_op(): snmp.c, 442:
trace: snmp_pdu_realloc_rbuild(): snmp_api.c, 3324:
trace: snmp_pdu_realloc_rbuild(): snmp_api.c, 3337:
trace: snmp_pdu_realloc_rbuild(): snmp_api.c, 3350:
trace: _snmp_build(): snmp_api.c, 2888:
trace: _snmp_build(): snmp_api.c, 2904:
trace: _snmp_build(): snmp_api.c, 2924:
trace: netsnmp_udp_send(): snmpUDPDomain.c, 167:
trace: netsnmp_remove_and_free_agent_snmp_session(): snmp_agent.c, 1657:
trace: free_agent_snmp_session(): snmp_agent.c, 1270:
trace: free_agent_snmp_session(): snmp_agent.c, 1275:
trace: handle_snmp_packet(): snmp_agent.c, 1798:
trace: _sess_read(): snmp_api.c, 5291:
trace: _sess_read(): snmp_api.c, 5291:
trace: _sess_read(): snmp_api.c, 5291:
trace: _sess_read(): snmp_api.c, 5291:
trace: _sess_read(): snmp_api.c, 5291:
trace: _sess_read(): snmp_api.c, 5291:
trace: _sess_read(): snmp_api.c, 5291:
trace: _sess_read(): snmp_api.c, 5291:
trace: snmp_sess_select_info(): snmp_api.c, 5702:
trace: receive(): snmpd.c, 1167:
trace: receive(): snmpd.c, 1171:
trace: _sess_read(): snmp_api.c, 5291:
trace: _sess_read(): snmp_api.c, 5291:
trace: netsnmp_udp_recv(): snmpUDPDomain.c, 134:
trace: _sess_process_packet(): snmp_api.c, 4973:
trace: _snmp_parse(): snmp_api.c, 4025:
trace: _snmp_parse(): snmp_api.c, 4033:
trace: snmp_comstr_parse(): snmp_auth.c, 132:
trace: snmp_comstr_parse(): snmp_auth.c, 144:
trace: _snmp_parse(): snmp_api.c, 4074:
trace: snmp_pdu_parse(): snmp_api.c, 4260:
trace: snmp_pdu_parse(): snmp_api.c, 4271:
trace: snmp_pdu_parse(): snmp_api.c, 4282:
trace: snmp_pdu_parse(): snmp_api.c, 4300:
trace: snmp_pdu_parse(): snmp_api.c, 4330:
trace: snmp_parse_var_op(): snmp.c, 166:
trace: snmp_pdu_parse(): snmp_api.c, 4339:
trace: init_agent_snmp_session(): snmp_agent.c, 1244:
trace: init_agent_snmp_session(): snmp_agent.c, 1259:
trace: snmp_call_callbacks(): callback.c, 205:
trace: snmp_call_callbacks(): callback.c, 231:
trace: snmp_call_callbacks(): callback.c, 205:
trace: snmp_call_callbacks(): callback.c, 231:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1810:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1872:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1892:
trace: netsnmp_add_varbind_to_cache(): snmp_agent.c, 1899:
trace: netsnmp_call_handlers(): agent_handler.c, 498:
trace: netsnmp_call_handler(): agent_handler.c, 418:
trace: netsnmp_call_handler(): agent_handler.c, 426:
trace: netsnmp_call_handler(): agent_handler.c, 418:
trace: row_idx_helper_itr_can_next(): itr_helpers.c, 1556:
Requested OID: .1.3.6.1.4.1.1448.2.10.1.1.1.1.7.2.101.1
returned object size: 4, exit code: 0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
trace: netsnmp_call_handler(): agent_handler.c, 426:
trace: _snmp_build(): snmp_api.c, 2879:
trace: _snmp_build(): snmp_api.c, 2882:
trace: snmp_pdu_realloc_rbuild(): snmp_api.c, 3241:
trace: snmp_pdu_realloc_rbuild(): snmp_api.c, 3256:
trace: snmp_realloc_rbuild_var_op(): snmp.c, 341:
trace: snmp_realloc_rbuild_var_op(): snmp.c, 442:
trace: snmp_pdu_realloc_rbuild(): snmp_api.c, 3324:
trace: snmp_pdu_realloc_rbuild(): snmp_api.c, 3337:
trace: snmp_pdu_realloc_rbuild(): snmp_api.c, 3350:
trace: _snmp_build(): snmp_api.c, 2888:
trace: _snmp_build(): snmp_api.c, 2904:
trace: _snmp_build(): snmp_api.c, 2924:
trace: netsnmp_udp_send(): snmpUDPDomain.c, 167:
trace: netsnmp_remove_and_free_agent_snmp_session(): snmp_agent.c, 1657:
trace: free_agent_snmp_session(): snmp_agent.c, 1270:
trace: free_agent_snmp_session(): snmp_agent.c, 1275:
trace: handle_snmp_packet(): snmp_agent.c, 1798:
...end of trace log.
--------------------------------------------------------
Anybody can help?
Have a nice day,
Igor
Igor Grasic, Ms. D.
Development Engineer
Iskra Transmission, d. d., Ljubljana
Stegne 11, SI-1000 Ljubljana, Slovenia
phone: +386 1 5003 000
fax: +386 1 5003 500
www.iskratr.si, www.iskratr.com
........................................................
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders