netSnmpHostsTable_checkfns.c
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:6k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. /*
  2.  * Note: this file originally auto-generated by mib2c using
  3.  *        : mib2c.check_values.conf,v 1.5 2003/05/31 00:11:57 hardaker Exp $
  4.  */
  5. /********************************************************************
  6.  *                       NOTE   NOTE   NOTE
  7.  *   This file is auto-generated and SHOULD NOT BE EDITED by hand.
  8.  *   Modify the netSnmpHostsTable_checkfns_local.[ch] files insead so that you
  9.  *   can regenerate this one as mib2c improvements are made.
  10.  ********************************************************************/
  11. /*
  12.  * standard headers 
  13.  */
  14. #include <net-snmp/net-snmp-config.h>
  15. #include <net-snmp/net-snmp-includes.h>
  16. #include "netSnmpHostsTable_checkfns.h"
  17. #include "netSnmpHostsTable_checkfns_local.h"
  18. #include "netSnmpHostsTable_enums.h"
  19. /** Decides if an incoming value for the netSnmpHostAddressType mib node is legal.
  20.  *  @param type    The incoming data type.
  21.  *  @param val     The value to be checked.
  22.  *  @param val_len The length of data stored in val (in bytes).
  23.  *  @return 0 if the incoming value is legal, an SNMP error code otherwise.
  24.  */
  25. int
  26. check_netSnmpHostAddressType(int type, long *val, size_t val_len,
  27.                              long *old_val, size_t old_val_len)
  28. {
  29.     int             ret;
  30.     /** Check to see that we were called legally */
  31.     if (!val)
  32.         return SNMP_ERR_GENERR;
  33.     /** Check the incoming type for correctness */
  34.     if (type != ASN_INTEGER)
  35.         return SNMP_ERR_WRONGTYPE;
  36.     /** Check the enums.  Legal values will continue, others return error. */
  37.     switch (*val) {
  38.     case NETSNMPHOSTADDRESSTYPE_UNKNOWN:
  39.     case NETSNMPHOSTADDRESSTYPE_IPV4:
  40.     case NETSNMPHOSTADDRESSTYPE_IPV6:
  41.     case NETSNMPHOSTADDRESSTYPE_IPV4Z:
  42.     case NETSNMPHOSTADDRESSTYPE_IPV6Z:
  43.     case NETSNMPHOSTADDRESSTYPE_DNS:
  44.         break;
  45.     /** not a legal enum value.  return an error */
  46.     default:
  47.         return SNMP_ERR_INCONSISTENTVALUE;
  48.     }
  49.     ret = SNMP_ERR_NOERROR;
  50.     /** looks ok, call the local version of the same function. */
  51.     return check_netSnmpHostAddressType_local(type, val, val_len, old_val,
  52.                                               old_val_len);
  53. }
  54. /** Decides if an incoming value for the netSnmpHostAddress mib node is legal.
  55.  *  @param type    The incoming data type.
  56.  *  @param val     The value to be checked.
  57.  *  @param val_len The length of data stored in val (in bytes).
  58.  *  @return 0 if the incoming value is legal, an SNMP error code otherwise.
  59.  */
  60. int
  61. check_netSnmpHostAddress(int type, char *val, size_t val_len,
  62.                          char *old_val, size_t old_val_len)
  63. {
  64.     int             ret;
  65.     /** Check to see that we were called legally */
  66.     if (!val)
  67.         return SNMP_ERR_GENERR;
  68.     /** Check the incoming type for correctness */
  69.     if (type != ASN_OCTET_STR)
  70.         return SNMP_ERR_WRONGTYPE;
  71.     /** Check the ranges of the passed value for legality */
  72.     if (!(val_len >= 0 && val_len <= 255)
  73.         ) {
  74.         return SNMP_ERR_WRONGVALUE;
  75.     }
  76.     /** looks ok, call the local version of the same function. */
  77.     return check_netSnmpHostAddress_local(type, val, val_len, old_val,
  78.                                           old_val_len);
  79. }
  80. /** Decides if an incoming value for the netSnmpHostStorage mib node is legal.
  81.  *  @param type    The incoming data type.
  82.  *  @param val     The value to be checked.
  83.  *  @param val_len The length of data stored in val (in bytes).
  84.  *  @return 0 if the incoming value is legal, an SNMP error code otherwise.
  85.  */
  86. int
  87. check_netSnmpHostStorage(int type, long *val, size_t val_len,
  88.                          long *old_val, size_t old_val_len)
  89. {
  90.     int             ret;
  91.     /** Check to see that we were called legally */
  92.     if (!val)
  93.         return SNMP_ERR_GENERR;
  94.     /** Check the incoming type for correctness */
  95.     if (type != ASN_INTEGER)
  96.         return SNMP_ERR_WRONGTYPE;
  97.     /** Check the enums.  Legal values will continue, others return error. */
  98.     switch (*val) {
  99.     case NETSNMPHOSTSTORAGE_OTHER:
  100.     case NETSNMPHOSTSTORAGE_VOLATILE:
  101.     case NETSNMPHOSTSTORAGE_NONVOLATILE:
  102.     case NETSNMPHOSTSTORAGE_PERMANENT:
  103.     case NETSNMPHOSTSTORAGE_READONLY:
  104.         break;
  105.     /** not a legal enum value.  return an error */
  106.     default:
  107.         return SNMP_ERR_INCONSISTENTVALUE;
  108.     }
  109.     ret = SNMP_ERR_NOERROR;
  110.     if (ret =
  111.         check_storage_transition((old_val) ? *old_val : SNMP_STORAGE_NONE,
  112.                                  *val))
  113.         return ret;
  114.     /** looks ok, call the local version of the same function. */
  115.     return check_netSnmpHostStorage_local(type, val, val_len, old_val,
  116.                                           old_val_len);
  117. }
  118. /** Decides if an incoming value for the netSnmpHostRowStatus mib node is legal.
  119.  *  @param type    The incoming data type.
  120.  *  @param val     The value to be checked.
  121.  *  @param val_len The length of data stored in val (in bytes).
  122.  *  @return 0 if the incoming value is legal, an SNMP error code otherwise.
  123.  */
  124. int
  125. check_netSnmpHostRowStatus(int type, long *val, size_t val_len,
  126.                            long *old_val, size_t old_val_len)
  127. {
  128.     int             ret;
  129.     /** Check to see that we were called legally */
  130.     if (!val)
  131.         return SNMP_ERR_GENERR;
  132.     /** Check the incoming type for correctness */
  133.     if (type != ASN_INTEGER)
  134.         return SNMP_ERR_WRONGTYPE;
  135.     /** Check the enums.  Legal values will continue, others return error. */
  136.     switch (*val) {
  137.     case NETSNMPHOSTROWSTATUS_ACTIVE:
  138.     case NETSNMPHOSTROWSTATUS_NOTINSERVICE:
  139.     case NETSNMPHOSTROWSTATUS_NOTREADY:
  140.     case NETSNMPHOSTROWSTATUS_CREATEANDGO:
  141.     case NETSNMPHOSTROWSTATUS_CREATEANDWAIT:
  142.     case NETSNMPHOSTROWSTATUS_DESTROY:
  143.         break;
  144.     /** not a legal enum value.  return an error */
  145.     default:
  146.         return SNMP_ERR_INCONSISTENTVALUE;
  147.     }
  148.     ret = SNMP_ERR_NOERROR;
  149.     if (ret =
  150.         check_rowstatus_transition((old_val) ? *old_val : RS_NONEXISTENT,
  151.                                    *val))
  152.         return ret;
  153.     /** looks ok, call the local version of the same function. */
  154.     return check_netSnmpHostRowStatus_local(type, val, val_len, old_val,
  155.                                             old_val_len);
  156. }