#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 <curl/curl.h>
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.");
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);
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);