86 lines
2.0 KiB
C
86 lines
2.0 KiB
C
## -*- 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 <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@
|