mib2c.notify.conf
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:2k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. ## -*- c -*-
  2. ######################################################################
  3. ## Do the .h file
  4. ######################################################################
  5. @open ${name}.h@
  6. /*
  7.  * Note: this file originally auto-generated by mib2c using
  8.  *        $Id: mib2c.notify.conf,v 5.3 2004/04/15 12:29:19 dts12 Exp $
  9.  */
  10. #ifndef $name.uc_H
  11. #define $name.uc_H
  12. /* function declarations */
  13. @foreach $i notifications@
  14. int send_${i}_trap(void);
  15. @end@
  16. #endif /* $name.uc_H */
  17. ######################################################################
  18. ## Do the .c file
  19. ######################################################################
  20. @open ${name}.c@
  21. /*
  22.  * Note: this file originally auto-generated by mib2c using
  23.  *        $Id: mib2c.notify.conf,v 5.3 2004/04/15 12:29:19 dts12 Exp $
  24.  */
  25. #include <net-snmp/net-snmp-config.h>
  26. #include <net-snmp/net-snmp-includes.h>
  27. #include <net-snmp/agent/net-snmp-agent-includes.h>
  28. #include "${name}.h"
  29. static oid snmptrap_oid[] = {1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0};
  30. @foreach $i notifications@
  31. int
  32. send_${i}_trap( void )
  33. {
  34.     netsnmp_variable_list  *var_list = NULL;
  35.     oid ${i}_oid[] = { $i.commaoid };
  36.     @foreach $v varbinds@
  37.     @if $v.isscalar@
  38.     oid ${v}_oid[] = { $v.commaoid, 0 };
  39.     @end@
  40.     @if !$v.isscalar@
  41.     oid ${v}_oid[] = { $v.commaoid, /* insert index here */ };
  42.     @end@
  43.     @end@
  44.     /*
  45.      * Set the snmpTrapOid.0 value
  46.      */
  47.     snmp_varlist_add_variable(&var_list,
  48.         snmptrap_oid, OID_LENGTH(snmptrap_oid),
  49.         ASN_OBJECT_ID,
  50.         ${i}_oid, sizeof(${i}_oid));
  51.     
  52.     @if count_varbinds($i) > 0@
  53.     /*
  54.      * Add any objects from the trap definition
  55.      */
  56.     @end@
  57.     @foreach $v varbinds@
  58.     snmp_varlist_add_variable(&var_list,
  59.         ${v}_oid, OID_LENGTH(${v}_oid),
  60.         $v.type,
  61.         /* Set an appropriate value for $v */
  62.         NULL, 0);
  63.     @end@
  64.     /*
  65.      * Add any extra (optional) objects here
  66.      */
  67.     /*
  68.      * Send the trap to the list of configured destinations
  69.      *  and clean up
  70.      */
  71.     send_v2trap( var_list );
  72.     snmp_free_varbind( var_list );
  73.     return SNMP_ERR_NOERROR;
  74. }
  75. @end@