X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fbind.c;h=8a3148ccca564b1399ae58eb09dfd80424de480f;hb=f374b72032a227a75b6bc9ae574cd28abbc16f24;hp=4860f1b6045667bcfebbb264ffb9ff2100e9ddc1;hpb=c3e2a69bd600fa4c4a9d4603094f39ea81c11116;p=collectd.git diff --git a/src/bind.c b/src/bind.c index 4860f1b6..8a3148cc 100644 --- a/src/bind.c +++ b/src/bind.c @@ -138,7 +138,7 @@ static const translation_info_t nsstats_translation_table[] = /* {{{ */ {"ReqBadSIG", "dns_request", "BadSIG"}, {"ReqTCP", "dns_request", "TCP"}, /* Rejects */ - {"AuthQryRej", "dns_reject", "authorative"}, + {"AuthQryRej", "dns_reject", "authoritative"}, {"RecQryRej", "dns_reject", "recursive"}, {"XfrRej", "dns_reject", "transfer"}, {"UpdateRej", "dns_reject", "update"}, @@ -149,11 +149,11 @@ static const translation_info_t nsstats_translation_table[] = /* {{{ */ {"RespTSIG", "dns_response", "TSIG"}, {"RespSIG0", "dns_response", "SIG0"}, /* Queries */ - {"QryAuthAns", "dns_query", "authorative"}, + {"QryAuthAns", "dns_query", "authoritative"}, {"QryNoauthAns", "dns_query", "nonauth"}, {"QryReferral", "dns_query", "referral"}, {"QryRecursion", "dns_query", "recursion"}, - {"QryDuplicate", "dns_query", "dupliate"}, + {"QryDuplicate", "dns_query", "duplicate"}, {"QryDropped", "dns_query", "dropped"}, {"QryFailure", "dns_query", "failure"}, /* Response codes */ @@ -163,13 +163,13 @@ static const translation_info_t nsstats_translation_table[] = /* {{{ */ {"QryFORMERR", "dns_rcode", "tx-FORMERR"}, {"QryNXDOMAIN", "dns_rcode", "tx-NXDOMAIN"} #if 0 - { "XfrReqDone", "type", "type_instance" }, - { "UpdateReqFwd", "type", "type_instance" }, - { "UpdateRespFwd", "type", "type_instance" }, - { "UpdateFwdFail", "type", "type_instance" }, - { "UpdateDone", "type", "type_instance" }, - { "UpdateFail", "type", "type_instance" }, - { "UpdateBadPrereq", "type", "type_instance" }, + { "XfrReqDone", "type", "type_instance" }, + { "UpdateReqFwd", "type", "type_instance" }, + { "UpdateRespFwd", "type", "type_instance" }, + { "UpdateFwdFail", "type", "type_instance" }, + { "UpdateDone", "type", "type_instance" }, + { "UpdateFail", "type", "type_instance" }, + { "UpdateBadPrereq", "type", "type_instance" }, #endif }; static int nsstats_translation_table_length = @@ -246,16 +246,12 @@ static int memsummary_translation_table_length = static void submit(time_t ts, const char *plugin_instance, /* {{{ */ const char *type, const char *type_instance, value_t value) { - value_t values[1]; value_list_t vl = VALUE_LIST_INIT; - values[0] = value; - - vl.values = values; + vl.values = &value; vl.values_len = 1; if (config_parse_time) vl.time = TIME_T_TO_CDTIME_T(ts); - sstrncpy(vl.host, hostname_g, sizeof(vl.host)); sstrncpy(vl.plugin, "bind", sizeof(vl.plugin)); if (plugin_instance) { sstrncpy(vl.plugin_instance, plugin_instance, sizeof(vl.plugin_instance)); @@ -526,8 +522,10 @@ static int bind_parse_generic_name_value(const char *xpath_expression, /* {{{ */ status = bind_xml_read_gauge(doc, counter, &value.gauge); else status = bind_xml_read_derive(doc, counter, &value.derive); - if (status != 0) + if (status != 0) { + xmlFree(name); continue; + } status = (*list_callback)(name, value, current_time, user_data); if (status == 0) @@ -659,12 +657,16 @@ static int bind_parse_generic_name_attr_value_list( status = bind_xml_read_gauge(doc, child, &value.gauge); else status = bind_xml_read_derive(doc, child, &value.derive); - if (status != 0) + if (status != 0) { + xmlFree(attr_name); continue; + } status = (*list_callback)(attr_name, value, current_time, user_data); if (status == 0) num_entries++; + + xmlFree(attr_name); } } @@ -1596,7 +1598,6 @@ static int bind_init(void) /* {{{ */ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, bind_curl_callback); curl_easy_setopt(curl, CURLOPT_USERAGENT, COLLECTD_USERAGENT); curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, bind_curl_error); - curl_easy_setopt(curl, CURLOPT_URL, (url != NULL) ? url : BIND_DEFAULT_URL); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 50L); #ifdef HAVE_CURLOPT_TIMEOUT_MS @@ -1618,6 +1619,9 @@ static int bind_read(void) /* {{{ */ } bind_buffer_fill = 0; + + curl_easy_setopt(curl, CURLOPT_URL, (url != NULL) ? url : BIND_DEFAULT_URL); + if (curl_easy_perform(curl) != CURLE_OK) { ERROR("bind plugin: curl_easy_perform failed: %s", bind_curl_error); return (-1);