mib2c.create-dataset.conf
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:4k
源码类别:
SNMP编程
开发平台:
Unix_Linux
- ## -*- c -*-
- ######################################################################
- ## Do the .h file
- ######################################################################
- @open ${name}.h@
- /*
- * Note: this file originally auto-generated by mib2c using
- * $Id: mib2c.create-dataset.conf,v 5.4 2004/02/02 19:06:53 rstory Exp $
- */
- #ifndef $name.uc_H
- #define $name.uc_H
- /* function declarations */
- void init_$name(void);
- @foreach $i table@
- void initialize_table_$i(void);
- Netsnmp_Node_Handler ${i}_handler;
- @end@
- @foreach $i table@
- /* column number definitions for table $i */
- @foreach $c column@
- #define COLUMN_$c.uc $c.subid
- @end@
- @end@
- #endif /* $name.uc_H */
- ######################################################################
- ## Do the .c file
- ######################################################################
- @open ${name}.c@
- /*
- * Note: this file originally auto-generated by mib2c using
- * $Id: mib2c.create-dataset.conf,v 5.4 2004/02/02 19:06:53 rstory Exp $
- */
- #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"
- @foreach $i table@
- /** Initialize the $i table by defining its contents and how it's structured */
- void
- initialize_table_$i(void)
- {
- static oid ${i}_oid[] = {$i.commaoid};
- size_t ${i}_oid_len = OID_LENGTH(${i}_oid);
- netsnmp_table_data_set *table_set;
- /* create the table structure itself */
- table_set = netsnmp_create_table_data_set("$i");
- /* comment this out or delete if you don't support creation of new rows */
- table_set->allow_creation = 1;
- /***************************************************
- * Adding indexes
- */
- DEBUGMSGTL(("initialize_table_$i",
- "adding indexes to table $in"));
- netsnmp_table_set_add_indexes(table_set,
- @foreach $idx index@
- $idx.type, /* index: $idx */
- @end@
- 0);
- DEBUGMSGTL(("initialize_table_$i",
- "adding column types to table $in"));
- netsnmp_table_set_multi_add_default_row(table_set,
- @foreach $c column@
- COLUMN_$c.uc, $c.type, $c.settable,
- NULL, 0,
- @end@
- 0);
- /* registering the table with the master agent */
- /* note: if you don't need a subhandler to deal with any aspects
- of the request, change ${i}_handler to "NULL" */
- netsnmp_register_table_data_set(netsnmp_create_handler_registration("$i", ${i}_handler,
- ${i}_oid,
- ${i}_oid_len,
- HANDLER_CAN_RWRITE),
- table_set, NULL);
- }
- @end@
- /** Initializes the $name module */
- void
- init_$name(void)
- {
- /* here we initialize all the tables we're planning on supporting */
- @foreach $i table@
- initialize_table_$i();
- @end@
- }
- @foreach $i table@
- /** handles requests for the $i table, if anything else needs to be done */
- int
- ${i}_handler(
- netsnmp_mib_handler *handler,
- netsnmp_handler_registration *reginfo,
- netsnmp_agent_request_info *reqinfo,
- netsnmp_request_info *requests) {
- /* perform anything here that you need to do. The requests have
- already been processed by the master table_dataset handler, but
- this gives you chance to act on the request in some other way
- if need be. */
- return SNMP_ERR_NOERROR;
- }
- @end@