From: Ethan G. <ega...@us...> - 2008-02-23 21:12:09
|
Update of /cvsroot/nagios/nagios/xdata In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv8295/xdata Modified Files: xrddefault.c Log Message: Startup speed improvements, safer NEB module loading Index: xrddefault.c =================================================================== RCS file: /cvsroot/nagios/nagios/xdata/xrddefault.c,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** xrddefault.c 21 Feb 2008 06:17:37 -0000 1.60 --- xrddefault.c 23 Feb 2008 21:12:11 -0000 1.61 *************** *** 4,8 **** * * Copyright (c) 1999-2008 Ethan Galstad (na...@na...) ! * Last Modified: 02-20-2008 * * License: --- 4,8 ---- * * Copyright (c) 1999-2008 Ethan Galstad (na...@na...) ! * Last Modified: 02-23-2008 * * License: *************** *** 630,633 **** --- 630,634 ---- struct timeval tv[2]; double runtime[2]; + int found_directive=FALSE; *************** *** 974,977 **** --- 975,980 ---- val++; + found_directive=TRUE; + switch(data_type){ *************** *** 1101,1109 **** case XRDDEFAULT_HOSTSTATUS_DATA: ! if(!strcmp(var,"host_name")){ ! host_name=(char *)strdup(val); ! temp_host=find_host(host_name); ! } ! else if(temp_host!=NULL){ if(!strcmp(var,"modified_attributes")){ --- 1104,1115 ---- case XRDDEFAULT_HOSTSTATUS_DATA: ! ! if(temp_host==NULL){ ! if(!strcmp(var,"host_name")){ ! host_name=(char *)strdup(val); ! temp_host=find_host(host_name); ! } ! } ! else{ if(!strcmp(var,"modified_attributes")){ *************** *** 1112,1115 **** --- 1118,1124 ---- /* mask out attributes we don't want to retain */ temp_host->modified_attributes&=~host_attribute_mask; + + /* break out */ + break; } if(temp_host->retain_status_information==TRUE){ *************** *** 1198,1204 **** temp_host->state_history_index=0; } } if(temp_host->retain_nonstatus_information==TRUE){ ! if(!strcmp(var,"problem_has_been_acknowledged")) temp_host->problem_has_been_acknowledged=(atoi(val)>0)?TRUE:FALSE; else if(!strcmp(var,"acknowledgement_type")) --- 1207,1218 ---- temp_host->state_history_index=0; } + else + found_directive=FALSE; } if(temp_host->retain_nonstatus_information==TRUE){ ! /* null-op speeds up logic */ ! if(found_directive==TRUE); ! ! else if(!strcmp(var,"problem_has_been_acknowledged")) temp_host->problem_has_been_acknowledged=(atoi(val)>0)?TRUE:FALSE; else if(!strcmp(var,"acknowledgement_type")) *************** *** 1349,1364 **** } break; case XRDDEFAULT_SERVICESTATUS_DATA: ! if(!strcmp(var,"host_name")){ ! host_name=(char *)strdup(val); ! temp_service=find_service(host_name,service_description); ! } ! else if(!strcmp(var,"service_description")){ ! service_description=(char *)strdup(val); ! temp_service=find_service(host_name,service_description); ! } ! else if(temp_service!=NULL){ if(!strcmp(var,"modified_attributes")){ --- 1363,1389 ---- } + break; case XRDDEFAULT_SERVICESTATUS_DATA: ! ! if(temp_service==NULL){ ! if(!strcmp(var,"host_name")){ ! host_name=(char *)strdup(val); ! ! /*temp_service=find_service(host_name,service_description);*/ ! ! /* break out */ ! break; ! } ! else if(!strcmp(var,"service_description")){ ! service_description=(char *)strdup(val); ! temp_service=find_service(host_name,service_description); ! ! /* break out */ ! break; ! } ! } ! else{ if(!strcmp(var,"modified_attributes")){ *************** *** 1457,1463 **** temp_service->state_history_index=0; } } if(temp_service->retain_nonstatus_information==TRUE){ ! if(!strcmp(var,"problem_has_been_acknowledged")) temp_service->problem_has_been_acknowledged=(atoi(val)>0)?TRUE:FALSE; else if(!strcmp(var,"acknowledgement_type")) --- 1482,1493 ---- temp_service->state_history_index=0; } + else + found_directive=FALSE; } if(temp_service->retain_nonstatus_information==TRUE){ ! /* null-op speeds up logic */ ! if(found_directive==TRUE); ! ! else if(!strcmp(var,"problem_has_been_acknowledged")) temp_service->problem_has_been_acknowledged=(atoi(val)>0)?TRUE:FALSE; else if(!strcmp(var,"acknowledgement_type")) *************** *** 1607,1618 **** } } break; case XRDDEFAULT_CONTACTSTATUS_DATA: ! if(!strcmp(var,"contact_name")){ ! contact_name=(char *)strdup(val); ! temp_contact=find_contact(contact_name); ! } ! else if(temp_contact!=NULL){ if(!strcmp(var,"modified_attributes")){ --- 1637,1651 ---- } } + break; case XRDDEFAULT_CONTACTSTATUS_DATA: ! if(temp_contact==NULL){ ! if(!strcmp(var,"contact_name")){ ! contact_name=(char *)strdup(val); ! temp_contact=find_contact(contact_name); ! } ! } ! else{ if(!strcmp(var,"modified_attributes")){ *************** *** 1622,1626 **** temp_contact->modified_attributes&=~contact_attribute_mask; } ! if(!strcmp(var,"modified_host_attributes")){ temp_contact->modified_host_attributes=strtoul(val,NULL,10); --- 1655,1659 ---- temp_contact->modified_attributes&=~contact_attribute_mask; } ! else if(!strcmp(var,"modified_host_attributes")){ temp_contact->modified_host_attributes=strtoul(val,NULL,10); *************** *** 1629,1633 **** temp_contact->modified_host_attributes&=~contact_host_attribute_mask; } ! if(!strcmp(var,"modified_service_attributes")){ temp_contact->modified_service_attributes=strtoul(val,NULL,10); --- 1662,1666 ---- temp_contact->modified_host_attributes&=~contact_host_attribute_mask; } ! else if(!strcmp(var,"modified_service_attributes")){ temp_contact->modified_service_attributes=strtoul(val,NULL,10); *************** *** 1635,1646 **** temp_contact->modified_service_attributes&=~contact_service_attribute_mask; } ! if(temp_contact->retain_status_information==TRUE){ if(!strcmp(var,"last_host_notification")) temp_contact->last_host_notification=strtoul(val,NULL,10); ! if(!strcmp(var,"last_service_notification")) temp_contact->last_service_notification=strtoul(val,NULL,10); } if(temp_contact->retain_nonstatus_information==TRUE){ ! if(!strcmp(var,"host_notification_period")){ if(temp_contact->modified_host_attributes & MODATTR_NOTIFICATION_TIMEPERIOD){ --- 1668,1684 ---- temp_contact->modified_service_attributes&=~contact_service_attribute_mask; } ! else if(temp_contact->retain_status_information==TRUE){ if(!strcmp(var,"last_host_notification")) temp_contact->last_host_notification=strtoul(val,NULL,10); ! else if(!strcmp(var,"last_service_notification")) temp_contact->last_service_notification=strtoul(val,NULL,10); + else + found_directive=FALSE; } if(temp_contact->retain_nonstatus_information==TRUE){ ! /* null-op speeds up logic */ ! if(found_directive==TRUE); ! ! else if(!strcmp(var,"host_notification_period")){ if(temp_contact->modified_host_attributes & MODATTR_NOTIFICATION_TIMEPERIOD){ *************** *** 1763,1767 **** break; } - } } --- 1801,1804 ---- *************** *** 1781,1785 **** printf("RETENTION DATA TIMES\n"); printf("----------------------------------\n"); ! printf("Read: %.6lf sec\n",runtime[0]); printf(" ============\n"); printf("TOTAL: %.6lf sec\n",runtime[1]); --- 1818,1822 ---- printf("RETENTION DATA TIMES\n"); printf("----------------------------------\n"); ! printf("Read and Process: %.6lf sec\n",runtime[0]); printf(" ============\n"); printf("TOTAL: %.6lf sec\n",runtime[1]); |