X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fsnmp.c;h=8b327308eac6ba534448c813a58bc237d33a7d5d;hb=23ac8e592cd64c424fddce842baea300ff8a3a85;hp=0e2af3beab6a5c94c30b3096ef940b5abdbd7152;hpb=d0540d2ebaead6661de0ef29c0435c046c7ff4f7;p=collectd.git diff --git a/src/snmp.c b/src/snmp.c index 0e2af3be..8b327308 100644 --- a/src/snmp.c +++ b/src/snmp.c @@ -25,12 +25,11 @@ **/ #include "collectd.h" + #include "common.h" #include "plugin.h" #include "utils_complain.h" -#include - #include #include @@ -166,9 +165,8 @@ static int csnmp_oid_to_string (char *buffer, size_t buffer_size, { char oid_str[MAX_OID_LEN][16]; char *oid_str_ptr[MAX_OID_LEN]; - size_t i; - for (i = 0; i < o->oid_len; i++) + for (size_t i = 0; i < o->oid_len; i++) { ssnprintf (oid_str[i], sizeof (oid_str[i]), "%lu", (unsigned long) o->oid[i]); oid_str_ptr[i] = oid_str[i]; @@ -293,15 +291,13 @@ static int csnmp_config_add_data_instance_prefix (data_definition_t *dd, static int csnmp_config_add_data_values (data_definition_t *dd, oconfig_item_t *ci) { - int i; - if (ci->values_num < 1) { WARNING ("snmp plugin: `Values' needs at least one argument."); return (-1); } - for (i = 0; i < ci->values_num; i++) + for (int i = 0; i < ci->values_num; i++) if (ci->values[i].type != OCONFIG_TYPE_STRING) { WARNING ("snmp plugin: `Values' needs only string argument."); @@ -315,7 +311,7 @@ static int csnmp_config_add_data_values (data_definition_t *dd, oconfig_item_t * return (-1); dd->values_len = (size_t) ci->values_num; - for (i = 0; i < ci->values_num; i++) + for (int i = 0; i < ci->values_num; i++) { dd->values[i].oid_len = MAX_OID_LEN; @@ -336,12 +332,10 @@ static int csnmp_config_add_data_values (data_definition_t *dd, oconfig_item_t * static int csnmp_config_add_data_blacklist(data_definition_t *dd, oconfig_item_t *ci) { - int i; - if (ci->values_num < 1) return (0); - for (i = 0; i < ci->values_num; i++) + for (int i = 0; i < ci->values_num; i++) { if (ci->values[i].type != OCONFIG_TYPE_STRING) { @@ -353,7 +347,7 @@ static int csnmp_config_add_data_blacklist(data_definition_t *dd, oconfig_item_t dd->ignores_len = 0; dd->ignores = NULL; - for (i = 0; i < ci->values_num; ++i) + for (int i = 0; i < ci->values_num; ++i) { if (strarray_add(&(dd->ignores), &(dd->ignores_len), ci->values[i].value.string) != 0) { @@ -382,7 +376,6 @@ static int csnmp_config_add_data (oconfig_item_t *ci) { data_definition_t *dd; int status = 0; - int i; dd = calloc (1, sizeof (*dd)); if (dd == NULL) @@ -398,7 +391,7 @@ static int csnmp_config_add_data (oconfig_item_t *ci) dd->scale = 1.0; dd->shift = 0.0; - for (i = 0; i < ci->children_num; i++) + for (int i = 0; i < ci->children_num; i++) { oconfig_item_t *option = ci->children + i; @@ -504,7 +497,6 @@ static int csnmp_config_add_host_collect (host_definition_t *host, data_definition_t *data; data_definition_t **data_list; int data_list_len; - int i; if (ci->values_num < 1) { @@ -512,7 +504,7 @@ static int csnmp_config_add_host_collect (host_definition_t *host, return (-1); } - for (i = 0; i < ci->values_num; i++) + for (int i = 0; i < ci->values_num; i++) if (ci->values[i].type != OCONFIG_TYPE_STRING) { WARNING ("snmp plugin: All arguments to `Collect' must be strings."); @@ -520,13 +512,13 @@ static int csnmp_config_add_host_collect (host_definition_t *host, } data_list_len = host->data_list_len + ci->values_num; - data_list = (data_definition_t **) realloc (host->data_list, + data_list = realloc (host->data_list, sizeof (data_definition_t *) * data_list_len); if (data_list == NULL) return (-1); host->data_list = data_list; - for (i = 0; i < ci->values_num; i++) + for (int i = 0; i < ci->values_num; i++) { for (data = data_head; data != NULL; data = data->next) if (strcasecmp (ci->values[i].value.string, data->name) == 0) @@ -639,11 +631,10 @@ static int csnmp_config_add_host (oconfig_item_t *ci) { host_definition_t *hd; int status = 0; - int i; /* Registration stuff. */ char cb_name[DATA_MAX_NAME_LEN]; - user_data_t cb_data; + user_data_t cb_data = { 0 }; hd = calloc (1, sizeof (*hd)); if (hd == NULL) @@ -661,7 +652,7 @@ static int csnmp_config_add_host (oconfig_item_t *ci) hd->sess_handle = NULL; hd->interval = 0; - for (i = 0; i < ci->children_num; i++) + for (int i = 0; i < ci->children_num; i++) { oconfig_item_t *option = ci->children + i; status = 0; @@ -774,7 +765,6 @@ static int csnmp_config_add_host (oconfig_item_t *ci) ssnprintf (cb_name, sizeof (cb_name), "snmp-%s", hd->name); - memset (&cb_data, 0, sizeof (cb_data)); cb_data.data = hd; cb_data.free_func = csnmp_host_definition_destroy; @@ -792,11 +782,9 @@ static int csnmp_config_add_host (oconfig_item_t *ci) static int csnmp_config (oconfig_item_t *ci) { - int i; - call_snmp_init_once (); - for (i = 0; i < ci->children_num; i++) + for (int i = 0; i < ci->children_num; i++) { oconfig_item_t *child = ci->children + i; if (strcasecmp ("Data", child->key) == 0) @@ -944,9 +932,8 @@ static value_t csnmp_value_list_to_value (struct variable_list *vl, int type, } else { - char oid_buffer[1024]; + char oid_buffer[1024] = { 0 }; - memset (oid_buffer, 0, sizeof (oid_buffer)); snprint_objid (oid_buffer, sizeof (oid_buffer) - 1, vl->name, vl->name_length); @@ -1058,14 +1045,13 @@ static int csnmp_strvbcopy_hexstring (char *dst, /* {{{ */ { char *buffer_ptr; size_t buffer_free; - size_t i; dst[0] = 0; buffer_ptr = dst; buffer_free = dst_size; - for (i = 0; i < vb->val_len; i++) + for (size_t i = 0; i < vb->val_len; i++) { int status; @@ -1098,7 +1084,6 @@ static int csnmp_strvbcopy (char *dst, /* {{{ */ { char *src; size_t num_chars; - size_t i; if (vb->type == ASN_OCTET_STR) src = (char *) vb->val.string; @@ -1122,7 +1107,7 @@ static int csnmp_strvbcopy (char *dst, /* {{{ */ if (num_chars > vb->val_len) num_chars = vb->val_len; - for (i = 0; i < num_chars; i++) + for (size_t i = 0; i < num_chars; i++) { /* Check for control characters. */ if ((unsigned char)src[i] < 32) @@ -1147,7 +1132,6 @@ static int csnmp_instance_list_add (csnmp_list_instances_t **head, struct variable_list *vb; oid_t vb_name; int status; - uint32_t i; uint32_t is_matched; /* Set vb on the last variable */ @@ -1182,7 +1166,7 @@ static int csnmp_instance_list_add (csnmp_list_instances_t **head, csnmp_strvbcopy (il->instance, vb, sizeof (il->instance)); is_matched = 0; - for (i = 0; i < dd->ignores_len; i++) + for (uint32_t i = 0; i < dd->ignores_len; i++) { status = fnmatch(dd->ignores[i], il->instance, 0); if (status == 0) @@ -1278,7 +1262,6 @@ static int csnmp_dispatch_table (host_definition_t *host, data_definition_t *dat vl.interval = host->interval; have_more = 1; - memset (¤t_suffix, 0, sizeof (current_suffix)); while (have_more) { _Bool suffix_skipped = 0; @@ -1673,7 +1656,7 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data) static int csnmp_read_value (host_definition_t *host, data_definition_t *data) { struct snmp_pdu *req; - struct snmp_pdu *res; + struct snmp_pdu *res = NULL; struct variable_list *vb; const data_set_t *ds; @@ -1735,7 +1718,6 @@ static int csnmp_read_value (host_definition_t *host, data_definition_t *data) for (i = 0; i < data->values_len; i++) snmp_add_null_var (req, data->values[i].oid, data->values[i].oid_len); - res = NULL; status = snmp_sess_synch_response (host->sess_handle, req, &res); if ((status != STAT_SUCCESS) || (res == NULL)) @@ -1748,7 +1730,6 @@ static int csnmp_read_value (host_definition_t *host, data_definition_t *data) if (res != NULL) snmp_free_pdu (res); - res = NULL; sfree (errstr); sfree (vl.values);