Source
static void process_check(const DB_DCHECK *dcheck, int *host_status, char *ip, int now, zbx_vector_ptr_t *services,
/*
** Zabbix
** Copyright (C) 2001-2023 Zabbix SIA
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** 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 General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
extern unsigned char program_type;
typedef struct
{
zbx_uint64_t dcheckid;
char *ports;
char *key_;
char *snmp_community;
char *snmpv3_securityname;
char *snmpv3_authpassphrase;
char *snmpv3_privpassphrase;
char *snmpv3_contextname;
int type;
unsigned char snmpv3_securitylevel;
unsigned char snmpv3_authprotocol;
unsigned char snmpv3_privprotocol;
}
DB_DCHECK;
/******************************************************************************
* *
* Purpose: process new service status *
* *
* Parameters: service - service info *
* *
******************************************************************************/
static void proxy_update_service(zbx_uint64_t druleid, zbx_uint64_t dcheckid, const char *ip,
const char *dns, int port, int status, const char *value, int now)
{
char *ip_esc, *dns_esc, *value_esc;
ip_esc = zbx_db_dyn_escape_field("proxy_dhistory", "ip", ip);
dns_esc = zbx_db_dyn_escape_field("proxy_dhistory", "dns", dns);
value_esc = zbx_db_dyn_escape_field("proxy_dhistory", "value", value);
zbx_db_execute("insert into proxy_dhistory (clock,druleid,dcheckid,ip,dns,port,value,status)"
" values (%d," ZBX_FS_UI64 "," ZBX_FS_UI64 ",'%s','%s',%d,'%s',%d)",
now, druleid, dcheckid, ip_esc, dns_esc, port, value_esc, status);
zbx_free(value_esc);
zbx_free(dns_esc);
zbx_free(ip_esc);
}
/******************************************************************************
* *
* Purpose: process new service status *
* *
* Parameters: service - service info *
* *
******************************************************************************/
static void proxy_update_host(zbx_uint64_t druleid, const char *ip, const char *dns, int status, int now)