diff options
Diffstat (limited to 'local/mib2c.check_values_local.conf')
-rw-r--r-- | local/mib2c.check_values_local.conf | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/local/mib2c.check_values_local.conf b/local/mib2c.check_values_local.conf new file mode 100644 index 0000000..13c1e60 --- /dev/null +++ b/local/mib2c.check_values_local.conf @@ -0,0 +1,72 @@ +## -*- c -*- +###################################################################### +## Do the .h file +###################################################################### +@open ${name}_checkfns_local.h@ +/* + * Note: this file originally auto-generated by mib2c using + * : $Id$ + * + */ +#ifndef $name.uc_CHECKFNS_H +#define $name.uc_CHECKFNS_H + +@foreach $t table@ +/* these functions are designed to check incoming values for +columns in the $t table for legality with respect to +datatype and value according to local conventions. You should modify +them as appropriate. They will be called from parent check_value +functions that are auto-generated using mib2c and the parent functions +should NOT be modified. + */ + + @foreach $i column@ + @if $i.access =~ /(Write|Create)/@ + int check_${i}_local(int type, $i.decl *val, size_t val_len, $i.decl *old_val, size_t old_val_len); + @end@ + @end@ +@end@ + +#endif /* $name.uc_CHECKFNS_H */ + +###################################################################### +## Do the .c file +###################################################################### +@open ${name}_checkfns_local.c@ +/* + * Note: this file originally auto-generated by mib2c using + * $Id$ + */ + +/* standard headers */ +#include <net-snmp/net-snmp-config.h> +#include <net-snmp/net-snmp-includes.h> +#include "${name}_checkfns.h" +#include "${name}_enums.h" +@run mib2c.column_enums.conf@ + +@foreach $t table@ + @foreach $i column@ + @if $i.access =~ /(Write|Create)/@ +/** Decides if an incoming value for the $i mib node is legal, from a local implementation specific viewpoint. + * @param type The incoming data type. + * @param val The value to be checked. + * @param val_len The length of data stored in val (in bytes). + * @return 0 if the incoming value is legal, an SNMP error code otherwise. + */ + int + check_${i}_local(int type, $i.decl *val, size_t val_len, $i.decl *old_val, size_t old_val_len) { + + /** XXX: you may want to check aspects of the new value that + were not covered by the automatic checks by the parent function. */ + + /** XXX: you make want to check that the requested change from + the old value to the new value is legal (ie, the transistion + from one value to another is legal */ + + /** if everything looks ok, return SNMP_ERR_NOERROR */ + return SNMP_ERR_NOERROR; + } + @end@ + @end@ +@end@ |