X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fsnmp.c;h=352075f26ded8ef75802d020c069de9d53836c0a;hb=6d86a97190a193863aadc252f20f6b9dba61c263;hp=3ba93fe8438078c92bf3481401dfd11a8441f103;hpb=332cf199806de625661fa3a9bf9555f7a47ba9f9;p=collectd.git diff --git a/src/snmp.c b/src/snmp.c index 3ba93fe8..352075f2 100644 --- a/src/snmp.c +++ b/src/snmp.c @@ -530,9 +530,9 @@ static int csnmp_config_add_host_interval (host_definition_t *hd, oconfig_item_t return (-1); } - hd->interval = (int) ci->values[0].value.number; - if (hd->interval < 0) - hd->interval = 0; + hd->interval = ci->values[0].value.number >= 0 + ? (uint32_t) ci->values[0].value.number + : 0; return (0); } /* int csnmp_config_add_host_interval */ @@ -696,6 +696,7 @@ static void csnmp_host_open_session (host_definition_t *host) } } /* void csnmp_host_open_session */ +/* 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) { @@ -963,7 +964,6 @@ static int csnmp_dispatch_table (host_definition_t *host, data_definition_t *dat sstrncpy (vl.plugin, "snmp", sizeof (vl.plugin)); vl.interval = host->interval; - vl.time = time (NULL); subid = 0; have_more = 1; @@ -1139,7 +1139,7 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data) break; } - for (i = 0; i < oid_list_len; i++) + for (i = 0; (uint32_t) i < oid_list_len; i++) snmp_add_null_var (req, oid_list[i].oid, oid_list[i].oid_len); res = NULL; @@ -1385,7 +1385,6 @@ static int csnmp_read_value (host_definition_t *host, data_definition_t *data) return (-1); } - vl.time = time (NULL); for (vb = res->variables; vb != NULL; vb = vb->next_variable) { @@ -1443,7 +1442,7 @@ static int csnmp_read_host (host_definition_t *host) time_end = time (NULL); DEBUG ("snmp plugin: csnmp_read_host (%s) finished at %u;", host->name, (unsigned int) time_end); - if ((time_end - time_start) > host->interval) + if ((uint32_t) (time_end - time_start) > host->interval) { WARNING ("snmp plugin: Host `%s' should be queried every %i seconds, " "but reading all values takes %u seconds.", @@ -1453,7 +1452,7 @@ static int csnmp_read_host (host_definition_t *host) return (0); } /* int csnmp_read_host */ -static void *csnmp_read_thread (void *data) +static void *csnmp_read_thread (void __attribute__((unused)) *data) { host_definition_t *host; @@ -1506,7 +1505,7 @@ static int csnmp_init (void) { host->interval = interval_g; } - else if (host->interval < interval_g) + else if (host->interval < (uint32_t) interval_g) { host->interval = interval_g; WARNING ("snmp plugin: Data for host `%s' will be collected every %i seconds.",