X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcurl.c;h=f605c078fc0ae61533835df9a9a150d4629b5dc1;hb=master;hp=5c30ab7d777bb3c3b7117aed9772dff2f28a99b9;hpb=de29c005c9faef953833331e709f67e95e6f9e1d;p=collectd.git diff --git a/src/curl.c b/src/curl.c index 5c30ab7d..7eb48058 100644 --- a/src/curl.c +++ b/src/curl.c @@ -23,10 +23,10 @@ #include "collectd.h" -#include "common.h" #include "plugin.h" -#include "utils_curl_stats.h" -#include "utils_match.h" +#include "utils/common/common.h" +#include "utils/curl_stats/curl_stats.h" +#include "utils/match/match.h" #include "utils_time.h" #include @@ -400,8 +400,6 @@ static int cc_config_add_page(oconfig_item_t *ci) /* {{{ */ cdtime_t interval = 0; web_page_t *page; int status; - char *af = NULL; - curl_version_info_data *curl_info = curl_version_info(CURLVERSION_NOW); if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_STRING)) { WARNING("curl plugin: `Page' blocks need exactly one string argument."); @@ -443,16 +441,31 @@ static int cc_config_add_page(oconfig_item_t *ci) /* {{{ */ else if (strcasecmp("URL", child->key) == 0) status = cf_util_get_string(child, &page->url); else if (strcasecmp("AddressFamily", child->key) == 0) { + char *af = NULL; status = cf_util_get_string(child, &af); if (status != 0 || af == NULL) { + WARNING("curl plugin: Cannot parse value of `%s' " + "for instance `%s'.", + child->key, page->instance); + } else if (strcasecmp("any", af) == 0) { page->address_family = CURL_IPRESOLVE_WHATEVER; - } else if (strcasecmp("inet4", af) == 0 || strcasecmp("ipv4", af) == 0) { + } else if (strcasecmp("ipv4", af) == 0) { page->address_family = CURL_IPRESOLVE_V4; - } else if (strcasecmp("inet6", af) == 0 || strcasecmp("ipv6", af) == 0) { + } else if (strcasecmp("ipv6", af) == 0) { + /* If curl supports ipv6, use it. If not, log a warning and + * fall back to default - don't set status to non-zero. + */ + curl_version_info_data *curl_info = curl_version_info(CURLVERSION_NOW); if (curl_info->features & CURL_VERSION_IPV6) page->address_family = CURL_IPRESOLVE_V6; else - WARNING("curl plugin: IPv6 not supported by this libCURL."); + WARNING("curl plugin: IPv6 not supported by this libCURL. " + "Using fallback `any'."); + } else { + WARNING("curl plugin: Unsupported value of `%s' " + "for instance `%s'.", + child->key, page->instance); + status = -1; } } else if (strcasecmp("User", child->key) == 0) status = cf_util_get_string(child, &page->user); @@ -528,7 +541,8 @@ static int cc_config_add_page(oconfig_item_t *ci) /* {{{ */ plugin_register_complex_read(/* group = */ NULL, cb_name, cc_read_page, interval, &(user_data_t){ - .data = page, .free_func = cc_web_page_free, + .data = page, + .free_func = cc_web_page_free, }); sfree(cb_name);