[AGENT++] Agent++ crash when trying to send a trap
Razvan Cojocaru
razvan.cojocaru at kaspersky.ro
Tue Feb 20 18:00:47 CET 2007
Hello.
My code is:
int main()
{
int status;
Snmp::socket_startup(); // Initialize socket subsystem
Snmpx snmp(status, 161);
if(status != SNMP_CLASS_SUCCESS) {
cerr << snmp.error_msg(status) << endl;
return 1;
}
RequestList rql;
Mib mib;
mib.add(new TestResponder);
mib.add(new TestTable);
mib.init();
rql.set_snmp(&snmp);
mib.set_request_list(&rql);
Request* req = NULL;
Vbx* vbs = 0;
coldStartOid coldOid;
NotificationOriginator no;
UdpAddress dest("127.0.0.1/162");
no.add_v1_trap_destination(dest);
no.generate(vbs, 0, coldOid, "", "");
for(;;) {
req = rql.receive(120); // 120 seconds timeout
if(req)
mib.process_request(req);
}
Snmp::socket_cleanup(); // Shut down socket subsystem
return 0;
}
This crashes the application in no.generate(vbs, 0, coldOid, "", "");.
GDB backtrace below:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 22886)]
0x400c89c8 in Agentpp::NotificationOriginator::generate
(this=0xbffff380, vbs=0x0, size=0, id=@0xbffff1d0, timestamp=1234890437,
enterprise=@0xbffff1f0,
contextName=@0xbffff210) at notification_originator.cpp:163
163 List<MibTableRow>* typeList =
(gdb) l
158 {
159 // We have to be careful here about synchronisation because,
160 // we may be called after an interrupt
161 // Therefore synch everything or use synch methods like
162 // MibTable::get_rows_cloned();
163 List<MibTableRow>* typeList =
164 snmpNotifyEntry::instance->get_rows_cloned();
165 ListCursor<MibTableRow> typeCur;
166
167 List<MibTableRow>* list =
(gdb) p snmpNotifyEntry::instance
$1 = (Agentpp::snmpNotifyEntry *) 0x0
I'm using Agent++ with the _NO_SNMPv3 enabled, and multi-threading
support, and compile this code with:
$(CXX) -pthread -g -O0 -W -Wall -o test1 test1.cpp -lagent++ -lsnmp++ -ldes
My system is Slackware Linux 10.2, kernel v2.4.
Am I missing some initialization step for the traps subsystem?
Thanks.
--
Razvan Cojocaru
KeyID: 1024D/04CA34DE
More information about the AGENTPP
mailing list