usmStats.c
资源名称:snmp.src.rar [点击查看]
上传用户:cxs890
上传日期:2021-05-22
资源大小:347k
文件大小:2k
源码类别:
SNMP编程
开发平台:
C/C++
- /* usmStats.c: implements the usmStats portion of the SNMP-USER-BASED-SM-MIB */
- #include <config.h>
- #ifdef OS_VXWORKS
- #include <sys/times.h>
- #endif
- #if HAVE_WINSOCK_H
- #include <ip/socket.h>
- #endif
- #include "mibincl.h"
- #include "util_funcs.h"
- #include "../mibII/sysORTable.h"
- #include "usmStats.h"
- struct variable2 usmStats_variables[] = {
- { USMSTATSUNSUPPORTEDSECLEVELS, ASN_COUNTER, RONLY, var_usmStats, 1, { 1 } },
- { USMSTATSNOTINTIMEWINDOWS, ASN_COUNTER, RONLY, var_usmStats, 1, { 2 } },
- { USMSTATSUNKNOWNUSERNAMES, ASN_COUNTER, RONLY, var_usmStats, 1, { 3 } },
- { USMSTATSUNKNOWNENGINEIDS, ASN_COUNTER, RONLY, var_usmStats, 1, { 4 } },
- { USMSTATSWRONGDIGESTS, ASN_COUNTER, RONLY, var_usmStats, 1, { 5 } },
- { USMSTATSDECRYPTIONERRORS, ASN_COUNTER, RONLY, var_usmStats, 1, { 6 } },
- };
- /* now load this mib into the agents mib table */
- oid usmStats_variables_oid[] = {1,3,6,1,6,3,15,1,1};
- void init_usmStats (void) {
- #ifdef USING_MIBII_SYSORTABLE_MODULE
- static oid reg[] = {1,3,6,1,6,3,15,2,1,1};
- register_sysORTable(reg,10,"The management information definitions for the SNMP User-based Security Model.");
- #endif
- REGISTER_MIB("snmpv3/usmStats", usmStats_variables, variable2,
- usmStats_variables_oid );
- }
- u_char *
- var_usmStats(
- struct variable *vp,
- oid *name,
- int *length,
- int exact,
- int *var_len,
- WriteMethod **write_method)
- {
- /* variables we may use later */
- static long long_ret;
- int tmagic;
- *write_method = 0; /* assume it isnt writable for the time being */
- *var_len = sizeof(long_ret); /* assume an integer and change later if not */
- if (header_generic(vp,name,length,exact,var_len,write_method))
- return 0;
- /* this is where we do the value assignments for the mib results. */
- tmagic = vp->magic;
- if ( (tmagic >= 0)
- && (tmagic <= (STAT_USM_STATS_END - STAT_USM_STATS_START)) )
- {
- long_ret = snmp_get_statistic(tmagic + STAT_USM_STATS_START);
- return (unsigned char *) &long_ret;
- }
- return 0;
- }