summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/db.h2
-rw-r--r--src/libs/zbxdbhigh/db.c8
-rw-r--r--src/zabbix_server/actions.c2
3 files changed, 7 insertions, 5 deletions
diff --git a/include/db.h b/include/db.h
index fbbe6fd0..6cc54485 100644
--- a/include/db.h
+++ b/include/db.h
@@ -523,7 +523,7 @@ int DBproxy_update_item_status_to_notsupported(zbx_uint64_t itemid);
int DBadd_service_alarm(zbx_uint64_t serviceid,int status,int clock);
int DBadd_alert(zbx_uint64_t actionid, zbx_uint64_t eventid, zbx_uint64_t userid, zbx_uint64_t mediatypeid, char *sendto, char *subject, char *message);
int DBstart_escalation(zbx_uint64_t actionid, zbx_uint64_t triggerid, zbx_uint64_t eventid);
-int DBstop_escalation(zbx_uint64_t actionid, zbx_uint64_t triggerid);
+int DBstop_escalation(zbx_uint64_t actionid, zbx_uint64_t triggerid, zbx_uint64_t eventid);
int DBremove_escalation(zbx_uint64_t escalationid);
void DBupdate_triggers_status_after_restart(void);
int DBget_prev_trigger_value(zbx_uint64_t triggerid);
diff --git a/src/libs/zbxdbhigh/db.c b/src/libs/zbxdbhigh/db.c
index 0724e0df..1a7c609c 100644
--- a/src/libs/zbxdbhigh/db.c
+++ b/src/libs/zbxdbhigh/db.c
@@ -1582,12 +1582,14 @@ int DBstart_escalation(zbx_uint64_t actionid, zbx_uint64_t triggerid, zbx_uint64
return SUCCEED;
}
-int DBstop_escalation(zbx_uint64_t actionid, zbx_uint64_t triggerid)
+int DBstop_escalation(zbx_uint64_t actionid, zbx_uint64_t triggerid, zbx_uint64_t eventid)
{
- DBexecute("update escalations set status=%d,nextcheck=0 where actionid=" ZBX_FS_UI64 " and triggerid=" ZBX_FS_UI64,
+ DBexecute("update escalations set status=%d,nextcheck=0 where actionid=" ZBX_FS_UI64
+ " and triggerid=" ZBX_FS_UI64 " and eventid = " ZBX_FS_UI64,
ESCALATION_STATUS_RECOVERY,
actionid,
- triggerid);
+ triggerid,
+ eventid);
return SUCCEED;
}
diff --git a/src/zabbix_server/actions.c b/src/zabbix_server/actions.c
index f52dad8f..1323ff8e 100644
--- a/src/zabbix_server/actions.c
+++ b/src/zabbix_server/actions.c
@@ -840,7 +840,7 @@ void process_actions(DB_EVENT *event)
zabbix_log( LOG_LEVEL_DEBUG, "Conditions do not match our event. Do not execute operations.");
if (event->source == EVENT_SOURCE_TRIGGERS && event->object == EVENT_OBJECT_TRIGGER)
- DBstop_escalation(action.actionid, event->objectid);
+ DBstop_escalation(action.actionid, event->objectid, event->eventid);
}
}
DBfree_result(result);