![]() |
Icinga-core 1.4.0
next gen monitoring
|
00001 /************************************************************************ 00002 * 00003 * CGIUTILS.H - Header file for common CGI functions 00004 * 00005 * Copyright (c) 1999-2008 Ethan Galstad (egalstad@nagios.org) 00006 * Copyright (c) 2009-2011 Icinga Development Team (http://www.icinga.org) 00007 * 00008 * License: 00009 * 00010 * This program is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License version 2 as 00012 * published by the Free Software Foundation. 00013 * 00014 * This program is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with this program; if not, write to the Free Software 00021 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00022 ************************************************************************/ 00023 00024 #ifndef _CGIUTILS_H 00025 #define _CGIUTILS_H 00026 00027 #include "config.h" 00028 #include "logging.h" 00029 #include "objects.h" 00030 #include "cgiauth.h" 00031 #include "readlogs.h" 00032 00033 #ifdef __cplusplus 00034 extern "C" { 00035 #endif 00036 00037 00038 /**************************** CGI REFRESH RATE ******************************/ 00039 00040 #define DEFAULT_REFRESH_RATE 60 /* 60 second refresh rate for CGIs */ 00041 00042 00043 /******************************* CGI NAMES **********************************/ 00044 00045 #define AVAIL_CGI "avail.cgi" 00046 #define CMD_CGI "cmd.cgi" 00047 #define CONFIG_CGI "config.cgi" 00048 #define EXTINFO_CGI "extinfo.cgi" 00049 #define HISTOGRAM_CGI "histogram.cgi" 00050 #define HISTORY_CGI "history.cgi" 00051 #define NOTIFICATIONS_CGI "notifications.cgi" 00052 #define OUTAGES_CGI "outages.cgi" 00053 #define SHOWLOG_CGI "showlog.cgi" 00054 #define STATUS_CGI "status.cgi" 00055 #define STATUSMAP_CGI "statusmap.cgi" 00056 #define STATUSWML_CGI "statuswml.cgi" 00057 #define STATUSWRL_CGI "statuswrl.cgi" 00058 #define SUMMARY_CGI "summary.cgi" 00059 #define TAC_CGI "tac.cgi" 00060 #define TRENDS_CGI "trends.cgi" 00061 00062 /* Are these ones still in use??? */ 00063 #define TRACEROUTE_CGI "traceroute.cgi" 00064 #define CHECKSANITY_CGI "checksanity.cgi" 00065 #define MINISTATUS_CGI "ministatus.cgi" 00066 00067 00068 /******************************* CGI IDS **********************************/ 00069 00070 #define AVAIL_CGI_ID 1 00071 #define CMD_CGI_ID 2 00072 #define CONFIG_CGI_ID 3 00073 #define EXTINFO_CGI_ID 4 00074 #define HISTOGRAM_CGI_ID 5 00075 #define HISTORY_CGI_ID 6 00076 #define NOTIFICATIONS_CGI_ID 7 00077 #define OUTAGES_CGI_ID 8 00078 #define SHOWLOG_CGI_ID 9 00079 #define STATUS_CGI_ID 10 00080 #define STATUSMAP_CGI_ID 11 00081 #define STATUSWML_CGI_ID 12 00082 #define STATUSWRL_CGI_ID 13 00083 #define SUMMARY_CGI_ID 14 00084 #define TAC_CGI_ID 15 00085 #define TRENDS_CGI_ID 16 00086 00087 /* Are these ones still in use??? */ 00088 #define TRACEROUTE_CGI_ID 17 00089 #define CHECKSANITY_CGI_ID 18 00090 #define MINISTATUS_CGI_ID 19 00091 00092 /* for error msg */ 00093 #define ERROR_CGI_ID 20 00094 00095 00096 /******************************* ERROR CGI IDS **********************************/ 00097 00098 #define ERROR_CGI_STATUS_DATA 1 00099 #define ERROR_CGI_OBJECT_DATA 2 00100 #define ERROR_CGI_CFG_FILE 3 00101 #define ERROR_CGI_MAIN_CFG 4 00102 00103 00104 /**************************** STYLE SHEET NAMES ******************************/ 00105 00106 #define COMMON_CSS "common.css" 00107 #define JQUERY_DD_CSS "dd.css" 00108 00109 #define AVAIL_CSS "avail.css" 00110 #define CMD_CSS "cmd.css" 00111 #define CONFIG_CSS "config.css" 00112 #define EXTINFO_CSS "extinfo.css" 00113 #define HISTOGRAM_CSS "histogram.css" 00114 #define HISTORY_CSS "history.css" 00115 #define NOTIFICATIONS_CSS "notifications.css" 00116 #define OUTAGES_CSS "outages.css" 00117 #define SHOWLOG_CSS "showlog.css" 00118 #define STATUS_CSS "status.css" 00119 #define STATUSMAP_CSS "statusmap.css" 00120 #define SUMMARY_CSS "summary.css" 00121 #define TAC_CSS "tac.css" 00122 #define TAC_HEADER_CSS "tacheader.css" 00123 #define TRENDS_CSS "trends.css" 00124 00125 /* Are these ones still in use??? */ 00126 #define CHECKSANITY_CSS "checksanity.css" 00127 #define MINISTATUS_CSS "ministatus.css" 00128 00129 00130 /**************************** JAVASCRIPT NAMES ******************************/ 00131 00132 #define CHECKBOX_FUNCTIONS_JS "checkbox_functions.js" 00133 #define JQUERY_MAIN_JS "jquery-1.4.2.min.js" 00134 #define JQUERY_DD_JS "jquery.dd.js" 00135 #define SKINNYTIP_JS "skinnytip.js" 00136 00137 00138 /********************************* ICONS ************************************/ 00139 00140 #define STATUS_ICON_WIDTH 20 00141 #define STATUS_ICON_HEIGHT 20 00142 00143 #define INFO_ICON "info.png" 00144 #define INFO_ICON_ALT "Informational Message" 00145 #define START_ICON "start.gif" 00146 #define START_ICON_ALT "Program Start" 00147 #define STOP_ICON "stop.gif" 00148 #define STOP_ICON_ALT "Program End" 00149 #define RESTART_ICON "restart.gif" 00150 #define RESTART_ICON_ALT "Program Restart" 00151 #define OK_ICON "recovery.png" 00152 #define OK_ICON_ALT "Service Ok" 00153 #define CRITICAL_ICON "critical.png" 00154 #define CRITICAL_ICON_ALT "Service Critical" 00155 #define WARNING_ICON "warning.png" 00156 #define WARNING_ICON_ALT "Service Warning" 00157 #define UNKNOWN_ICON "unknown.png" 00158 #define UNKNOWN_ICON_ALT "Service Unknown" 00159 #define NOTIFICATION_ICON "notify.gif" 00160 #define NOTIFICATION_ICON_ALT "Service Notification" 00161 #define LOG_ROTATION_ICON "logrotate.png" 00162 #define LOG_ROTATION_ICON_ALT "Log Rotation" 00163 #define EXTERNAL_COMMAND_ICON "command.png" 00164 #define EXTERNAL_COMMAND_ICON_ALT "External Command" 00165 00166 #define STATUS_DETAIL_ICON "status2.gif" 00167 #define STATUS_OVERVIEW_ICON "status.gif" 00168 #define STATUSMAP_ICON "status3.gif" 00169 #define STATUSWORLD_ICON "status4.gif" 00170 #define EXTINFO_ICON "extinfo.gif" 00171 #define HISTORY_ICON "history.gif" 00172 #define CONTACTGROUP_ICON "contactgroup.gif" 00173 #define TRENDS_ICON "trends.gif" 00174 #define COLLAPSE_ICON "icon_collapse.gif" 00175 #define EXPAND_ICON "icon_expand.gif" 00176 00177 #define DISABLED_ICON "disabled.gif" 00178 #define ENABLED_ICON "enabled.gif" 00179 #define PASSIVE_ONLY_ICON "passiveonly.gif" 00180 #define NOTIFICATIONS_DISABLED_ICON "ndisabled.gif" 00181 #define ACKNOWLEDGEMENT_ICON "ack.gif" 00182 #define REMOVE_ACKNOWLEDGEMENT_ICON "noack.gif" 00183 #define COMMENT_ICON "comment.gif" 00184 #define DELETE_ICON "delete.gif" 00185 #define DELAY_ICON "delay.gif" 00186 #define DOWNTIME_ICON "downtime.gif" 00187 #define PASSIVE_ICON "passiveonly.gif" 00188 #define RIGHT_ARROW_ICON "right.gif" 00189 #define LEFT_ARROW_ICON "left.gif" 00190 #define UP_ARROW_ICON "up.gif" 00191 #define DOWN_ARROW_ICON "down.gif" 00192 #define FLAPPING_ICON "flapping.gif" 00193 #define SCHEDULED_DOWNTIME_ICON "downtime.gif" 00194 #define EMPTY_ICON "empty.gif" 00195 #define CMD_STOP_ICON "cmd_stop.png" 00196 00197 #define ACTIVE_ICON "active.gif" 00198 #define ACTIVE_ICON_ALT "Active Mode" 00199 #define STANDBY_ICON "standby.gif" 00200 #define STANDBY_ICON_ALT "Standby Mode" 00201 00202 #define HOST_DOWN_ICON "critical.png" 00203 #define HOST_DOWN_ICON_ALT "Host Down" 00204 #define HOST_UNREACHABLE_ICON "critical.png" 00205 #define HOST_UNREACHABLE_ICON_ALT "Host Unreachable" 00206 #define HOST_UP_ICON "recovery.png" 00207 #define HOST_UP_ICON_ALT "Host Up" 00208 #define HOST_NOTIFICATION_ICON "notify.gif" 00209 #define HOST_NOTIFICATION_ICON_ALT "Host Notification" 00210 00211 #define SERVICE_EVENT_ICON "serviceevent.gif" 00212 #define SERVICE_EVENT_ICON_ALT "Service Event Handler" 00213 #define HOST_EVENT_ICON "hostevent.gif" 00214 #define HOST_EVENT_ICON_ALT "Host Event Handler" 00215 00216 #define THERM_OK_IMAGE "thermok.png" 00217 #define THERM_WARNING_IMAGE "thermwarn.png" 00218 #define THERM_CRITICAL_IMAGE "thermcrit.png" 00219 00220 #define CONFIGURATION_ICON "config.gif" 00221 #define NOTES_ICON "notes.gif" 00222 #define ACTION_ICON "action.gif" 00223 #define DETAIL_ICON "detail.gif" 00224 00225 #define PARENT_TRAVERSAL_ICON "parentup.gif" 00226 00227 #define TAC_DISABLED_ICON "tacdisabled.png" 00228 #define TAC_ENABLED_ICON "tacenabled.png" 00229 00230 #define ZOOM1_ICON "zoom1.gif" 00231 #define ZOOM2_ICON "zoom2.gif" 00232 00233 #define CONTEXT_HELP_ICON1 "contexthelp1.gif" 00234 #define CONTEXT_HELP_ICON2 "contexthelp2.gif" 00235 00236 #define SPLUNK_SMALL_WHITE_ICON "splunk1.gif" 00237 #define SPLUNK_SMALL_BLACK_ICON "splunk2.gif" 00238 00239 #define DATABASE_ICON "database.gif" 00240 #define AUTOSAVE_ICON "save.gif" 00241 #define DAEMON_WARNING_ICON "warning_triangle.gif" 00242 #define STATS_ICON "stats.gif" 00243 00244 #define TAC_HEADER_DEFAULT_LOGO "Icinga_Header_Webinterface.jpg" 00245 #define TAC_HEADER_DEFAULT_LOGO_ALT "Icinga" 00246 #define TAC_HEADER_LOGO "Icinga_TAC_Header_Webinterface.jpg" 00247 #define TAC_HEADER_HOST_ICON "server.png" 00248 #define TAC_HEADER_SERVICE_ICON "application-monitor.png" 00249 #define TAC_HEADER_EXECUTION_ICON "hourglass-exclamation.png" 00250 #define TAC_HEADER_LATENCY_ICON "hourglass-arrow.png" 00251 00252 00253 /************************** PLUGIN RETURN VALUES ****************************/ 00254 00255 #define STATE_OK 0 00256 #define STATE_WARNING 1 00257 #define STATE_CRITICAL 2 00258 #define STATE_UNKNOWN 3 /* changed from -1 on 02/24/2001 */ 00259 00260 00261 /********************* EXTENDED INFO CGI DISPLAY TYPES *********************/ 00262 00263 #define DISPLAY_PROCESS_INFO 0 00264 #define DISPLAY_HOST_INFO 1 00265 #define DISPLAY_SERVICE_INFO 2 00266 #define DISPLAY_COMMENTS 3 00267 #define DISPLAY_PERFORMANCE 4 00268 #define DISPLAY_HOSTGROUP_INFO 5 00269 #define DISPLAY_DOWNTIME 6 00270 #define DISPLAY_SCHEDULING_QUEUE 7 00271 #define DISPLAY_SERVICEGROUP_INFO 8 00272 00273 00274 /************************ COMMAND CGI COMMAND MODES *************************/ 00275 00276 #define CMDMODE_NONE 0 00277 #define CMDMODE_REQUEST 1 00278 #define CMDMODE_COMMIT 2 00279 00280 00281 /************************ CGI CONTENT TYPE *********************************/ 00282 #define HTML_CONTENT 0 00283 #define WML_CONTENT 1 00284 #define IMAGE_CONTENT 2 00285 #define CSV_CONTENT 3 00286 #define JSON_CONTENT 4 00287 00288 00289 /************************ CSV OUTPUT CHARACTERS ****************************/ 00290 #define CSV_DELIMITER ";" 00291 #define CSV_DATA_ENCLOSURE "'" 00292 00293 00294 /******************** HOST AND SERVICE NOTIFICATION TYPES ******************/ 00295 00296 #define NOTIFICATION_ALL 0 /* all service and host notifications */ 00297 #define NOTIFICATION_SERVICE_ALL 1 /* all types of service notifications */ 00298 #define NOTIFICATION_HOST_ALL 2 /* all types of host notifications */ 00299 #define NOTIFICATION_SERVICE_WARNING 4 00300 #define NOTIFICATION_SERVICE_UNKNOWN 8 00301 #define NOTIFICATION_SERVICE_CRITICAL 16 00302 #define NOTIFICATION_SERVICE_RECOVERY 32 00303 #define NOTIFICATION_HOST_DOWN 64 00304 #define NOTIFICATION_HOST_UNREACHABLE 128 00305 #define NOTIFICATION_HOST_RECOVERY 256 00306 #define NOTIFICATION_SERVICE_ACK 512 00307 #define NOTIFICATION_HOST_ACK 1024 00308 #define NOTIFICATION_SERVICE_FLAP 2048 00309 #define NOTIFICATION_HOST_FLAP 4096 00310 #define NOTIFICATION_SERVICE_CUSTOM 8192 00311 #define NOTIFICATION_HOST_CUSTOM 16384 00312 00313 00314 /********************** HOST AND SERVICE ALERT TYPES **********************/ 00315 00316 #define HISTORY_ALL 0 /* all service and host alert */ 00317 #define HISTORY_SERVICE_ALL 1 /* all types of service alerts */ 00318 #define HISTORY_HOST_ALL 2 /* all types of host alerts */ 00319 #define HISTORY_SERVICE_WARNING 4 00320 #define HISTORY_SERVICE_UNKNOWN 8 00321 #define HISTORY_SERVICE_CRITICAL 16 00322 #define HISTORY_SERVICE_RECOVERY 32 00323 #define HISTORY_HOST_DOWN 64 00324 #define HISTORY_HOST_UNREACHABLE 128 00325 #define HISTORY_HOST_RECOVERY 256 00326 00327 00328 /****************************** SORT TYPES *******************************/ 00329 00330 #define SORT_NONE 0 00331 #define SORT_ASCENDING 1 00332 #define SORT_DESCENDING 2 00333 00334 00335 /***************************** SORT OPTIONS ******************************/ 00336 00337 #define SORT_NOTHING 0 00338 #define SORT_HOSTNAME 1 00339 #define SORT_SERVICENAME 2 00340 #define SORT_SERVICESTATUS 3 00341 #define SORT_LASTCHECKTIME 4 00342 #define SORT_CURRENTATTEMPT 5 00343 #define SORT_STATEDURATION 6 00344 #define SORT_NEXTCHECKTIME 7 00345 #define SORT_HOSTSTATUS 8 00346 00347 00348 /****************** HOST AND SERVICE FILTER PROPERTIES *******************/ 00349 00350 #define HOST_SCHEDULED_DOWNTIME 1 00351 #define HOST_NO_SCHEDULED_DOWNTIME 2 00352 #define HOST_STATE_ACKNOWLEDGED 4 00353 #define HOST_STATE_UNACKNOWLEDGED 8 00354 #define HOST_CHECKS_DISABLED 16 00355 #define HOST_CHECKS_ENABLED 32 00356 #define HOST_EVENT_HANDLER_DISABLED 64 00357 #define HOST_EVENT_HANDLER_ENABLED 128 00358 #define HOST_FLAP_DETECTION_DISABLED 256 00359 #define HOST_FLAP_DETECTION_ENABLED 512 00360 #define HOST_IS_FLAPPING 1024 00361 #define HOST_IS_NOT_FLAPPING 2048 00362 #define HOST_NOTIFICATIONS_DISABLED 4096 00363 #define HOST_NOTIFICATIONS_ENABLED 8192 00364 #define HOST_PASSIVE_CHECKS_DISABLED 16384 00365 #define HOST_PASSIVE_CHECKS_ENABLED 32768 00366 #define HOST_PASSIVE_CHECK 65536 00367 #define HOST_ACTIVE_CHECK 131072 00368 #define HOST_HARD_STATE 262144 00369 #define HOST_SOFT_STATE 524288 00370 00371 00372 #define SERVICE_SCHEDULED_DOWNTIME 1 00373 #define SERVICE_NO_SCHEDULED_DOWNTIME 2 00374 #define SERVICE_STATE_ACKNOWLEDGED 4 00375 #define SERVICE_STATE_UNACKNOWLEDGED 8 00376 #define SERVICE_CHECKS_DISABLED 16 00377 #define SERVICE_CHECKS_ENABLED 32 00378 #define SERVICE_EVENT_HANDLER_DISABLED 64 00379 #define SERVICE_EVENT_HANDLER_ENABLED 128 00380 #define SERVICE_FLAP_DETECTION_ENABLED 256 00381 #define SERVICE_FLAP_DETECTION_DISABLED 512 00382 #define SERVICE_IS_FLAPPING 1024 00383 #define SERVICE_IS_NOT_FLAPPING 2048 00384 #define SERVICE_NOTIFICATIONS_DISABLED 4096 00385 #define SERVICE_NOTIFICATIONS_ENABLED 8192 00386 #define SERVICE_PASSIVE_CHECKS_DISABLED 16384 00387 #define SERVICE_PASSIVE_CHECKS_ENABLED 32768 00388 #define SERVICE_PASSIVE_CHECK 65536 00389 #define SERVICE_ACTIVE_CHECK 131072 00390 #define SERVICE_HARD_STATE 262144 00391 #define SERVICE_SOFT_STATE 524288 00392 00393 00394 /****************************** SSI TYPES ********************************/ 00395 00396 #define SSI_HEADER 0 00397 #define SSI_FOOTER 1 00398 00399 00400 /************************ CONTEXT-SENSITIVE HELP *************************/ 00401 00402 #define CONTEXTHELP_STATUS_DETAIL "A1" 00403 #define CONTEXTHELP_STATUS_HGOVERVIEW "A2" 00404 #define CONTEXTHELP_STATUS_HGSUMMARY "A3" 00405 #define CONTEXTHELP_STATUS_HGGRID "A4" 00406 #define CONTEXTHELP_STATUS_SVCPROBLEMS "A5" 00407 #define CONTEXTHELP_STATUS_HOST_DETAIL "A6" 00408 #define CONTEXTHELP_STATUS_HOSTPROBLEMS "A7" 00409 #define CONTEXTHELP_STATUS_SGOVERVIEW "A8" 00410 #define CONTEXTHELP_STATUS_SGSUMMARY "A9" 00411 #define CONTEXTHELP_STATUS_SGGRID "A10" 00412 00413 #define CONTEXTHELP_TAC "B1" 00414 00415 #define CONTEXTHELP_MAP "C1" 00416 00417 #define CONTEXTHELP_LOG "D1" 00418 00419 #define CONTEXTHELP_HISTORY "E1" 00420 00421 #define CONTEXTHELP_NOTIFICATIONS "F1" 00422 00423 #define CONTEXTHELP_TRENDS_MENU1 "G1" 00424 #define CONTEXTHELP_TRENDS_MENU2 "G2" 00425 #define CONTEXTHELP_TRENDS_MENU3 "G3" 00426 #define CONTEXTHELP_TRENDS_MENU4 "G4" 00427 #define CONTEXTHELP_TRENDS_HOST "G5" 00428 #define CONTEXTHELP_TRENDS_SERVICE "G6" 00429 00430 #define CONTEXTHELP_AVAIL_MENU1 "H1" 00431 #define CONTEXTHELP_AVAIL_MENU2 "H2" 00432 #define CONTEXTHELP_AVAIL_MENU3 "H3" 00433 #define CONTEXTHELP_AVAIL_MENU4 "H4" 00434 #define CONTEXTHELP_AVAIL_MENU5 "H5" 00435 #define CONTEXTHELP_AVAIL_HOSTGROUP "H6" 00436 #define CONTEXTHELP_AVAIL_HOST "H7" 00437 #define CONTEXTHELP_AVAIL_SERVICE "H8" 00438 #define CONTEXTHELP_AVAIL_SERVICEGROUP "H9" 00439 00440 #define CONTEXTHELP_EXT_HOST "I1" 00441 #define CONTEXTHELP_EXT_SERVICE "I2" 00442 #define CONTEXTHELP_EXT_HOSTGROUP "I3" 00443 #define CONTEXTHELP_EXT_PROCESS "I4" 00444 #define CONTEXTHELP_EXT_PERFORMANCE "I5" 00445 #define CONTEXTHELP_EXT_COMMENTS "I6" 00446 #define CONTEXTHELP_EXT_DOWNTIME "I7" 00447 #define CONTEXTHELP_EXT_QUEUE "I8" 00448 #define CONTEXTHELP_EXT_SERVICEGROUP "I9" 00449 00450 #define CONTEXTHELP_CMD_INPUT "J1" 00451 #define CONTEXTHELP_CMD_COMMIT "J2" 00452 00453 #define CONTEXTHELP_OUTAGES "K1" 00454 00455 #define CONTEXTHELP_CONFIG_MENU "L1" 00456 #define CONTEXTHELP_CONFIG_HOSTS "L2" 00457 #define CONTEXTHELP_CONFIG_HOSTDEPENDENCIES "L3" 00458 #define CONTEXTHELP_CONFIG_HOSTESCALATIONS "L4" 00459 #define CONTEXTHELP_CONFIG_HOSTGROUPS "L5" 00460 #define CONTEXTHELP_CONFIG_HOSTGROUPESCALATIONS "L6" 00461 #define CONTEXTHELP_CONFIG_SERVICES "L7" 00462 #define CONTEXTHELP_CONFIG_SERVICEDEPENDENCIES "L8" 00463 #define CONTEXTHELP_CONFIG_SERVICEESCALATIONS "L9" 00464 #define CONTEXTHELP_CONFIG_CONTACTS "L10" 00465 #define CONTEXTHELP_CONFIG_CONTACTGROUPS "L11" 00466 #define CONTEXTHELP_CONFIG_TIMEPERIODS "L12" 00467 #define CONTEXTHELP_CONFIG_COMMANDS "L13" 00468 #define CONTEXTHELP_CONFIG_HOSTEXTINFO "L14" 00469 #define CONTEXTHELP_CONFIG_SERVICEEXTINFO "L15" 00470 #define CONTEXTHELP_CONFIG_SERVICEGROUPS "L16" 00471 00472 #define CONTEXTHELP_HISTOGRAM_MENU1 "M1" 00473 #define CONTEXTHELP_HISTOGRAM_MENU2 "M2" 00474 #define CONTEXTHELP_HISTOGRAM_MENU3 "M3" 00475 #define CONTEXTHELP_HISTOGRAM_MENU4 "M4" 00476 #define CONTEXTHELP_HISTOGRAM_HOST "M5" 00477 #define CONTEXTHELP_HISTOGRAM_SERVICE "M6" 00478 00479 #define CONTEXTHELP_SUMMARY_MENU "N1" 00480 #define CONTEXTHELP_SUMMARY_RECENT_ALERTS "N2" 00481 #define CONTEXTHELP_SUMMARY_ALERT_TOTALS "N3" 00482 #define CONTEXTHELP_SUMMARY_HOSTGROUP_ALERT_TOTALS "N4" 00483 #define CONTEXTHELP_SUMMARY_HOST_ALERT_TOTALS "N5" 00484 #define CONTEXTHELP_SUMMARY_SERVICE_ALERT_TOTALS "N6" 00485 #define CONTEXTHELP_SUMMARY_ALERT_PRODUCERS "N7" 00486 #define CONTEXTHELP_SUMMARY_SERVICEGROUP_ALERT_TOTALS "N8" 00487 00488 00489 /************************** HTTP CHARSET ****************************/ 00490 00491 #define DEFAULT_HTTP_CHARSET "utf-8" 00492 00493 /************************** JSON OUTPUT VERSION ************************/ 00494 00495 #define JSON_OUTPUT_VERSION "1.4.0" 00496 00497 00498 /************************** BUFFER ***************************************/ 00499 00500 #define MAX_MESSAGE_BUFFER 4096 00501 00502 00503 /************************** DISPLAY STYLE ********************************/ 00504 00505 #define DISPLAY_NONE -1 00506 #define DISPLAY_HOSTS 0 00507 #define DISPLAY_HOSTGROUPS 1 00508 #define DISPLAY_SERVICEGROUPS 2 00509 #define DISPLAY_CONTACTS 3 00510 #define DISPLAY_CONTACTGROUPS 4 00511 #define DISPLAY_SERVICES 5 00512 #define DISPLAY_TIMEPERIODS 6 00513 #define DISPLAY_COMMANDS 7 00514 #define DISPLAY_HOSTGROUPESCALATIONS 8 /* no longer implemented */ 00515 #define DISPLAY_SERVICEDEPENDENCIES 9 00516 #define DISPLAY_SERVICEESCALATIONS 10 00517 #define DISPLAY_HOSTDEPENDENCIES 11 00518 #define DISPLAY_HOSTESCALATIONS 12 00519 #define DISPLAY_ALL 13 00520 #define DISPLAY_MODULES 14 00521 #define DISPLAY_COMMAND_EXPANSION 16211 00522 00523 #define STYLE_OVERVIEW 0 00524 #define STYLE_DETAIL 1 00525 #define STYLE_SUMMARY 2 00526 #define STYLE_GRID 3 00527 #define STYLE_HOST_DETAIL 4 00528 00529 /************************** HISTORY ************************************/ 00530 00531 #define SERVICE_HISTORY 0 00532 #define HOST_HISTORY 1 00533 #define SERVICE_FLAPPING_HISTORY 2 00534 #define HOST_FLAPPING_HISTORY 3 00535 #define SERVICE_DOWNTIME_HISTORY 4 00536 #define HOST_DOWNTIME_HISTORY 5 00537 00538 /************************** STATE **************************************/ 00539 00540 #define STATE_ALL 0 00541 #define STATE_SOFT 1 00542 #define STATE_HARD 2 00543 00544 /********************* standard report times ****************************/ 00545 00546 #define TIMEPERIOD_CUSTOM 0 00547 #define TIMEPERIOD_TODAY 1 00548 #define TIMEPERIOD_YESTERDAY 2 00549 #define TIMEPERIOD_THISWEEK 3 00550 #define TIMEPERIOD_LASTWEEK 4 00551 #define TIMEPERIOD_THISMONTH 5 00552 #define TIMEPERIOD_LASTMONTH 6 00553 #define TIMEPERIOD_THISQUARTER 7 00554 #define TIMEPERIOD_LASTQUARTER 8 00555 #define TIMEPERIOD_THISYEAR 9 00556 #define TIMEPERIOD_LASTYEAR 10 00557 #define TIMEPERIOD_LAST24HOURS 11 00558 #define TIMEPERIOD_LAST7DAYS 12 00559 #define TIMEPERIOD_LAST31DAYS 13 00560 #define TIMEPERIOD_SINGLE_DAY 14 00561 #define TIMEPERIOD_NEXTPROBLEM 15 00562 00563 /******************************** FUNCTIONS *******************************/ 00564 00565 void reset_cgi_vars(void); 00566 void free_memory(void); 00567 00568 char * get_cgi_config_location(void); /* gets location of the CGI config file to read */ 00569 char * get_cmd_file_location(void); /* gets location of external command file to write to */ 00570 00571 int read_cgi_config_file(char *); 00572 int read_main_config_file(char *); 00573 int read_all_object_configuration_data(char *,int); 00574 int read_all_status_data(char *,int); 00575 00576 char *unescape_newlines(char *); 00577 char *escape_newlines(char *); 00578 void sanitize_plugin_output(char *); /* strips HTML and bad characters from plugin output */ 00579 void strip_html_brackets(char *); /* strips > and < from string */ 00580 00581 void get_time_string(time_t *,char *,int,int); /* gets a date/time string */ 00582 void get_interval_time_string(double,char *,int); /* gets a time string for an interval of time */ 00583 00584 char * url_encode(char *); /* encodes a string in proper URL format */ 00585 char * html_encode(char *,int); /* encodes a string in HTML format (for what the user sees) */ 00586 char * escape_string(char *); /* escape string for html form usage */ 00587 00588 void print_extra_hostgroup_url(char *,char *); 00589 void print_extra_servicegroup_url(char *,char *); 00590 00591 void display_info_table(char *,int,authdata *, int); 00592 void display_nav_table(char *,int); 00593 00594 void display_splunk_host_url(host *); 00595 void display_splunk_service_url(service *); 00596 void display_splunk_generic_url(char *,int); 00597 void strip_splunk_query_terms(char *); 00598 00599 void include_ssi_files(char *,int); /* include user-defined SSI footers/headers */ 00600 void include_ssi_file(char *); /* include user-defined SSI footer/header */ 00601 00602 void cgi_config_file_error(char *); 00603 void main_config_file_error(char *); 00604 void object_data_error(void); 00605 void status_data_error(void); 00606 void print_error(char*, int); 00607 00608 void display_context_help(char *); /* displays context-sensitive help window */ 00609 00610 void document_header(int,int); /* print document header */ 00611 void document_footer(int); /* print document footer */ 00612 00613 void write_popup_code(int); /* PopUp's for graphics */ 00614 int check_daemon_running(void); 00615 00616 void print_generic_error_message(char *, char *, int); 00617 00618 char *get_export_csv_link(char *); /* function to make export csv link XSS save #1275 */ 00619 00620 int write_to_cgi_log(char *); 00621 int rotate_log_file(void); 00622 int my_rename(char *,char *); /* renames a file - works across filesystems */ 00623 int my_fcopy(char *,char *); /* copies a file - works across filesystems */ 00624 int my_fdcopy(char *, char *, int); /* copies a named source to an already opened destination file */ 00625 00626 void convert_timeperiod_to_times(int, time_t *, time_t *); /* converts time period to start and end unix timestamps */ 00627 int string_to_time(char *, time_t *); /* converts a defined formated string to unix timestamp */ 00628 00629 int is_dlst_time(time_t *); 00630 char *json_encode(char *); 00631 00632 /******************************** MULTIURL PATCH *******************************/ 00633 00634 #ifndef DISABLE_MULTIURL 00635 00636 #define MU_PATCH_ID "+MU" 00637 00638 int MU_lasturl, MU_thisurl; 00639 char MU_iconstr[16], *MU_origstr, *MU_ptr; 00640 00641 /* Have process_macros() generate processed_string *BEFORE* starting the loop */ 00642 00643 #define BEGIN_MULTIURL_LOOP \ 00644 /* Init counters */ MU_lasturl=0; MU_iconstr[0]='\0'; \ 00645 /* MAIN LOOP */ for (MU_origstr=MU_ptr=processed_string; (*MU_ptr)!='\0'; ) { \ 00646 /* Internal init */ MU_thisurl=MU_lasturl; \ 00647 /* Skip whitespace */ for (;isspace(*MU_ptr);MU_ptr++) ; \ 00648 /* Detect+skip ap. */ for (;(*MU_ptr)=='\'';MU_ptr++) MU_thisurl=MU_lasturl+1; \ 00649 /* Ap. found? */ if (MU_thisurl>MU_lasturl) { \ 00650 /* yes->split str */ sprintf(MU_iconstr,"%u-",MU_thisurl); \ 00651 processed_string=MU_ptr; \ 00652 for (;((*MU_ptr)!='\0')&&((*MU_ptr)!='\'');MU_ptr++) ; \ 00653 if ((*MU_ptr)=='\'') { (*MU_ptr)='\0'; MU_ptr++; \ 00654 for (;isspace(*MU_ptr);MU_ptr++) ; } \ 00655 } else { \ 00656 /* no->end loop */ MU_iconstr[0]='\0'; MU_ptr=""; \ 00657 } 00658 00659 /* Do the original printf()s, additionally inserting MU_iconstr between icon path and icon (file)name */ 00660 00661 #define END_MULTIURL_LOOP \ 00662 /* Int -> ext ctr */ MU_lasturl=MU_thisurl; processed_string=MU_ptr; \ 00663 /* MAIN LOOP */ } \ 00664 /* Hide evidence */ processed_string=MU_origstr; 00665 00666 /* Do the free(processed_string) *AFTER* ending the loop */ 00667 00668 #else /* ndef DISABLE_MULTIURL */ 00669 00670 #define MU_PATCH_ID "" 00671 char *MU_iconstr=""; 00672 00673 #endif /* ndef DISABLE_MULTIURL */ 00674 00675 00676 00677 #ifdef __cplusplus 00678 } 00679 #endif 00680 00681 #endif 00682