int main(void) { /* get the arguments passed in the URL */ process_cgivars(); /* reset internal variables */ reset_cgi_vars(); cgi_init(document_header, document_footer, READ_ALL_OBJECT_DATA, READ_ALL_STATUS_DATA); 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; }
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(CGI_ID, FALSE, "Error"); print_error(get_cgi_config_location(), ERROR_CGI_CFG_FILE, FALSE); document_footer(CGI_ID); free_html_request(html_request_list); return ERROR; } /* read the main configuration file */ result = read_main_config_file(main_config_file); if (result == ERROR) { document_header(CGI_ID, FALSE, "Error"); print_error(main_config_file, ERROR_CGI_MAIN_CFG, FALSE); document_footer(CGI_ID); free_html_request(html_request_list); 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(CGI_ID, FALSE, "Error"); print_error(NULL, ERROR_CGI_OBJECT_DATA, FALSE); document_footer(CGI_ID); free_html_request(html_request_list); return ERROR; } /* read all status data */ result = read_all_status_data(main_config_file, READ_ALL_STATUS_DATA); if (result == ERROR && daemon_check == TRUE) { document_header(CGI_ID, FALSE, "Error"); print_error(NULL, ERROR_CGI_STATUS_DATA, FALSE); document_footer(CGI_ID); free_html_request(html_request_list); free_memory(); return ERROR; } document_header(CGI_ID, TRUE, "Network Outages"); /* 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", ¤t_authdata, daemon_check); 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"); printf("</td>\n"); /* end of top table */ printf("</tr>\n"); printf("</table>\n"); } /* display network outage info */ display_network_outages(); document_footer(CGI_ID); /* free memory allocated to comment data */ free_comment_data(); /* free all allocated memory */ free_html_request(html_request_list); free_memory(); return OK; }
/* free the memory allocated to the linked lists */ void free_memory(nagios_macros *mac) { int i; objectlist *entry, *next; destroy_objects_command(); destroy_objects_timeperiod(); destroy_objects_host(); destroy_objects_service(); destroy_objects_contact(); destroy_objects_contactgroup(); destroy_objects_hostgroup(); destroy_objects_servicegroup(); free_comment_data(); nm_free(global_host_event_handler); nm_free(global_service_event_handler); /* free obsessive compulsive commands */ nm_free(ocsp_command); nm_free(ochp_command); nm_free(object_cache_file); nm_free(object_precache_file); /* * free memory associated with macros. * It's ok to only free the volatile ones, as the non-volatile * are always free()'d before assignment if they're set. * Doing a full free of them here means we'll wipe the constant * macros when we get a reload or restart request through the * command pipe, or when we receive a SIGHUP. */ clear_volatile_macros_r(mac); free_macrox_names(); for (entry = objcfg_files; entry; entry = next) { next = entry->next; nm_free(entry->object_ptr); nm_free(entry); } objcfg_files = NULL; for (entry = objcfg_dirs; entry; entry = next) { next = entry->next; nm_free(entry->object_ptr); nm_free(entry); } objcfg_dirs = NULL; /* free illegal char strings */ nm_free(illegal_object_chars); nm_free(illegal_output_chars); /* free file/path variables */ nm_free(status_file); nm_free(debug_file); nm_free(log_file); mac->x[MACRO_LOGFILE] = NULL; /* assigned from 'log_file' */ nm_free(temp_file); mac->x[MACRO_TEMPFILE] = NULL; /* assigned from temp_file */ nm_free(temp_path); mac->x[MACRO_TEMPPATH] = NULL; /*assigned from temp_path */ nm_free(check_result_path); nm_free(command_file); nm_free(qh_socket_path); mac->x[MACRO_COMMANDFILE] = NULL; /* assigned from command_file */ nm_free(log_archive_path); for (i = 0; i < MAX_USER_MACROS; i++) { nm_free(macro_user[i]); } /* these have no other reference */ nm_free(mac->x[MACRO_ADMINEMAIL]); nm_free(mac->x[MACRO_ADMINPAGER]); nm_free(mac->x[MACRO_RESOURCEFILE]); nm_free(mac->x[MACRO_OBJECTCACHEFILE]); nm_free(mac->x[MACRO_MAINCONFIGFILE]); return; }
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; }