1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
/*
* usmStats.c: implements the usmStats portion of the SNMP-USER-BASED-SM-MIB
*/
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include <net-snmp/agent/sysORTable.h>
#include "util_funcs/header_generic.h"
#include "usmStats.h"
struct variable2 usmStats_variables[] = {
{USMSTATSUNSUPPORTEDSECLEVELS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
var_usmStats, 1, {1}},
{USMSTATSNOTINTIMEWINDOWS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
var_usmStats, 1, {2}},
{USMSTATSUNKNOWNUSERNAMES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
var_usmStats, 1, {3}},
{USMSTATSUNKNOWNENGINEIDS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
var_usmStats, 1, {4}},
{USMSTATSWRONGDIGESTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
var_usmStats, 1, {5}},
{USMSTATSDECRYPTIONERRORS, ASN_COUNTER, NETSNMP_OLDAPI_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)
{
static oid reg[] = { 1, 3, 6, 1, 6, 3, 15, 2, 1, 1 };
REGISTER_SYSOR_ENTRY(reg,
"The management information definitions for the "
"SNMP User-based Security Model.");
REGISTER_MIB("snmpv3/usmStats", usmStats_variables, variable2,
usmStats_variables_oid);
}
u_char *
var_usmStats(struct variable *vp,
oid * name,
size_t * length,
int exact, size_t * 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;
}
|