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
5 {LOADAVE, ASN_OCTET_STR, RONLY, var_extensible_loadave, 1,
7 - {LOADMAXVAL, ASN_OCTET_STR, RONLY, var_extensible_loadave, 1,
8 + {LOADMAXVAL, ASN_OCTET_STR, RWRITE, var_extensible_loadave, 1,
10 {LOADAVEINT, ASN_INTEGER, RONLY, var_extensible_loadave, 1,
17 +write_laConfig(int action,
19 + u_char var_val_type,
21 + u_char * statP, oid * name, size_t name_len)
23 + static double laConfig = 0;
27 + if (var_val_type != ASN_OCTET_STR) {
28 + DEBUGMSGTL(("ucd-snmp/loadave",
29 + "write to laConfig not ASN_OCTET_STR\n"));
30 + return SNMP_ERR_WRONGTYPE;
32 + if (var_val_len > 8 || var_val_len <= 0) {
33 + DEBUGMSGTL(("ucd-snmp/loadave",
34 + "write to laConfig: bad length\n"));
35 + return SNMP_ERR_WRONGLENGTH;
42 + int old_errno = errno;
46 + strncpy(buf, var_val, var_val_len);
47 + buf[var_val_len] = '\0';
48 + val = strtod(buf, &endp);
50 + if (errno == ERANGE || *endp != '\0' || val < 0 || val > 65536.00) {
52 + DEBUGMSGTL(("ucd-snmp/loadave",
53 + "write to laConfig: invalid value\n"));
54 + return SNMP_ERR_WRONGVALUE;
65 + int idx = name[name_len - 1] - 1;
66 + maxload[idx] = laConfig;
70 + return SNMP_ERR_NOERROR;
74 var_extensible_loadave(struct variable * vp,
78 long_ret = name[*length - 1];
79 return ((u_char *) (&long_ret));
81 + /* setup write method, but don't return yet */
82 + *write_method = write_laConfig;
85 sprintf(errmsg, "Load-%d", ((name[*length - 1] == 1) ? 1 :
86 ((name[*length - 1] == 2) ? 5 : 15)));