Source
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
typedef enum
{
ZBX_ASYNC_HTTP_STEP_INIT = 0,
ZBX_ASYNC_HTTP_STEP_RDNS
}
zbx_async_http_step_t;
typedef struct
{
CURL *easyhandle;
int config_timeout;
unsigned short port;
int res;
discovery_async_result_t *async_result;
char *reverse_dns;
zbx_async_resolve_reverse_dns_t resolve_reverse_dns;
zbx_async_http_step_t step;
}
zbx_discovery_async_http_context_t;
void process_http_response(CURL *easy_handle, CURLcode err, void *arg);
void zbx_discovery_async_http_context_destroy(zbx_discovery_async_http_context_t *http_ctx);
int zbx_discovery_async_check_http(CURLM *curl_mhandle, const char *config_source_ip, int timeout, const char *ip,
unsigned short port, unsigned char type, zbx_discovery_async_http_context_t *http_ctx, char **error);
/* ZABBIX_ASYNC_HTTP_H_ */