summaryrefslogtreecommitdiffstats
path: root/frontends/php/include
diff options
context:
space:
mode:
authorartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-09-24 11:51:33 +0000
committerartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-09-24 11:51:33 +0000
commit32a7770affdc0d9c5e433d1ea096643403f84be7 (patch)
treea3f63543b1211a8a87d792da218c87a298311d82 /frontends/php/include
parent1186f592d342ba3696af7f6ce40d7a8a566f65da (diff)
downloadzabbix-32a7770affdc0d9c5e433d1ea096643403f84be7.tar.gz
zabbix-32a7770affdc0d9c5e433d1ea096643403f84be7.tar.xz
zabbix-32a7770affdc0d9c5e433d1ea096643403f84be7.zip
- [ZBX-56] merged rev. 4778:4780 of branches/1.4.j (Artem) [fixed "Trigger status is set to UNKNOWN when expression is not modified" issue]
git-svn-id: svn://svn.zabbix.com/trunk@4784 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include')
-rw-r--r--frontends/php/include/triggers.inc.php15
1 files changed, 11 insertions, 4 deletions
diff --git a/frontends/php/include/triggers.inc.php b/frontends/php/include/triggers.inc.php
index 9f202a88..40cdf44d 100644
--- a/frontends/php/include/triggers.inc.php
+++ b/frontends/php/include/triggers.inc.php
@@ -1278,16 +1278,21 @@
$trig_hosts = get_hosts_by_triggerid($triggerid);
$trig_host = DBfetch($trig_hosts);
- if(is_null($expression))
- {
+ $event_to_unknown = false;
+
+ if(is_null($expression)){
/* Restore expression */
$expression = explode_exp($trigger["expression"],0);
+ }
+ else if($expression != explode_exp($trigger["expression"],0)){
+ $event_to_unknown = true;
}
-
+
if ( !validate_expression($expression) )
return false;
$exp_hosts = get_hosts_by_expression($expression);
+
if( $exp_hosts )
{
$chd_hosts = get_hosts_by_templateid($trig_host["hostid"]);
@@ -1295,6 +1300,7 @@
if(DBfetch($chd_hosts))
{
$exp_host = DBfetch($exp_hosts);
+
$db_chd_triggers = get_triggers_by_templateid($triggerid);
while($db_chd_trigger = DBfetch($db_chd_triggers))
{
@@ -1305,6 +1311,7 @@
"{".$exp_host["host"].":",
"{".$chd_trig_host["host"].":",
$expression);
+
// recursion
update_trigger(
$db_chd_trigger["triggerid"],
@@ -1328,7 +1335,7 @@
$expression = implode_exp($expression,$triggerid); /* errors can be ignored cose function must return NULL */
- add_event($triggerid,TRIGGER_VALUE_UNKNOWN);
+ if($event_to_unknown) add_event($triggerid,TRIGGER_VALUE_UNKNOWN);
reset_items_nextcheck($triggerid);
$sql="update triggers set";