Source
xxxxxxxxxx
static void resolve_opdata(const zbx_db_event *event, char **replace_to, const char *tz, char *error, int maxerrlen)
/*
** 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/>.
**/
/******************************************************************************
* *
* Purpose: formats full user name from name, surname and alias. *
* *
* Parameters: name - [IN] user name, can be empty string *
* surname - [IN] user surname, can be empty string *
* alias - [IN] user alias *
* *
* Return value: the formatted user fullname. *
* *
******************************************************************************/
static char *format_user_fullname(const char *name, const char *surname, const char *alias)
{
char *buf = NULL;
size_t buf_alloc = 0, buf_offset = 0;
zbx_strcpy_alloc(&buf, &buf_alloc, &buf_offset, name);
if ('\0' != *surname)
{
if (0 != buf_offset)
zbx_chrcpy_alloc(&buf, &buf_alloc, &buf_offset, ' ');
zbx_strcpy_alloc(&buf, &buf_alloc, &buf_offset, surname);
}
if ('\0' != *alias)
{
size_t offset = buf_offset;
if (0 != buf_offset)
zbx_strcpy_alloc(&buf, &buf_alloc, &buf_offset, " (");
zbx_strcpy_alloc(&buf, &buf_alloc, &buf_offset, alias);
if (0 != offset)
zbx_chrcpy_alloc(&buf, &buf_alloc, &buf_offset, ')');
}
return buf;
}
/* macros that can be indexed */
static const char *ex_macros[] =
{
MVAR_INVENTORY_TYPE, MVAR_INVENTORY_TYPE_FULL,
MVAR_INVENTORY_NAME, MVAR_INVENTORY_ALIAS, MVAR_INVENTORY_OS, MVAR_INVENTORY_OS_FULL, MVAR_INVENTORY_OS_SHORT,
MVAR_INVENTORY_SERIALNO_A, MVAR_INVENTORY_SERIALNO_B, MVAR_INVENTORY_TAG,
MVAR_INVENTORY_ASSET_TAG, MVAR_INVENTORY_MACADDRESS_A, MVAR_INVENTORY_MACADDRESS_B,
MVAR_INVENTORY_HARDWARE, MVAR_INVENTORY_HARDWARE_FULL, MVAR_INVENTORY_SOFTWARE, MVAR_INVENTORY_SOFTWARE_FULL,
MVAR_INVENTORY_SOFTWARE_APP_A, MVAR_INVENTORY_SOFTWARE_APP_B, MVAR_INVENTORY_SOFTWARE_APP_C,
MVAR_INVENTORY_SOFTWARE_APP_D, MVAR_INVENTORY_SOFTWARE_APP_E, MVAR_INVENTORY_CONTACT, MVAR_INVENTORY_LOCATION,
MVAR_INVENTORY_LOCATION_LAT, MVAR_INVENTORY_LOCATION_LON, MVAR_INVENTORY_NOTES, MVAR_INVENTORY_CHASSIS,
MVAR_INVENTORY_MODEL, MVAR_INVENTORY_HW_ARCH, MVAR_INVENTORY_VENDOR, MVAR_INVENTORY_CONTRACT_NUMBER,