#include "audit/zbxaudit_host.h"
#include "audit/zbxaudit.h"
#define PREPARE_UPDATE_JSON_SNMP_INTERFACE_OP(auditentry) \
char audit_key_version[AUDIT_DETAILS_KEY_LEN], audit_key_bulk[AUDIT_DETAILS_KEY_LEN], \
audit_key_community[AUDIT_DETAILS_KEY_LEN], audit_key_securityname[AUDIT_DETAILS_KEY_LEN], \
audit_key_securitylevel[AUDIT_DETAILS_KEY_LEN], \
audit_key_authpassphrase[AUDIT_DETAILS_KEY_LEN], \
audit_key_privpassphrase[AUDIT_DETAILS_KEY_LEN], audit_key_authprotocol[AUDIT_DETAILS_KEY_LEN], \
audit_key_privprotocol[AUDIT_DETAILS_KEY_LEN], audit_key_contextname[AUDIT_DETAILS_KEY_LEN], \
audit_key[AUDIT_DETAILS_KEY_LEN]; \
RETURN_IF_AUDIT_OFF(audit_context_mode); \
zbx_snprintf(audit_key, sizeof(audit_key), #auditentry".interfaces[" ZBX_FS_UI64 \
"].details", interfaceid); \
zbx_snprintf(audit_key_version, sizeof(audit_key_version), #auditentry".interfaces[" ZBX_FS_UI64 \
"].details.version", interfaceid); \
zbx_snprintf(audit_key_bulk, sizeof(audit_key_bulk), #auditentry".interfaces[" ZBX_FS_UI64 \
"].details.bulk", interfaceid); \
zbx_snprintf(audit_key_community, sizeof(audit_key_community), \
#auditentry".interfaces[" ZBX_FS_UI64 "].details.community", interfaceid); \
zbx_snprintf(audit_key_securityname, sizeof(audit_key_securityname), \
#auditentry".interfaces[" ZBX_FS_UI64 "].details.securityname", interfaceid); \
zbx_snprintf(audit_key_securitylevel, sizeof(audit_key_securitylevel), \
#auditentry".interfaces[" ZBX_FS_UI64 "].details.securitylevel", interfaceid); \
zbx_snprintf(audit_key_authpassphrase, sizeof(audit_key_authpassphrase), \
#auditentry".interfaces[" ZBX_FS_UI64 "].details.authpassphrase", interfaceid); \
zbx_snprintf(audit_key_privpassphrase, sizeof(audit_key_privpassphrase), \
#auditentry".interfaces[" ZBX_FS_UI64 "].details.privpassphrase", interfaceid); \
zbx_snprintf(audit_key_authprotocol, sizeof(audit_key_authprotocol), \
#auditentry".interfaces[" ZBX_FS_UI64 "].details.authprotocol", interfaceid); \
zbx_snprintf(audit_key_privprotocol, sizeof(audit_key_privprotocol), \
#auditentry".interfaces[" ZBX_FS_UI64 "].details.privprotocol", interfaceid); \
zbx_snprintf(audit_key_contextname, sizeof(audit_key_contextname), \
#auditentry".interfaces[" ZBX_FS_UI64 "].details.contextname", interfaceid); \
#define PREPARE_AUDIT_SNMP_INTERFACE(funcname, auditentry) \
void zbx_audit_##funcname##_update_json_add_snmp_interface(int audit_context_mode, zbx_uint64_t hostid, \
zbx_uint64_t version, zbx_uint64_t bulk, const char *community, const char *securityname, \
zbx_uint64_t securitylevel, const char *authpassphrase, const char *privpassphrase, \
zbx_uint64_t authprotocol, zbx_uint64_t privprotocol, const char *contextname, \
zbx_uint64_t interfaceid) \
PREPARE_UPDATE_JSON_SNMP_INTERFACE_OP(auditentry) \