## -*- c -*- ###################################################################### ## Do the .h file ###################################################################### @open ${name}.h@ /* * Note: this file originally auto-generated by mib2c * using mib2c.notify.conf */ #ifndef $name.uc_H #define $name.uc_H /* function declarations */ @foreach $i notifications@ int send_${i}_trap(void); @end@ #endif /* $name.uc_H */ ###################################################################### ## Do the .c file ###################################################################### @open ${name}.c@ /* * Note: this file originally auto-generated by mib2c * using mib2c.notify.conf */ #include #include #include #include "${name}.h" extern const oid snmptrap_oid[]; extern const size_t snmptrap_oid_len; @foreach $i notifications@ int send_${i}_trap( void ) { netsnmp_variable_list *var_list = NULL; const oid ${i}_oid[] = { $i.commaoid }; @foreach $v varbinds@ @if $v.isscalar@ const oid ${v}_oid[] = { $v.commaoid, 0 }; @end@ @if !$v.isscalar@ const oid ${v}_oid[] = { $v.commaoid, /* insert index here */ }; @end@ @end@ /* * Set the snmpTrapOid.0 value */ snmp_varlist_add_variable(&var_list, snmptrap_oid, snmptrap_oid_len, ASN_OBJECT_ID, ${i}_oid, sizeof(${i}_oid)); @if count_varbinds($i) > 0@ /* * Add any objects from the trap definition */ @end@ @foreach $v varbinds@ snmp_varlist_add_variable(&var_list, ${v}_oid, OID_LENGTH(${v}_oid), $v.type, /* Set an appropriate value for $v */ NULL, 0); @end@ /* * Add any extra (optional) objects here */ /* * Send the trap to the list of configured destinations * and clean up */ send_v2trap( var_list ); snmp_free_varbind( var_list ); return SNMP_ERR_NOERROR; } @end@