diff options
author | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2002-01-09 07:16:10 +0000 |
---|---|---|
committer | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2002-01-09 07:16:10 +0000 |
commit | baf02ab977d8bb5a7cc9a16d4d440c359de4b73f (patch) | |
tree | 3567eafe63e43163cbd5f0190c56ee486a8e1649 /include | |
parent | 38d78876d1e4914a21682ae7a319fc1f98a6c4db (diff) | |
download | zabbix-baf02ab977d8bb5a7cc9a16d4d440c359de4b73f.tar.gz zabbix-baf02ab977d8bb5a7cc9a16d4d440c359de4b73f.tar.xz zabbix-baf02ab977d8bb5a7cc9a16d4d440c359de4b73f.zip |
- even more support for IT Services (Alexei)
- added column status to table services (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@276 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'include')
-rw-r--r-- | include/functions.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/functions.c b/include/functions.c index 225c1a01..104b1961 100644 --- a/include/functions.c +++ b/include/functions.c @@ -523,6 +523,38 @@ void apply_actions(int triggerid,int good) } /* + * Recursive function! + */ +void update_services(int triggerid) +{ + char sql[1024]; + int i,rows; + + DB_RESULT *result; + + + sprintf(sql,"select serviceupid from services_links where servicedownid=%d", triggerid); + + result = DBselect(sql); + + rows = DBnum_rows(result); + + if(rows == 0) + { + DBfree_result(result); + return; + } + + for(i=0;i<rows;i++) + { + update_services(atoi(DBget_field(result,i,0))); + } + + DBfree_result(result); + return; +} + +/* * Re-calculate values of triggers */ void update_triggers( int flag, int sucker_num, int lastclock ) @@ -582,6 +614,8 @@ void update_triggers( int flag, int sucker_num, int lastclock ) sprintf(c,"update actions set nextcheck=0 where triggerid=%d and good=0",trigger.triggerid); DBexecute(c); + + update_services(trigger.triggerid); } if((b==0)&&(trigger.istrue!=0)) @@ -598,6 +632,8 @@ void update_triggers( int flag, int sucker_num, int lastclock ) sprintf(c,"update actions set nextcheck=0 where triggerid=%d and good=1",trigger.triggerid); DBexecute(c); + + update_services(trigger.triggerid); } } DBfree_result(result); |