1 /************************************************************************
2  *
3  * CGIUTILS.H - Header file for common CGI functions
4  *
5  * License:
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 as
9  * published by the Free Software Foundation.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19  ************************************************************************/
20 
21 #ifndef NAGIOS_CGIUTILS_H_INCLUDED
22 #define NAGIOS_CGIUTILS_H_INCLUDED
23 #include "lib/libnagios.h"
24 #include "logging.h"
25 #include "objects.h"
26 #include "cgiauth.h"
27 
28 NAGIOS_BEGIN_DECL
29 
30 	/**************************** CGI REFRESH RATE ******************************/
31 
32 #define DEFAULT_REFRESH_RATE	60	/* 60 second refresh rate for CGIs */
33 
34 
35 	/******************************* CGI NAMES **********************************/
36 
37 #define STATUS_CGI		"status.cgi"
38 #ifdef LEGACY_GRAPHICAL_CGIS
39 #define STATUSMAP_CGI		"statusmap.cgi"
40 #else
41 #define STATUSMAP_CGI		"../map.html"
42 #define LEGACY_STATUSMAP_CGI		"statusmap.cgi"
43 #endif
44 #define STATUSWORLD_CGI	        "statuswrl.cgi"
45 #define COMMAND_CGI		"cmd.cgi"
46 #define EXTINFO_CGI		"extinfo.cgi"
47 #define SHOWLOG_CGI		"showlog.cgi"
48 #define NOTIFICATIONS_CGI	"notifications.cgi"
49 #define HISTORY_CGI		"history.cgi"
50 #define CONFIG_CGI              "config.cgi"
51 #define OUTAGES_CGI		"outages.cgi"
52 #ifdef LEGACY_GRAPHICAL_CGIS
53 #define TRENDS_CGI		"trends.cgi"
54 #else
55 #define TRENDS_CGI		"../trends.html"
56 #define LEGACY_TRENDS_CGI		"trends.cgi"
57 #endif
58 #define AVAIL_CGI		"avail.cgi"
59 #define TAC_CGI			"tac.cgi"
60 #define STATUSWML_CGI           "statuswml.cgi"
61 #define TRACEROUTE_CGI		"traceroute.cgi"
62 #ifdef LEGACY_GRAPHICAL_CGIS
63 #define HISTOGRAM_CGI		"histogram.cgi"
64 #else
65 #define HISTOGRAM_CGI		"../histogram.html"
66 #define LEGACY_HISTOGRAM_CGI		"histogram.cgi"
67 #endif
68 #define CHECKSANITY_CGI	   	"checksanity.cgi"
69 #define MINISTATUS_CGI          "ministatus.cgi"
70 #define SUMMARY_CGI	        "summary.cgi"
71 
72 
73 	/**************************** STYLE SHEET NAMES ******************************/
74 
75 #define COMMON_CSS		"common.css"
76 
77 #define SHOWLOG_CSS		"showlog.css"
78 #define STATUS_CSS		"status.css"
79 #define STATUSMAP_CSS		"statusmap.css"
80 #define COMMAND_CSS		"cmd.css"
81 #define EXTINFO_CSS		"extinfo.css"
82 #define NOTIFICATIONS_CSS	"notifications.css"
83 #define HISTORY_CSS		"history.css"
84 #define CONFIG_CSS		"config.css"
85 #define OUTAGES_CSS		"outages.css"
86 #define TRENDS_CSS		"trends.css"
87 #define AVAIL_CSS		"avail.css"
88 #define TAC_CSS			"tac.css"
89 #define HISTOGRAM_CSS		"histogram.css"
90 #define CHECKSANITY_CSS		"checksanity.css"
91 #define MINISTATUS_CSS          "ministatus.css"
92 #define SUMMARY_CSS             "summary.css"
93 
94 	/********************************* JAVASCRIPT INCLUDES **********************/
95 #define JQUERY_JS		"jquery-1.7.1.min.js"
96 
97 	/********************************* ICONS ************************************/
98 
99 #define STATUS_ICON_WIDTH		20
100 #define STATUS_ICON_HEIGHT		20
101 
102 #define INFO_ICON			"info.png"
103 #define INFO_ICON_ALT			"Informational Message"
104 #define START_ICON			"start.gif"
105 #define START_ICON_ALT			"Program Start"
106 #define STOP_ICON			"stop.gif"
107 #define STOP_ICON_ALT			"Program End"
108 #define RESTART_ICON			"restart.gif"
109 #define RESTART_ICON_ALT		"Program Restart"
110 #define OK_ICON				"recovery.png"
111 #define OK_ICON_ALT			"Service Ok"
112 #define CRITICAL_ICON			"critical.png"
113 #define CRITICAL_ICON_ALT		"Service Critical"
114 #define WARNING_ICON			"warning.png"
115 #define WARNING_ICON_ALT		"Service Warning"
116 #define UNKNOWN_ICON			"unknown.png"
117 #define UNKNOWN_ICON_ALT		"Service Unknown"
118 #define NOTIFICATION_ICON		"notify.gif"
119 #define NOTIFICATION_ICON_ALT		"Service Notification"
120 #define LOG_ROTATION_ICON		"logrotate.png"
121 #define LOG_ROTATION_ICON_ALT		"Log Rotation"
122 #define EXTERNAL_COMMAND_ICON		"command.png"
123 #define EXTERNAL_COMMAND_ICON_ALT	"External Command"
124 
125 #define STATUS_DETAIL_ICON		"status2.gif"
126 #define STATUS_OVERVIEW_ICON		"status.gif"
127 #define STATUSMAP_ICON                  "status3.gif"
128 #define STATUSWORLD_ICON                "status4.gif"
129 #define EXTINFO_ICON                	"extinfo.gif"
130 #define HISTORY_ICON			"history.gif"
131 #define CONTACTGROUP_ICON		"contactgroup.gif"
132 #define TRENDS_ICON			"trends.gif"
133 
134 #define DISABLED_ICON			"disabled.gif"
135 #define ENABLED_ICON			"enabled.gif"
136 #define PASSIVE_ONLY_ICON		"passiveonly.gif"
137 #define NOTIFICATIONS_DISABLED_ICON	"ndisabled.gif"
138 #define ACKNOWLEDGEMENT_ICON            "ack.gif"
139 #define REMOVE_ACKNOWLEDGEMENT_ICON     "noack.gif"
140 #define COMMENT_ICON			"comment.gif"
141 #define DELETE_ICON			"delete.gif"
142 #define DELAY_ICON			"delay.gif"
143 #define DOWNTIME_ICON			"downtime.gif"
144 #define PASSIVE_ICON			"passiveonly.gif"
145 #define RIGHT_ARROW_ICON		"right.gif"
146 #define LEFT_ARROW_ICON			"left.gif"
147 #define UP_ARROW_ICON			"up.gif"
148 #define DOWN_ARROW_ICON			"down.gif"
149 #define FLAPPING_ICON			"flapping.gif"
150 #define SCHEDULED_DOWNTIME_ICON		"downtime.gif"
151 #define EMPTY_ICON			"empty.gif"
152 
153 #define ACTIVE_ICON			"active.gif"
154 #define ACTIVE_ICON_ALT                 "Active Mode"
155 #define STANDBY_ICON			"standby.gif"
156 #define STANDBY_ICON_ALT                "Standby Mode"
157 
158 #define HOST_DOWN_ICON			"critical.png"
159 #define HOST_DOWN_ICON_ALT		"Host Down"
160 #define HOST_UNREACHABLE_ICON		"critical.png"
161 #define HOST_UNREACHABLE_ICON_ALT	"Host Unreachable"
162 #define HOST_UP_ICON			"recovery.png"
163 #define HOST_UP_ICON_ALT		"Host Up"
164 #define HOST_NOTIFICATION_ICON		"notify.gif"
165 #define HOST_NOTIFICATION_ICON_ALT	"Host Notification"
166 
167 #define SERVICE_EVENT_ICON		"serviceevent.gif"
168 #define SERVICE_EVENT_ICON_ALT		"Service Event Handler"
169 #define HOST_EVENT_ICON			"hostevent.gif"
170 #define HOST_EVENT_ICON_ALT		"Host Event Handler"
171 
172 #define THERM_OK_IMAGE			"thermok.png"
173 #define THERM_WARNING_IMAGE		"thermwarn.png"
174 #define THERM_CRITICAL_IMAGE		"thermcrit.png"
175 
176 #define CONFIGURATION_ICON		"config.gif"
177 #define NOTES_ICON			"notes.gif"
178 #define ACTION_ICON			"action.gif"
179 #define DETAIL_ICON                     "detail.gif"
180 
181 #define PARENT_TRAVERSAL_ICON		"parentup.gif"
182 
183 #define TAC_DISABLED_ICON		"tacdisabled.png"
184 #define TAC_ENABLED_ICON		"tacenabled.png"
185 
186 #define ZOOM1_ICON			"zoom1.gif"
187 #define ZOOM2_ICON			"zoom2.gif"
188 
189 #define CONTEXT_HELP_ICON1		"contexthelp1.gif"
190 #define CONTEXT_HELP_ICON2		"contexthelp2.gif"
191 
192 #define SPLUNK_SMALL_WHITE_ICON		"splunk1.gif"
193 #define SPLUNK_SMALL_BLACK_ICON		"splunk2.gif"
194 
195 #define FIRST_PAGE_ICON			"b_first2.png"
196 #define LAST_PAGE_ICON			"b_last2.png"
197 #define NEXT_PAGE_ICON			"b_next2.png"
198 #define PREVIOUS_PAGE_ICON		"b_prev2.png"
199 
200 
201 	/********************* EXTENDED INFO CGI DISPLAY TYPES  *********************/
202 
203 #define DISPLAY_PROCESS_INFO		0
204 #define DISPLAY_HOST_INFO		1
205 #define DISPLAY_SERVICE_INFO		2
206 #define DISPLAY_COMMENTS		3
207 #define DISPLAY_PERFORMANCE		4
208 #define DISPLAY_HOSTGROUP_INFO		5
209 #define DISPLAY_DOWNTIME		6
210 #define DISPLAY_SCHEDULING_QUEUE	7
211 #define DISPLAY_SERVICEGROUP_INFO       8
212 
213 
214 	/************************ COMMAND CGI COMMAND MODES *************************/
215 
216 #define CMDMODE_NONE            0
217 #define CMDMODE_REQUEST         1
218 #define CMDMODE_COMMIT          2
219 
220 
221 
222 	/******************** HOST AND SERVICE NOTIFICATION TYPES ******************/
223 
224 #define NOTIFICATION_ALL		0	/* all service and host notifications */
225 #define NOTIFICATION_SERVICE_ALL	1	/* all types of service notifications */
226 #define NOTIFICATION_HOST_ALL		2	/* all types of host notifications */
227 #define NOTIFICATION_SERVICE_WARNING	4
228 #define NOTIFICATION_SERVICE_UNKNOWN	8
229 #define NOTIFICATION_SERVICE_CRITICAL	16
230 #define NOTIFICATION_SERVICE_RECOVERY	32
231 #define NOTIFICATION_HOST_DOWN		64
232 #define NOTIFICATION_HOST_UNREACHABLE	128
233 #define NOTIFICATION_HOST_RECOVERY	256
234 #define NOTIFICATION_SERVICE_ACK	512
235 #define NOTIFICATION_HOST_ACK		1024
236 #define NOTIFICATION_SERVICE_FLAP	2048
237 #define NOTIFICATION_HOST_FLAP		4096
238 #define NOTIFICATION_SERVICE_CUSTOM     8192
239 #define NOTIFICATION_HOST_CUSTOM        16384
240 #define NOTIFICATION_SERVICE_DOWNTIME   32768
241 #define NOTIFICATION_HOST_DOWNTIME      65536
242 
243 
244 	/********************** HOST AND SERVICE ALERT TYPES **********************/
245 
246 #define HISTORY_ALL			0	/* all service and host alert */
247 #define HISTORY_SERVICE_ALL		1	/* all types of service alerts */
248 #define HISTORY_HOST_ALL		2	/* all types of host alerts */
249 #define HISTORY_SERVICE_WARNING		4
250 #define HISTORY_SERVICE_UNKNOWN		8
251 #define HISTORY_SERVICE_CRITICAL	16
252 #define HISTORY_SERVICE_RECOVERY	32
253 #define HISTORY_HOST_DOWN		64
254 #define HISTORY_HOST_UNREACHABLE	128
255 #define HISTORY_HOST_RECOVERY		256
256 
257 
258 	/****************************** SORT TYPES  *******************************/
259 
260 #define SORT_NONE			0
261 #define SORT_ASCENDING			1
262 #define SORT_DESCENDING			2
263 
264 
265 	/***************************** SORT OPTIONS  ******************************/
266 
267 #define SORT_NOTHING			0
268 #define SORT_HOSTNAME			1
269 #define SORT_SERVICENAME		2
270 #define SORT_SERVICESTATUS		3
271 #define SORT_LASTCHECKTIME		4
272 #define SORT_CURRENTATTEMPT		5
273 #define SORT_STATEDURATION		6
274 #define SORT_NEXTCHECKTIME		7
275 #define SORT_HOSTSTATUS                 8
276 #define SORT_HOSTURGENCY                9
277 
278 
279 	/****************** HOST AND SERVICE FILTER PROPERTIES  *******************/
280 
281 #define HOST_SCHEDULED_DOWNTIME		1
282 #define HOST_NO_SCHEDULED_DOWNTIME	2
283 #define HOST_STATE_ACKNOWLEDGED		4
284 #define HOST_STATE_UNACKNOWLEDGED	8
285 #define HOST_CHECKS_DISABLED		16
286 #define HOST_CHECKS_ENABLED		32
287 #define HOST_EVENT_HANDLER_DISABLED	64
288 #define HOST_EVENT_HANDLER_ENABLED	128
289 #define HOST_FLAP_DETECTION_DISABLED	256
290 #define HOST_FLAP_DETECTION_ENABLED	512
291 #define HOST_IS_FLAPPING		1024
292 #define HOST_IS_NOT_FLAPPING		2048
293 #define HOST_NOTIFICATIONS_DISABLED	4096
294 #define HOST_NOTIFICATIONS_ENABLED	8192
295 #define HOST_PASSIVE_CHECKS_DISABLED	16384
296 #define HOST_PASSIVE_CHECKS_ENABLED	32768
297 #define HOST_PASSIVE_CHECK           	65536
298 #define HOST_ACTIVE_CHECK            	131072
299 #define HOST_HARD_STATE			262144
300 #define HOST_SOFT_STATE			524288
301 
302 
303 #define SERVICE_SCHEDULED_DOWNTIME	1
304 #define SERVICE_NO_SCHEDULED_DOWNTIME	2
305 #define SERVICE_STATE_ACKNOWLEDGED	4
306 #define SERVICE_STATE_UNACKNOWLEDGED	8
307 #define SERVICE_CHECKS_DISABLED		16
308 #define SERVICE_CHECKS_ENABLED		32
309 #define SERVICE_EVENT_HANDLER_DISABLED	64
310 #define SERVICE_EVENT_HANDLER_ENABLED	128
311 #define SERVICE_FLAP_DETECTION_ENABLED	256
312 #define SERVICE_FLAP_DETECTION_DISABLED	512
313 #define SERVICE_IS_FLAPPING		1024
314 #define SERVICE_IS_NOT_FLAPPING		2048
315 #define SERVICE_NOTIFICATIONS_DISABLED	4096
316 #define SERVICE_NOTIFICATIONS_ENABLED	8192
317 #define SERVICE_PASSIVE_CHECKS_DISABLED	16384
318 #define SERVICE_PASSIVE_CHECKS_ENABLED	32768
319 #define SERVICE_PASSIVE_CHECK           65536
320 #define SERVICE_ACTIVE_CHECK            131072
321 #define SERVICE_HARD_STATE		262144
322 #define SERVICE_SOFT_STATE		524288
323 
324 
325 	/****************************** SSI TYPES  ********************************/
326 
327 #define SSI_HEADER                      0
328 #define SSI_FOOTER                      1
329 
330 
331 
332 	/************************ CONTEXT-SENSITIVE HELP  *************************/
333 
334 #define CONTEXTHELP_STATUS_DETAIL	"A1"
335 #define CONTEXTHELP_STATUS_HGOVERVIEW	"A2"
336 #define CONTEXTHELP_STATUS_HGSUMMARY	"A3"
337 #define CONTEXTHELP_STATUS_HGGRID	"A4"
338 #define CONTEXTHELP_STATUS_SVCPROBLEMS	"A5"
339 #define CONTEXTHELP_STATUS_HOST_DETAIL  "A6"
340 #define CONTEXTHELP_STATUS_HOSTPROBLEMS "A7"
341 #define CONTEXTHELP_STATUS_SGOVERVIEW   "A8"
342 #define CONTEXTHELP_STATUS_SGSUMMARY    "A9"
343 #define CONTEXTHELP_STATUS_SGGRID       "A10"
344 
345 #define CONTEXTHELP_TAC			"B1"
346 
347 #define CONTEXTHELP_MAP			"C1"
348 
349 #define CONTEXTHELP_LOG			"D1"
350 
351 #define CONTEXTHELP_HISTORY		"E1"
352 
353 #define CONTEXTHELP_NOTIFICATIONS	"F1"
354 
355 #define CONTEXTHELP_TRENDS_MENU1	"G1"
356 #define CONTEXTHELP_TRENDS_MENU2	"G2"
357 #define CONTEXTHELP_TRENDS_MENU3	"G3"
358 #define CONTEXTHELP_TRENDS_MENU4	"G4"
359 #define CONTEXTHELP_TRENDS_HOST		"G5"
360 #define CONTEXTHELP_TRENDS_SERVICE	"G6"
361 
362 #define CONTEXTHELP_AVAIL_MENU1		"H1"
363 #define CONTEXTHELP_AVAIL_MENU2		"H2"
364 #define CONTEXTHELP_AVAIL_MENU3		"H3"
365 #define CONTEXTHELP_AVAIL_MENU4		"H4"
366 #define CONTEXTHELP_AVAIL_MENU5		"H5"
367 #define CONTEXTHELP_AVAIL_HOSTGROUP	"H6"
368 #define CONTEXTHELP_AVAIL_HOST		"H7"
369 #define CONTEXTHELP_AVAIL_SERVICE	"H8"
370 #define CONTEXTHELP_AVAIL_SERVICEGROUP	"H9"
371 
372 #define CONTEXTHELP_EXT_HOST		"I1"
373 #define CONTEXTHELP_EXT_SERVICE		"I2"
374 #define CONTEXTHELP_EXT_HOSTGROUP	"I3"
375 #define CONTEXTHELP_EXT_PROCESS		"I4"
376 #define CONTEXTHELP_EXT_PERFORMANCE	"I5"
377 #define CONTEXTHELP_EXT_COMMENTS	"I6"
378 #define CONTEXTHELP_EXT_DOWNTIME	"I7"
379 #define CONTEXTHELP_EXT_QUEUE		"I8"
380 #define CONTEXTHELP_EXT_SERVICEGROUP	"I9"
381 
382 #define CONTEXTHELP_CMD_INPUT		"J1"
383 #define CONTEXTHELP_CMD_COMMIT		"J2"
384 
385 #define CONTEXTHELP_OUTAGES		"K1"
386 
387 #define CONTEXTHELP_CONFIG_MENU			"L1"
388 #define CONTEXTHELP_CONFIG_HOSTS		"L2"
389 #define CONTEXTHELP_CONFIG_HOSTDEPENDENCIES	"L3"
390 #define CONTEXTHELP_CONFIG_HOSTESCALATIONS	"L4"
391 #define CONTEXTHELP_CONFIG_HOSTGROUPS		"L5"
392 #define CONTEXTHELP_CONFIG_HOSTGROUPESCALATIONS	"L6"
393 #define CONTEXTHELP_CONFIG_SERVICES		"L7"
394 #define CONTEXTHELP_CONFIG_SERVICEDEPENDENCIES	"L8"
395 #define CONTEXTHELP_CONFIG_SERVICEESCALATIONS	"L9"
396 #define CONTEXTHELP_CONFIG_CONTACTS		"L10"
397 #define CONTEXTHELP_CONFIG_CONTACTGROUPS	"L11"
398 #define CONTEXTHELP_CONFIG_TIMEPERIODS		"L12"
399 #define CONTEXTHELP_CONFIG_COMMANDS		"L13"
400 #define CONTEXTHELP_CONFIG_HOSTEXTINFO		"L14"
401 #define CONTEXTHELP_CONFIG_SERVICEEXTINFO	"L15"
402 #define CONTEXTHELP_CONFIG_SERVICEGROUPS        "L16"
403 
404 #define CONTEXTHELP_HISTOGRAM_MENU1	"M1"
405 #define CONTEXTHELP_HISTOGRAM_MENU2	"M2"
406 #define CONTEXTHELP_HISTOGRAM_MENU3	"M3"
407 #define CONTEXTHELP_HISTOGRAM_MENU4	"M4"
408 #define CONTEXTHELP_HISTOGRAM_HOST	"M5"
409 #define CONTEXTHELP_HISTOGRAM_SERVICE	"M6"
410 
411 #define CONTEXTHELP_SUMMARY_MENU                   "N1"
412 #define CONTEXTHELP_SUMMARY_RECENT_ALERTS          "N2"
413 #define CONTEXTHELP_SUMMARY_ALERT_TOTALS           "N3"
414 #define CONTEXTHELP_SUMMARY_HOSTGROUP_ALERT_TOTALS "N4"
415 #define CONTEXTHELP_SUMMARY_HOST_ALERT_TOTALS      "N5"
416 #define CONTEXTHELP_SUMMARY_SERVICE_ALERT_TOTALS   "N6"
417 #define CONTEXTHELP_SUMMARY_ALERT_PRODUCERS        "N7"
418 #define CONTEXTHELP_SUMMARY_SERVICEGROUP_ALERT_TOTALS "N8"
419 
420 
421 	/************************** LIFO RETURN CODES  ****************************/
422 
423 #define LIFO_OK			0
424 #define LIFO_ERROR_MEMORY	1
425 #define LIFO_ERROR_FILE		2
426 #define LIFO_ERROR_DATA		3
427 
428 
429 
430 
431 
432 /*************************** DATA STRUCTURES  *****************************/
433 
434 /* LIFO data structure */
435 typedef struct lifo_struct {
436 	char *data;
437 	struct lifo_struct *next;
438 	} lifo;
439 
440 /******************************** FUNCTIONS *******************************/
441 
442 void reset_cgi_vars(void);
443 void cgi_init(void (*doc_header)(int), void (*doc_footer)(void), int object_options, int status_options);
444 void free_memory(void);
445 
446 const char *get_cgi_config_location(void);				/* gets location of the CGI config file to read */
447 const char *get_cmd_file_location(void);				/* gets location of external command file to write to */
448 
449 int read_cgi_config_file(const char *);
450 int read_main_config_file(const char *);
451 int read_all_object_configuration_data(const char *, int);
452 int read_all_status_data(const char *, int);
453 
454 char *unescape_newlines(char *);
455 void sanitize_plugin_output(char *);                            /* strips HTML and bad characters from plugin output */
456 void strip_html_brackets(char *);				/* strips > and < from string */
457 
458 void get_time_string(time_t *, char *, int, int);			/* gets a date/time string */
459 void get_interval_time_string(double, char *, int);		/* gets a time string for an interval of time */
460 
461 const char *url_encode(const char *);		        		/* encodes a string in proper URL format */
462 char *html_encode(char *, int);					/* encodes a string in HTML format (for what the user sees) */
463 char *escape_string(const char *);					/* escape string for html form usage */
464 
465 void get_log_archive_to_use(int, char *, int);			/* determines the name of the log archive to use */
466 void determine_log_rotation_times(int);
467 int determine_archive_to_use_from_time(time_t);
468 
469 void print_extra_hostgroup_url(char *, char *);
470 void print_extra_servicegroup_url(char *, char *);
471 
472 void display_info_table(const char *, int, authdata *);
473 void display_nav_table(char *, int);
474 
475 void display_splunk_host_url(host *);
476 void display_splunk_service_url(service *);
477 void display_splunk_generic_url(char *, int);
478 void strip_splunk_query_terms(char *);
479 
480 void include_ssi_files(const char *, int);                            /* include user-defined SSI footers/headers */
481 void include_ssi_file(const char *);                                  /* include user-defined SSI footer/header */
482 
483 void cgi_config_file_error(const char *);
484 void main_config_file_error(const char *);
485 void object_data_error(void);
486 void status_data_error(void);
487 
488 void display_context_help(const char *);				/* displays context-sensitive help window */
489 
490 int read_file_into_lifo(char *);				/* LIFO functions */
491 void free_lifo_memory(void);
492 int push_lifo(char *);
493 char *pop_lifo(void);
494 
495 NAGIOS_END_DECL
496 #endif
497