if (SUCCEED != (ret = zbx_async_check_tcpsvc(&item, dcheck->type, &result, process_tcpsvc_result, async_result,
#include "discoverer_async.h"
#include "discoverer_job.h"
#include "async_tcpsvc.h"
#include "async_telnet.h"
#include "zbx_discoverer_constants.h"
#include "zbxasyncpoller.h"
# include "zbxasynchttppoller.h"
#include "zbxcacheconfig.h"
#ifndef EVDNS_BASE_INITIALIZE_NAMESERVERS
# define EVDNS_BASE_INITIALIZE_NAMESERVERS 1
static ZBX_THREAD_LOCAL int log_worker_id;
static int discovery_async_poller_dns_init(discovery_poller_config_t *poller_config)
if (NULL == (poller_config->dnsbase = evdns_base_new(poller_config->base, EVDNS_BASE_INITIALIZE_NAMESERVERS)))
zabbix_log(LOG_LEVEL_ERR, "cannot initialize asynchronous DNS library with resolv.conf");
if (NULL == (poller_config->dnsbase = evdns_base_new(poller_config->base, 0)))
zabbix_log(LOG_LEVEL_ERR, "cannot initialize asynchronous DNS library");
if (0 != (ret = evdns_base_resolv_conf_parse(poller_config->dnsbase, DNS_OPTIONS_ALL,
zabbix_log(LOG_LEVEL_ERR, "cannot parse resolv.conf result: %s", zbx_resolv_conf_errstr(ret));
timeout = zbx_dsprintf(NULL, "%d", poller_config->config_timeout);
if (0 != evdns_base_set_option(poller_config->dnsbase, "timeout:", timeout))
zabbix_log(LOG_LEVEL_ERR, "cannot set timeout to asynchronous DNS library");
evdns_base_free(poller_config->dnsbase, 1);
static void discovery_async_poller_destroy(discovery_poller_config_t *poller_config)
zabbix_log(LOG_LEVEL_DEBUG, "[%d] In %s()", log_worker_id, __func__);
evdns_base_free(poller_config->dnsbase, 1);
event_base_free(poller_config->base);
zabbix_log(LOG_LEVEL_DEBUG, "[%d] End of %s()", log_worker_id, __func__);