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

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.create-dataset.conf,v 5.4 2004/02/02 19:06:53 rstory Exp $
  9.  */
  10. #ifndef $name.uc_H
  11. #define $name.uc_H
  12. /* function declarations */
  13. void init_$name(void);
  14. @foreach $i table@
  15. void initialize_table_$i(void);
  16. Netsnmp_Node_Handler ${i}_handler;
  17. @end@
  18. @foreach $i table@
  19. /* column number definitions for table $i */
  20.     @foreach $c column@
  21.        #define COLUMN_$c.uc $c.subid
  22.     @end@
  23. @end@
  24. #endif /* $name.uc_H */
  25. ######################################################################
  26. ## Do the .c file
  27. ######################################################################
  28. @open ${name}.c@
  29. /*
  30.  * Note: this file originally auto-generated by mib2c using
  31.  *        $Id: mib2c.create-dataset.conf,v 5.4 2004/02/02 19:06:53 rstory Exp $
  32.  */
  33. #include <net-snmp/net-snmp-config.h>
  34. #include <net-snmp/net-snmp-includes.h>
  35. #include <net-snmp/agent/net-snmp-agent-includes.h>
  36. #include "${name}.h"
  37. @foreach $i table@
  38. /** Initialize the $i table by defining its contents and how it's structured */
  39. void
  40. initialize_table_$i(void)
  41. {
  42.     static oid ${i}_oid[] = {$i.commaoid};
  43.     size_t ${i}_oid_len = OID_LENGTH(${i}_oid);
  44.     netsnmp_table_data_set *table_set;
  45.     /* create the table structure itself */
  46.     table_set = netsnmp_create_table_data_set("$i");
  47.     /* comment this out or delete if you don't support creation of new rows */
  48.     table_set->allow_creation = 1;
  49.     /***************************************************
  50.      * Adding indexes
  51.      */
  52.     DEBUGMSGTL(("initialize_table_$i",
  53.                 "adding indexes to table $in"));
  54.     netsnmp_table_set_add_indexes(table_set,
  55.     @foreach $idx index@
  56.                            $idx.type,  /* index: $idx */
  57.     @end@
  58.                            0);
  59.     DEBUGMSGTL(("initialize_table_$i",
  60.                 "adding column types to table $in"));  
  61.     netsnmp_table_set_multi_add_default_row(table_set,
  62.     @foreach $c column@
  63.                                             COLUMN_$c.uc, $c.type, $c.settable,
  64.                                             NULL, 0,
  65.     @end@
  66.                               0);
  67.     
  68.     /* registering the table with the master agent */
  69.     /* note: if you don't need a subhandler to deal with any aspects
  70.        of the request, change ${i}_handler to "NULL" */
  71.     netsnmp_register_table_data_set(netsnmp_create_handler_registration("$i", ${i}_handler,
  72.                                                         ${i}_oid,
  73.                                                         ${i}_oid_len,
  74.                                                         HANDLER_CAN_RWRITE),
  75.                             table_set, NULL);
  76. }
  77. @end@
  78. /** Initializes the $name module */
  79. void
  80. init_$name(void)
  81. {
  82.   /* here we initialize all the tables we're planning on supporting */
  83.   @foreach $i table@
  84.     initialize_table_$i();
  85.   @end@
  86. }
  87. @foreach $i table@
  88. /** handles requests for the $i table, if anything else needs to be done */
  89. int
  90. ${i}_handler(
  91.     netsnmp_mib_handler               *handler,
  92.     netsnmp_handler_registration      *reginfo,
  93.     netsnmp_agent_request_info        *reqinfo,
  94.     netsnmp_request_info              *requests) {
  95.     /* perform anything here that you need to do.  The requests have
  96.        already been processed by the master table_dataset handler, but
  97.        this gives you chance to act on the request in some other way
  98.        if need be. */
  99.     return SNMP_ERR_NOERROR;
  100. }
  101. @end@