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

SNMP编程

开发平台:

C/C++

  1. /* usmStats.c: implements the usmStats portion of the SNMP-USER-BASED-SM-MIB */
  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 "util_funcs.h"
  11. #include "../mibII/sysORTable.h"
  12. #include "usmStats.h"
  13. struct variable2 usmStats_variables[] = {
  14.   { USMSTATSUNSUPPORTEDSECLEVELS, ASN_COUNTER, RONLY, var_usmStats, 1, { 1 } },
  15.   { USMSTATSNOTINTIMEWINDOWS,     ASN_COUNTER, RONLY, var_usmStats, 1, { 2 } },
  16.   { USMSTATSUNKNOWNUSERNAMES,     ASN_COUNTER, RONLY, var_usmStats, 1, { 3 } },
  17.   { USMSTATSUNKNOWNENGINEIDS,     ASN_COUNTER, RONLY, var_usmStats, 1, { 4 } },
  18.   { USMSTATSWRONGDIGESTS,         ASN_COUNTER, RONLY, var_usmStats, 1, { 5 } },
  19.   { USMSTATSDECRYPTIONERRORS,     ASN_COUNTER, RONLY, var_usmStats, 1, { 6 } },
  20. };
  21. /* now load this mib into the agents mib table */
  22. oid usmStats_variables_oid[] = {1,3,6,1,6,3,15,1,1};
  23. void init_usmStats (void) {
  24. #ifdef USING_MIBII_SYSORTABLE_MODULE
  25.   static oid reg[] = {1,3,6,1,6,3,15,2,1,1};
  26.   register_sysORTable(reg,10,"The management information definitions for the SNMP User-based Security Model.");
  27. #endif
  28.   REGISTER_MIB("snmpv3/usmStats", usmStats_variables, variable2, 
  29.  usmStats_variables_oid );
  30. }
  31. u_char *
  32. var_usmStats(
  33.     struct variable *vp,
  34.     oid     *name,
  35.     int  *length,
  36.     int     exact,
  37.     int  *var_len,
  38.     WriteMethod **write_method)
  39. {
  40.   /* variables we may use later */
  41.   static long long_ret;
  42.   int tmagic;
  43.   *write_method = 0;           /* assume it isnt writable for the time being */
  44.   *var_len = sizeof(long_ret); /* assume an integer and change later if not */
  45.   if (header_generic(vp,name,length,exact,var_len,write_method))
  46.       return 0;
  47.   /* this is where we do the value assignments for the mib results. */
  48.   tmagic = vp->magic;
  49.   if ( (tmagic >= 0)
  50. && (tmagic <= (STAT_USM_STATS_END - STAT_USM_STATS_START)) )
  51.   {
  52.     long_ret = snmp_get_statistic(tmagic + STAT_USM_STATS_START);
  53.     return (unsigned char *) &long_ret;
  54.   }
  55.   return 0;
  56. }