Hi,
If the kernel sensor doesn't have a description, snmpd should fill
something into that column to avoid an empty value. An empty value
makes it really hard to tell what the sensor is.
Before:
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.1 = ""
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.2 = ""
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.3 = ""
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.4 = ""
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.5 = ""
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.6 = ""
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.7 = STRING: "VCore A"
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.8 = STRING: "VCore B"
After:
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.1 = STRING: "temp0"
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.2 = STRING: "temp1"
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.3 = STRING: "temp2"
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.4 = STRING: "fan0"
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.5 = STRING: "fan1"
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.6 = STRING: "fan2"
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.7 = STRING: "VCore A"
SNMPv2-SMI::enterprises.30155.2.1.2.1.2.8 = STRING: "VCore B"
ok?
.joel
Index: src/usr.sbin/snmpd/mib.c
===================================================================
RCS file: /cvs/src/usr.sbin/snmpd/mib.c,v
retrieving revision 1.47
diff -p -u -r1.47 mib.c
--- src/usr.sbin/snmpd/mib.c 16 Sep 2011 20:52:48 -0000 1.47
+++ src/usr.sbin/snmpd/mib.c 30 Jan 2012 05:22:45 -0000
@@ -1271,6 +1271,7 @@ mib_sensors(struct oid *oid, struct ber_
size_t len = sizeof(sensordev);
struct sensor sensor;
size_t slen = sizeof(sensor);
+ char desc[32];
int mib[] = { CTL_HW, HW_SENSORS, 0, 0, 0 };
int i, j, k;
u_int32_t idx = 0, n;
@@ -1315,7 +1316,13 @@ mib_sensors(struct oid *oid, struct ber_
ber = ber_add_integer(ber, (int32_t)n);
break;
case 2:
- ber = ber_add_string(ber, sensor.desc);
+ if (sensor.desc[0] == '\0') {
+ snprintf(desc, sizeof(desc), "%s%d",
+ sensor_type_s[sensor.type],
+ sensor.numt);
+ ber = ber_add_string(ber, desc);
+ } else
+ ber = ber_add_string(ber, sensor.desc);
break;
case 3:
ber = ber_add_integer(ber, sensor.type);