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

SNMP编程

开发平台:

Unix_Linux

  1. /*
  2.  *Copyright(c)2004,Cisco URP imburses and Network Information Center in Beijing University of Posts and Telecommunications researches.
  3.  *
  4.  *All right reserved
  5.  *
  6.  *File Name: expErrorTable.c
  7.  *File Description: expErrorTable MIB operation.
  8.  *
  9.  *Current Version:1.0
  10.  *Author:JianShun Tong
  11.  *Date:2004.8.20
  12.  */
  13. /*
  14.  * This file was generated by mib2c and is intended for use as
  15.  * a mib module for the ucd-snmp snmpd agent. 
  16.  */
  17. /*
  18.  * This should always be included first before anything else 
  19.  */
  20. #include <net-snmp/net-snmp-config.h>
  21. #if HAVE_STDLIB_H
  22. #include <stdlib.h>
  23. #endif
  24. #if HAVE_STRING_H
  25. #include <string.h>
  26. #else
  27. #include <strings.h>
  28. #endif
  29. #ifdef HAVE_LIMITS_H
  30. #include <limits.h>
  31. #endif
  32. /*
  33.  * minimal include directives 
  34.  */
  35. #include <net-snmp/net-snmp-includes.h>
  36. #include <net-snmp/agent/net-snmp-agent-includes.h>
  37. #include "header_complex.h"
  38. #include "expErrorTable.h"
  39. #include "expExpressionTable.h"
  40. /*
  41.  * expErrorTable_variables_oid:
  42.  *   this is the top level oid that we want to register under.  This
  43.  *   is essentially a prefix, with the suffix appearing in the
  44.  *   variable below.
  45.  */
  46. oid             expErrorTable_variables_oid[] =
  47.     { 1, 3, 6, 1, 2, 1, 90, 1, 2, 2 };
  48. /*
  49.  * variable2 expErrorTable_variables:
  50.  */
  51. struct variable2 expErrorTable_variables[] = {
  52.     /*
  53.      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
  54.      */
  55. #define EXPERRORTIME  1
  56.     {EXPERRORTIME,  ASN_UNSIGNED, RONLY, var_expErrorTable, 2, {1, 1}},
  57. #define EXPERRORINDEX 2
  58.     {EXPERRORINDEX, ASN_INTEGER,  RONLY, var_expErrorTable, 2, {1, 2}},
  59. #define EXPERRORCODE 3
  60.     {EXPERRORCODE,  ASN_INTEGER,  RONLY, var_expErrorTable, 2, {1, 3}},
  61. #define EXPERRORINSTANCE 4
  62.     {EXPERRORINSTANCE, ASN_OBJECT_ID, RONLY, var_expErrorTable, 2, {1, 4}}
  63. };
  64. extern struct header_complex_index *expExpressionTableStorage;
  65. void
  66. init_expErrorTable(void)
  67. {
  68.     DEBUGMSGTL(("expErrorTable", "initializing...  "));
  69.     /*
  70.      * register ourselves with the agent to handle our mib tree 
  71.      */
  72.     REGISTER_MIB("expErrorTable",
  73.                  expErrorTable_variables, variable2,
  74.                  expErrorTable_variables_oid);
  75.     DEBUGMSGTL(("expErrorTable", "done.n"));
  76. }
  77. unsigned char  *
  78. var_expErrorTable(struct variable *vp,
  79.                   oid * name,
  80.                   size_t *length,
  81.                   int exact, size_t *var_len, WriteMethod ** write_method)
  82. {
  83.     struct expExpressionTable_data *StorageTmp = NULL;
  84.     DEBUGMSGTL(("expErrorTable", "var_expErrorTable: Entering...  n"));
  85.     /*
  86.      * this assumes you have registered all your data properly
  87.      */
  88.     if ((StorageTmp =
  89.          header_complex(expExpressionTableStorage, vp, name, length, exact,
  90.                         var_len, write_method)) == NULL)
  91.         return NULL;
  92.     /*
  93.      * this is where we do the value assignments for the mib results.
  94.      */
  95.     switch (vp->magic) {
  96.     case EXPERRORTIME:
  97.         *var_len = sizeof(StorageTmp->expErrorTime);
  98.         return (u_char *) & StorageTmp->expErrorTime;
  99.     case EXPERRORINDEX:
  100.         *var_len = sizeof(StorageTmp->expErrorIndex);
  101.         return (u_char *) & StorageTmp->expErrorIndex;
  102.     case EXPERRORCODE:
  103.         *var_len = sizeof(StorageTmp->expErrorCode);
  104.         return (u_char *) & StorageTmp->expErrorCode;
  105.     case EXPERRORINSTANCE:
  106.         *var_len = StorageTmp->expErrorInstanceLen * sizeof(oid);
  107.         return (u_char *) StorageTmp->expErrorInstance;
  108.     }
  109. }