diff options
Diffstat (limited to 'local/mib2c.notify.conf')
-rw-r--r-- | local/mib2c.notify.conf | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/local/mib2c.notify.conf b/local/mib2c.notify.conf new file mode 100644 index 0000000..d93963c --- /dev/null +++ b/local/mib2c.notify.conf @@ -0,0 +1,84 @@ +## -*- c -*- +###################################################################### +## Do the .h file +###################################################################### +@open ${name}.h@ +/* + * Note: this file originally auto-generated by mib2c using + * $Id: mib2c.notify.conf 10110 2004-04-15 12:29:19Z dts12 $ + */ +#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: mib2c.notify.conf 10110 2004-04-15 12:29:19Z dts12 $ + */ + +#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" + +static oid snmptrap_oid[] = {1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0}; + +@foreach $i notifications@ +int +send_${i}_trap( void ) +{ + netsnmp_variable_list *var_list = NULL; + oid ${i}_oid[] = { $i.commaoid }; + @foreach $v varbinds@ + @if $v.isscalar@ + oid ${v}_oid[] = { $v.commaoid, 0 }; + @end@ + @if !$v.isscalar@ + oid ${v}_oid[] = { $v.commaoid, /* insert index here */ }; + @end@ + @end@ + + /* + * Set the snmpTrapOid.0 value + */ + snmp_varlist_add_variable(&var_list, + snmptrap_oid, OID_LENGTH(snmptrap_oid), + 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@ |