char *path;
char *type;
cx_values_t *values;
- int values_len;
+ size_t values_len;
char *instance_prefix;
char *instance;
int is_table;
if (ds->ds_num != xpath->values_len)
{
- WARNING ("curl_xml plugin: DataSet `%s' requires %i values, but config talks about %i",
+ WARNING ("curl_xml plugin: DataSet `%s' requires %zu values, but config talks about %zu",
xpath->type, ds->ds_num, xpath->values_len);
return (-1);
}
{
value_t values[xpath->values_len];
int status;
- int i;
+ size_t i;
assert (xpath->values_len > 0);
assert (xpath->values_len == vl->values_len);
xpath->values = (cx_values_t *) malloc (sizeof (cx_values_t) * ci->values_num);
if (xpath->values == NULL)
return (-1);
- xpath->values_len = ci->values_num;
+ xpath->values_len = (size_t) ci->values_num;
/* populate cx_values_t structure */
for (i = 0; i < ci->values_num; i++)
sstrncpy (xpath->values[i].path, ci->values[i].value.string, sizeof (xpath->values[i].path));
}
- return (0);
+ return (0);
} /* }}} cx_config_add_values */
-static int cx_config_add_xpath (cx_t *db, /* {{{ */
- oconfig_item_t *ci)
+static int cx_config_add_xpath (cx_t *db, oconfig_item_t *ci) /* {{{ */
{
cx_xpath_t *xpath;
+ char *name;
+ llentry_t *le;
int status;
int i;
- xpath = (cx_xpath_t *) malloc (sizeof (*xpath));
+ xpath = malloc (sizeof (*xpath));
if (xpath == NULL)
{
ERROR ("curl_xml plugin: malloc failed.");
status = cf_util_get_string (ci, &xpath->path);
if (status != 0)
{
- sfree (xpath);
+ cx_xpath_free (xpath);
return (status);
}
/* error out if xpath->path is an empty string */
- if (*xpath->path == 0)
+ if (strlen (xpath->path) == 0)
{
ERROR ("curl_xml plugin: invalid xpath. "
"xpath value can't be an empty string");
+ cx_xpath_free (xpath);
return (-1);
}
break;
} /* for (i = 0; i < ci->children_num; i++) */
- if (status == 0 && xpath->type == NULL)
+ if (status != 0)
{
- WARNING ("curl_xml plugin: `Type' missing in `xpath' block.");
- status = -1;
+ cx_xpath_free (xpath);
+ return status;
}
- if (status == 0)
+ if (xpath->type == NULL)
{
- char *name;
- llentry_t *le;
+ WARNING ("curl_xml plugin: `Type' missing in `xpath' block.");
+ cx_xpath_free (xpath);
+ return -1;
+ }
+ if (db->list == NULL)
+ {
+ db->list = llist_create();
if (db->list == NULL)
{
- db->list = llist_create();
- if (db->list == NULL)
- {
- ERROR ("curl_xml plugin: list creation failed.");
- return (-1);
- }
- }
-
- name = strdup(xpath->path);
- if (name == NULL)
- {
- ERROR ("curl_xml plugin: strdup failed.");
- return (-1);
- }
-
- le = llentry_create (name, xpath);
- if (le == NULL)
- {
- ERROR ("curl_xml plugin: llentry_create failed.");
+ ERROR ("curl_xml plugin: list creation failed.");
+ cx_xpath_free (xpath);
return (-1);
}
+ }
- llist_append (db->list, le);
+ name = strdup (xpath->path);
+ if (name == NULL)
+ {
+ ERROR ("curl_xml plugin: strdup failed.");
+ cx_xpath_free (xpath);
+ return (-1);
+ }
+
+ le = llentry_create (name, xpath);
+ if (le == NULL)
+ {
+ ERROR ("curl_xml plugin: llentry_create failed.");
+ cx_xpath_free (xpath);
+ sfree (name);
+ return (-1);
}
- return (status);
+ llist_append (db->list, le);
+ return (0);
} /* }}} int cx_config_add_xpath */
static int cx_config_add_namespace (cx_t *db, /* {{{ */
if (db->timeout >= 0)
curl_easy_setopt (db->curl, CURLOPT_TIMEOUT_MS, (long) db->timeout);
else
- curl_easy_setopt (db->curl, CURLOPT_TIMEOUT_MS,
- CDTIME_T_TO_MS(plugin_get_interval()));
+ curl_easy_setopt (db->curl, CURLOPT_TIMEOUT_MS, (long) CDTIME_T_TO_MS(plugin_get_interval()));
#endif
return (0);
cb_name = ssnprintf_alloc ("curl_xml-%s-%s", db->instance, db->url);
plugin_register_complex_read (/* group = */ "curl_xml", cb_name, cx_read,
- /* interval = */ NULL, &ud);
+ /* interval = */ 0, &ud);
sfree (cb_name);
}
else