Commit 2098d80c authored by Alexander Wirt's avatar Alexander Wirt

Imported Upstream version 1.11.5

parent f87dd9bc
#####################################################
Icinga Core / Classic UI / IDOUtils / Docs Change Log
#####################################################
#########################################################
Icinga 1.x Core / Classic UI / IDOUtils / Docs Change Log
#########################################################
Thanks to all contributers, testers and developers. Please read AUTHORS and THANKS for a detailed list :-)
......@@ -12,14 +12,35 @@ UPGRADE NOTES
- core, classic ui: ${source}/sample-config/updates/
- idoutils: ${source}/module/idoutils/config/updates
* package locations may differ!
https://wiki.icinga.org/display/howtos/Package+Specific+Locations
NEWS
* This is the Icinga 1.x development branch. If you are looking for Icinga 2.x
please check https://www.icinga.org/icinga2
* Releases are now hosted at GitHub. Please check https://www.icinga.org/download for details!
* Mailinglists have been migrated to icinga.org. Please check https://www.icinga.org/support for details!
1.11.5 - 20/06/2014
FIXES
* classic-ui: fix status.cgi gets stuck in loop when sorting on "All Unhandled Problems" #5886 - RB
* classic ui: Only show command expander if backend is Icinga 1.x (incompatible with Icinga 2) #6408 - MF
* classic ui: Fix CSRF protection in cmd.cgi matches only compiled in URL #6459 - MF
* classic-ui: config.cgi missing new option #6502 - RB
* initscript: Fixed Typo in ido2db and icinga init scripts preventing them to kill -9 their processes #6410 - MaH
CHANGES
* cgi.cfg: Add url_cgi_path allowing to override the default '$htmurl/cgi-bin' required for CSRF checks #6459
** Required for icinga2-classicui Debian package
1.11.4 - 28/05/2014
FIXES
......
......@@ -88,7 +88,7 @@ MKDIR=/bin/mkdir
###############################
# Global
###############################
ICINGA_VERSION=1.11.4
ICINGA_VERSION=1.11.5
CP=@CP@
......
......@@ -39,6 +39,7 @@ char physical_html_path[MAX_FILENAME_LENGTH];
char physical_images_path[MAX_FILENAME_LENGTH];
char physical_ssi_path[MAX_FILENAME_LENGTH];
char url_html_path[MAX_FILENAME_LENGTH];
char url_cgi_path[MAX_FILENAME_LENGTH];
char url_docs_path[MAX_FILENAME_LENGTH];
char url_images_path[MAX_FILENAME_LENGTH];
char url_logo_images_path[MAX_FILENAME_LENGTH];
......@@ -303,6 +304,7 @@ void reset_cgi_vars(void) {
strcpy(physical_ssi_path, "");
strcpy(url_html_path, "");
strcpy(url_cgi_path, "");
strcpy(url_docs_path, "");
strcpy(url_stylesheets_path, "");
strcpy(url_js_path, "");
......@@ -520,6 +522,17 @@ int read_cgi_config_file(char *filename) {
url_media_path[sizeof(url_media_path) - 1] = '\x0';
}
else if (!strcmp(var, "url_cgi_path")) {
strncpy(url_cgi_path, val, sizeof(url_cgi_path));
url_cgi_path[sizeof(url_cgi_path) - 1] = '\x0';
strip(url_cgi_path);
if (url_cgi_path[strlen(url_cgi_path) - 1] == '/')
url_cgi_path[strlen(url_cgi_path) - 1] = '\x0';
}
else if (!strcmp(var, "url_stylesheets_path")) {
strncpy(url_stylesheets_path, val, sizeof(url_stylesheets_path));
......@@ -818,6 +831,12 @@ int read_cgi_config_file(char *filename) {
url_stylesheets_path[sizeof(url_stylesheets_path) - 1] = '\x0';
}
/* check if cgi path was set */
if (!strcmp(url_cgi_path, "")) {
snprintf(url_cgi_path, sizeof(url_cgi_path), "%s", DEFAULT_URL_CGIBIN_PATH);
url_cgi_path[sizeof(url_cgi_path) - 1] = '\x0';
}
if (!strcmp(main_config_file, "")) {
if (standalone_installation == TRUE) {
......
......@@ -46,6 +46,7 @@ extern const char *extcmd_get_name(int id);
extern char main_config_file[MAX_FILENAME_LENGTH];
extern char url_html_path[MAX_FILENAME_LENGTH];
extern char url_cgi_path[MAX_FILENAME_LENGTH];
extern char url_images_path[MAX_FILENAME_LENGTH];
extern char command_file[MAX_FILENAME_LENGTH];
extern char comment_file[MAX_FILENAME_LENGTH];
......@@ -2066,7 +2067,7 @@ void commit_command_data(int cmd) {
get_authentication_information(&current_authdata);
referer = getenv("HTTP_REFERER");
asprintf(&referer_check, "%s/%s", DEFAULT_URL_CGIBIN_PATH, CMD_CGI);
asprintf(&referer_check, "%s/%s", url_cgi_path, CMD_CGI);
if (disable_cmd_cgi_csrf_protection == FALSE && (referer == NULL || !strstr(referer, referer_check))) {
if (use_logging == TRUE) {
......
......@@ -92,6 +92,7 @@ extern char *service_warning_sound;
extern char *splunk_url;
extern char *statusmap_background_image;
extern char url_html_path[MAX_FILENAME_LENGTH];
extern char url_cgi_path[MAX_FILENAME_LENGTH];
extern char url_logo_images_path[MAX_FILENAME_LENGTH];
extern char url_stylesheets_path[MAX_FILENAME_LENGTH];
......@@ -108,6 +109,7 @@ extern int cgi_log_rotation_method;
extern int default_downtime_duration;
extern int default_expiring_acknowledgement_duration;
extern int display_status_totals;
extern int disable_cmd_cgi_csrf_protection;
extern int default_statusmap_layout_method;
extern int enable_splunk_integration;
extern int enforce_comments_on_actions;
......@@ -163,6 +165,8 @@ void store_default_settings(void);
authdata current_authdata;
extern char *status_file_icinga_version;
int display_type = DISPLAY_NONE;
int get_result_limit = -1;
int result_start = 1;
......@@ -220,6 +224,7 @@ char *org_service_warning_sound = "";
char *org_splunk_url = "";
char *org_statusmap_background_image = "";
char *org_url_html_path = "";
char *org_url_cgi_path = "";
char *org_url_stylesheets_path = "";
int org_add_notif_num_hard;
......@@ -231,6 +236,7 @@ int org_cgi_log_rotation_method;
int org_default_downtime_duration;
int org_default_expiring_acknowledgement_duration;
int org_display_status_totals;
int org_disable_cmd_cgi_csrf_protection;
int org_default_statusmap_layout;
int org_enable_splunk_integration;
int org_enforce_comments_on_actions;
......@@ -383,7 +389,7 @@ int main(void) {
else if (display_type == DISPLAY_HOSTDEPENDENCIES) printf("Host Dependencies");
else if (display_type == DISPLAY_HOSTESCALATIONS) printf("Host Escalations");
else if (display_type == DISPLAY_MODULES) printf("Modules");
else if (display_type == DISPLAY_CGICONFIG) printf("CGI Config Setings");
else if (display_type == DISPLAY_CGICONFIG) printf("CGI Config Settings");
printf("</div>\n");
......@@ -4035,6 +4041,7 @@ void display_cgiconfig(void) {
PRINT_CONFIG_LINE_INT(default_downtime_duration, org_default_downtime_duration, "int")
PRINT_CONFIG_LINE_INT(default_expiring_acknowledgement_duration, org_default_expiring_acknowledgement_duration, "int")
PRINT_CONFIG_LINE_INT(display_status_totals, org_display_status_totals, "bool")
PRINT_CONFIG_LINE_INT(disable_cmd_cgi_csrf_protection, org_disable_cmd_cgi_csrf_protection, "bool")
// default_statusmap_layout
if (content_type == JSON_CONTENT || content_type == CSV_CONTENT) {
......@@ -4140,6 +4147,7 @@ void display_cgiconfig(void) {
PRINT_CONFIG_LINE_INT(tab_friendly_titles, org_tab_friendly_titles, "bool")
PRINT_CONFIG_LINE_INT(tac_show_only_hard_state, org_tac_show_only_hard_state, "bool")
PRINT_CONFIG_LINE_STRING(url_html_path, org_url_html_path)
PRINT_CONFIG_LINE_STRING(url_cgi_path, org_url_cgi_path)
PRINT_CONFIG_LINE_STRING(url_stylesheets_path, org_url_stylesheets_path)
PRINT_CONFIG_LINE_INT(use_authentication, org_use_authentication, "bool")
PRINT_CONFIG_LINE_INT(use_logging, org_use_logging, "bool")
......@@ -4199,6 +4207,11 @@ void display_command_expansion(void) {
service *svc = NULL;
char *processed_command;
if (status_file_icinga_version != NULL && status_file_icinga_version[0] != '1') {
printf("<p><div align='center' class='dataTitle'>Sorry, command expander only available using Icinga 1.x.</div></p>\n");
return;
}
/* show host and/or service related raw command */
hst = find_host(host_name);
svc = find_service(host_name, service_desc);
......@@ -4529,6 +4542,7 @@ void store_default_settings(void) {
org_splunk_url = strdup(splunk_url);
org_statusmap_background_image = strdup(statusmap_background_image);
org_url_html_path = strdup(url_html_path);
org_url_cgi_path = strdup(url_cgi_path);
org_url_stylesheets_path = strdup(url_stylesheets_path);
org_add_notif_num_hard = add_notif_num_hard;
......@@ -4540,6 +4554,7 @@ void store_default_settings(void) {
org_default_downtime_duration = default_downtime_duration;
org_default_expiring_acknowledgement_duration = default_expiring_acknowledgement_duration;
org_display_status_totals = display_status_totals;
org_disable_cmd_cgi_csrf_protection = disable_cmd_cgi_csrf_protection;
org_default_statusmap_layout = default_statusmap_layout_method;
org_enable_splunk_integration = enable_splunk_integration;
org_enforce_comments_on_actions = enforce_comments_on_actions;
......
......@@ -242,6 +242,7 @@ int sort_type = SORT_NONE; /**< defines sort order */
int sort_option = SORT_HOSTNAME; /**< defines after which column is sorted */
int sort_object = SERVICE_STATUS; /**< defines if service or hoststatus is sorted */
int hosts_need_to_be_sorted_again = FALSE; /**< if we have hosts with no services and no sort option is given, then we need to sort the hosts alphabetically again */
int user_sorted_manually = FALSE; /**< will be set if user used sorting, needed to distinct between default sort of @ref hosts_need_to_be_sorted_again or not */
/** @name status data counters vars
@{ **/
......@@ -1857,6 +1858,7 @@ int process_cgivars(void) {
}
sort_type = atoi(value);
user_sorted_manually = TRUE;
}
/* we found the sort option argument */
......@@ -1867,6 +1869,7 @@ int process_cgivars(void) {
}
sort_option = atoi(value);
user_sorted_manually = TRUE;
}
/* we found the sort object argument */
......@@ -1880,6 +1883,8 @@ int process_cgivars(void) {
sort_object = HOST_STATUS;
else if (!strcmp(value, "services"))
sort_object = SERVICE_STATUS;
user_sorted_manually = TRUE;
}
/* we found the embed option */
......@@ -2886,7 +2891,7 @@ void show_host_detail(void) {
/* sort status data if necessary */
if ((sort_type != SORT_NONE && sort_object == HOST_STATUS) || hosts_need_to_be_sorted_again == TRUE) {
result = sort_status_data(HOST_STATUS, (hosts_need_to_be_sorted_again == TRUE) ? SORT_ASCENDING : sort_type, sort_option);
result = sort_status_data(HOST_STATUS, (hosts_need_to_be_sorted_again == TRUE && user_sorted_manually == FALSE) ? SORT_ASCENDING : sort_type, sort_option);
if (result == ERROR)
use_sort = FALSE;
else
......@@ -2928,7 +2933,7 @@ void show_host_detail(void) {
print_displayed_names(display_type);
printf("</div>\n");
if (use_sort == TRUE && hosts_need_to_be_sorted_again == FALSE) {
if (use_sort == TRUE && user_sorted_manually == TRUE && sort_object == HOST_STATUS) {
printf("<div align='center' class='statusSort'>Entries sorted by <b>");
if (sort_option == SORT_HOSTNAME)
printf("host name");
......@@ -6523,6 +6528,8 @@ void free_sort_list(void) {
free(this_sort);
}
statussort_list = NULL;
return;
}
......
This diff is collapsed.
This diff is collapsed.
......@@ -2507,9 +2507,9 @@ ac_config_headers="$ac_config_headers include/config.h"
PKG_NAME=icinga-core
PKG_VERSION="1.11.4"
PKG_VERSION="1.11.5"
PKG_HOME_URL="http://www.icinga.org/"
PKG_REL_DATE="05-28-2014"
PKG_REL_DATE="06-20-2014"
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.11.4"
PKG_VERSION="1.11.5"
PKG_HOME_URL="http://www.icinga.org/"
PKG_REL_DATE="05-28-2014"
PKG_REL_DATE="06-20-2014"
dnl Figure out how to invoke "install" and what install options to use.
AC_PROG_INSTALL
......
......@@ -250,7 +250,7 @@ case "$1" in
if status_icinga; then
echo ''
echo 'Warning - icinga did not exit in a timely manner. Sending kill -9'
kill9proc_icinga
killproc9_icinga
else
echo 'Stopping icinga done.'
remove_run_files
......
......@@ -95,7 +95,7 @@
</li>
</ul></div>
<a class="indexterm" name="idp168536208"></a>
<a class="indexterm" name="idp168526240"></a>
</div>
<div class="section" title="1.1.2. Systemvoraussetzungen">
......@@ -123,7 +123,7 @@
</li>
</ol></div>
<a class="indexterm" name="idp168561536"></a>
<a class="indexterm" name="idp168547712"></a>
</div>
<div class="section" title="1.1.3. Lizenzierung">
......@@ -141,7 +141,7 @@
<p>Icinga wird geliefert WIE ES IST OHNE GARANTIE IRGENDEINER ART, EINSCHLIESSLICH DER GARANTIE FÜR DESIGN, VERMARKTBARKEIT
ODER DER TAUGLICHKEIT FÜR EINEN BESTIMMTEN ZWECK.</p>
<a class="indexterm" name="idp168568352"></a>
<a class="indexterm" name="idp168558080"></a>
</div>
<div class="section" title="1.1.4. Danksagungen">
......@@ -152,7 +152,7 @@
<p>Verschiedene Leute haben zu Icinga beigetragen, z.B. durch Meldung von Fehlern, vorschlagen von Verbesserungen, schreiben
von Plugins usw.</p>
<a class="indexterm" name="idp168571360"></a>
<a class="indexterm" name="idp168561120"></a>
</div>
<div class="section" title="1.1.5. Beschaffen der neuesten Version">
......@@ -162,7 +162,7 @@
<p>Sie können auf <a class="link" href="http://www.icinga.org/" target="_top">https://www.icinga.org/</a> nach neuen Versionen von Icinga suchen.</p>
<a class="indexterm" name="idp168574848"></a>
<a class="indexterm" name="idp168564688"></a>
</div>
<div class="section" title="1.1.6. Kompatibilität">
......@@ -177,7 +177,7 @@
<p>Icinga und das Icinga-Logo sind Markenzeichen von icinga.org. Alle anderen Markenzeichen, Dienstmarkenzeichen,
registrierte Markenzeichen und registrierte Dienstmarkenzeichen können das Eigentum der jeweiligen Inhaber sein.</p>
<a class="indexterm" name="idp168577584"></a>
<a class="indexterm" name="idp168569424"></a>
</div>
</div>
<div class="navfooter">
......
......@@ -95,9 +95,9 @@
durchführen, um den genauen Status eines bestimmten Netzwerk-Segments zu ermitteln. Prüfungen nach Bedarf finden sich auch in der <a class="link" href="dependencychecks.html" title="7.20. Vorausschauende Abhängigkeitsprüfungen">vorausschauenden Abhängigkeitsprüfung</a>s-Logik, um sicherzustellen, dass Icinga möglichst genaue
Statusinformationen hat.</p>
<a class="indexterm" name="idp178427456"></a>
<a class="indexterm" name="idp178428240"></a>
<a class="indexterm" name="idp178429280"></a>
<a class="indexterm" name="idp178429952"></a>
</div>
</div>
<div class="navfooter">
......
......@@ -127,9 +127,9 @@
</li>
</ul></div>
<a class="indexterm" name="idp183312544"></a>
<a class="indexterm" name="idp183314016"></a>
<a class="indexterm" name="idp183313552"></a>
<a class="indexterm" name="idp183315296"></a>
</div>
</div>
<div class="navfooter">
......
......@@ -157,55 +157,55 @@
<p>Das IDOUtils-Addon und die Dokumentation finden Sie unter <a class="link" href="http://docs.icinga.org/" target="_top">http://docs.icinga.org/</a>.</p>
<a class="indexterm" name="idp184679392"></a>
<a class="indexterm" name="idp184680496"></a>
<a class="indexterm" name="idp184681216"></a>
<a class="indexterm" name="idp184682320"></a>
<a class="indexterm" name="idp184682608"></a>
<a class="indexterm" name="idp184683712"></a>
<a class="indexterm" name="idp184684368"></a>
<a class="indexterm" name="idp184685472"></a>
<a class="indexterm" name="idp184685504"></a>
<a class="indexterm" name="idp184687168"></a>
<a class="indexterm" name="idp184686608"></a>
<a class="indexterm" name="idp184688272"></a>
<a class="indexterm" name="idp184690000"></a>
<a class="indexterm" name="idp184689376"></a>
<a class="indexterm" name="idp184691104"></a>
<a class="indexterm" name="idp184691008"></a>
<a class="indexterm" name="idp184692112"></a>
<a class="indexterm" name="idp184692704"></a>
<a class="indexterm" name="idp184693808"></a>
<a class="indexterm" name="idp184693872"></a>
<a class="indexterm" name="idp184694976"></a>
<a class="indexterm" name="idp184695632"></a>
<a class="indexterm" name="idp184696736"></a>
<a class="indexterm" name="idp184696640"></a>
<a class="indexterm" name="idp184697744"></a>
<a class="indexterm" name="idp184698336"></a>
<a class="indexterm" name="idp184699440"></a>
<a class="indexterm" name="idp184699504"></a>
<a class="indexterm" name="idp184700608"></a>
<a class="indexterm" name="idp184701264"></a>
<a class="indexterm" name="idp184702368"></a>
<a class="indexterm" name="idp184702272"></a>
<a class="indexterm" name="idp184703376"></a>
<a class="indexterm" name="idp184703952"></a>
<a class="indexterm" name="idp184705056"></a>
<a class="indexterm" name="idp184705088"></a>
<a class="indexterm" name="idp184706192"></a>
<a class="indexterm" name="idp184706880"></a>
<a class="indexterm" name="idp184707984"></a>
<a class="indexterm" name="idp184707888"></a>
<a class="indexterm" name="idp184708992"></a>
<a class="indexterm" name="idp184709584"></a>
<a class="indexterm" name="idp184710688"></a>
<a class="indexterm" name="idp184710720"></a>
<a class="indexterm" name="idp184711824"></a>
<a class="indexterm" name="idp184712512"></a>
<a class="indexterm" name="idp184713616"></a>
<a class="indexterm" name="idp184713520"></a>
<a class="indexterm" name="idp184714752"></a>
</div>
</div>
<div class="navfooter">
......
......@@ -86,7 +86,7 @@
</li>
</ol></div>
<a class="indexterm" name="idp168652640"></a>
<a class="indexterm" name="idp168642480"></a>
<div class="section" title="2.1.1. Icinga-Überblick">
<div class="titlepage"><div><div><h3 class="title">
......@@ -197,7 +197,7 @@
<p>Weil das Icinga-Classic-Web ständig weiter entwickelt wird, können Sie sicher sein, dass jedes Addon, das Sie mit Nagios nutzen,
auch mit Icinga funktionieren wird.</p>
<table border="1" id="idp168684480">
<table border="1" id="idp168674544">
<caption>Tabelle 2.1. Screenshots Icinga-Classic-Web</caption>
<tr>
......@@ -354,7 +354,7 @@
</li>
</ul></div>
<table border="1" id="idp168734672">
<table border="1" id="idp168722752">
<caption>Tabelle 2.2. Screenshots Icinga-New-Web</caption>
<tr>
......@@ -503,11 +503,11 @@
</tr>
</table>
<a class="indexterm" name="idp168788032"></a>
<a class="indexterm" name="idp168778016"></a>
<a class="indexterm" name="idp168791536"></a>
<a class="indexterm" name="idp168781520"></a>
<a class="indexterm" name="idp168793024"></a>
<a class="indexterm" name="idp168783008"></a>
</div>
</div>
</div>
......
......@@ -230,9 +230,9 @@
wie die Änderung der horizon-Variablen die zwischengespeicherten Prüf-Statistiken beeinflusst. Ändern und wiederholen Sie, falls
erforderlich.</p>
<a class="indexterm" name="idp183400896"></a>
<a class="indexterm" name="idp183402304"></a>
<a class="indexterm" name="idp183402096"></a>
<a class="indexterm" name="idp183403504"></a>
</div>
</div>
<div class="navfooter">
......
......@@ -329,21 +329,21 @@
einen sicheren Web-Server haben und sicher sind, dass sich jeder, der das Classic UI aufruft, in irgendeiner Weise authentifiziert hat.
Wenn Sie diese Variable definieren, dann wird jeder, der sich am Web-Server authentifiziert, alle Rechte dieses Benutzers erben!</p>
<a class="indexterm" name="idp179405360"></a>
<a class="indexterm" name="idp179406432"></a>
<a class="indexterm" name="idp179406368"></a>
<a class="indexterm" name="idp179407440"></a>
<a class="indexterm" name="idp179408128"></a>
<a class="indexterm" name="idp179409136"></a>
<a class="indexterm" name="idp179409808"></a>
<a class="indexterm" name="idp179410656"></a>
<a class="indexterm" name="idp179411488"></a>
<a class="indexterm" name="idp179411808"></a>