summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/zabbix_server/events.c11
-rw-r--r--src/zabbix_server/expression.c19
2 files changed, 22 insertions, 8 deletions
diff --git a/src/zabbix_server/events.c b/src/zabbix_server/events.c
index 84dc259d..eece75d3 100644
--- a/src/zabbix_server/events.c
+++ b/src/zabbix_server/events.c
@@ -68,15 +68,20 @@ static void add_trigger_info(DB_EVENT *event)
if(event->triggerid == 0) return;
- result = DBselect("select description,priority,comments from triggers where triggerid=" ZBX_FS_UI64,
+ result = DBselect("select description,priority,comments,url from triggers where triggerid=" ZBX_FS_UI64,
event->triggerid);
row = DBfetch(result);
+ event->trigger_description[0]=0;
+ event->trigger_comments[0]=0;
+ event->trigger_url[0]=0;
+
if(row)
{
- zbx_strlcpy(event->trigger_description, row[0], TRIGGER_DESCRIPTION_LEN_MAX);
+ strscpy(event->trigger_description, row[0]);
event->trigger_priority = atoi(row[1]);
- zbx_strlcpy(event->trigger_comments, row[2], TRIGGER_COMMENTS_LEN_MAX);
+ strscpy(event->trigger_comments, row[2]);
+ strscpy(event->trigger_url, row[3]);
}
DBfree_result(result);
diff --git a/src/zabbix_server/expression.c b/src/zabbix_server/expression.c
index c4f6018d..36082155 100644
--- a/src/zabbix_server/expression.c
+++ b/src/zabbix_server/expression.c
@@ -561,17 +561,18 @@ int evaluate(int *result,char *exp, char *error, int maxerrlen)
******************************************************************************/
/* definition of macros variables */
#define MVAR_DATE "{DATE}"
-#define MVAR_TIME "{TIME}"
+#define MVAR_EVENT_ID "{EVENT.ID}"
#define MVAR_HOST_NAME "{HOSTNAME}"
#define MVAR_IPADDRESS "{IPADDRESS}"
-#define MVAR_TRIGGER_NAME "{TRIGGER.NAME}"
+#define MVAR_TIME "{TIME}"
#define MVAR_TRIGGER_COMMENT "{TRIGGER.COMMENT}"
+#define MVAR_TRIGGER_ID "{TRIGGER.ID}"
#define MVAR_TRIGGER_KEY "{TRIGGER.KEY}"
+#define MVAR_TRIGGER_NAME "{TRIGGER.NAME}"
+#define MVAR_TRIGGER_SEVERITY "{TRIGGER.SEVERITY}"
#define MVAR_TRIGGER_STATUS "{TRIGGER.STATUS}"
#define MVAR_TRIGGER_STATUS_OLD "{STATUS}"
-#define MVAR_TRIGGER_SEVERITY "{TRIGGER.SEVERITY}"
-#define MVAR_TRIGGER_ID "{TRIGGER.ID}"
-#define MVAR_EVENT_ID "{EVENT.ID}"
+#define MVAR_TRIGGER_URL "{TRIGGER.URL}"
#define STR_UNKNOWN_VARIAVLE "*UNKNOWN*"
@@ -767,6 +768,14 @@ void substitute_simple_macros(DB_EVENT *event, DB_ACTION *action, char *data, in
zbx_snprintf(replace_to, sizeof(replace_to), "%d", event->triggerid);
}
else if(macro_type & (MACRO_TYPE_MESSAGE_SUBJECT | MACRO_TYPE_MESSAGE_BODY) &&
+ strncmp(pr, MVAR_TRIGGER_URL, strlen(MVAR_TRIGGER_URL)) == 0)
+ {
+ /* NOTE: if you make changes for this bloc, don't forgot MVAR_TRIGGER_STATUS block */
+ var_len = strlen(MVAR_TRIGGER_URL);
+
+ zbx_snprintf(replace_to, sizeof(replace_to), "%s", event->trigger_url);
+ }
+ else if(macro_type & (MACRO_TYPE_MESSAGE_SUBJECT | MACRO_TYPE_MESSAGE_BODY) &&
strncmp(pr, MVAR_EVENT_ID, strlen(MVAR_EVENT_ID)) == 0)
{
/* NOTE: if you make changes for this bloc, don't forgot MVAR_TRIGGER_STATUS block */