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

SNMP编程

开发平台:

Unix_Linux

  1. /*
  2.  * snmpMPDStats.c: tallies errors for SNMPv3 message processing. 
  3.  */
  4. #include <net-snmp/net-snmp-config.h>
  5. #if HAVE_WINSOCK_H
  6. #include <winsock.h>
  7. #endif
  8. #include <net-snmp/net-snmp-includes.h>
  9. #include <net-snmp/agent/net-snmp-agent-includes.h>
  10. #include "mibII/sysORTable.h"
  11. #include "snmpMPDStats.h"
  12. #include "util_funcs.h"
  13. struct variable2 snmpMPDStats_variables[] = {
  14.     {SNMPUNKNOWNSECURITYMODELS, ASN_COUNTER, RONLY, var_snmpMPDStats, 1,
  15.      {1}},
  16.     {SNMPINVALIDMSGS, ASN_COUNTER, RONLY, var_snmpMPDStats, 1, {2}},
  17.     {SNMPUNKNOWNPDUHANDLERS, ASN_COUNTER, RONLY, var_snmpMPDStats, 1, {3}},
  18. };
  19. /*
  20.  * now load this mib into the agents mib table 
  21.  */
  22. oid             snmpMPDStats_variables_oid[] =
  23.     { 1, 3, 6, 1, 6, 3, 11, 2, 1 };
  24. void
  25. init_snmpMPDStats(void)
  26. {
  27. #ifdef USING_MIBII_SYSORTABLE_MODULE
  28.     static oid      reg[] = { 1, 3, 6, 1, 6, 3, 11, 3, 1, 1 };
  29.     register_sysORTable(reg, 10,
  30.                         "The MIB for Message Processing and Dispatching.");
  31. #endif
  32.     REGISTER_MIB("snmpv3/snmpMPDStats", snmpMPDStats_variables, variable2,
  33.                  snmpMPDStats_variables_oid);
  34. }
  35. u_char         *
  36. var_snmpMPDStats(struct variable *vp,
  37.                  oid * name,
  38.                  size_t * length,
  39.                  int exact, size_t * var_len, WriteMethod ** write_method)
  40. {
  41.     /*
  42.      * variables we may use later 
  43.      */
  44.     static long     long_ret;
  45.     int             tmagic;
  46.     *write_method = 0;          /* assume it isnt writable for the time being */
  47.     *var_len = sizeof(long_ret);        /* assume an integer and change later if not */
  48.     if (header_generic(vp, name, length, exact, var_len, write_method))
  49.         return 0;
  50.     /*
  51.      * this is where we do the value assignments for the mib results. 
  52.      */
  53.     tmagic = vp->magic;
  54.     if ((tmagic >= 0)
  55.         && (tmagic <= (STAT_MPD_STATS_END - STAT_MPD_STATS_START))) {
  56.         long_ret = snmp_get_statistic(tmagic + STAT_MPD_STATS_START);
  57.         return (unsigned char *) &long_ret;
  58.     }
  59.     return 0;
  60. }