int main(void) { int result = OK; char temp_buffer[MAX_INPUT_BUFFER]; /* get the CGI variables passed in the URL */ process_cgivars(); /* reset internal variables */ reset_cgi_vars(); /* read the CGI configuration file */ result = read_cgi_config_file(get_cgi_config_location()); if(result == ERROR) { document_header(FALSE); cgi_config_file_error(get_cgi_config_location()); document_footer(); return ERROR; } /* read the main configuration file */ result = read_main_config_file(main_config_file); if(result == ERROR) { document_header(FALSE); main_config_file_error(main_config_file); document_footer(); return ERROR; } /* read all object configuration data */ result = read_all_object_configuration_data(main_config_file, READ_ALL_OBJECT_DATA); if(result == ERROR) { document_header(FALSE); object_data_error(); document_footer(); return ERROR; } document_header(TRUE); /* get authentication information */ get_authentication_information(¤t_authdata); /* determine what log file we should be using */ get_log_archive_to_use(log_archive, log_file_to_use, (int)sizeof(log_file_to_use)); if(display_header == TRUE) { /* begin top table */ printf("<table border=0 width=100%% cellpadding=0 cellspacing=0>\n"); printf("<tr>\n"); /* left column of top table - info box */ printf("<td align=left valign=top width=33%%>\n"); display_info_table((log_rotation_method == LOG_ROTATION_NONE || log_archive == 0) ? "Current Event Log" : "Archived Event Log", FALSE, ¤t_authdata); printf("</td>\n"); /* middle column of top table - log file navigation options */ printf("<td align=center valign=top width=33%%>\n"); snprintf(temp_buffer, sizeof(temp_buffer) - 1, "%s?%s", SHOWLOG_CGI, (use_lifo == FALSE) ? "oldestfirst&" : ""); temp_buffer[sizeof(temp_buffer) - 1] = '\x0'; display_nav_table(temp_buffer, log_archive); printf("</td>\n"); /* right hand column of top row */ printf("<td align=right valign=top width=33%%>\n"); printf("<form method='GET' action='%s'>\n", SHOWLOG_CGI); printf("<input type='hidden' name='archive' value='%d'>\n", log_archive); printf("<table border=0 cellspacing=0 cellpadding=0 CLASS='optBox'>\n"); printf("<tr>"); printf("<td align=left valign=bottom CLASS='optBoxItem'><input type='checkbox' name='oldestfirst' %s> Older Entries First:</td>", (use_lifo == FALSE) ? "checked" : ""); printf("</tr>\n"); printf("<tr>"); printf("<td align=left valign=bottom CLASS='optBoxItem'><input type='submit' value='Update'></td>\n"); printf("</tr>\n"); /* display context-sensitive help */ printf("<tr>\n"); printf("<td align=right>\n"); display_context_help(CONTEXTHELP_LOG); printf("</td>\n"); printf("</tr>\n"); printf("</table>\n"); printf("</form>\n"); printf("</td>\n"); /* end of top table */ printf("</tr>\n"); printf("</table>\n"); printf("</p>\n"); } /* display the contents of the log file */ display_log(); document_footer(); /* free allocated memory */ free_memory(); return OK; }
int main(void) { int result=OK; char temp_buffer[MAX_INPUT_BUFFER]; char temp_buffer2[MAX_INPUT_BUFFER]; /* get the arguments passed in the URL */ process_cgivars(); /* reset internal variables */ reset_cgi_vars(); /* read the CGI configuration file */ result=read_cgi_config_file(get_cgi_config_location()); if(result==ERROR) { document_header(FALSE); cgi_config_file_error(get_cgi_config_location()); document_footer(); return ERROR; } /* read the main configuration file */ result=read_main_config_file(main_config_file); if(result==ERROR) { document_header(FALSE); main_config_file_error(main_config_file); document_footer(); return ERROR; } /* read all object configuration data */ result=read_all_object_configuration_data(main_config_file,READ_ALL_OBJECT_DATA); if(result==ERROR) { document_header(FALSE); object_data_error(); document_footer(); return ERROR; } document_header(TRUE); /* get authentication information */ get_authentication_information(¤t_authdata); /* determine what log file we should use */ get_log_archive_to_use(log_archive,log_file_to_use,(int)sizeof(log_file_to_use)); if(display_header==TRUE) { /* begin top table */ printf("<table border=0 width=100%%>\n"); printf("<tr>\n"); /* left column of top row */ printf("<td align=left valign=top width=33%%>\n"); if(query_type==FIND_SERVICE) snprintf(temp_buffer,sizeof(temp_buffer)-1,"Service Notifications"); else if(query_type==FIND_HOST) { if(find_all==TRUE) snprintf(temp_buffer,sizeof(temp_buffer)-1,"Notifications"); else snprintf(temp_buffer,sizeof(temp_buffer)-1,"Host Notifications"); } else snprintf(temp_buffer,sizeof(temp_buffer)-1,"Contact Notifications"); display_info_table(temp_buffer,FALSE,¤t_authdata); if(query_type==FIND_HOST || query_type==FIND_SERVICE) { printf("<TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0 CLASS='linkBox'>\n"); printf("<TR><TD CLASS='linkBox'>\n"); if(query_type==FIND_HOST) { printf("<A HREF='%s?host=%s'>View Status Detail For %s</A><BR>\n",STATUS_CGI,(find_all==TRUE)?"all":url_encode(query_host_name),(find_all==TRUE)?"All Hosts":"This Host"); printf("<A HREF='%s?host=%s'>View History For %s</A><BR>\n",HISTORY_CGI,(find_all==TRUE)?"all":url_encode(query_host_name),(find_all==TRUE)?"All Hosts":"This Host"); #ifdef USE_TRENDS if(find_all==FALSE) printf("<A HREF='%s?host=%s'>View Trends For This Host</A><BR>\n",TRENDS_CGI,url_encode(query_host_name)); #endif } else if(query_type==FIND_SERVICE) { printf("<A HREF='%s?host=%s&",HISTORY_CGI,(find_all==TRUE)?"all":url_encode(query_host_name)); printf("service=%s'>View History For This Service</A><BR>\n",url_encode(query_svc_description)); #ifdef USE_TRENDS printf("<A HREF='%s?host=%s&",TRENDS_CGI,(find_all==TRUE)?"all":url_encode(query_host_name)); printf("service=%s'>View Trends For This Service</A><BR>\n",url_encode(query_svc_description)); #endif } printf("</TD></TR>\n"); printf("</TABLE>\n"); } printf("</td>\n"); /* middle column of top row */ printf("<td align=center valign=top width=33%%>\n"); printf("<DIV ALIGN=CENTER CLASS='dataTitle'>\n"); if(query_type==FIND_SERVICE) printf("Service '%s' On Host '%s'",query_svc_description,query_host_name); else if(query_type==FIND_HOST) { if(find_all==TRUE) printf("All Hosts and Services"); else printf("Host '%s'",query_host_name); } else { if(find_all==TRUE) printf("All Contacts"); else printf("Contact '%s'",query_contact_name); } printf("</DIV>\n"); printf("<BR>\n"); if(query_type==FIND_SERVICE) { snprintf(temp_buffer,sizeof(temp_buffer)-1,"%s?%shost=%s&",NOTIFICATIONS_CGI,(use_lifo==FALSE)?"oldestfirst&":"",url_encode(query_host_name)); snprintf(temp_buffer2,sizeof(temp_buffer2)-1,"service=%s&type=%d&",url_encode(query_svc_description),notification_options); strncat(temp_buffer,temp_buffer2,sizeof(temp_buffer)-strlen(temp_buffer)-1); } else snprintf(temp_buffer,sizeof(temp_buffer)-1,"%s?%s%s=%s&type=%d&",NOTIFICATIONS_CGI,(use_lifo==FALSE)?"oldestfirst&":"",(query_type==FIND_HOST)?"host":"contact",(query_type==FIND_HOST)?url_encode(query_host_name):url_encode(query_contact_name),notification_options); temp_buffer[sizeof(temp_buffer)-1]='\x0'; display_nav_table(temp_buffer,log_archive); printf("</td>\n"); /* right hand column of top row */ printf("<td align=right valign=top width=33%%>\n"); printf("<table border=0 CLASS='optBox'>\n"); printf("<form method='GET' action='%s'>\n",NOTIFICATIONS_CGI); if(query_type==FIND_SERVICE) { printf("<input type='hidden' name='host' value='%s'>\n",escape_string(query_host_name)); printf("<input type='hidden' name='service' value='%s'>\n",escape_string(query_svc_description)); } else printf("<input type='hidden' name='%s' value='%s'>\n",(query_type==FIND_HOST)?"host":"contact",(query_type==FIND_HOST)?escape_string(query_host_name):escape_string(query_contact_name)); printf("<input type='hidden' name='archive' value='%d'>\n",log_archive); printf("<tr>\n"); if(query_type==FIND_SERVICE) printf("<td align=left colspan=2 CLASS='optBoxItem'>Notification detail level for this service:</td>"); else printf("<td align=left colspan=2 CLASS='optBoxItem'>Notification detail level for %s %s%s:</td>",(find_all==TRUE)?"all":"this",(query_type==FIND_HOST)?"host":"contact",(find_all==TRUE)?"s":""); printf("</tr>\n"); printf("<tr>\n"); printf("<td align=left colspan=2 CLASS='optBoxItem'><select name='type'>\n"); printf("<option value=%d %s>All notifications\n",NOTIFICATION_ALL,(notification_options==NOTIFICATION_ALL)?"selected":""); if(query_type!=FIND_SERVICE) { printf("<option value=%d %s>All service notifications\n",NOTIFICATION_SERVICE_ALL,(notification_options==NOTIFICATION_SERVICE_ALL)?"selected":""); printf("<option value=%d %s>All host notifications\n",NOTIFICATION_HOST_ALL,(notification_options==NOTIFICATION_HOST_ALL)?"selected":""); } printf("<option value=%d %s>Service custom\n",NOTIFICATION_SERVICE_CUSTOM,(notification_options==NOTIFICATION_SERVICE_CUSTOM)?"selected":""); printf("<option value=%d %s>Service acknowledgements\n",NOTIFICATION_SERVICE_ACK,(notification_options==NOTIFICATION_SERVICE_ACK)?"selected":""); printf("<option value=%d %s>Service warning\n",NOTIFICATION_SERVICE_WARNING,(notification_options==NOTIFICATION_SERVICE_WARNING)?"selected":""); printf("<option value=%d %s>Service unknown\n",NOTIFICATION_SERVICE_UNKNOWN,(notification_options==NOTIFICATION_SERVICE_UNKNOWN)?"selected":""); printf("<option value=%d %s>Service critical\n",NOTIFICATION_SERVICE_CRITICAL,(notification_options==NOTIFICATION_SERVICE_CRITICAL)?"selected":""); printf("<option value=%d %s>Service recovery\n",NOTIFICATION_SERVICE_RECOVERY,(notification_options==NOTIFICATION_SERVICE_RECOVERY)?"selected":""); printf("<option value=%d %s>Service flapping\n",NOTIFICATION_SERVICE_FLAP,(notification_options==NOTIFICATION_SERVICE_FLAP)?"selected":""); if(query_type!=FIND_SERVICE) { printf("<option value=%d %s>Host custom\n",NOTIFICATION_HOST_CUSTOM,(notification_options==NOTIFICATION_HOST_CUSTOM)?"selected":""); printf("<option value=%d %s>Host acknowledgements\n",NOTIFICATION_HOST_ACK,(notification_options==NOTIFICATION_HOST_ACK)?"selected":""); printf("<option value=%d %s>Host down\n",NOTIFICATION_HOST_DOWN,(notification_options==NOTIFICATION_HOST_DOWN)?"selected":""); printf("<option value=%d %s>Host unreachable\n",NOTIFICATION_HOST_UNREACHABLE,(notification_options==NOTIFICATION_HOST_UNREACHABLE)?"selected":""); printf("<option value=%d %s>Host recovery\n",NOTIFICATION_HOST_RECOVERY,(notification_options==NOTIFICATION_HOST_RECOVERY)?"selected":""); printf("<option value=%d %s>Host flapping\n",NOTIFICATION_HOST_FLAP,(notification_options==NOTIFICATION_HOST_FLAP)?"selected":""); } printf("</select></td>\n"); printf("</tr>\n"); printf("<tr>\n"); printf("<td align=left CLASS='optBoxItem'>Older Entries First:</td>\n"); printf("<td></td>\n"); printf("</tr>\n"); printf("<tr>\n"); printf("<td align=left valign=bottom CLASS='optBoxItem'><input type='checkbox' name='oldestfirst' %s></td>",(use_lifo==FALSE)?"checked":""); printf("<td align=right CLASS='optBoxItem'><input type='submit' value='Update'></td>\n"); printf("</tr>\n"); /* display context-sensitive help */ printf("<tr><td></td><td align=right valign=bottom>\n"); display_context_help(CONTEXTHELP_NOTIFICATIONS); printf("</td></tr>\n"); printf("</form>\n"); printf("</table>\n"); printf("</td>\n"); /* end of top table */ printf("</tr>\n"); printf("</table>\n"); } /* display notifications */ display_notifications(); document_footer(); /* free allocated memory */ free_memory(); return OK; }
int main(void) { int result = OK; char temp_buffer[MAX_INPUT_BUFFER]; char temp_buffer2[MAX_INPUT_BUFFER]; /* get the variables passed to us */ process_cgivars(); /* reset internal CGI variables */ reset_cgi_vars(); /* read the CGI configuration file */ result = read_cgi_config_file(get_cgi_config_location()); if(result == ERROR) { document_header(FALSE); cgi_config_file_error(get_cgi_config_location()); document_footer(); return ERROR; } /* read the main configuration file */ result = read_main_config_file(main_config_file); if(result == ERROR) { document_header(FALSE); main_config_file_error(main_config_file); document_footer(); return ERROR; } /* read all object configuration data */ result = read_all_object_configuration_data(main_config_file, READ_ALL_OBJECT_DATA); if(result == ERROR) { document_header(FALSE); object_data_error(); document_footer(); return ERROR; } document_header(TRUE); /* get authentication information */ get_authentication_information(¤t_authdata); /* determine what log file we should be using */ get_log_archive_to_use(log_archive, log_file_to_use, (int)sizeof(log_file_to_use)); if(display_header == TRUE) { /* begin top table */ printf("<table border=0 width=100%%>\n"); printf("<tr>\n"); /* left column of the first row */ printf("<td align=left valign=top width=33%%>\n"); if(display_type == DISPLAY_SERVICES) snprintf(temp_buffer, sizeof(temp_buffer) - 1, "Service Alert History"); else if(show_all_hosts == TRUE) snprintf(temp_buffer, sizeof(temp_buffer) - 1, "Alert History"); else snprintf(temp_buffer, sizeof(temp_buffer) - 1, "Host Alert History"); temp_buffer[sizeof(temp_buffer) - 1] = '\x0'; display_info_table(temp_buffer, FALSE, ¤t_authdata); printf("<TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0 CLASS='linkBox'>\n"); printf("<TR><TD CLASS='linkBox'>\n"); if(display_type == DISPLAY_HOSTS) { printf("<A HREF='%s?host=%s'>View Status Detail For %s</A><BR />\n", STATUS_CGI, (show_all_hosts == TRUE) ? "all" : url_encode(host_name), (show_all_hosts == TRUE) ? "All Hosts" : "This Host"); printf("<A HREF='%s?host=%s'>View Notifications For %s</A><BR />\n", NOTIFICATIONS_CGI, (show_all_hosts == TRUE) ? "all" : url_encode(host_name), (show_all_hosts == TRUE) ? "All Hosts" : "This Host"); #ifdef USE_TRENDS if(show_all_hosts == FALSE) printf("<A HREF='%s?host=%s'>View Trends For This Host</A>\n", TRENDS_CGI, url_encode(host_name)); #endif } else { printf("<A HREF='%s?host=%s&", NOTIFICATIONS_CGI, url_encode(host_name)); printf("service=%s'>View Notifications For This Service</A><BR />\n", url_encode(svc_description)); #ifdef USE_TRENDS printf("<A HREF='%s?host=%s&", TRENDS_CGI, url_encode(host_name)); printf("service=%s'>View Trends For This Service</A><BR />\n", url_encode(svc_description)); #endif printf("<A HREF='%s?host=%s'>View History For This Host</A>\n", HISTORY_CGI, url_encode(host_name)); } printf("</TD></TR>\n"); printf("</TABLE>\n"); printf("</td>\n"); /* middle column of top row */ printf("<td align=center valign=top width=33%%>\n"); printf("<DIV ALIGN=CENTER CLASS='dataTitle'>\n"); if(display_type == DISPLAY_SERVICES) printf("Service '%s' On Host '%s'", svc_description, host_name); else if(show_all_hosts == TRUE) printf("All Hosts and Services"); else printf("Host '%s'", host_name); printf("</DIV>\n"); printf("<BR />\n"); snprintf(temp_buffer, sizeof(temp_buffer) - 1, "%s?%shost=%s&type=%d&statetype=%d&", HISTORY_CGI, (use_lifo == FALSE) ? "oldestfirst&" : "", url_encode(host_name), history_options, state_options); temp_buffer[sizeof(temp_buffer) - 1] = '\x0'; if(display_type == DISPLAY_SERVICES) { snprintf(temp_buffer2, sizeof(temp_buffer2) - 1, "service=%s&", url_encode(svc_description)); temp_buffer2[sizeof(temp_buffer2) - 1] = '\x0'; strncat(temp_buffer, temp_buffer2, sizeof(temp_buffer) - strlen(temp_buffer) - 1); temp_buffer[sizeof(temp_buffer) - 1] = '\x0'; } display_nav_table(temp_buffer, log_archive); printf("</td>\n"); /* right hand column of top row */ printf("<td align=right valign=top width=33%%>\n"); printf("<form method=\"GET\" action=\"%s\">\n", HISTORY_CGI); printf("<table border=0 CLASS='optBox'>\n"); printf("<input type='hidden' name='host' value='%s'>\n", (show_all_hosts == TRUE) ? "all" : escape_string(host_name)); if(display_type == DISPLAY_SERVICES) printf("<input type='hidden' name='service' value='%s'>\n", escape_string(svc_description)); printf("<input type='hidden' name='archive' value='%d'>\n", log_archive); printf("<tr>\n"); printf("<td align=left CLASS='optBoxItem'>State type options:</td>\n"); printf("</tr>\n"); printf("<tr>\n"); printf("<td align=left CLASS='optBoxItem'><select name='statetype'>\n"); printf("<option value=%d %s>All state types</option>\n", STATE_ALL, (state_options == STATE_ALL) ? "selected" : ""); printf("<option value=%d %s>Soft states</option>\n", STATE_SOFT, (state_options == STATE_SOFT) ? "selected" : ""); printf("<option value=%d %s>Hard states</option>\n", STATE_HARD, (state_options == STATE_HARD) ? "selected" : ""); printf("</select></td>\n"); printf("</tr>\n"); printf("<tr>\n"); printf("<td align=left CLASS='optBoxItem'>History detail level for "); if(display_type == DISPLAY_HOSTS) printf("%s host%s", (show_all_hosts == TRUE) ? "all" : "this", (show_all_hosts == TRUE) ? "s" : ""); else printf("service"); printf(":</td>\n"); printf("</tr>\n") ; printf("<tr>\n"); printf("<td align=left CLASS='optBoxItem'><select name='type'>\n"); if(display_type == DISPLAY_HOSTS) printf("<option value=%d %s>All alerts</option>\n", HISTORY_ALL, (history_options == HISTORY_ALL) ? "selected" : ""); printf("<option value=%d %s>All service alerts</option>\n", HISTORY_SERVICE_ALL, (history_options == HISTORY_SERVICE_ALL) ? "selected" : ""); if(display_type == DISPLAY_HOSTS) printf("<option value=%d %s>All host alerts</option>\n", HISTORY_HOST_ALL, (history_options == HISTORY_HOST_ALL) ? "selected" : ""); printf("<option value=%d %s>Service warning</option>\n", HISTORY_SERVICE_WARNING, (history_options == HISTORY_SERVICE_WARNING) ? "selected" : ""); printf("<option value=%d %s>Service unknown</option>\n", HISTORY_SERVICE_UNKNOWN, (history_options == HISTORY_SERVICE_UNKNOWN) ? "selected" : ""); printf("<option value=%d %s>Service critical</option>\n", HISTORY_SERVICE_CRITICAL, (history_options == HISTORY_SERVICE_CRITICAL) ? "selected" : ""); printf("<option value=%d %s>Service recovery</option>\n", HISTORY_SERVICE_RECOVERY, (history_options == HISTORY_SERVICE_RECOVERY) ? "selected" : ""); if(display_type == DISPLAY_HOSTS) { printf("<option value=%d %s>Host down</option>\n", HISTORY_HOST_DOWN, (history_options == HISTORY_HOST_DOWN) ? "selected" : ""); printf("<option value=%d %s>Host unreachable</option>\n", HISTORY_HOST_UNREACHABLE, (history_options == HISTORY_HOST_UNREACHABLE) ? "selected" : ""); printf("<option value=%d %s>Host recovery</option>\n", HISTORY_HOST_RECOVERY, (history_options == HISTORY_HOST_RECOVERY) ? "selected" : ""); } printf("</select></td>\n"); printf("</tr>\n"); printf("<tr>\n"); printf("<td align=left valign=bottom CLASS='optBoxItem'><input type='checkbox' name='noflapping' %s> Hide Flapping Alerts</td>", (display_flapping_alerts == FALSE) ? "checked" : ""); printf("</tr>\n"); printf("<tr>\n"); printf("<td align=left valign=bottom CLASS='optBoxItem'><input type='checkbox' name='nodowntime' %s> Hide Downtime Alerts</td>", (display_downtime_alerts == FALSE) ? "checked" : ""); printf("</tr>\n"); printf("<tr>\n"); printf("<td align=left valign=bottom CLASS='optBoxItem'><input type='checkbox' name='nosystem' %s> Hide Process Messages</td>", (display_system_messages == FALSE) ? "checked" : ""); printf("</tr>\n"); printf("<tr>\n"); printf("<td align=left valign=bottom CLASS='optBoxItem'><input type='checkbox' name='oldestfirst' %s> Older Entries First</td>", (use_lifo == FALSE) ? "checked" : ""); printf("</tr>\n"); printf("<tr>\n"); printf("<td align=left CLASS='optBoxItem'><input type='submit' value='Update'></td>\n"); printf("</tr>\n"); /* display context-sensitive help */ printf("<tr>\n"); printf("<td align=right>\n"); display_context_help(CONTEXTHELP_HISTORY); printf("</td>\n"); printf("</tr>\n"); printf("</table>\n"); printf("</form>\n"); printf("</td>\n"); /* end of top table */ printf("</tr>\n"); printf("</table>\n"); } /* display history */ get_history(); document_footer(); /* free allocated memory */ free_memory(); return OK; }
int main(void) { int result = OK; /* get the arguments passed in the URL */ process_cgivars(); /* reset internal variables */ reset_cgi_vars(); /* read the CGI configuration file */ result = read_cgi_config_file(get_cgi_config_location()); if(result == ERROR) { document_header(FALSE); cgi_config_file_error(get_cgi_config_location()); document_footer(); return ERROR; } /* read the main configuration file */ result = read_main_config_file(main_config_file); if(result == ERROR) { document_header(FALSE); main_config_file_error(main_config_file); document_footer(); return ERROR; } /* read all object configuration data */ result = read_all_object_configuration_data(main_config_file, READ_ALL_OBJECT_DATA); if(result == ERROR) { document_header(FALSE); object_data_error(); document_footer(); return ERROR; } /* read all status data */ result = read_all_status_data(get_cgi_config_location(), READ_ALL_STATUS_DATA); if(result == ERROR) { document_header(FALSE); status_data_error(); document_footer(); free_memory(); return ERROR; } document_header(TRUE); /* get authentication information */ get_authentication_information(¤t_authdata); if(display_header == TRUE) { /* begin top table */ printf("<table border=0 width=100%%>\n"); printf("<tr>\n"); /* left column of the first row */ printf("<td align=left valign=top width=33%%>\n"); display_info_table("Network Outages", TRUE, ¤t_authdata); printf("</td>\n"); /* middle column of top row */ printf("<td align=center valign=top width=33%%>\n"); printf("</td>\n"); /* right column of top row */ printf("<td align=right valign=bottom width=33%%>\n"); /* display context-sensitive help */ display_context_help(CONTEXTHELP_OUTAGES); printf("</td>\n"); /* end of top table */ printf("</tr>\n"); printf("</table>\n"); } /* display network outage info */ display_network_outages(); document_footer(); /* free memory allocated to comment data */ free_comment_data(); /* free all allocated memory */ free_memory(); return OK; }