snmpMPDStats.c
上传用户:cxs890
上传日期:2021-05-22
资源大小:347k
文件大小:2k
源码类别:

SNMP编程

开发平台:

C/C++

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