| ## -*- c -*- |
| ###################################################################### |
| ## Do the .h file |
| ###################################################################### |
| @open ${name}.h@ |
| /* |
| * Note: this file originally auto-generated by mib2c using |
| * $Id$ |
| */ |
| #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 |
| * $Id$ |
| */ |
| |
| #include <net-snmp/net-snmp-config.h> |
| #include <net-snmp/net-snmp-includes.h> |
| #include <net-snmp/agent/net-snmp-agent-includes.h> |
| #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@ |