Source
int zbx_set_data_destination_hosts(char *str, unsigned short port, const char *name, add_serveractive_host_f cb,
/*
** 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.
**/
static const char *program_type_str = NULL;
static const char *main_cfg_file = NULL;
static int __parse_cfg_file(const char *cfg_file, struct cfg_line *cfg, int level, int optional, int strict,
int noexit);
/******************************************************************************
* *
* Purpose: see whether a file (e.g., "parameter.conf") *
* matches a pattern (e.g., "p*.conf") *
* *
* Return value: SUCCEED - file matches a pattern *
* FAIL - otherwise *
* *
******************************************************************************/
static int match_glob(const char *file, const char *pattern)
{
const char *f, *g, *p, *q;
f = file;
p = pattern;
while (1)
{
/* corner case */
if ('\0' == *p)
return '\0' == *f ? SUCCEED : FAIL;
/* find a set of literal characters */
while ('*' == *p)