summaryrefslogtreecommitdiff
path: root/local/mib2c.old-api.conf
diff options
context:
space:
mode:
Diffstat (limited to 'local/mib2c.old-api.conf')
-rw-r--r--local/mib2c.old-api.conf349
1 files changed, 349 insertions, 0 deletions
diff --git a/local/mib2c.old-api.conf b/local/mib2c.old-api.conf
new file mode 100644
index 0000000..8fa270b
--- /dev/null
+++ b/local/mib2c.old-api.conf
@@ -0,0 +1,349 @@
+## -*- 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);
+FindVarMethod var_$name;
+@foreach $i table@
+FindVarMethod var_${i};
+@end@
+@foreach $i scalar@
+ @if $i.settable@
+ WriteMethod write_${i};
+ @end@
+@end@
+@foreach $i table@
+ @foreach $c column@
+ @if $c.settable@
+ WriteMethod write_${c};
+ @end@
+ @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"
+
+/*
+ * ${name}_variables_oid:
+ * this is the top level oid that we want to register under. This
+ * is essentially a prefix, with the suffix appearing in the
+ * variable below.
+ */
+
+oid ${name}_variables_oid[] = { $name.commaoid };
+
+/*
+ * variable4 ${name}_variables:
+ * this variable defines function callbacks and type return information
+ * for the $name mib section
+ */
+
+struct variable4 ${name}_variables[] = {
+/* magic number , variable type , ro/rw , callback fn , L, oidsuffix */
+@eval $magic = 0@
+@eval $namelen = length("$name.commaoid")@
+@foreach $i scalar@
+ @eval $magic = $magic + 1@
+ @eval $suffix = substr("$i.commaoid", $namelen + 1)@
+ @eval $suffixlen = $i.oidlength - $name.oidlength@
+#define $i.uc $magic
+ @if $i.settable@
+{$i.uc, $i.type, NETSNMP_OLDAPI_RWRITE,
+ var_${name}, $suffixlen, { $suffix }},
+ @end@
+ @if !$i.settable@
+{$i.uc, $i.type, NETSNMP_OLDAPI_RONLY,
+ var_${name}, $suffixlen, { $suffix }},
+ @end@
+@end@
+
+@foreach $i table@
+ @eval $magic = 0@
+ @eval $nlen2 = length("$i.commaoid")@
+ @if $nlen2 > $namelen@
+ @eval $suffix = substr("$i.commaoid", $namelen + 1)@
+ @eval $ctmp = ","@
+ @else@
+ @eval $suffix = ""@
+ @eval $ctmp = ""@
+ @end@
+ @eval $suffixlen = $i.oidlength - $name.oidlength + 2@
+ @foreach $c column@
+ @eval $magic = $magic + 1@
+#define $c.uc $magic
+ @if $c.settable@
+{$c.uc, $c.type, NETSNMP_OLDAPI_RWRITE,
+ var_${i}, $suffixlen, { $suffix $ctmp 1, $c.subid }},
+ @end@
+ @if !$c.settable@
+{$c.uc, $c.type, NETSNMP_OLDAPI_RONLY,
+ var_${i}, $suffixlen, { $suffix $ctmp 1, $c.subid }},
+ @end@
+ @end@
+@end@
+};
+/* (L = length of the oidsuffix) */
+
+
+/** Initializes the $name module */
+void
+init_$name(void)
+{
+
+ DEBUGMSGTL(("$name", "Initializing\n"));
+
+ /* register ourselves with the agent to handle our mib tree */
+ REGISTER_MIB("$name", ${name}_variables, variable4,
+ ${name}_variables_oid);
+
+ /* place any other initialization junk you need here */
+}
+
+/*
+ * var_$name():
+ * This function is called every time the agent gets a request for
+ * a scalar variable that might be found within your mib section
+ * registered above. It is up to you to do the right thing and
+ * return the correct value.
+ * You should also correct the value of "var_len" if necessary.
+ *
+ * Please see the documentation for more information about writing
+ * module extensions, and check out the examples in the examples
+ * and mibII directories.
+ */
+unsigned char *
+var_$name(struct variable *vp,
+ oid *name,
+ size_t *length,
+ int exact,
+ size_t *var_len,
+ WriteMethod **write_method)
+{
+ /* variables we may use later */
+ static long long_ret;
+ static u_long ulong_ret;
+ static unsigned char string[SPRINT_MAX_LEN];
+ static oid objid[MAX_OID_LEN];
+ static struct counter64 c64;
+
+ if (header_generic(vp,name,length,exact,var_len,write_method)
+ == MATCH_FAILED )
+ return NULL;
+
+ /*
+ * this is where we do the value assignments for the mib results.
+ */
+ switch(vp->magic) {
+@foreach $i scalar@
+ case $i.uc:
+ @if $i.settable@
+ *write_method = write_${i};
+ @end@
+ VAR = VALUE; /* XXX */
+ return (u_char*) &VAR;
+@end@
+ default:
+ ERROR_MSG("");
+ }
+ return NULL;
+}
+
+
+@foreach $i table@
+/*
+ * var_$i():
+ * Handle this table separately from the scalar value case.
+ * The workings of this are basically the same as for var_$name above.
+ */
+unsigned char *
+var_$i(struct variable *vp,
+ oid *name,
+ size_t *length,
+ int exact,
+ size_t *var_len,
+ WriteMethod **write_method)
+{
+ /* variables we may use later */
+ static long long_ret;
+ static u_long ulong_ret;
+ static unsigned char string[SPRINT_MAX_LEN];
+ static oid objid[MAX_OID_LEN];
+ static struct counter64 c64;
+
+ /*
+ * This assumes that the table is a 'simple' table.
+ * See the implementation documentation for the meaning of this.
+ * You will need to provide the correct value for the TABLE_SIZE parameter
+ *
+ * If this table does not meet the requirements for a simple table,
+ * you will need to provide the replacement code yourself.
+ * Mib2c is not smart enough to write this for you.
+ * Again, see the implementation documentation for what is required.
+ */
+ if (header_simple_table(vp,name,length,exact,var_len,write_method, TABLE_SIZE)
+ == MATCH_FAILED )
+ return NULL;
+
+ /*
+ * this is where we do the value assignments for the mib results.
+ */
+ switch(vp->magic) {
+@foreach $c column@
+ case $c.uc:
+ @if $c.settable@
+ *write_method = write_${c};
+ @end@
+ VAR = VALUE; /* XXX */
+ return (u_char*) &VAR;
+@end@
+ default:
+ ERROR_MSG("");
+ }
+ return NULL;
+}
+@end@
+
+@foreach $i scalar@
+@if $i.settable@
+
+
+int
+write_$i(int action,
+ u_char *var_val,
+ u_char var_val_type,
+ size_t var_val_len,
+ u_char *statP,
+ oid *name,
+ size_t name_len)
+{
+ $i.decl value;
+ int size;
+
+ switch ( action ) {
+ case RESERVE1:
+ if (var_val_type != $i.type) {
+ fprintf(stderr, "write to $name not $i.type\n");
+ return SNMP_ERR_WRONGTYPE;
+ }
+ if (var_val_len > sizeof($i.decl)) {
+ fprintf(stderr,"write to $name: bad length\n");
+ return SNMP_ERR_WRONGLENGTH;
+ }
+ break;
+
+ case RESERVE2:
+ size = var_val_len;
+ value = * ($i.decl *) var_val;
+
+ break;
+
+ case FREE:
+ /* Release any resources that have been allocated */
+ break;
+
+ case ACTION:
+ /*
+ * The variable has been stored in 'value' for you to use,
+ * and you have just been asked to do something with it.
+ * Note that anything done here must be reversable in the UNDO case
+ */
+ break;
+
+ case UNDO:
+ /* Back out any changes made in the ACTION case */
+ break;
+
+ case COMMIT:
+ /*
+ * Things are working well, so it's now safe to make the change
+ * permanently. Make sure that anything done here can't fail!
+ */
+ break;
+ }
+ return SNMP_ERR_NOERROR;
+}
+@end@
+@end@
+
+@foreach $i table@
+@foreach $c column@
+@if $c.settable@
+int
+write_$c(int action,
+ u_char *var_val,
+ u_char var_val_type,
+ size_t var_val_len,
+ u_char *statP,
+ oid *name,
+ size_t name_len)
+{
+ $c.decl value;
+ int size;
+
+ switch ( action ) {
+ case RESERVE1:
+ if (var_val_type != $c.type) {
+ fprintf(stderr, "write to $name not $c.type\n");
+ return SNMP_ERR_WRONGTYPE;
+ }
+ if (var_val_len > sizeof($c.decl)) {
+ fprintf(stderr,"write to $name: bad length\n");
+ return SNMP_ERR_WRONGLENGTH;
+ }
+ break;
+
+ case RESERVE2:
+ size = var_val_len;
+ value = * ($c.decl *) var_val;
+
+ break;
+
+ case FREE:
+ /* Release any resources that have been allocated */
+ break;
+
+ case ACTION:
+ /*
+ * The variable has been stored in 'value' for you to use,
+ * and you have just been asked to do something with it.
+ * Note that anything done here must be reversable in the UNDO case
+ */
+ break;
+
+ case UNDO:
+ /* Back out any changes made in the ACTION case */
+ break;
+
+ case COMMIT:
+ /*
+ * Things are working well, so it's now safe to make the change
+ * permanently. Make sure that anything done here can't fail!
+ */
+ break;
+ }
+ return SNMP_ERR_NOERROR;
+}
+@end@
+@end@
+@end@