]> git.pld-linux.org Git - packages/net-snmp.git/blame - net-snmp-loadave-writable.patch
- upstream code style (spaces for indent)
[packages/net-snmp.git] / net-snmp-loadave-writable.patch
CommitLineData
e9b6787d
ER
1--- net-snmp-5.4.2.1/agent/mibgroup/ucd-snmp/loadave.c~ 2009-12-21 21:00:10.094254079 +0200
2+++ net-snmp-5.4.2.1/agent/mibgroup/ucd-snmp/loadave.c 2009-12-21 22:02:45.398903148 +0200
3@@ -152,7 +152,7 @@
4 {ERRORNAME}},
5 {LOADAVE, ASN_OCTET_STR, RONLY, var_extensible_loadave, 1,
6 {LOADAVE}},
7- {LOADMAXVAL, ASN_OCTET_STR, RONLY, var_extensible_loadave, 1,
8+ {LOADMAXVAL, ASN_OCTET_STR, RWRITE, var_extensible_loadave, 1,
9 {LOADMAXVAL}},
10 {LOADAVEINT, ASN_INTEGER, RONLY, var_extensible_loadave, 1,
11 {LOADAVEINT}},
12@@ -309,6 +309,40 @@
13 return 0;
14 }
15
16+static int
17+write_laConfig(int action,
18+ u_char * var_val,
19+ u_char var_val_type,
20+ size_t var_val_len,
21+ u_char * statP, oid * name, size_t name_len)
22+{
23+ if (var_val_type != ASN_OCTET_STR) {
24+ DEBUGMSGTL(("ucd-snmp/loadave",
25+ "write to laConfig not ASN_OCTET_STR\n"));
26+ return SNMP_ERR_WRONGTYPE;
27+ }
00b0aba0 28+ /* allow max value of 65536.00 */
e9b6787d
ER
29+ if (var_val_len > 8) {
30+ DEBUGMSGTL(("ucd-snmp/loadave",
31+ "write to laConfig: bad length\n"));
32+ return SNMP_ERR_WRONGLENGTH;
33+ }
34+ if (action == COMMIT) {
35+ if (var_val_len != 0) {
00b0aba0
ER
36+ double val;
37+ if (sscanf(var_val, "%7lf", &val) == 1) {
38+ int idx = name[name_len - 1] - 1;
39+ maxload[idx] = val;
40+ } else {
41+ DEBUGMSGTL(("ucd-snmp/loadave",
42+ "write to laConfig: invalid value\n"));
43+ return SNMP_ERR_WRONGVALUE;
44+ }
45+ }
e9b6787d
ER
46+ }
47+ return SNMP_ERR_NOERROR;
48+}
49+
50 u_char *
51 var_extensible_loadave(struct variable * vp,
52 oid * name,
53@@ -328,6 +362,10 @@
54 case MIBINDEX:
55 long_ret = name[*length - 1];
56 return ((u_char *) (&long_ret));
57+ case LOADMAXVAL:
00b0aba0
ER
58+ /* setup write method, but don't return yet */
59+ *write_method = write_laConfig;
60+ break;
e9b6787d
ER
61 case ERRORNAME:
62 sprintf(errmsg, "Load-%d", ((name[*length - 1] == 1) ? 1 :
63 ((name[*length - 1] == 2) ? 5 : 15)));
This page took 0.093129 seconds and 4 git commands to generate.