summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 6f452fe)
raw | patch | inline | side by side (parent: 6f452fe)
author | Florian Forster <octo@huhu.verplant.org> | |
Tue, 8 Mar 2011 20:28:36 +0000 (21:28 +0100) | ||
committer | Florian Forster <octo@huhu.verplant.org> | |
Tue, 8 Mar 2011 20:28:36 +0000 (21:28 +0100) |
Go to some length to make it possible to display the name of the
<host /> and <data /> block when complaining about an unknown ASN type.
<host /> and <data /> block when complaining about an unknown ASN type.
src/snmp.c | patch | blob | history |
diff --git a/src/snmp.c b/src/snmp.c
index 54bcf67242170ea93c6cdc070a5a81a8196ed067..7a8485113289f16923a14f491537c16b2aa5ac79 100644 (file)
--- a/src/snmp.c
+++ b/src/snmp.c
/* TODO: Check if negative values wrap around. Problem: negative temperatures. */
static value_t csnmp_value_list_to_value (struct variable_list *vl, int type,
- double scale, double shift)
+ double scale, double shift,
+ const char *host_name, const char *data_name)
{
value_t ret;
uint64_t tmp_unsigned = 0;
oid_buffer);
else
#endif
- WARNING ("snmp plugin: I don't know the ASN type \"%i\" (OID: %s)",
- (int) vl->type, oid_buffer);
+ WARNING ("snmp plugin: I don't know the ASN type #%i "
+ "(OID: \"%s\", data block \"%s\", host block \"%s\")",
+ (int) vl->type, oid_buffer,
+ (data_name != NULL) ? data_name : "UNKNOWN",
+ (host_name != NULL) ? host_name : "UNKNOWN");
defined = 0;
}
static int csnmp_instance_list_add (csnmp_list_instances_t **head,
csnmp_list_instances_t **tail,
- const struct snmp_pdu *res)
+ const struct snmp_pdu *res,
+ const host_definition_t *hd, const data_definition_t *dd)
{
csnmp_list_instances_t *il;
struct variable_list *vb;
}
else
{
- value_t val = csnmp_value_list_to_value (vb, DS_TYPE_COUNTER, 1.0, 0.0);
+ value_t val = csnmp_value_list_to_value (vb, DS_TYPE_COUNTER,
+ /* scale = */ 1.0, /* shift = */ 0.0, hd->name, dd->name);
ssnprintf (il->instance, sizeof (il->instance),
"%llu", val.counter);
}
@@ -1286,7 +1292,7 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data)
/* Allocate a new `csnmp_list_instances_t', insert the instance name and
* add it to the list */
if (csnmp_instance_list_add (&instance_list, &instance_list_ptr,
- res) != 0)
+ res, host, data) != 0)
{
ERROR ("snmp plugin: csnmp_instance_list_add failed.");
status = -1;
@@ -1342,7 +1348,7 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data)
vt->subid = vb->name[vb->name_length - 1];
vt->value = csnmp_value_list_to_value (vb, ds->ds[i].type,
- data->scale, data->shift);
+ data->scale, data->shift, host->name, data->name);
vt->next = NULL;
if (value_table_ptr[i] == NULL)
@@ -1492,8 +1498,8 @@ static int csnmp_read_value (host_definition_t *host, data_definition_t *data)
for (i = 0; i < data->values_len; i++)
if (snmp_oid_compare (data->values[i].oid, data->values[i].oid_len,
vb->name, vb->name_length) == 0)
- vl.values[i] = csnmp_value_list_to_value (vb, ds->ds[i].type,
- data->scale, data->shift);
+ vl.values[i] = csnmp_value_list_to_value (vb, ds->ds[i].type,
+ data->scale, data->shift, host->name, data->name);
} /* for (res->variables) */
if (res != NULL)