summaryrefslogtreecommitdiff
path: root/local/mib2c.create-dataset.conf
diff options
context:
space:
mode:
Diffstat (limited to 'local/mib2c.create-dataset.conf')
-rw-r--r--local/mib2c.create-dataset.conf111
1 files changed, 111 insertions, 0 deletions
diff --git a/local/mib2c.create-dataset.conf b/local/mib2c.create-dataset.conf
new file mode 100644
index 0000000..9cf75fd
--- /dev/null
+++ b/local/mib2c.create-dataset.conf
@@ -0,0 +1,111 @@
+## -*- c -*-
+######################################################################
+## Do the .h file
+######################################################################
+@open ${name}.h@
+/*
+ * Note: this file originally auto-generated by mib2c using
+ * $Id$
+ */
+#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$
+ */
+
+#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)
+{
+ const oid ${i}_oid[] = {$i.commaoid};
+ 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,
+ OID_LENGTH(${i}_oid),
+ 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@