## -*- c -*- ###################################################################### ## Do the .h file ###################################################################### @open ${name}.h@ /* * Note: this file originally auto-generated by mib2c using * $Id: mib2c.create-dataset.conf,v 5.3 2002/12/05 00:29:45 hardaker 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.3 2002/12/05 00:29:45 hardaker Exp $ */ #include #include #include #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 $i\n")); 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 $i\n")); 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; }