#include "audit/zbxaudit_trigger.h"
#include "audit/zbxaudit.h"
static int trigger_flag_to_resource_type(int flag)
if (ZBX_FLAG_DISCOVERY_NORMAL == flag || ZBX_FLAG_DISCOVERY_CREATED == flag)
return ZBX_AUDIT_RESOURCE_TRIGGER;
else if (ZBX_FLAG_DISCOVERY_PROTOTYPE == flag)
return ZBX_AUDIT_RESOURCE_TRIGGER_PROTOTYPE;
zabbix_log(LOG_LEVEL_CRIT, "unexpected audit trigger flag detected: ->%d<-", flag);
THIS_SHOULD_NEVER_HAPPEN;
#define TR_OR_TRP(s) (ZBX_AUDIT_RESOURCE_TRIGGER == resource_type) ? "trigger."#s : "triggerprototype."#s
void zbx_audit_trigger_create_entry(int audit_context_mode, int audit_action, zbx_uint64_t triggerid,
const char *name, int flags)
zbx_audit_entry_t local_audit_trigger_entry, **found_audit_trigger_entry;
zbx_audit_entry_t *local_audit_trigger_entry_x = &local_audit_trigger_entry;
RETURN_IF_AUDIT_OFF(audit_context_mode);
resource_type = trigger_flag_to_resource_type(flags);
local_audit_trigger_entry.id = triggerid;
local_audit_trigger_entry.cuid = NULL;
local_audit_trigger_entry.id_table = AUDIT_TRIGGER_ID;
found_audit_trigger_entry = (zbx_audit_entry_t**)zbx_hashset_search(zbx_get_audit_hashset(),
&(local_audit_trigger_entry_x));
if (NULL == found_audit_trigger_entry)
zbx_audit_entry_t *local_audit_trigger_entry_insert;
local_audit_trigger_entry_insert = zbx_audit_entry_init(triggerid, AUDIT_TRIGGER_ID, name, audit_action,
zbx_hashset_insert(zbx_get_audit_hashset(), &local_audit_trigger_entry_insert,
sizeof(local_audit_trigger_entry_insert));
if (ZBX_AUDIT_ACTION_ADD == audit_action)
zbx_audit_update_json_append_uint64(triggerid, AUDIT_TRIGGER_ID, AUDIT_DETAILS_ACTION_ADD,
TR_OR_TRP(triggerid), triggerid, "triggers", "triggerid");
void zbx_audit_trigger_update_json_add_data(int audit_context_mode, zbx_uint64_t triggerid, zbx_uint64_t templateid,
unsigned char recovery_mode, unsigned char status, unsigned char type, zbx_uint64_t value,
zbx_uint64_t state, unsigned char priority, const char *comments, const char *url,
const char *url_name, int flags, unsigned char correlation_mode, const char *correlation_tag,
unsigned char manual_close, const char *opdata, unsigned char discover, const char *event_name)
char audit_key[AUDIT_DETAILS_KEY_LEN], audit_key_event_name[AUDIT_DETAILS_KEY_LEN],
audit_key_opdata[AUDIT_DETAILS_KEY_LEN], audit_key_comments[AUDIT_DETAILS_KEY_LEN],
audit_key_flags[AUDIT_DETAILS_KEY_LEN], audit_key_priority[AUDIT_DETAILS_KEY_LEN],
audit_key_state[AUDIT_DETAILS_KEY_LEN], audit_key_status[AUDIT_DETAILS_KEY_LEN],
audit_key_templateid[AUDIT_DETAILS_KEY_LEN], audit_key_type[AUDIT_DETAILS_KEY_LEN],
audit_key_url[AUDIT_DETAILS_KEY_LEN], audit_key_value[AUDIT_DETAILS_KEY_LEN],