zbx_discoverer_job_t *discoverer_job_create(zbx_dc_drule_t *drule, zbx_vector_ds_dcheck_ptr_t *ds_dchecks_common,
#include "discoverer_job.h"
#include "discoverer_queue.h"
#include "discoverer_int.h"
#include "zbx_discoverer_constants.h"
ZBX_VECTOR_IMPL(iprange, zbx_iprange_t)
int discoverer_range_check_iter(zbx_discoverer_task_t *task)
zbx_ds_dcheck_t *dcheck = task->ds_dchecks.values[task->range.state.index_dcheck];
if (0 == task->range.state.count)
ret = zbx_portrange_uniq_iter(dcheck->portranges.values, dcheck->portranges.values_num,
&task->range.state.index_port, &task->range.state.port);
task->range.state.count--;
return 0 == task->range.state.count ? FAIL : SUCCEED;
task->range.state.port = ZBX_PORTRANGE_INIT_PORT;
if (++(task->range.state.index_dcheck) < task->ds_dchecks.values_num)
return discoverer_range_check_iter(task);
task->range.state.index_dcheck = 0;
if (SUCCEED == zbx_iprange_uniq_iter(task->range.ipranges->values,
task->range.ipranges->values_num, &task->range.state.index_ip,
task->range.state.ipaddress))
return discoverer_range_check_iter(task);
task->range.state.count--;
#include "zbxdiscovery.h"
zbx_hash_t discoverer_task_hash(const void *data)
const zbx_discoverer_task_t *task = (const zbx_discoverer_task_t *)data;