Blame local/mib2c.notify.conf

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