diff --git a/src/host/HostHook.cc b/src/host/HostHook.cc index 54e843c390..63b31d4bca 100644 --- a/src/host/HostHook.cc +++ b/src/host/HostHook.cc @@ -77,6 +77,20 @@ void HostStateMapHook::remove_host (int id) // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- +void merge_state(Host::HostState &state) +{ + if (state == Host::MONITORING_ERROR) + { + state = Host::ERROR; + } + else if (state == Host::MONITORING_DISABLED) + { + state = Host::DISABLED; + } +} + +// ----------------------------------------------------------------------------- + void HostStateHook::do_hook(void *arg) { Host * host; @@ -100,6 +114,9 @@ void HostStateHook::do_hook(void *arg) cur_state = host->get_state(); + merge_state(prev_state); + merge_state(cur_state); + if ( prev_state == cur_state ) //Still in the same state { return;