Commit 4b9faeec authored by Alexander Wirt's avatar Alexander Wirt

Imported Upstream version 1.10.2

parent 85b59ef3
......@@ -13,6 +13,27 @@ UPGRADE NOTES
- idoutils: ${source}/module/idoutils/config/updates
* package locations may differ!
1.10.2 - 05/12/2013
ENHANCEMENTS
* core: Add an Icinga syntax plugin for Vim #4150 - LE/MF
FIXES
* core: Document dropped options log_external_commands_user and event_profiling_enabled #4957 - BA
* core: type in spec file on ido2db startup #5000 - MF
* core: Build fails: xdata/xodtemplate.c requires stdint.h #5021 - SH
* classic ui: fix status output in JSON format not including short and long plugin output properly #5217 - RB
* classic ui: fix possible buffer overflows #5250 - RB
* classic ui: fix Off-by-one memory access in process_cgivars() #5251 - RB
* idoutils: idoutils oracle compile error #5059 - TD
* idoutils: Oracle update script 1.10.0 failes while trying to drop nonexisting index #5256 - RB
1.10.1 - 04/11/2013
ENHANCEMENTS
......
......@@ -91,7 +91,7 @@ MKDIR=/bin/mkdir
###############################
# Global
###############################
ICINGA_VERSION=1.10.1
ICINGA_VERSION=1.10.2
CP=@CP@
......
......@@ -1111,10 +1111,8 @@ int process_cgivars(void) {
for (x = 0; variables[x] != NULL; x++) {
/* do some basic length checking on the variable identifier to prevent buffer overflows */
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) {
x++;
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1)
continue;
}
/* we found the hostgroup argument */
else if (!strcmp(variables[x], "hostgroup")) {
......
......@@ -2218,12 +2218,18 @@ void display_nav_table(time_t ts_start, time_t ts_end) {
/* get url options but filter out "ts_end", "ts_start" and "start" */
if (getenv("QUERY_STRING") != NULL && strcmp(getenv("QUERY_STRING"), "")) {
if(strlen(getenv("QUERY_STRING")) > MAX_INPUT_BUFFER) {
printf("display_nav_table(): Could not allocate memory for stripped_query_string\n");
exit(1);
write_to_cgi_log("display_nav_table(): Query string exceeds max length. Returning without displaying nav table.\n");
return;
}
strcpy(stripped_query_string, getenv("QUERY_STRING"));
strip_html_brackets(stripped_query_string);
/* check if concatenated strings exceed MAX_INPUT_BUFFER */
if (strlen(url) + strlen(stripped_query_string) + 1 > MAX_INPUT_BUFFER) {
write_to_cgi_log("display_nav_table(): Full query string exceeds max length. Returning without displaying nav table.\n");
return;
}
for (temp_buffer = my_strtok(stripped_query_string, "&"); temp_buffer != NULL; temp_buffer = my_strtok(NULL, "&")) {
if (strncmp(temp_buffer, "ts_start=", 9) != 0 && strncmp(temp_buffer, "ts_end=", 6) != 0 && strncmp(temp_buffer, "start=", 6) != 0) {
if (strstr(url, "?"))
......@@ -2838,17 +2844,24 @@ void print_export_link(int content_type, char *cgi, char *add_to_url) {
/* just do stuff if some options are requested */
if (getenv("QUERY_STRING") != NULL && strcmp(getenv("QUERY_STRING"), "")) {
if(strlen(getenv("QUERY_STRING")) > MAX_INPUT_BUFFER) {
printf("print_export_link(): Could not allocate memory for stripped_query_string\n");
exit(1);
write_to_cgi_log("print_export_link(): Query string exceeds max length. Returning without displaying export link.\n");
return;
}
strcpy(stripped_query_string, getenv("QUERY_STRING"));
strip_html_brackets(stripped_query_string);
/* check if concatenated strings exceed MAX_INPUT_BUFFER */
if (strlen(link) + strlen(stripped_query_string) + 2 > MAX_INPUT_BUFFER) {
write_to_cgi_log("print_export_link(): Full query string exceeds max length. Returning without displaying export link.\n");
return;
}
strcat(link, "?");
strcat(link, stripped_query_string);
}
/* add string to url */
if (add_to_url != NULL && (strlen(add_to_url) != 0)) {
if (add_to_url != NULL && strlen(add_to_url) != 0 && strlen(link) + strlen(stripped_query_string) + strlen(add_to_url) + 2 <= MAX_INPUT_BUFFER) {
if (strlen(stripped_query_string) != 0)
strcat(link, "&");
else
......@@ -3657,12 +3670,18 @@ void page_num_selector(int result_start, int total_entries, int displayed_entrie
/* get url options but filter out "limit" and "status" */
if (getenv("QUERY_STRING") != NULL && strcmp(getenv("QUERY_STRING"), "")) {
if(strlen(getenv("QUERY_STRING")) > MAX_INPUT_BUFFER) {
printf("page_num_selector(): Could not allocate memory for stripped_query_string\n");
exit(1);
write_to_cgi_log("page_num_selector(): Query string exceeds max length. Returning without displaying num selector.\n");
return;
}
strcpy(stripped_query_string, getenv("QUERY_STRING"));
strip_html_brackets(stripped_query_string);
/* check if concatenated strings exceed MAX_INPUT_BUFFER */
if (strlen(link) + strlen(stripped_query_string) + 1 > MAX_INPUT_BUFFER) {
write_to_cgi_log("page_num_selector(): Full query string exceeds max length. Returning without displaying num selector.\n");
return;
}
for (temp_buffer = my_strtok(stripped_query_string, "&"); temp_buffer != NULL; temp_buffer = my_strtok(NULL, "&")) {
if (strncmp(temp_buffer, "limit=", 6) != 0 && strncmp(temp_buffer, "start=", 6) != 0) {
if (strstr(link, "?"))
......@@ -3774,12 +3793,18 @@ void page_limit_selector(int result_start) {
/* get url options but filter out "limit" and "status" */
if (getenv("QUERY_STRING") != NULL && strcmp(getenv("QUERY_STRING"), "")) {
if(strlen(getenv("QUERY_STRING")) > MAX_INPUT_BUFFER) {
printf("display_nav_table(): Could not allocate memory for stripped_query_string\n");
exit(1);
write_to_cgi_log("page_limit_selector(): Query string exceeds max length. Returning without displaying page limit selector.\n");
return;
}
strcpy(stripped_query_string, getenv("QUERY_STRING"));
strip_html_brackets(stripped_query_string);
/* check if concatenated strings exceed MAX_INPUT_BUFFER */
if (strlen(link) + strlen(stripped_query_string) + 1 > MAX_INPUT_BUFFER) {
write_to_cgi_log("page_limit_selector(): Full query string exceeds max length. Returning without displaying page limit selector.\n");
return;
}
for (temp_buffer = my_strtok(stripped_query_string, "&"); temp_buffer != NULL; temp_buffer = my_strtok(NULL, "&")) {
if (strncmp(temp_buffer, "limit=", 6) != 0 && strncmp(temp_buffer, "start=", 6) != 0) {
if (strstr(link, "?"))
......
......@@ -417,10 +417,8 @@ int process_cgivars(void) {
for (x = 0; variables[x] != NULL; x++) {
/* do some basic length checking on the variable identifier to prevent buffer overflows */
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) {
x++;
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1)
continue;
}
/* we found the command type */
else if (!strcmp(variables[x], "cmd_typ")) {
......
......@@ -584,10 +584,8 @@ int process_cgivars(void) {
for (x = 0; variables[x] != NULL; x++) {
/* do some basic length checking on the variable identifier to prevent buffer overflows */
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) {
x++;
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1)
continue;
}
/* we found the search_string argument */
else if (!strcmp(variables[x], "search_string")) {
......@@ -4267,6 +4265,7 @@ void display_command_expansion(void) {
for (c = commandline; c && (cc = strstr(c, "$"));) {
(*(cc++)) = '\0';
printf("%s", html_encode(c, FALSE));
if (strlen(commandline_pre_processed) + strlen(c) + 1 > MAX_COMMAND_BUFFER) return;
strcat(commandline_pre_processed, c);
if ((*cc) == '$') {
/* Escaped '$' */
......@@ -4277,6 +4276,7 @@ void display_command_expansion(void) {
c = strstr(cc, "$");
if (c)(*(c++)) = '\0';
printf("<font color='#777777'>$%s%s</font>", html_encode(cc, FALSE), (c ? "$" : ""));
if (strlen(commandline_pre_processed) + strlen(cc) + 3 > MAX_COMMAND_BUFFER) return;
strcat(commandline_pre_processed, "$");
strcat(commandline_pre_processed, cc);
if (c) strcat(commandline_pre_processed, "$");
......@@ -4292,8 +4292,9 @@ void display_command_expansion(void) {
if (command_args[i]) {
if (*(command_args[i]) != '\0') {
printf("<font color='%s'><b>%s%s%s</b></font>",
hash_color(i), ((lead_space[i] > 0) || (trail_space[i] > 0) ? "<u>&zwj;" : ""),
escape_string(command_args[i]), ((lead_space[i] > 0) || (trail_space[i] > 0) ? "&zwj;</u>" : ""));
hash_color(i), ((lead_space[i] > 0) || (trail_space[i] > 0) ? "<u>&zwj;" : ""),
escape_string(command_args[i]), ((lead_space[i] > 0) || (trail_space[i] > 0) ? "&zwj;</u>" : ""));
if (strlen(commandline_pre_processed) + strlen(command_args[i]) + 1 > MAX_COMMAND_BUFFER) return;
strcat(commandline_pre_processed, command_args[i]);
} else printf("<font color='#0000FF'>(empty)</font>");
} else printf("<font color='#0000FF'>(undefined)</font>");
......@@ -4310,6 +4311,7 @@ void display_command_expansion(void) {
}
if (c) {
printf("%s", html_encode(c, FALSE));
if (strlen(commandline_pre_processed) + strlen(c) + 1 > MAX_COMMAND_BUFFER) return;
strcat(commandline_pre_processed, c);
}
commandline_pre_processed[MAX_COMMAND_BUFFER - 1] = '\0';
......
......@@ -808,10 +808,8 @@ int process_cgivars(void) {
for (x = 0; variables[x] != NULL; x++) {
/* do some basic length checking on the variable identifier to prevent buffer overflows */
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) {
x++;
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1)
continue;
}
/* we found the display type */
else if (!strcmp(variables[x], "type")) {
......
......@@ -902,10 +902,8 @@ int process_cgivars(void) {
for (x = 0; variables[x] != NULL; x++) {
/* do some basic length checking on the variable identifier to prevent buffer overflows */
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) {
x++;
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1)
continue;
}
/* we found the host argument */
else if (!strcmp(variables[x], "host")) {
......
......@@ -363,10 +363,8 @@ int process_cgivars(void) {
for (x = 0; variables[x] != NULL; x++) {
/* do some basic length checking on the variable identifier to prevent buffer overflows */
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) {
x++;
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1)
continue;
}
/* we found the host argument */
else if (!strcmp(variables[x], "host")) {
......
......@@ -206,10 +206,8 @@ int process_cgivars(void) {
for (x = 0; variables[x] != NULL; x++) {
/* do some basic length checking on the variable identifier to prevent buffer overflows */
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) {
x++;
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1)
continue;
}
/* we found the service severity divisor option */
if (!strcmp(variables[x], "service_divisor")) {
......
......@@ -1680,10 +1680,8 @@ int process_cgivars(void) {
for (x = 0; variables[x] != NULL; x++) {
/* do some basic length checking on the variable identifier to prevent buffer overflows */
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) {
x++;
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1)
continue;
}
/* we found the search_string argument */
else if (!strcmp(variables[x], "search_string")) {
......@@ -2780,7 +2778,7 @@ void show_service_detail(void) {
printf("<td onClick=\"toggle_checkbox('service_%d','tableformservice');\" class='status%s' nowrap>%s</td>\n", total_service_entries, status_bg_class, temp_status->last_check);
printf("<td onClick=\"toggle_checkbox('service_%d','tableformservice');\" class='status%s' nowrap>%s</td>\n", total_service_entries, status_bg_class, temp_status->state_duration);
printf("<td onClick=\"toggle_checkbox('service_%d','tableformservice');\" class='status%s'>%s</td>\n", total_service_entries, status_bg_class, temp_status->attempts);
printf("<td onClick=\"toggle_checkbox('service_%d','tableformservice');\" class='status%s' valign='middle'>%s</td>\n", total_service_entries, status_bg_class, temp_status->plugin_output);
printf("<td onClick=\"toggle_checkbox('service_%d','tableformservice');\" class='status%s' valign='middle'>%s</td>\n", total_service_entries, status_bg_class, (temp_status->plugin_output == NULL) ? "&nbsp;" : html_encode(temp_status->plugin_output, TRUE));
/* Checkbox for service(s) */
if (is_authorized_for_read_only(&current_authdata) == FALSE) {
......@@ -2840,7 +2838,7 @@ void show_service_detail(void) {
printf("%s%s%s%s", csv_data_enclosure, temp_status->last_check, csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, temp_status->state_duration, csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, temp_status->attempts, csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, (temp_status->plugin_output == NULL) ? "" : temp_status->plugin_output, csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, (temp_status->plugin_output == NULL) ? "" : escape_newlines(temp_status->plugin_output), csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, (temp_status->is_flapping == TRUE) ? "true" : "false", csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, (temp_status->scheduled_downtime_depth > 0) ? "true" : "false", csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, (temp_status->checks_enabled == TRUE) ? "true" : "false", csv_data_enclosure, csv_delimiter);
......@@ -3234,7 +3232,7 @@ void show_host_detail(void) {
printf("<td onClick=\"toggle_checkbox('host_%d','tableformhost');\" class='status%s' nowrap>%s</td>\n", total_host_entries, status_bg_class, temp_statusdata->last_check);
printf("<td onClick=\"toggle_checkbox('host_%d','tableformhost');\" class='status%s' nowrap>%s</td>\n", total_host_entries, status_bg_class, temp_statusdata->state_duration);
printf("<td onClick=\"toggle_checkbox('host_%d','tableformhost');\" class='status%s'>%s</td>\n", total_host_entries, status_bg_class, temp_statusdata->attempts);
printf("<td onClick=\"toggle_checkbox('host_%d','tableformhost');\" class='status%s' valign='middle'>%s</td>\n", total_host_entries, status_bg_class, temp_statusdata->plugin_output);
printf("<td onClick=\"toggle_checkbox('host_%d','tableformhost');\" class='status%s' valign='middle'>%s</td>\n", total_host_entries, status_bg_class, (temp_statusdata->plugin_output == NULL) ? "&nbsp;" : html_encode(temp_statusdata->plugin_output, TRUE));
/* Checkbox for host(s) */
if (is_authorized_for_read_only(&current_authdata) == FALSE) {
......@@ -3290,7 +3288,7 @@ void show_host_detail(void) {
printf("%s%s%s%s", csv_data_enclosure, temp_statusdata->last_check, csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, temp_statusdata->state_duration, csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, temp_statusdata->attempts, csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, (temp_statusdata->plugin_output == NULL) ? "" : temp_statusdata->plugin_output, csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, (temp_statusdata->plugin_output == NULL) ? "" : escape_newlines(temp_statusdata->plugin_output), csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, (temp_statusdata->is_flapping == TRUE) ? "true" : "false", csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, (temp_statusdata->scheduled_downtime_depth > 0) ? "true" : "false", csv_data_enclosure, csv_delimiter);
printf("%s%s%s%s", csv_data_enclosure, (temp_statusdata->checks_enabled == TRUE) ? "true" : "false", csv_data_enclosure, csv_delimiter);
......@@ -6175,24 +6173,13 @@ int add_status_data(int status_type, void *data) {
strip(state_duration);
/* plugin ouput */
if (status_show_long_plugin_output != FALSE && plugin_output_long != NULL) {
if (content_type == CSV_CONTENT || content_type == JSON_CONTENT) {
if (plugin_output_short != NULL)
asprintf(&plugin_output, "%s", escape_newlines(plugin_output_long));
else
asprintf(&plugin_output, "%s %s", plugin_output_short, escape_newlines(plugin_output_long));
} else
asprintf(&plugin_output, "%s<br>%s", (plugin_output_short == NULL) ? "" : html_encode(plugin_output_short, TRUE), html_encode(plugin_output_long, TRUE));
} else if (plugin_output_short != NULL) {
if (content_type == CSV_CONTENT || content_type == JSON_CONTENT)
asprintf(&plugin_output, "%s", plugin_output_short);
if (status_show_long_plugin_output == TRUE && plugin_output_long != NULL) {
if (plugin_output_short == NULL)
asprintf(&plugin_output, "%s", plugin_output_long);
else
asprintf(&plugin_output, "%s&nbsp;", html_encode(plugin_output_short, TRUE));
} else {
if (content_type == CSV_CONTENT || content_type == JSON_CONTENT)
plugin_output = NULL;
else
asprintf(&plugin_output, "&nbsp;");
asprintf(&plugin_output, "%s\n%s", plugin_output_short, plugin_output_long);
} else if (plugin_output_short != NULL) {
asprintf(&plugin_output, "%s", plugin_output_short);
}
/* allocating new memory */
......@@ -7091,12 +7078,18 @@ void status_page_num_selector(int local_result_start, int status_type) {
/* get url options but filter out "limit" and "status" */
if (getenv("QUERY_STRING") != NULL && strcmp(getenv("QUERY_STRING"), "")) {
if(strlen(getenv("QUERY_STRING")) > MAX_INPUT_BUFFER) {
printf("status_page_num_selector(): Could not allocate memory for stripped_query_string\n");
exit(1);
write_to_cgi_log("status_page_num_selector(): Query string exceeds max length. Returning without displaying page num selector.\n");
return;
}
strcpy(stripped_query_string, getenv("QUERY_STRING"));
strip_html_brackets(stripped_query_string);
/* check if concatenated strings exceed MAX_INPUT_BUFFER */
if (strlen(link) + strlen(stripped_query_string) + 1 > MAX_INPUT_BUFFER) {
write_to_cgi_log("status_page_num_selector(): Full query string exceeds max length. Returning without displaying page num selector.\n");
return;
}
for (temp_buffer = my_strtok(stripped_query_string, "&"); temp_buffer != NULL; temp_buffer = my_strtok(NULL, "&")) {
if (strncmp(temp_buffer, "limit=", 6) != 0 && strncmp(temp_buffer, "start=", 6) != 0) {
if (strstr(link, "?"))
......
......@@ -309,10 +309,8 @@ int process_cgivars(void) {
for (x = 0; variables[x] != NULL; x++) {
/* do some basic length checking on the variable identifier to prevent buffer overflows */
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) {
x++;
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1)
continue;
}
/* we found the host argument */
else if (!strcmp(variables[x], "host")) {
......
......@@ -626,10 +626,8 @@ int process_cgivars(void) {
for (x = 0; variables[x] != NULL; x++) {
/* do some basic length checking on the variable identifier to prevent buffer overflows */
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) {
x++;
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1)
continue;
}
/* we found first time argument */
else if (!strcmp(variables[x], "t1")) {
......
......@@ -1117,10 +1117,8 @@ int process_cgivars(void) {
for (x = 0; variables[x] != NULL; x++) {
/* do some basic length checking on the variable identifier to prevent buffer overflows */
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) {
x++;
if (strlen(variables[x]) >= MAX_INPUT_BUFFER - 1)
continue;
}
/* we found the host argument */
else if (!strcmp(variables[x], "host")) {
......
......@@ -2507,9 +2507,9 @@ ac_config_headers="$ac_config_headers include/config.h"
PKG_NAME=icinga-core
PKG_VERSION="1.10.1"
PKG_VERSION="1.10.2"
PKG_HOME_URL="http://www.icinga.org/"
PKG_REL_DATE="11-04-2013"
PKG_REL_DATE="12-05-2013"
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
......
......@@ -9,9 +9,9 @@ AC_CONFIG_HEADER(include/config.h)
AC_PREFIX_DEFAULT(/usr/local/icinga)
PKG_NAME=icinga-core
PKG_VERSION="1.10.1"
PKG_VERSION="1.10.2"
PKG_HOME_URL="http://www.icinga.org/"
PKG_REL_DATE="11-04-2013"
PKG_REL_DATE="12-05-2013"
dnl Figure out how to invoke "install" and what install options to use.
AC_PROG_INSTALL
......
......@@ -5,7 +5,7 @@
" Author: Lance Albertson <ramereth@gentoo.org>
" Author: Ava Arachne Jarvis <ajar@katanalynx.dyndns.org>
" Maintainer: Lars Engels <lars.engels@0x20.net>
" Last Change: 2013-05-07 16:19
" Last Change: 2013-11-12 13:45
if !exists("main_syntax")
if version < 600
......@@ -51,99 +51,78 @@ syn match icingaMacro '\$LAST\(HOST\|SERVICE\)CHECK\$'
syn region icingaDefBody start='{' end='}'
\ contains=icingaComment,icingaDirective,icingaMacro,icingaConstant,icingaString,icingaSpecial transparent
syn keyword icingaDirective contained name register use
syn keyword icingaDirective contained active_checks_enabled address alias check_command
syn keyword icingaDirective contained check_freshness check_period checks_enabled check_interval retry_interval
syn keyword icingaDirective contained command_line command_name
syn keyword icingaDirective contained contact_groups contact_name contactgroup_name contacts
syn keyword icingaDirective contained dependent_host_name dependent_service_description
syn keyword icingaDirective contained email event_handler event_handler_enabled
syn keyword icingaDirective contained execution_failure_criteria first_notification execution_failure_options
syn keyword icingaDirective contained flap_detection_enabled freshness_threshold failure_prediction_enabled
syn keyword icingaDirective contained friday high_flap_threshold host_name
syn keyword icingaDirective contained host_notification_commands
syn keyword icingaDirective contained host_notification_options hostgroup_members
syn keyword icingaDirective contained host_notification_period hostgroup_name servicegroup_name hostgroups servicegroups
syn keyword icingaDirective contained is_volatile last_notification
syn keyword icingaDirective contained low_flap_threshold max_check_attempts
syn keyword icingaDirective contained members monday normal_check_interval
syn keyword icingaDirective contained notification_failure_criteria notification_failure_options
syn keyword icingaDirective contained notification_interval notification_options
syn keyword icingaDirective contained notification_period notifications_enabled
syn keyword icingaDirective contained obsess_over_service pager parallelize_check
syn keyword icingaDirective contained parents passive_checks_enabled
syn keyword icingaDirective contained process_perf_data retain_nonstatus_information
syn keyword icingaDirective contained retain_status_information retry_check_interval
syn keyword icingaDirective contained saturday service_description
syn keyword icingaDirective contained service_notification_commands
syn keyword icingaDirective contained service_notification_options
syn keyword icingaDirective contained service_notification_period stalking_options
syn keyword icingaDirective contained sunday thursday timeperiod_name tuesday wednesday
syn keyword icingaDirective contained icon_image icon_image_alt vrml_image statusmap_image
syn keyword icingaDirective contained notes notes_url action_url 2d_coords 3d_coords obsess_over_host inherits_parent
syn keyword icingaDirective contained can_submit_commands host_notifications_enabled service_notifications_enabled
syn keyword icingaDirective contained 2d_coords 3d_coords action_url active_checks_enabled address alias can_submit_commands check_command
syn keyword icingaDirective contained check_freshness check_interval check_period checks_enabled command_line command_name contact_groups contact_name
syn keyword icingaDirective contained contactgroup_name contacts dependent_host_name dependent_service_description email event_handler
syn keyword icingaDirective contained event_handler_enabled execution_failure_criteria execution_failure_options failure_prediction_enabled
syn keyword icingaDirective contained first_notification flap_detection_enabled freshness_threshold friday high_flap_threshold host_name
syn keyword icingaDirective contained host_notification_commands host_notification_options host_notification_period host_notifications_enabled
syn keyword icingaDirective contained hostgroup_members hostgroup_name hostgroups icon_image icon_image_alt inherits_parent is_volatile last_notification
syn keyword icingaDirective contained low_flap_threshold max_check_attempts members monday name normal_check_interval notes notes_url
syn keyword icingaDirective contained notification_failure_criteria notification_failure_options notification_interval notification_options
syn keyword icingaDirective contained notification_period notifications_enabled obsess_over_host obsess_over_service pager parallelize_check parents
syn keyword icingaDirective contained passive_checks_enabled process_perf_data register retain_nonstatus_information retain_status_information
syn keyword icingaDirective contained retry_check_interval retry_interval saturday service_description service_notification_commands
syn keyword icingaDirective contained service_notification_options service_notification_period service_notifications_enabled servicegroup_name
syn keyword icingaDirective contained servicegroups stalking_options statusmap_image sunday thursday timeperiod_name tuesday use vrml_image wednesday
syn keyword icingaConfigOption accept_passive_host_checks accept_passive_service_checks additional_freshness_latency
syn keyword icingaConfigOption admin_email admin_pager allow_empty_hostgroup_assignment auto_reschedule_checks
syn keyword icingaConfigOption auto_rescheduling_interval auto_rescheduling_window broker_module cached_host_check_horizon
syn keyword icingaConfigOption cached_service_check_horizon cfg_dir cfg_file check_external_commands check_for_orphaned_hosts
syn keyword icingaConfigOption check_for_orphaned_services check_host_freshness check_result_path check_result_reaper_frequency
syn keyword icingaConfigOption check_service_freshness child_processes_fork_twice command_check_interval command_file
syn keyword icingaConfigOption config_file daemon_dumps_core date_format debug_file debug_level debug_verbosity
syn keyword icingaConfigOption dump_retained_host_service_states_to_neb enable_embedded_perl enable_environment_macros
syn keyword icingaConfigOption enable_event_handlers enable_flap_detection enable_notifications
syn keyword icingaConfigOption enable_predictive_host_dependency_checks enable_predictive_service_dependency_checks
syn keyword icingaConfigOption enable_state_based_escalation_ranges event_broker_options event_handler_timeout
syn keyword icingaConfigOption event_profiling_enabled execute_host_checks execute_service_checks
syn keyword icingaConfigOption external_command_buffer_slots free_child_process_memory global_host_event_handler
syn keyword icingaConfigOption global_service_event_handler high_host_flap_threshold high_service_flap_threshold
syn keyword icingaConfigOption host_check_timeout host_freshness_check_interval host_inter_check_delay_method
syn keyword icingaConfigOption host_perfdata_command host_perfdata_file host_perfdata_file_mode host_perfdata_file_processing_command
syn keyword icingaConfigOption host_perfdata_file_processing_interval host_perfdata_file_template host_perfdata_process_empty_results
syn keyword icingaConfigOption icinga_group icinga_user illegal_macro_output_chars illegal_object_name_chars interval_length
syn keyword icingaConfigOption keep_unknown_macros lock_file log_archive_path log_current_states log_event_handlers
syn keyword icingaConfigOption log_external_commands log_file log_host_retries log_initial_states log_long_plugin_output
syn keyword icingaConfigOption log_notifications log_passive_checks log_rotation_method log_service_retries low_host_flap_threshold
syn keyword icingaConfigOption low_service_flap_threshold max_check_result_file_age max_check_result_list_items
syn keyword icingaConfigOption max_check_result_reaper_time max_concurrent_checks max_debug_file_size max_host_check_spread
syn keyword icingaConfigOption max_service_check_spread notification_timeout object_cache_file obsess_over_hosts
syn keyword icingaConfigOption obsess_over_services ochp_command ocsp_command ocsp_timeout p1_file passive_host_checks_are_soft
syn keyword icingaConfigOption perfdata_timeout pnp_path precached_object_file process_performance_data resource_file
syn keyword icingaConfigOption retain_state_information retained_contact_host_attribute_mask retained_contact_service_attribute_mask
syn keyword icingaConfigOption retained_host_attribute_mask retained_process_host_attribute_mask retained_process_service_attribute_mask
syn keyword icingaConfigOption retained_service_attribute_mask retention_update_interval service_check_timeout service_check_timeout_state
syn keyword icingaConfigOption service_freshness_check_interval service_inter_check_delay_method service_interleave_factor
syn keyword icingaConfigOption service_perfdata_command service_perfdata_file service_perfdata_file_mode
syn keyword icingaConfigOption service_perfdata_file_processing_command service_perfdata_file_processing_interval service_perfdata_file_template
syn keyword icingaConfigOption service_perfdata_process_empty_results sleep_time soft_state_dependencies stalking_event_handlers_for_hosts
syn keyword icingaConfigOption stalking_event_handlers_for_services stalking_notifications_for_hosts stalking_notifications_for_services
syn keyword icingaConfigOption state_retention_file status_file status_update_interval sync_retention_file syslog_local_facility temp_file
syn keyword icingaConfigOption temp_path time_change_threshold translate_passive_host_checks use_aggressive_host_checking use_daemon_log
syn keyword icingaConfigOption use_embedded_perl_implicitly use_large_installation_tweaks use_regexp_matching use_retained_program_state
syn keyword icingaConfigOption use_retained_scheduling_info use_syslog use_syslog_local_facility use_timezone use_true_regexp_matching
syn keyword icingaConfigOption accept_passive_host_checks accept_passive_service_checks additional_freshness_latency admin_email admin_pager
syn keyword icingaConfigOption allow_empty_hostgroup_assignment auto_reschedule_checks auto_rescheduling_interval auto_rescheduling_window
syn keyword icingaConfigOption broker_module cached_host_check_horizon cached_service_check_horizon cfg_dir cfg_file check_external_commands
syn keyword icingaConfigOption check_for_orphaned_hosts check_for_orphaned_services check_host_freshness check_result_path
syn keyword icingaConfigOption check_result_reaper_frequency check_service_freshness child_processes_fork_twice command_check_interval
syn keyword icingaConfigOption command_file config_file daemon_dumps_core date_format debug_file debug_level debug_verbosity
syn keyword icingaConfigOption dump_retained_host_service_states_to_neb enable_embedded_perl enable_environment_macros enable_event_handlers
syn keyword icingaConfigOption enable_flap_detection enable_notifications enable_predictive_host_dependency_checks
syn keyword icingaConfigOption enable_predictive_service_dependency_checks enable_state_based_escalation_ranges event_broker_options
syn keyword icingaConfigOption event_handler_timeout event_profiling_enabled execute_host_checks execute_service_checks
syn keyword icingaConfigOption external_command_buffer_slots free_child_process_memory global_host_event_handler global_service_event_handler
syn keyword icingaConfigOption high_host_flap_threshold high_service_flap_threshold host_check_timeout host_freshness_check_interval
syn keyword icingaConfigOption host_inter_check_delay_method host_perfdata_command host_perfdata_file host_perfdata_file_mode
syn keyword icingaConfigOption host_perfdata_file_processing_command host_perfdata_file_processing_interval host_perfdata_file_template
syn keyword icingaConfigOption host_perfdata_process_empty_results icinga_group icinga_user illegal_macro_output_chars illegal_object_name_chars
syn keyword icingaConfigOption interval_length keep_unknown_macros lock_file log_archive_path log_current_states log_event_handlers
syn keyword icingaConfigOption log_external_commands log_file log_host_retries log_initial_states log_long_plugin_output log_notifications
syn keyword icingaConfigOption log_passive_checks log_rotation_method log_service_retries low_host_flap_threshold low_service_flap_threshold
syn keyword icingaConfigOption max_check_result_file_age max_check_result_list_items max_check_result_reaper_time max_concurrent_checks
syn keyword icingaConfigOption max_debug_file_size max_host_check_spread max_service_check_spread notification_timeout object_cache_file
syn keyword icingaConfigOption obsess_over_hosts obsess_over_services ochp_command ocsp_command ocsp_timeout p1_file passive_host_checks_are_soft
syn keyword icingaConfigOption perfdata_timeout pnp_path precached_object_file process_performance_data resource_file retain_state_information
syn keyword icingaConfigOption retained_contact_host_attribute_mask retained_contact_service_attribute_mask retained_host_attribute_mask
syn keyword icingaConfigOption retained_process_host_attribute_mask retained_process_service_attribute_mask retained_service_attribute_mask
syn keyword icingaConfigOption retention_update_interval service_check_timeout service_check_timeout_state service_freshness_check_interval
syn keyword icingaConfigOption service_inter_check_delay_method service_interleave_factor service_perfdata_command service_perfdata_file
syn keyword icingaConfigOption service_perfdata_file_mode service_perfdata_file_processing_command service_perfdata_file_processing_interval
syn keyword icingaConfigOption service_perfdata_file_template service_perfdata_process_empty_results sleep_time soft_state_dependencies
syn keyword icingaConfigOption stalking_event_handlers_for_hosts stalking_event_handlers_for_services stalking_notifications_for_hosts
syn keyword icingaConfigOption stalking_notifications_for_services state_retention_file status_file status_update_interval sync_retention_file
syn keyword icingaConfigOption syslog_local_facility temp_file temp_path time_change_threshold translate_passive_host_checks
syn keyword icingaConfigOption use_aggressive_host_checking use_daemon_log use_embedded_perl_implicitly use_large_installation_tweaks
syn keyword icingaConfigOption use_regexp_matching use_retained_program_state use_retained_scheduling_info use_syslog use_syslog_local_facility
syn keyword icingaConfigOption use_timezone use_true_regexp_matching
syn keyword icingaCGIConfigOption action_url_target add_notif_num_hard add_notif_num_soft authorization_config_file
syn keyword icingaCGIConfigOption authorized_contactgroup_for_all_hosts authorized_contactgroup_for_all_services
syn keyword icingaCGIConfigOption authorized_contactgroup_for_comments_read_only authorized_contactgroup_for_configuration_information
syn keyword icingaCGIConfigOption authorized_contactgroup_for_downtimes_read_only authorized_contactgroup_for_full_command_resolution
syn keyword icingaCGIConfigOption authorized_contactgroup_for_read_only authorized_contactgroup_for_system_information
syn keyword icingaCGIConfigOption authorized_for_all_host_commands authorized_for_all_hosts authorized_for_all_service_commands
syn keyword icingaCGIConfigOption authorized_for_all_services authorized_for_comments_read_only authorized_for_configuration_information
syn keyword icingaCGIConfigOption authorized_for_downtimes_read_only authorized_for_full_command_resolution authorized_for_read_only
syn keyword icingaCGIConfigOption authorized_for_system_commands authorized_for_system_information cgi_log_archive_path cgi_log_file
syn keyword icingaCGIConfigOption cgi_log_rotation_method color_transparency_index_b color_transparency_index_g color_transparency_index_r
syn keyword icingaCGIConfigOption csv_data_enclosure csv_delimiter default_downtime_duration default_expiring_acknowledgement_duration
syn keyword icingaCGIConfigOption default_expiring_disabled_notifications_duration default_statusmap_layout default_user_name
syn keyword icingaCGIConfigOption display_status_totals enable_splunk_integration enforce_comments_on_actions escape_html_tags
syn keyword icingaCGIConfigOption w_child_hosts first_day_of_week highlight_table_rows host_down_sound host_unreachable_sound http_charset
syn keyword icingaCGIConfigOption lock_author_names lowercase_user_name main_config_file max_check_attempts normal_sound
syn keyword icingaCGIConfigOption notes_url_target persistent_ack_comments physical_html_path refresh_rate refresh_type result_limit
syn keyword icingaCGIConfigOption service_critical_sound service_unknown_sound service_warning_sound
syn keyword icingaCGIConfigOption show_all_services_host_is_authorized_for show_partial_hostgroups show_tac_header show_tac_header_pending
syn keyword icingaCGIConfigOption showlog_current_states showlog_initial_states splunk_url status_show_long_plugin_output
syn keyword icingaCGIConfigOption statusmap_background_image suppress_maintenance_downtime tab_friendly_titles tac_show_only_hard_state
syn keyword icingaCGIConfigOption url_html_path url_stylesheets_path use_authentication use_logging use_pending_states
syn keyword icingaCGIConfigOption use_ssl_authentication
syn keyword icingaConfigOption action_url_target add_notif_num_hard add_notif_num_soft authorization_config_file
syn keyword icingaConfigOption authorized_contactgroup_for_all_hosts authorized_contactgroup_for_all_services
syn keyword icingaConfigOption authorized_contactgroup_for_comments_read_only authorized_contactgroup_for_configuration_information
syn keyword icingaConfigOption authorized_contactgroup_for_downtimes_read_only authorized_contactgroup_for_full_command_resolution
syn keyword icingaConfigOption authorized_contactgroup_for_read_only authorized_contactgroup_for_system_information
syn keyword icingaConfigOption authorized_for_all_host_commands authorized_for_all_hosts authorized_for_all_service_commands
syn keyword icingaConfigOption authorized_for_all_services authorized_for_comments_read_only authorized_for_configuration_information
syn keyword icingaConfigOption authorized_for_downtimes_read_only authorized_for_full_command_resolution authorized_for_read_only
syn keyword icingaConfigOption authorized_for_system_commands authorized_for_system_information cgi_log_archive_path cgi_log_file
syn keyword icingaConfigOption cgi_log_rotation_method color_transparency_index_b color_transparency_index_g color_transparency_index_r
syn keyword icingaConfigOption csv_data_enclosure csv_delimiter default_downtime_duration default_expiring_acknowledgement_duration
syn keyword icingaConfigOption default_expiring_disabled_notifications_duration default_statusmap_layout default_user_name display_status_totals
syn keyword icingaConfigOption enable_splunk_integration enforce_comments_on_actions escape_html_tags exclude_customvar_name
syn keyword icingaConfigOption exclude_customvar_value extinfo_show_child_hosts first_day_of_week highlight_table_rows host_down_sound
syn keyword icingaConfigOption host_unreachable_sound http_charset lock_author_names lowercase_user_name main_config_file max_check_attempts
syn keyword icingaConfigOption normal_sound notes_url_target persistent_ack_comments physical_html_path refresh_rate refresh_type result_limit
syn keyword icingaConfigOption send_ack_notifications service_critical_sound service_unknown_sound service_warning_sound set_expire_ack_by_default
syn keyword icingaConfigOption show_all_services_host_is_authorized_for show_partial_hostgroups show_partial_servicegroups show_tac_header
syn keyword icingaConfigOption show_tac_header_pending standalone_installation showlog_current_states showlog_initial_states splunk_url
syn keyword icingaConfigOption status_show_long_plugin_output statusmap_background_image suppress_maintenance_downtime tab_friendly_titles
syn keyword icingaConfigOption tac_show_only_hard_state url_html_path url_stylesheets_path use_authentication use_logging use_pending_states
syn keyword icingaConfigOption use_ssl_authentication
hi link icingaComment Comment
hi link icingaLineComment Comment
......