Hi everyone,

I am trying to add SNMP support in the IKEv2 project (
http://sourceforge.net/projects/ikev2) and I am using net-snmp, 5.4.1.

Firstly, there is a great number of variables which I plan to register. I am
wondering whether is possible (or harmful) to use one oid variable as:
oid session_oid[] = {.., 13, 1};
and then change last element of this array (to 2,3,..etc.) before
registering different variables? The alternative is to declare and use
different oid array for each variable that I want to register.

More importantly, there is a problem which gives me a headache - a
segmentation fault occasionally happens. Here is a backtrace:
(gdb) bt
#0  0x080fc3e1 in snmp_sess_timeout ()
#1  0x080fc579 in snmp_timeout ()
#2  0x080d8cb5 in snmp_synch_response_cb ()
#3  0x080c9f57 in agentx_synch_response ()
#4  0x080ca702 in agentx_register ()
#5  0x080ba735 in agentx_registration_callback ()
#6  0x0811c0c9 in snmp_call_callbacks ()
#7  0x080ab5b2 in netsnmp_register_mib ()
#8  0x080b04cd in netsnmp_register_handler ()
#9  0x080793aa in sm_sessions_register () at sm.c:441
#10 0x0807e93f in sm_main_thread (data=0xbfd33c28) at sm.c:7778
#11 0x00c1a8ef in g_thread_create_full () from /usr/lib/libglib-2.0.so.0
#12 0x001b53b6 in start_thread () from /lib/libpthread.so.0
#13 0x00b2933e in clone () from /lib/libc.so.6

Function sm_sessions_register() is defined as:

void sm_sessions_register()
{
        netsnmp_handler_registration *my_test;
        netsnmp_handler_registration *my_test2;

        my_test =
               netsnmp_create_handler_registration("example",
                                                sm_sess_handle,
                                                session_oid,
                                                OID_LENGTH(session_oid),
                                                HANDLER_CAN_RWRITE);

        netsnmp_register_instance(my_test); // --> THIS IS LINE 441!

        my_test2 =
                netsnmp_create_handler_registration("example2",
                                                sm_sess_handle,
                                                session_oid2,
                                                OID_LENGTH(session_oid2),
                                                HANDLER_CAN_RWRITE);

        netsnmp_register_instance(my_test2);
}

session_oid and session_oid2 are defined as:

oid session_oid[] = { 1, 3, 6, 1, 3, 411249, 13, 2, 1 };
oid session_oid2[] = { 1, 3, 6, 1, 3, 411249, 13, 2, 2 };

and they are globals. Sm_sess_handle is written by example in your tutorial
(delayed_instance.c) and I can include this code also if necessary.

I would be very grateful for any help or hint!

Miljen
-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to