Commit 7b2ec2a7 authored by Alexander Wirt's avatar Alexander Wirt

Imported Upstream version 1.9.2

parent e07a105d
......@@ -13,6 +13,21 @@ UPGRADE NOTES
- idoutils: ${source}/module/idoutils/config/updates
* package locations may differ!
1.9.2 - 30/06/2013
FIXES
* core: fix bug with non-ASCII (> 127) illegal macro output characters on char-to-int cast (Jason Young) #4211 - MF
* core: bail early if main config file cannot be read - MF
* classic ui: fixed searching hostgroup results in wrong 'all' view filter urls #4206 - RB
* classic ui: fix URL construction issue in icinga_reload_scroll_position() javascript (Karsten Sühring) #4233 - MF
* idoutils: fix mysql: output/perfdata limits cut escaped string leaving '\' at the end (Yannik Charton) #4196 - MF
* idoutils: bugfixes for socket queue, transactions and libdbi handling #4049 - GB
* idoutils: fix ido2db gradually consumes more and more CPU time with time #4210 - CF
* idoutils: fix wrong clob freeing in eventhandlers #4357 - TD
1.9.1 - 22/05/2013
FIXES
......
......@@ -81,7 +81,7 @@ MKDIR=/bin/mkdir
###############################
# Global
###############################
ICINGA_VERSION=1.9.1
ICINGA_VERSION=1.9.2
CP=@CP@
......
......@@ -303,6 +303,7 @@ in various ways. If we missed your name, let us know.
* Kevin Stone
* Herbert Straub
* Sven Strickroth
* Karsten Sühring
* Alexander Sulfrian
* SUSE Linux Team
* Horvath Tamas
......
......@@ -1832,7 +1832,7 @@ int pre_flight_check(void) {
else {
char *p;
for (p = illegal_output_chars; *p; p++) {
illegal_output_char_map[(int)*p] = 1;
illegal_output_char_map[(unsigned char)*p] = 1;
}
}
......
......@@ -679,7 +679,11 @@ int main(int argc, char **argv, char **env) {
nagios_pid = (int)getpid();
/* read in the configuration files (main and resource config files) */
result = read_main_config_file(config_file);
if (read_main_config_file(config_file) == ERROR) {
logit(NSLOG_PROCESS_INFO | NSLOG_RUNTIME_ERROR | NSLOG_CONFIG_ERROR, TRUE, "Failed to read main config file. Aborting.");
cleanup();
exit(EXIT_FAILURE);
}
/* we need to read the modules in the first place as object configuration before neb modules are initialized/loaded */
result = read_object_config_data(config_file, READ_MODULES, FALSE, FALSE);
......
......@@ -672,142 +672,21 @@ int main(void) {
if (get_result_limit == -1 && (content_type == JSON_CONTENT || content_type == CSV_CONTENT))
result_limit = 0;
/**
* check submitted data and create cgi_title
**/
/* keep backwards compatibility */
if (nostatusheader_option == TRUE)
display_status_totals = FALSE;
/* determine display of hosts */
if (req_hosts[0].entry != NULL) {
show_all_hosts = FALSE;
for (i = 0; req_hosts[i].entry != NULL; i++) {
if (!strcmp(req_hosts[i].entry, "all")) {
show_all_hosts = TRUE;
my_free(url_hosts_part);
my_free(cgi_title);
req_hosts[0].entry = strdup("all");
req_hosts[1].entry = NULL;
dummy = asprintf(&url_hosts_part, "host=all");
break;
} else {
if (i != 0) {
strncpy(temp_buffer, cgi_title, sizeof(temp_buffer));
my_free(cgi_title);
}
dummy = asprintf(&cgi_title, "%s%s[%s]", (i != 0) ? temp_buffer : "", (i != 0) ? ", " : "", html_encode(req_hosts[i].entry, FALSE));
if (i == 0)
dummy = asprintf(&url_hosts_part, "host=%s", url_encode(req_hosts[i].entry));
else {
strncpy(temp_buffer, url_hosts_part, sizeof(temp_buffer));
my_free(url_hosts_part);
dummy = asprintf(&url_hosts_part, "%s&host=%s", temp_buffer, url_encode(req_hosts[i].entry));
}
}
}
} else {
req_hosts[0].entry = strdup("all");
req_hosts[1].entry = NULL;
dummy = asprintf(&url_hosts_part, "host=all");
}
/* determine display of hostgroups */
if (req_hostgroups[0].entry != NULL) {
show_all_hostgroups = FALSE;
for (i = 0; req_hostgroups[i].entry != NULL; i++) {
if (!strcmp(req_hostgroups[i].entry, "all")) {
show_all_hostgroups = TRUE;
my_free(url_hostgroups_part);
my_free(cgi_title);
req_hostgroups[0].entry = strdup("all");
req_hostgroups[1].entry = NULL;
dummy = asprintf(&url_hostgroups_part, "hostgroup=all");
break;
} else {
if (i != 0) {
strncpy(temp_buffer, cgi_title, sizeof(temp_buffer));
my_free(cgi_title);
}
dummy = asprintf(&cgi_title, "%s%s{%s}", (i != 0) ? temp_buffer : "", (i != 0) ? ", " : "", html_encode(req_hostgroups[i].entry, FALSE));
if (i == 0)
dummy = asprintf(&url_hostgroups_part, "hostgroup=%s", url_encode(req_hostgroups[i].entry));
else {
strncpy(temp_buffer, url_hostgroups_part, sizeof(temp_buffer));
my_free(url_hostgroups_part);
dummy = asprintf(&url_hostgroups_part, "%s&hostgroup=%s", temp_buffer, url_encode(req_hostgroups[i].entry));
}
}
}
} else {
req_hostgroups[0].entry = strdup("all");
req_hostgroups[1].entry = NULL;
dummy = asprintf(&url_hostgroups_part, "hostgroup=all");
}
/* determine display of servicegroups */
if (req_servicegroups[0].entry != NULL) {
show_all_servicegroups = FALSE;
for (i = 0; req_servicegroups[i].entry != NULL; i++) {
if (!strcmp(req_servicegroups[i].entry, "all")) {
show_all_servicegroups = TRUE;
my_free(url_servicegroups_part);
my_free(cgi_title);
req_servicegroups[0].entry = strdup("all");
req_servicegroups[1].entry = NULL;
dummy = asprintf(&url_servicegroups_part, "servicegroup=all");
break;
} else {
if (i != 0) {
strncpy(temp_buffer, cgi_title, sizeof(temp_buffer));
my_free(cgi_title);
}
dummy = asprintf(&cgi_title, "%s%s(%s)", (i != 0) ? temp_buffer : "", (i != 0) ? ", " : "", html_encode(req_servicegroups[i].entry, FALSE));
if (i == 0)
dummy = asprintf(&url_servicegroups_part, "servicegroup=%s", url_encode(req_servicegroups[i].entry));
else {
strncpy(temp_buffer, url_servicegroups_part, sizeof(temp_buffer));
my_free(url_servicegroups_part);
dummy = asprintf(&url_servicegroups_part, "%s&servicegroup=%s", temp_buffer, url_encode(req_servicegroups[i].entry));
}
}
}
} else {
req_servicegroups[0].entry = strdup("all");
req_servicegroups[1].entry = NULL;
dummy = asprintf(&url_servicegroups_part, "servicegroup=all");
}
/**
* send HTML header
**/
document_header(CGI_ID, TRUE, (tab_friendly_titles && cgi_title != NULL) ? cgi_title : "Current Network Status");
my_free(cgi_title);
/**
* check some more submitted data
**/
/* keeps backwards compatibility with old search method */
if (navbar_search == TRUE && search_string == NULL && req_hosts[0].entry != NULL) {
group_style_type = STYLE_HOST_SERVICE_DETAIL;
search_string = strdup(req_hosts[0].entry);
}
/* keep backwards compatibility with nostatusheader option */
if (nostatusheader_option == TRUE)
display_status_totals = FALSE;
/* allow service_filter only for status lists */
if (group_style_type == STYLE_SUMMARY || group_style_type == STYLE_GRID || group_style_type == STYLE_OVERVIEW)
my_free(service_filter);
/**
* filter status data if user searched for something
**/
......@@ -879,7 +758,7 @@ int main(void) {
}
/* if didn't found anything until now we start looking for hostgroups and servicegroups */
/* if we didn't found anything until now we start looking for hostgroups and servicegroups */
if (host_items_found == FALSE && service_items_found == FALSE) {
/* try to find hostgroup */
......@@ -919,6 +798,123 @@ int main(void) {
group_style_type = STYLE_SERVICE_DETAIL;
}
/**
* check submitted data, create url_parts and create cgi_title
**/
/* determine display of hosts */
if (req_hosts[0].entry != NULL) {
show_all_hosts = FALSE;
for (i = 0; req_hosts[i].entry != NULL; i++) {
if (!strcmp(req_hosts[i].entry, "all")) {
show_all_hosts = TRUE;
my_free(url_hosts_part);
my_free(cgi_title);
req_hosts[0].entry = strdup("all");
req_hosts[1].entry = NULL;
dummy = asprintf(&url_hosts_part, "host=all");
break;
} else {
if (i != 0) {
strncpy(temp_buffer, cgi_title, sizeof(temp_buffer));
my_free(cgi_title);
}
dummy = asprintf(&cgi_title, "%s%s[%s]", (i != 0) ? temp_buffer : "", (i != 0) ? ", " : "", html_encode(req_hosts[i].entry, FALSE));
if (i == 0)
dummy = asprintf(&url_hosts_part, "host=%s", url_encode(req_hosts[i].entry));
else {
strncpy(temp_buffer, url_hosts_part, sizeof(temp_buffer));
my_free(url_hosts_part);
dummy = asprintf(&url_hosts_part, "%s&host=%s", temp_buffer, url_encode(req_hosts[i].entry));
}
}
}
} else {
req_hosts[0].entry = strdup("all");
req_hosts[1].entry = NULL;
dummy = asprintf(&url_hosts_part, "host=all");
}
/* determine display of hostgroups */
if (req_hostgroups[0].entry != NULL) {
show_all_hostgroups = FALSE;
for (i = 0; req_hostgroups[i].entry != NULL; i++) {
if (!strcmp(req_hostgroups[i].entry, "all")) {
show_all_hostgroups = TRUE;
my_free(url_hostgroups_part);
my_free(cgi_title);
req_hostgroups[0].entry = strdup("all");
req_hostgroups[1].entry = NULL;
dummy = asprintf(&url_hostgroups_part, "hostgroup=all");
break;
} else {
if (i != 0) {
strncpy(temp_buffer, cgi_title, sizeof(temp_buffer));
my_free(cgi_title);
}
dummy = asprintf(&cgi_title, "%s%s{%s}", (i != 0) ? temp_buffer : "", (i != 0) ? ", " : "", html_encode(req_hostgroups[i].entry, FALSE));
if (i == 0)
dummy = asprintf(&url_hostgroups_part, "hostgroup=%s", url_encode(req_hostgroups[i].entry));
else {
strncpy(temp_buffer, url_hostgroups_part, sizeof(temp_buffer));
my_free(url_hostgroups_part);
dummy = asprintf(&url_hostgroups_part, "%s&hostgroup=%s", temp_buffer, url_encode(req_hostgroups[i].entry));
}
}
}
} else {
req_hostgroups[0].entry = strdup("all");
req_hostgroups[1].entry = NULL;
dummy = asprintf(&url_hostgroups_part, "hostgroup=all");
}
/* determine display of servicegroups */
if (req_servicegroups[0].entry != NULL) {
show_all_servicegroups = FALSE;
for (i = 0; req_servicegroups[i].entry != NULL; i++) {
if (!strcmp(req_servicegroups[i].entry, "all")) {
show_all_servicegroups = TRUE;
my_free(url_servicegroups_part);
my_free(cgi_title);
req_servicegroups[0].entry = strdup("all");
req_servicegroups[1].entry = NULL;
dummy = asprintf(&url_servicegroups_part, "servicegroup=all");
break;
} else {
if (i != 0) {
strncpy(temp_buffer, cgi_title, sizeof(temp_buffer));
my_free(cgi_title);
}
dummy = asprintf(&cgi_title, "%s%s(%s)", (i != 0) ? temp_buffer : "", (i != 0) ? ", " : "", html_encode(req_servicegroups[i].entry, FALSE));
if (i == 0)
dummy = asprintf(&url_servicegroups_part, "servicegroup=%s", url_encode(req_servicegroups[i].entry));
else {
strncpy(temp_buffer, url_servicegroups_part, sizeof(temp_buffer));
my_free(url_servicegroups_part);
dummy = asprintf(&url_servicegroups_part, "%s&servicegroup=%s", temp_buffer, url_encode(req_servicegroups[i].entry));
}
}
}
} else {
req_servicegroups[0].entry = strdup("all");
req_servicegroups[1].entry = NULL;
dummy = asprintf(&url_servicegroups_part, "servicegroup=all");
}
/**
* send HTML header
**/
document_header(CGI_ID, TRUE, (tab_friendly_titles && cgi_title != NULL) ? cgi_title : "Current Network Status");
my_free(cgi_title);
/* pre filter for service groups
this way we mark all services which belong to a servicegroup we want to see once.
otherwise we would have to check every service if it belongs to a servicegroup we want to see
......
......@@ -2491,9 +2491,9 @@ ac_config_headers="$ac_config_headers include/config.h"
PKG_NAME=icinga-core
PKG_VERSION="1.9.1"
PKG_VERSION="1.9.2"
PKG_HOME_URL="http://www.icinga.org/"
PKG_REL_DATE="05-22-2013"
PKG_REL_DATE="06-30-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.9.1"
PKG_VERSION="1.9.2"
PKG_HOME_URL="http://www.icinga.org/"
PKG_REL_DATE="05-22-2013"
PKG_REL_DATE="06-30-2013"
dnl Figure out how to invoke "install" and what install options to use.
AC_PROG_INSTALL
......
......@@ -95,7 +95,7 @@
</li>
</ul></div>
<a class="indexterm" name="idp57952"></a>
<a class="indexterm" name="idp46288"></a>
</div>
<div class="section" title="1.1.2. Systemvoraussetzungen">
......@@ -123,7 +123,7 @@
</li>
</ol></div>
<a class="indexterm" name="idp68720"></a>
<a class="indexterm" name="idp71904"></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="idp75600"></a>
<a class="indexterm" name="idp78176"></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="idp78496"></a>
<a class="indexterm" name="idp80656"></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">http://www.icinga.org/</a> nach neuen Versionen von Icinga suchen.</p>
<a class="indexterm" name="idp82144"></a>
<a class="indexterm" name="idp84688"></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="idp86784"></a>
<a class="indexterm" name="idp89232"></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="idp10302960"></a>
<a class="indexterm" name="idp10314608"></a>
<a class="indexterm" name="idp10304688"></a>
<a class="indexterm" name="idp10316272"></a>
</div>
</div>
<div class="navfooter">
......
......@@ -127,9 +127,9 @@
</li>
</ul></div>
<a class="indexterm" name="idp14958976"></a>
<a class="indexterm" name="idp14972944"></a>
<a class="indexterm" name="idp14957792"></a>
<a class="indexterm" name="idp14971936"></a>
</div>
</div>
<div class="navfooter">
......
......@@ -148,55 +148,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="idp16331632"></a>
<a class="indexterm" name="idp16345744"></a>
<a class="indexterm" name="idp16333280"></a>
<a class="indexterm" name="idp16347392"></a>
<a class="indexterm" name="idp16334992"></a>
<a class="indexterm" name="idp16349024"></a>
<a class="indexterm" name="idp16336688"></a>
<a class="indexterm" name="idp16350720"></a>
<a class="indexterm" name="idp16337936"></a>
<a class="indexterm" name="idp16351936"></a>
<a class="indexterm" name="idp16339504"></a>
<a class="indexterm" name="idp16353520"></a>
<a class="indexterm" name="idp16340592"></a>
<a class="indexterm" name="idp16354720"></a>
<a class="indexterm" name="idp16342400"></a>
<a class="indexterm" name="idp16356304"></a>
<a class="indexterm" name="idp16343600"></a>
<a class="indexterm" name="idp16357504"></a>
<a class="indexterm" name="idp16345168"></a>
<a class="indexterm" name="idp16359088"></a>
<a class="indexterm" name="idp16346256"></a>
<a class="indexterm" name="idp16360288"></a>
<a class="indexterm" name="idp16348064"></a>
<a class="indexterm" name="idp16361872"></a>
<a class="indexterm" name="idp16349152"></a>
<a class="indexterm" name="idp16363072"></a>
<a class="indexterm" name="idp16350960"></a>
<a class="indexterm" name="idp16364656"></a>
<a class="indexterm" name="idp16352096"></a>
<a class="indexterm" name="idp16365856"></a>
<a class="indexterm" name="idp16353664"></a>
<a class="indexterm" name="idp16367440"></a>
<a class="indexterm" name="idp16355104"></a>
<a class="indexterm" name="idp16368640"></a>
<a class="indexterm" name="idp16356384"></a>
<a class="indexterm" name="idp16370224"></a>
<a class="indexterm" name="idp16357872"></a>
<a class="indexterm" name="idp16371424"></a>
<a class="indexterm" name="idp16359152"></a>
<a class="indexterm" name="idp16373008"></a>
<a class="indexterm" name="idp16360608"></a>
<a class="indexterm" name="idp16374208"></a>
<a class="indexterm" name="idp16362128"></a>
<a class="indexterm" name="idp16375792"></a>
<a class="indexterm" name="idp16363216"></a>
<a class="indexterm" name="idp16376992"></a>
<a class="indexterm" name="idp16365024"></a>
<a class="indexterm" name="idp16378576"></a>
<a class="indexterm" name="idp16366304"></a>
<a class="indexterm" name="idp16379776"></a>
</div>
</div>
<div class="navfooter">
......
......@@ -145,8 +145,8 @@
<div class="titlepage"><div><div><h3 class="title">
<a name="icinga_gui_comparison"></a>2.1.2. <a name="icinga-gui-comparison"></a>Icinga Web-GUI-Vergleich</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section">2.1.2.1. <a href="beginners.html#idp181072">Icinga-Classic-Web</a></span></dt>
<dt><span class="section">2.1.2.2. <a href="beginners.html#idp227312">Icinga-New-Web</a></span></dt>
<dt><span class="section">2.1.2.1. <a href="beginners.html#idp183648">Icinga-Classic-Web</a></span></dt>
<dt><span class="section">2.1.2.2. <a href="beginners.html#idp230464">Icinga-New-Web</a></span></dt>
</dl></div>
......@@ -156,7 +156,7 @@
<div class="section" title="2.1.2.1. Icinga-Classic-Web">
<div class="titlepage"><div><div><h4 class="title">
<a name="idp181072"></a>2.1.2.1. Icinga-Classic-Web</h4></div></div></div>
<a name="idp183648"></a>2.1.2.1. Icinga-Classic-Web</h4></div></div></div>
<a name="icinga_gui_classic"></a>