--- statusmap.c.orig 2006-03-21 22:31:46.000000000 +0100 +++ statusmap.c 2006-06-29 11:08:23.399501664 +0200 @@ -1652,13 +1652,13 @@ temp_hoststatus=find_hoststatus(temp_host->name); if(temp_hoststatus!=NULL){ - if(temp_hoststatus->status==HOST_DOWN) + if(temp_hoststatus->status==HOST_DOWN || get_servicestatus_count(temp_host->name,SERVICE_CRITICAL)) status_color=color_red; - else if(temp_hoststatus->status==HOST_UNREACHABLE) - status_color=color_red; - else if(temp_hoststatus->status==HOST_UP) + else if(temp_hoststatus->status==HOST_UNREACHABLE ||get_servicestatus_count(temp_host->name,SERVICE_WARNING)) + status_color=color_yellow; + else if(temp_hoststatus->status==HOST_UP ||get_servicestatus_count(temp_host->name,SERVICE_OK)) status_color=color_green; - else if(temp_hoststatus->status==HOST_PENDING) + else if(temp_hoststatus->status==HOST_PENDING ||get_servicestatus_count(temp_host->name,SERVICE_PENDING)||get_servicestatus_count(temp_host->name,SERVICE_UNKNOWN)) status_color=color_grey; } else @@ -1875,6 +1875,14 @@ strncpy(temp_buffer,"Unreachable",sizeof(temp_buffer)); status_color=color_red; } + else if(temp_hoststatus->status==HOST_UP && get_servicestatus_count(name,SERVICE_CRITICAL)){ + strncpy(temp_buffer,"Up",sizeof(temp_buffer)); + status_color=color_red; + } + else if(temp_hoststatus->status==HOST_UP && get_servicestatus_count(name,SERVICE_WARNING)){ + strncpy(temp_buffer,"Up",sizeof(temp_buffer)); + status_color=color_yellow; + } else if(temp_hoststatus->status==HOST_UP){ strncpy(temp_buffer,"Up",sizeof(temp_buffer)); status_color=color_green; @@ -2814,10 +2814,14 @@ /* determine background color */ temp_hoststatus=find_hoststatus(temp_host->name); - if(temp_hoststatus==NULL) + if(temp_hoststatus==NULL||get_servicestatus_count(temp_host->name,SERVICE_UNKNOWN)) bgcolor=color_lightgrey; - else if(temp_hoststatus->status==HOST_DOWN || temp_hoststatus->status==HOST_UNREACHABLE) + else if(temp_hoststatus->status==HOST_DOWN || temp_hoststatus->status==HOST_UNREACHABLE || get_servicestatus_count(temp_host->name,SERVICE_CRITICAL)) bgcolor=color_lightred; + else if (get_servicestatus_count(temp_host->name,SERVICE_WARNING) ) + bgcolor=color_yellow; + else if (get_servicestatus_count(temp_host->name,SERVICE_PENDING) ) + bgcolor=color_grey; else bgcolor=color_lightgreen; .