Hello. I want to send traps from an application to the manager through the snmpd demon.
-------------- - APPL - -localhost- --------------- - - - - v ------------------ --------------------- - SNMPD - - MANAGER - - localhost - -------------> - other host - ------------------ --------------------- For this, I modificated the example notification.c. In this case, you send traps each 30 seconds. When I load the module, it`s worked. The SNMPD daemon send the traps and these are received in the host manager. My problem is that I want to send traps within a program with a main() because I dont want to recompile everytime or load the module, but It isnt work. My program is shown below: I compile doing: gcc -g -I. `net-snmp-config --cflags` -fPIC -shared -c -o example.o example.c gcc -g -o example example.o `net-snmp-config --agent-libs` What is the error??? Have this form sense??? The question is: How an application can send SNMP TRAP to Managers using the SNMPD daemon? /* * start be including the appropriate header files */ #include <net-snmp/net-snmp-config.h> #include <net-snmp/net-snmp-includes.h> #include <net-snmp/agent/net-snmp-agent-includes.h> int main(int argc, char *argv[]) { /* * define the OID for the notification we're going to send * NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification */ oid notification_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 2, 3, 0, 1 }; size_t notification_oid_len = OID_LENGTH(notification_oid); static u_long count = 0; /* * In the notification, we have to assign our notification OID to * the snmpTrapOID.0 object. Here is it's definition. */ oid objid_snmptrap[] = { 1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0 }; size_t objid_snmptrap_len = OID_LENGTH(objid_snmptrap); /* * define the OIDs for the varbinds we're going to include * with the notification - * NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatRate and * NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatName */ oid hbeat_rate_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 2, 3, 2, 1, 0 }; size_t hbeat_rate_oid_len = OID_LENGTH(hbeat_rate_oid); oid hbeat_name_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 2, 3, 2, 2, 0 }; size_t hbeat_name_oid_len = OID_LENGTH(hbeat_name_oid); /* * here is where we store the variables to be sent in the trap */ netsnmp_variable_list *notification_vars = NULL; const char *heartbeat_name = "A girl named Maria"; /* * add in the trap definition object */ snmp_varlist_add_variable(¬ification_vars, /* * the snmpTrapOID.0 variable */ objid_snmptrap, objid_snmptrap_len, /* * value type is an OID */ ASN_OBJECT_ID, /* * value contents is our notification OID */ (u_char *) notification_oid, /* * size in bytes = oid length * sizeof(oid) */ notification_oid_len * sizeof(oid)); /* * add in the additional objects defined as part of the trap */ /*snmp_varlist_add_variable(¬ification_vars, hbeat_rate_oid, hbeat_rate_oid_len, ASN_INTEGER, (u_char *)&heartbeat_rate, sizeof(heartbeat_rate));*/ /* * send the trap out. This will send it to all registered * receivers (see the "SETTING UP TRAP AND/OR INFORM DESTINATIONS" * section of the snmpd.conf manual page. */ send_v2trap(notification_vars); /* * free the created notification variable list */ snmp_free_varbind(notification_vars); } Thanks a lots. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Net-snmp-users mailing list Net-snmp-users@lists.sourceforge.net Please see the following page to unsubscribe or change other options: https://lists.sourceforge.net/lists/listinfo/net-snmp-users