You can subscribe to this list here.
2002 |
Jan
|
Feb
(12) |
Mar
(51) |
Apr
(30) |
May
(66) |
Jun
(43) |
Jul
(41) |
Aug
(35) |
Sep
(18) |
Oct
(36) |
Nov
(19) |
Dec
(87) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(72) |
Feb
(54) |
Mar
(24) |
Apr
(65) |
May
(44) |
Jun
(62) |
Jul
(44) |
Aug
(50) |
Sep
(38) |
Oct
(47) |
Nov
(32) |
Dec
(10) |
2004 |
Jan
(31) |
Feb
(36) |
Mar
(22) |
Apr
(5) |
May
(10) |
Jun
(4) |
Jul
|
Aug
(15) |
Sep
(8) |
Oct
(69) |
Nov
(18) |
Dec
(30) |
2005 |
Jan
(14) |
Feb
(12) |
Mar
(39) |
Apr
(18) |
May
(17) |
Jun
(7) |
Jul
(6) |
Aug
(20) |
Sep
|
Oct
(3) |
Nov
(62) |
Dec
(40) |
2006 |
Jan
(38) |
Feb
(85) |
Mar
(83) |
Apr
(46) |
May
(90) |
Jun
(11) |
Jul
(24) |
Aug
(7) |
Sep
(5) |
Oct
(40) |
Nov
(27) |
Dec
(55) |
2007 |
Jan
(73) |
Feb
(81) |
Mar
(116) |
Apr
(93) |
May
(52) |
Jun
(27) |
Jul
(49) |
Aug
(75) |
Sep
(56) |
Oct
(202) |
Nov
(60) |
Dec
(37) |
2008 |
Jan
(59) |
Feb
(53) |
Mar
(21) |
Apr
(17) |
May
(21) |
Jun
(15) |
Jul
|
Aug
|
Sep
|
Oct
(25) |
Nov
(53) |
Dec
(33) |
2009 |
Jan
(36) |
Feb
|
Mar
(3) |
Apr
(3) |
May
(125) |
Jun
(69) |
Jul
(50) |
Aug
(47) |
Sep
(38) |
Oct
(23) |
Nov
(6) |
Dec
(11) |
2010 |
Jan
(12) |
Feb
(4) |
Mar
(20) |
Apr
|
May
(2) |
Jun
(8) |
Jul
|
Aug
(79) |
Sep
(27) |
Oct
(115) |
Nov
(42) |
Dec
(66) |
2011 |
Jan
(63) |
Feb
(29) |
Mar
(4) |
Apr
(7) |
May
(14) |
Jun
(11) |
Jul
(19) |
Aug
(31) |
Sep
(12) |
Oct
(11) |
Nov
(22) |
Dec
(11) |
2012 |
Jan
(16) |
Feb
(40) |
Mar
(2) |
Apr
(11) |
May
(17) |
Jun
(34) |
Jul
(42) |
Aug
(101) |
Sep
(173) |
Oct
(146) |
Nov
(55) |
Dec
(51) |
2013 |
Jan
(32) |
Feb
(59) |
Mar
(66) |
Apr
(41) |
May
(12) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ag...@us...> - 2013-03-14 13:20:06
|
Revision: 2663 http://nagios.svn.sourceforge.net/nagios/?rev=2663&view=rev Author: ageric Date: 2013-03-14 13:19:58 +0000 (Thu, 14 Mar 2013) Log Message: ----------- test: Update objects.precache.expected This makes t/900-configtest.t work as intended again. Now that the last code discrepancies between Nagios 3 and Nagios 4 have been ironed out, we may as well update the tests to reflect the real world. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/t/var/objects.precache.expected Modified: nagioscore/trunk/t/var/objects.precache.expected =================================================================== --- nagioscore/trunk/t/var/objects.precache.expected 2013-03-14 13:19:37 UTC (rev 2662) +++ nagioscore/trunk/t/var/objects.precache.expected 2013-03-14 13:19:58 UTC (rev 2663) @@ -61,12 +61,14 @@ define contact { contact_name nagiosadmin + alias nagiosadmin service_notification_period none host_notification_period none - service_notification_options w,u,c,r,f,s - host_notification_options d,u,r,f,s + service_notification_options r,w,u,c,f,s + host_notification_options r,d,u,f,s service_notification_commands notify-none host_notification_commands notify-none + minimum_value 1 host_notifications_enabled 0 service_notifications_enabled 0 can_submit_commands 1 @@ -76,12 +78,14 @@ define contact { contact_name second + alias second service_notification_period none host_notification_period none - service_notification_options w,u,c,r,f,s - host_notification_options d,u,r,f,s + service_notification_options r,w,u,c,f,s + host_notification_options r,d,u,f,s service_notification_commands notify-none host_notification_commands notify-none + minimum_value 1 host_notifications_enabled 0 service_notifications_enabled 0 can_submit_commands 1 @@ -97,20 +101,21 @@ contacts nagiosadmin notification_period none initial_state o + hourly_value 1 check_interval 5.000000 retry_interval 1.000000 max_check_attempts 2 active_checks_enabled 1 passive_checks_enabled 1 - obsess_over_host 1 + obsess 1 event_handler_enabled 1 low_flap_threshold 0.000000 high_flap_threshold 0.000000 flap_detection_enabled 1 - flap_detection_options o,d,u + flap_detection_options a freshness_threshold 0 check_freshness 0 - notification_options d,u,r,f,s + notification_options a notifications_enabled 1 notification_interval 60.000000 first_notification_delay 0.000000 @@ -128,20 +133,21 @@ contacts nagiosadmin notification_period none initial_state o + hourly_value 1 check_interval 5.000000 retry_interval 1.000000 max_check_attempts 2 active_checks_enabled 1 passive_checks_enabled 1 - obsess_over_host 1 + obsess 1 event_handler_enabled 1 low_flap_threshold 0.000000 high_flap_threshold 0.000000 flap_detection_enabled 1 - flap_detection_options o,d,u + flap_detection_options a freshness_threshold 0 check_freshness 0 - notification_options d,u,r,f,s + notification_options a notifications_enabled 1 notification_interval 60.000000 first_notification_delay 0.000000 @@ -159,20 +165,21 @@ contacts nagiosadmin notification_period none initial_state o + hourly_value 1 check_interval 5.000000 retry_interval 1.000000 max_check_attempts 2 active_checks_enabled 1 passive_checks_enabled 1 - obsess_over_host 1 + obsess 1 event_handler_enabled 1 low_flap_threshold 0.000000 high_flap_threshold 0.000000 flap_detection_enabled 1 - flap_detection_options o,d,u + flap_detection_options a freshness_threshold 0 check_freshness 0 - notification_options d,u,r,f,s + notification_options a notifications_enabled 1 notification_interval 60.000000 first_notification_delay 0.000000 @@ -190,6 +197,7 @@ contacts nagiosadmin notification_period none initial_state o + hourly_value 1 check_interval 32.000000 retry_interval 1.000000 max_check_attempts 3 @@ -197,15 +205,15 @@ parallelize_check 1 active_checks_enabled 1 passive_checks_enabled 1 - obsess_over_service 1 + obsess 1 event_handler_enabled 1 low_flap_threshold 0.000000 high_flap_threshold 0.000000 flap_detection_enabled 1 - flap_detection_options o,w,u,c + flap_detection_options a freshness_threshold 0 check_freshness 0 - notification_options u,w,c,r,f,s + notification_options a notifications_enabled 1 notification_interval 60.000000 first_notification_delay 0.000000 @@ -223,6 +231,7 @@ contacts nagiosadmin notification_period none initial_state o + hourly_value 1 check_interval 15.000000 retry_interval 1.000000 max_check_attempts 5 @@ -230,15 +239,15 @@ parallelize_check 1 active_checks_enabled 1 passive_checks_enabled 1 - obsess_over_service 1 + obsess 1 event_handler_enabled 1 low_flap_threshold 0.000000 high_flap_threshold 0.000000 flap_detection_enabled 1 - flap_detection_options o,w,u,c + flap_detection_options a freshness_threshold 0 check_freshness 0 - notification_options u,w,c,r,f,s + notification_options a notifications_enabled 1 notification_interval 65.000000 first_notification_delay 0.000000 @@ -256,6 +265,7 @@ contacts nagiosadmin notification_period none initial_state o + hourly_value 1 check_interval 15.000000 retry_interval 1.000000 max_check_attempts 5 @@ -263,15 +273,15 @@ parallelize_check 1 active_checks_enabled 1 passive_checks_enabled 1 - obsess_over_service 1 + obsess 1 event_handler_enabled 1 low_flap_threshold 0.000000 high_flap_threshold 0.000000 flap_detection_enabled 1 - flap_detection_options o,w,u,c + flap_detection_options a freshness_threshold 0 check_freshness 0 - notification_options u,w,c,r,f,s + notification_options a notifications_enabled 1 notification_interval 65.000000 first_notification_delay 0.000000 @@ -289,6 +299,7 @@ contacts nagiosadmin notification_period none initial_state o + hourly_value 1 check_interval 15.000000 retry_interval 1.000000 max_check_attempts 5 @@ -296,15 +307,15 @@ parallelize_check 1 active_checks_enabled 1 passive_checks_enabled 1 - obsess_over_service 1 + obsess 1 event_handler_enabled 1 low_flap_threshold 0.000000 high_flap_threshold 0.000000 flap_detection_enabled 1 - flap_detection_options o,w,u,c + flap_detection_options a freshness_threshold 0 check_freshness 0 - notification_options u,w,c,r,f,s + notification_options a notifications_enabled 1 notification_interval 65.000000 first_notification_delay 0.000000 @@ -322,6 +333,7 @@ contacts nagiosadmin notification_period none initial_state o + hourly_value 1 check_interval 15.000000 retry_interval 1.000000 max_check_attempts 5 @@ -329,15 +341,15 @@ parallelize_check 1 active_checks_enabled 1 passive_checks_enabled 1 - obsess_over_service 1 + obsess 1 event_handler_enabled 1 low_flap_threshold 0.000000 high_flap_threshold 0.000000 flap_detection_enabled 1 - flap_detection_options o,w,u,c + flap_detection_options a freshness_threshold 0 check_freshness 0 - notification_options u,w,c,r,f,s + notification_options a notifications_enabled 1 notification_interval 65.000000 first_notification_delay 0.000000 @@ -354,7 +366,6 @@ dependent_service_description dependent-service inherits_parent 0 notification_failure_options u,c - execution_failure_options n } define serviceescalation { @@ -364,7 +375,7 @@ last_notification -2 notification_interval 65.000000 escalation_period none - escalation_options w,u,c,r + escalation_options a contacts nagiosadmin } @@ -375,7 +386,7 @@ last_notification -2 notification_interval 65.000000 escalation_period none - escalation_options w,u,c,r + escalation_options a contacts nagiosadmin } @@ -386,7 +397,7 @@ last_notification -2 notification_interval 65.000000 escalation_period none - escalation_options w,u,c,r + escalation_options a contacts nagiosadmin } @@ -397,7 +408,7 @@ last_notification -2 notification_interval 65.000000 escalation_period none - escalation_options w,u,c,r + escalation_options a contacts nagiosadmin } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-14 13:19:44
|
Revision: 2662 http://nagios.svn.sourceforge.net/nagios/?rev=2662&view=rev Author: ageric Date: 2013-03-14 13:19:37 +0000 (Thu, 14 Mar 2013) Log Message: ----------- core: Sort escalations in post_process_object_config() We used to do that in Nagios 3, so doing it now too means a bunch of tests will pass by default, and everything that handles Nagios' internal data and expects it to be sorted will keep on working mostly the same way it always has. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/common/objects.c Modified: nagioscore/trunk/common/objects.c =================================================================== --- nagioscore/trunk/common/objects.c 2013-03-14 13:19:19 UTC (rev 2661) +++ nagioscore/trunk/common/objects.c 2013-03-14 13:19:37 UTC (rev 2662) @@ -158,8 +158,19 @@ int ret; ret = a->master_host_ptr->id - b->master_host_ptr->id; return ret ? ret : a->dependent_host_ptr->id - b->dependent_host_ptr->id; + } +static int cmp_serviceesc(const void *a_, const void *b_) { + const serviceescalation *a = *(const serviceescalation **)a_; + const serviceescalation *b = *(const serviceescalation **)b_; + return a->service_ptr->id - b->service_ptr->id; } + +static int cmp_hostesc(const void *a_, const void *b_) { + const hostescalation *a = *(const hostescalation **)a_; + const hostescalation *b = *(const hostescalation **)b_; + return a->host_ptr->id - b->host_ptr->id; + } #endif static void post_process_object_config(void) { @@ -200,6 +211,11 @@ qsort(servicedependency_ary, num_objects.servicedependencies, sizeof(servicedependency *), cmp_sdep); if(hostdependency_ary) qsort(hostdependency_ary, num_objects.hostdependencies, sizeof(hostdependency *), cmp_hdep); + if(hostescalation_ary) + qsort(hostescalation_ary, num_objects.hostescalations, sizeof(hostescalation *), cmp_hostesc); + if(serviceescalation_ary) + qsort(serviceescalation_ary, num_objects.serviceescalations, sizeof(serviceescalation *), cmp_serviceesc); + timing_point("Done post-sorting slave objects\n"); #endif timeperiod_list = timeperiod_ary ? *timeperiod_ary : NULL; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-14 13:19:28
|
Revision: 2661 http://nagios.svn.sourceforge.net/nagios/?rev=2661&view=rev Author: ageric Date: 2013-03-14 13:19:19 +0000 (Thu, 14 Mar 2013) Log Message: ----------- common/objects: post-process dependencies for cgi's too They don't need the sorting phase though, as objects are always sorted when we print them to the object cache. This should prevent the cgi's from dumping core when trying to handle host or servicedependencies. Reported-by: Mark Frost <mar...@pe...> Reported-by: Jeff <ia...@gm...> Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/common/objects.c Modified: nagioscore/trunk/common/objects.c =================================================================== --- nagioscore/trunk/common/objects.c 2013-03-14 13:19:00 UTC (rev 2660) +++ nagioscore/trunk/common/objects.c 2013-03-14 13:19:19 UTC (rev 2661) @@ -163,7 +163,6 @@ #endif static void post_process_object_config(void) { -#ifndef NSCGI objectlist *list; unsigned int i, slot; @@ -183,7 +182,6 @@ for(list = s->exec_deps; list; list = list->next) servicedependency_ary[slot++] = (servicedependency *)list->object_ptr; } - qsort(servicedependency_ary, num_objects.servicedependencies, sizeof(servicedependency *), cmp_sdep); timing_point("Done post-processing servicedependencies\n"); slot = 0; @@ -194,10 +192,14 @@ for(list = h->exec_deps; list; list = list->next) hostdependency_ary[slot++] = (hostdependency *)list->object_ptr; } - - qsort(hostdependency_ary, num_objects.hostdependencies, sizeof(hostdependency *), cmp_hdep); timing_point("Done post-processing host dependencies\n"); +#ifndef NSCGI + /* cgi's always get their objects in sorted order */ + if(servicedependency_ary) + qsort(servicedependency_ary, num_objects.servicedependencies, sizeof(servicedependency *), cmp_sdep); + if(hostdependency_ary) + qsort(hostdependency_ary, num_objects.hostdependencies, sizeof(hostdependency *), cmp_hdep); #endif timeperiod_list = timeperiod_ary ? *timeperiod_ary : NULL; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-14 13:19:07
|
Revision: 2660 http://nagios.svn.sourceforge.net/nagios/?rev=2660&view=rev Author: ageric Date: 2013-03-14 13:19:00 +0000 (Thu, 14 Mar 2013) Log Message: ----------- common/objects: Make qsort() comparison functions a lot faster Since host and service objects are sorted lexicographically and carry an unsigned int as id, which is incremental based on the sort order, we can just compare integers rather than run full string comparisons when sorting host and service dependencies. I'm unsure how much impact this has on config reload times, but it will surely make it slightly faster. The fact that we remove more code than we add makes that a double win. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/common/objects.c Modified: nagioscore/trunk/common/objects.c =================================================================== --- nagioscore/trunk/common/objects.c 2013-03-14 13:18:43 UTC (rev 2659) +++ nagioscore/trunk/common/objects.c 2013-03-14 13:19:00 UTC (rev 2660) @@ -148,26 +148,17 @@ const servicedependency *a = *(servicedependency **)a_; const servicedependency *b = *(servicedependency **)b_; int ret; - - ret = strcmp(a->host_name, b->host_name); - if(ret) - return ret; - ret = strcmp(a->service_description, b->service_description); - if(ret) - return ret; - ret = strcmp(a->dependent_host_name, b->dependent_host_name); - if(ret) - return ret; - return strcmp(a->dependent_service_description, b->dependent_service_description); + ret = a->master_service_ptr->id - b->master_service_ptr->id; + return ret ? ret : a->dependent_service_ptr->id - b->dependent_service_ptr->id; } static int cmp_hdep(const void *a_, const void *b_) { const hostdependency *a = *(const hostdependency **)a_; const hostdependency *b = *(const hostdependency **)b_; int ret; + ret = a->master_host_ptr->id - b->master_host_ptr->id; + return ret ? ret : a->dependent_host_ptr->id - b->dependent_host_ptr->id; - ret = strcmp(a->host_name, b->host_name); - return ret ? ret : strcmp(a->dependent_host_name, b->dependent_host_name); } #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-14 13:18:52
|
Revision: 2659 http://nagios.svn.sourceforge.net/nagios/?rev=2659&view=rev Author: ageric Date: 2013-03-14 13:18:43 +0000 (Thu, 14 Mar 2013) Log Message: ----------- xodtemplate: Fix same-host service dependencies with inexact master Weird subject, but here's the thing. In Nagios 3 we supported same-host servicedependencies where the host was defined by having exact settings for the dependent services (such as a servicegroup or a combination of dependent_hostgroup_name/dependent_host_name AND dependent_service_description). With Nagios 4-ish, that test slipped through the testing net, even though we actually have a test configuration just like that checked in alongside the code. With this patch, we no longer bomb out when given servicedependencies such as this: define servicedependency { service_description some-service dependent_servicegroup some-service-group notification_failure_criteria w,c } Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/xdata/xodtemplate.c Modified: nagioscore/trunk/xdata/xodtemplate.c =================================================================== --- nagioscore/trunk/xdata/xodtemplate.c 2013-03-14 13:18:25 UTC (rev 2658) +++ nagioscore/trunk/xdata/xodtemplate.c 2013-03-14 13:18:43 UTC (rev 2659) @@ -4755,7 +4755,7 @@ objectlist *parents = NULL, *plist, *pnext; objectlist *children = NULL, *clist; xodtemplate_servicedependency *temp_servicedependency = (xodtemplate_servicedependency *)sd_; - int same_host = FALSE; + int same_host = FALSE, children_first = FALSE, pret = OK, cret = OK; char *hname, *sdesc, *dhname, *dsdesc; hname = temp_servicedependency->host_name; @@ -4770,11 +4770,26 @@ if(temp_servicedependency->register_object == 0) return OK; + if(!temp_servicedependency->host_name && !temp_servicedependency->hostgroup_name + && !temp_servicedependency->servicegroup_name) + { + /* + * parent service is in exact. We must take children first + * and build parent chain from same-host deps there + */ + children_first = TRUE; + same_host = TRUE; + } + /* take care of same-host dependencies */ if(!temp_servicedependency->dependent_host_name && !temp_servicedependency->dependent_hostgroup_name) { - if(!temp_servicedependency->dependent_service_description) - ; /* do nothing. might be dependent_servicegroup_name */ - else { + if (!temp_servicedependency->dependent_servicegroup_name) { + if (children_first || !temp_servicedependency->dependent_service_description) { + logit(NSLOG_CONFIG_ERROR, TRUE, "Error: Impossible service dependency definition\n (config file '%s', starting at line '%d')", + xodtemplate_config_file_name(temp_servicedependency->_config_file), + temp_servicedependency->_start_line); + return ERROR; + } same_host = TRUE; } } @@ -4784,20 +4799,35 @@ bitmap_clear(service_map); /* create the two object lists */ - if(xodtemplate_create_service_list(&parents, parent_map, temp_servicedependency->host_name, temp_servicedependency->hostgroup_name, temp_servicedependency->servicegroup_name, temp_servicedependency->service_description, temp_servicedependency->_config_file, temp_servicedependency->_start_line) != OK) { + if(!children_first) { + pret = xodtemplate_create_service_list(&parents, parent_map, temp_servicedependency->host_name, temp_servicedependency->hostgroup_name, temp_servicedependency->servicegroup_name, temp_servicedependency->service_description, temp_servicedependency->_config_file, temp_servicedependency->_start_line); + if (!same_host) + cret = xodtemplate_create_service_list(&children, service_map, temp_servicedependency->dependent_host_name, temp_servicedependency->dependent_hostgroup_name, temp_servicedependency->dependent_servicegroup_name, temp_servicedependency->dependent_service_description, temp_servicedependency->_config_file, temp_servicedependency->_start_line); + } else { + /* + * NOTE: we flip the variables here to avoid duplicating + * the entire loop down below + */ + cret = xodtemplate_create_service_list(&parents, parent_map, temp_servicedependency->dependent_host_name, temp_servicedependency->dependent_hostgroup_name, temp_servicedependency->dependent_servicegroup_name, temp_servicedependency->dependent_service_description, temp_servicedependency->_config_file, temp_servicedependency->_start_line); + dsdesc = temp_servicedependency->service_description; + sdesc = temp_servicedependency->dependent_service_description; + } + + /* now log errors and bail out if we failed to get members */ + if(pret != OK) { logit(NSLOG_CONFIG_ERROR, TRUE, "Error: Could not expand master service(s) (config file '%s', starting at line %d)\n", xodtemplate_config_file_name(temp_servicedependency->_config_file), temp_servicedependency->_start_line); - return ERROR; } - - if(same_host == FALSE && xodtemplate_create_service_list(&children, service_map, temp_servicedependency->dependent_host_name, temp_servicedependency->dependent_hostgroup_name, temp_servicedependency->dependent_servicegroup_name, temp_servicedependency->dependent_service_description, temp_servicedependency->_config_file, temp_servicedependency->_start_line) != OK) { + if(cret != OK) { logit(NSLOG_CONFIG_ERROR, TRUE, "Error: Could not expand dependent service(s) (at config file '%s', starting on line %d)\n", xodtemplate_config_file_name(temp_servicedependency->_config_file), temp_servicedependency->_start_line); - return ERROR; } + if(cret != OK || pret != OK) + return ERROR; + /* * every service in "children" depends on every service in * "parents", so just loop twice and create them all. @@ -4818,8 +4848,12 @@ */ if(same_host) { children = NULL; - if(xodtemplate_expand_services(&children, service_map, p->host_name, dsdesc, temp_servicedependency->_config_file, temp_servicedependency->_start_line) != OK) + if(xodtemplate_expand_services(&children, service_map, p->host_name, dsdesc, temp_servicedependency->_config_file, temp_servicedependency->_start_line) != OK) { + logit(NSLOG_CONFIG_ERROR, TRUE, "Error: Failed to expand same-host servicedependency services (config file '%s', starting at line %d)\n", + xodtemplate_config_file_name(temp_servicedependency->_config_file), + temp_servicedependency->_start_line); return ERROR; + } } for(clist = children; clist; clist = clist->next) { xodtemplate_service *c = (xodtemplate_service *)clist->object_ptr; @@ -4827,7 +4861,12 @@ continue; bitmap_set(service_map, c->id); - /* now register */ + /* now register, but flip the states again if necessary */ + if(children_first) { + xodtemplate_service *tmp = p; + p = c; + c = tmp; + } temp_servicedependency->host_name = p->host_name; temp_servicedependency->service_description = p->service_description; temp_servicedependency->dependent_host_name = c->host_name; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-14 13:18:34
|
Revision: 2658 http://nagios.svn.sourceforge.net/nagios/?rev=2658&view=rev Author: ageric Date: 2013-03-14 13:18:25 +0000 (Thu, 14 Mar 2013) Log Message: ----------- core: Stop leaking the string to default logfile Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/base/config.c Modified: nagioscore/trunk/base/config.c =================================================================== --- nagioscore/trunk/base/config.c 2013-03-14 13:18:08 UTC (rev 2657) +++ nagioscore/trunk/base/config.c 2013-03-14 13:18:25 UTC (rev 2658) @@ -183,6 +183,7 @@ break; } + my_free(log_file); log_file = nspath_absolute(value, config_file_dir); } else if(!strcmp(variable, "debug_level")) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-14 13:18:14
|
Revision: 2657 http://nagios.svn.sourceforge.net/nagios/?rev=2657&view=rev Author: ageric Date: 2013-03-14 13:18:08 +0000 (Thu, 14 Mar 2013) Log Message: ----------- lib: .gitignore test-runcmd Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/lib/.gitignore Modified: nagioscore/trunk/lib/.gitignore =================================================================== --- nagioscore/trunk/lib/.gitignore 2013-03-14 13:17:50 UTC (rev 2656) +++ nagioscore/trunk/lib/.gitignore 2013-03-14 13:18:08 UTC (rev 2657) @@ -4,5 +4,6 @@ test-iobroker test-bitmap test-dkhash +test-runcmd wproc snprintf.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-14 13:17:59
|
Revision: 2656 http://nagios.svn.sourceforge.net/nagios/?rev=2656&view=rev Author: ageric Date: 2013-03-14 13:17:50 +0000 (Thu, 14 Mar 2013) Log Message: ----------- Makefile: Add 'test' to '.PHONY' Otherwise tests won't run now that we have a directory named 'test' as well. While at it, make sure the 'test' target runs the libnagios tests. Not very much will work if libnagios is broken, so we do those first. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/Makefile.in Modified: nagioscore/trunk/Makefile.in =================================================================== --- nagioscore/trunk/Makefile.in 2013-03-14 13:17:31 UTC (rev 2655) +++ nagioscore/trunk/Makefile.in 2013-03-14 13:17:50 UTC (rev 2656) @@ -203,6 +203,7 @@ devclean: distclean test: + cd $(SRC_LIB) && $(MAKE) test $(MAKE) test-perl $(MAKE) test-tap @@ -407,4 +408,4 @@ rm -f nagios-$(VERSION) # Targets that always get built -.PHONY: indent clean clean distclean dox +.PHONY: indent clean clean distclean dox test This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-14 13:17:42
|
Revision: 2655 http://nagios.svn.sourceforge.net/nagios/?rev=2655&view=rev Author: ageric Date: 2013-03-14 13:17:31 +0000 (Thu, 14 Mar 2013) Log Message: ----------- docs: Flesh out the config changes page a bit There are config management tools aplenty, and this way their authors can get all the information they need to make it work on Nagios 4 as well as it did on Nagios 3. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/docs/config-incompat3to4.dox Modified: nagioscore/trunk/docs/config-incompat3to4.dox =================================================================== --- nagioscore/trunk/docs/config-incompat3to4.dox 2013-03-09 22:07:58 UTC (rev 2654) +++ nagioscore/trunk/docs/config-incompat3to4.dox 2013-03-14 13:17:31 UTC (rev 2655) @@ -84,4 +84,36 @@ and 'use' one hostgroup from another. The same goes for all group types, and not just hostgroups. + +@section oconfchanges Object Configuration Changes +@subsection Deprecations +The "obsess_over_host" (for hosts) and "obsess_over_service" (for +services) configuration variables have been renamed to simply "obsess". +The old values will serve as aliases for the duration of the Nagios 4 +lifetime and will be removed in Nagios 5. Users should adjust their +configurations accordingly. + +@subsection additions Additions +Services have two new configurable values: +@li parents +@li hourly_value + +The 'parents' directive can be used to suppress notifications for a +service in much the same way that it can be used for hosts. If all +parents of a particular service are in a non-OK state when the child +service enters a HARD state (and should have notified), notifications +will be suppressed for the child service. + +The 'hourly_value' directive can be used to set a service 'value' of +the service in question. It works in tandem with a new directive for +contacts ("minimum_value") in order to suppress notifications, and +UI's are encouraged to take it into account to display the most severe +and valuable errors in a more prominent fashion. Note that it has no +currency attached to it, so whether you interpret it as affected_users, +business_value or whatever is entirely up to you. + +Contacts have one new configurable value, namely 'minimum_value', which +sets the minimum notification value for which the contact should get +notified. The notification value is determined by the total value of +all objects affected by the problem. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <est...@us...> - 2013-03-09 22:08:06
|
Revision: 2654 http://nagios.svn.sourceforge.net/nagios/?rev=2654&view=rev Author: estanley375 Date: 2013-03-09 22:07:58 +0000 (Sat, 09 Mar 2013) Log Message: ----------- Update version to 3.5.0rc2 Modified Paths: -------------- nagioscore/branches/nagios-3-4-x/base/nagios.c nagioscore/branches/nagios-3-4-x/base/nagiostats.c nagioscore/branches/nagios-3-4-x/configure nagioscore/branches/nagios-3-4-x/configure.in nagioscore/branches/nagios-3-4-x/html/main.php nagioscore/branches/nagios-3-4-x/include/common.h nagioscore/branches/nagios-3-4-x/nagios.spec nagioscore/branches/nagios-3-4-x/update-version Modified: nagioscore/branches/nagios-3-4-x/base/nagios.c =================================================================== --- nagioscore/branches/nagios-3-4-x/base/nagios.c 2013-03-09 21:46:35 UTC (rev 2653) +++ nagioscore/branches/nagios-3-4-x/base/nagios.c 2013-03-09 22:07:58 UTC (rev 2654) @@ -3,7 +3,7 @@ * NAGIOS.C - Core Program Code For Nagios * * Program: Nagios Core - * Version: 3.5.0rc1 + * Version: 3.5.0rc2 * License: GPL * Copyright (c) 2009-2010 Nagios Core Development Team and Community Contributors * Copyright (c) 1999-2009 Ethan Galstad Modified: nagioscore/branches/nagios-3-4-x/base/nagiostats.c =================================================================== --- nagioscore/branches/nagios-3-4-x/base/nagiostats.c 2013-03-09 21:46:35 UTC (rev 2653) +++ nagioscore/branches/nagios-3-4-x/base/nagiostats.c 2013-03-09 22:07:58 UTC (rev 2654) @@ -3,7 +3,7 @@ * NAGIOSTATS.C - Displays Nagios Statistics * * Program: Nagiostats - * Version: 3.5.0rc1 + * Version: 3.5.0rc2 * License: GPL * Copyright (c) 2003-2008 Ethan Galstad (ega...@na...) * Modified: nagioscore/branches/nagios-3-4-x/configure =================================================================== --- nagioscore/branches/nagios-3-4-x/configure 2013-03-09 21:46:35 UTC (rev 2653) +++ nagioscore/branches/nagios-3-4-x/configure 2013-03-09 22:07:58 UTC (rev 2654) @@ -1314,9 +1314,9 @@ PKG_NAME=nagios -PKG_VERSION="3.5.0rc1" +PKG_VERSION="3.5.0rc2" PKG_HOME_URL="http://www.nagios.org/" -PKG_REL_DATE="02-28-2013" +PKG_REL_DATE="03-09-2013" ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do Modified: nagioscore/branches/nagios-3-4-x/configure.in =================================================================== --- nagioscore/branches/nagios-3-4-x/configure.in 2013-03-09 21:46:35 UTC (rev 2653) +++ nagioscore/branches/nagios-3-4-x/configure.in 2013-03-09 22:07:58 UTC (rev 2654) @@ -9,9 +9,9 @@ AC_PREFIX_DEFAULT(/usr/local/nagios) PKG_NAME=nagios -PKG_VERSION="3.5.0rc1" +PKG_VERSION="3.5.0rc2" PKG_HOME_URL="http://www.nagios.org/" -PKG_REL_DATE="02-28-2013" +PKG_REL_DATE="03-09-2013" dnl Figure out how to invoke "install" and what install options to use. AC_PROG_INSTALL Modified: nagioscore/branches/nagios-3-4-x/html/main.php =================================================================== (Binary files differ) Modified: nagioscore/branches/nagios-3-4-x/include/common.h =================================================================== --- nagioscore/branches/nagios-3-4-x/include/common.h 2013-03-09 21:46:35 UTC (rev 2653) +++ nagioscore/branches/nagios-3-4-x/include/common.h 2013-03-09 22:07:58 UTC (rev 2654) @@ -22,8 +22,8 @@ #include "shared.h" -#define PROGRAM_VERSION "3.5.0rc1" -#define PROGRAM_MODIFICATION_DATE "02-28-2013" +#define PROGRAM_VERSION "3.5.0rc2" +#define PROGRAM_MODIFICATION_DATE "03-09-2013" /*#define DEBUG_CHECK_IPC 1 */ /*#define DEBUG_CHECK_IPC2 1*/ Modified: nagioscore/branches/nagios-3-4-x/nagios.spec =================================================================== --- nagioscore/branches/nagios-3-4-x/nagios.spec 2013-03-09 21:46:35 UTC (rev 2653) +++ nagioscore/branches/nagios-3-4-x/nagios.spec 2013-03-09 22:07:58 UTC (rev 2654) @@ -1,5 +1,5 @@ %define name nagios -%define version 3.5.0rc1 +%define version 3.5.0rc2 %define release 1 %define nsusr nagios %define nsgrp nagios Modified: nagioscore/branches/nagios-3-4-x/update-version =================================================================== --- nagioscore/branches/nagios-3-4-x/update-version 2013-03-09 21:46:35 UTC (rev 2653) +++ nagioscore/branches/nagios-3-4-x/update-version 2013-03-09 22:07:58 UTC (rev 2654) @@ -10,10 +10,10 @@ fi # Current version number -CURRENTVERSION=3.5.0rc1 +CURRENTVERSION=3.5.0rc2 # Last date -LASTDATE=02-28-2013 +LASTDATE=03-09-2013 if [ "x$1" = "x" ] then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <est...@us...> - 2013-03-09 21:46:45
|
Revision: 2653 http://nagios.svn.sourceforge.net/nagios/?rev=2653&view=rev Author: estanley375 Date: 2013-03-09 21:46:35 +0000 (Sat, 09 Mar 2013) Log Message: ----------- Results of running indent-all.sh Modified Paths: -------------- nagioscore/branches/nagios-3-4-x/base/checks.c nagioscore/branches/nagios-3-4-x/base/config.c nagioscore/branches/nagios-3-4-x/base/events.c nagioscore/branches/nagios-3-4-x/base/logging.c nagioscore/branches/nagios-3-4-x/base/nagios.c nagioscore/branches/nagios-3-4-x/base/notifications.c nagioscore/branches/nagios-3-4-x/base/utils.c nagioscore/branches/nagios-3-4-x/cgi/cgiauth.c nagioscore/branches/nagios-3-4-x/cgi/cgiutils.c nagioscore/branches/nagios-3-4-x/cgi/cmd.c nagioscore/branches/nagios-3-4-x/cgi/getcgi.c nagioscore/branches/nagios-3-4-x/cgi/history.c nagioscore/branches/nagios-3-4-x/cgi/status.c nagioscore/branches/nagios-3-4-x/common/comments.c nagioscore/branches/nagios-3-4-x/common/downtime.c nagioscore/branches/nagios-3-4-x/common/macros.c nagioscore/branches/nagios-3-4-x/xdata/xdddefault.c nagioscore/branches/nagios-3-4-x/xdata/xodtemplate.c nagioscore/branches/nagios-3-4-x/xdata/xpddefault.c nagioscore/branches/nagios-3-4-x/xdata/xrddefault.c Modified: nagioscore/branches/nagios-3-4-x/base/checks.c =================================================================== --- nagioscore/branches/nagios-3-4-x/base/checks.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/base/checks.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -2084,13 +2084,12 @@ * freshness threshold based on vast heuristical research (ie, "some * guy once told me the golden ratio is good for loads of stuff"). */ - if (temp_service->check_type == SERVICE_CHECK_PASSIVE) { - if (temp_service->last_check < event_start && - event_start - last_program_stop < freshness_threshold * 0.618) - { + if(temp_service->check_type == SERVICE_CHECK_PASSIVE) { + if(temp_service->last_check < event_start && + event_start - last_program_stop < freshness_threshold * 0.618) { expiration_time = event_start + freshness_threshold; + } } - } log_debug_info(DEBUGL_CHECKS, 2, "HBC: %d, PS: %lu, ES: %lu, LC: %lu, CT: %lu, ET: %lu\n", temp_service->has_been_checked, (unsigned long)program_start, (unsigned long)event_start, (unsigned long)temp_service->last_check, (unsigned long)current_time, (unsigned long)expiration_time); /* the results for the last check of this service are stale */ @@ -2223,7 +2222,7 @@ return; } - if (temp_event) { + if(temp_event) { remove_event(temp_event, &event_list_low, &event_list_low_tail); my_free(temp_event); } @@ -2495,13 +2494,12 @@ * freshness threshold based on vast heuristical research (ie, "some * guy once told me the golden ratio is good for loads of stuff"). */ - if (temp_host->check_type == HOST_CHECK_PASSIVE) { - if (temp_host->last_check < event_start && - event_start - last_program_stop > freshness_threshold * 0.618) - { + if(temp_host->check_type == HOST_CHECK_PASSIVE) { + if(temp_host->last_check < event_start && + event_start - last_program_stop > freshness_threshold * 0.618) { expiration_time = event_start + freshness_threshold; + } } - } log_debug_info(DEBUGL_CHECKS, 2, "HBC: %d, PS: %lu, ES: %lu, LC: %lu, CT: %lu, ET: %lu\n", temp_host->has_been_checked, (unsigned long)program_start, (unsigned long)event_start, (unsigned long)temp_host->last_check, (unsigned long)current_time, (unsigned long)expiration_time); Modified: nagioscore/branches/nagios-3-4-x/base/config.c =================================================================== --- nagioscore/branches/nagios-3-4-x/base/config.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/base/config.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -728,23 +728,23 @@ } } - - else if(!strcmp(variable,"service_check_timeout_state")){ - if(!strcmp(value,"o")) - service_check_timeout_state=STATE_OK; - else if(!strcmp(value,"w")) - service_check_timeout_state=STATE_WARNING; - else if(!strcmp(value,"c")) - service_check_timeout_state=STATE_CRITICAL; - else if(!strcmp(value,"u")) - service_check_timeout_state=STATE_UNKNOWN; - else{ - asprintf(&error_message,"Illegal value for service_check_timeout_state"); - error=TRUE; + else if(!strcmp(variable, "service_check_timeout_state")) { + + if(!strcmp(value, "o")) + service_check_timeout_state = STATE_OK; + else if(!strcmp(value, "w")) + service_check_timeout_state = STATE_WARNING; + else if(!strcmp(value, "c")) + service_check_timeout_state = STATE_CRITICAL; + else if(!strcmp(value, "u")) + service_check_timeout_state = STATE_UNKNOWN; + else { + asprintf(&error_message, "Illegal value for service_check_timeout_state"); + error = TRUE; break; - } } + } else if(!strcmp(variable, "host_check_timeout")) { Modified: nagioscore/branches/nagios-3-4-x/base/events.c =================================================================== --- nagioscore/branches/nagios-3-4-x/base/events.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/base/events.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -350,9 +350,9 @@ /* skip services whose checks are currently executing */ if(temp_service->is_executing) { - log_debug_info(DEBUGL_EVENTS, 2, - "Service check '%s' on host '%s' is already executing.\n", - temp_service->description, temp_service->host_name); + log_debug_info(DEBUGL_EVENTS, 2, + "Service check '%s' on host '%s' is already executing.\n", + temp_service->description, temp_service->host_name); continue; } @@ -428,9 +428,9 @@ } /* create a new service check event */ - log_debug_info(DEBUGL_EVENTS, 2, - "Scheduling check for service '%s' on host '%s'.\n", - temp_service->description, temp_service->host_name); + log_debug_info(DEBUGL_EVENTS, 2, + "Scheduling check for service '%s' on host '%s'.\n", + temp_service->description, temp_service->host_name); schedule_new_event(EVENT_SERVICE_CHECK, FALSE, temp_service->next_check, FALSE, 0, NULL, TRUE, (void *)temp_service, NULL, temp_service->check_options); } @@ -522,8 +522,8 @@ /* skip hosts whose checks are currently executing */ if(temp_host->is_executing) { - log_debug_info(DEBUGL_EVENTS, 2, - "Host check %s is already executing.\n", temp_host->name); + log_debug_info(DEBUGL_EVENTS, 2, + "Host check %s is already executing.\n", temp_host->name); continue; } @@ -578,8 +578,8 @@ } /* schedule a new host check event */ - log_debug_info(DEBUGL_EVENTS, 2, "Scheduling check for host '%s'.\n", - temp_host->name); + log_debug_info(DEBUGL_EVENTS, 2, "Scheduling check for host '%s'.\n", + temp_host->name); schedule_new_event(EVENT_HOST_CHECK, FALSE, temp_host->next_check, FALSE, 0, NULL, TRUE, (void *)temp_host, NULL, temp_host->check_options); } @@ -801,22 +801,22 @@ log_debug_info(DEBUGL_FUNCTIONS, 0, "schedule_new_event()\n"); get_datetime_string(&run_time, run_time_string, MAX_DATETIME_LENGTH, - SHORT_DATE_TIME); + SHORT_DATE_TIME); log_debug_info(DEBUGL_EVENTS, 0, "New Event Details:\n"); log_debug_info(DEBUGL_EVENTS, 0, " Type: %s\n", - EVENT_TYPE_STR( event_type)); + EVENT_TYPE_STR(event_type)); log_debug_info(DEBUGL_EVENTS, 0, " High Priority: %s\n", - ( high_priority ? "Yes" : "No")); + (high_priority ? "Yes" : "No")); log_debug_info(DEBUGL_EVENTS, 0, " Run Time: %s\n", - run_time_string); + run_time_string); log_debug_info(DEBUGL_EVENTS, 0, " Recurring: %s\n", - ( recurring ? "Yes" : "No")); + (recurring ? "Yes" : "No")); log_debug_info(DEBUGL_EVENTS, 0, " Event Interval: %lu\n", - event_interval); + event_interval); log_debug_info(DEBUGL_EVENTS, 0, " Compensate for Time Change: %s\n", - ( compensate_for_time_change ? "Yes" : "No")); + (compensate_for_time_change ? "Yes" : "No")); log_debug_info(DEBUGL_EVENTS, 0, " Event Options: %d\n", - event_options); + event_options); if(high_priority == TRUE) { event_list = &event_list_high; @@ -947,7 +947,7 @@ log_debug_info(DEBUGL_FUNCTIONS, 0, "remove_event()\n"); - if (!event) + if(!event) return; #ifdef USE_EVENT_BROKER @@ -960,18 +960,18 @@ prev_event = event->prev; next_event = event->next; - if (prev_event) { + if(prev_event) { prev_event->next = next_event; } - if (next_event) { + if(next_event) { next_event->prev = prev_event; } - if (!prev_event) { + if(!prev_event) { /* no previous event, so "next" is now first in list */ *event_list = next_event; } - if (!next_event) { + if(!next_event) { /* no following event, so "prev" is now last in list */ *event_list_tail = prev_event; } Modified: nagioscore/branches/nagios-3-4-x/base/logging.c =================================================================== --- nagioscore/branches/nagios-3-4-x/base/logging.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/base/logging.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -61,32 +61,35 @@ static pthread_mutex_t debug_fp_lock; /* These simple helpers should most likely be elsewhere */ -static const char *service_state_name(int state) -{ - switch (state) { - case STATE_OK: return "OK"; - case STATE_WARNING: return "WARNING"; - case STATE_CRITICAL: return "CRITICAL"; - } +static const char *service_state_name(int state) { + switch(state) { + case STATE_OK: + return "OK"; + case STATE_WARNING: + return "WARNING"; + case STATE_CRITICAL: + return "CRITICAL"; + } return "UNKNOWN"; -} - -static const char *host_state_name(int state) -{ - switch (state) { - case HOST_UP: return "UP"; - case HOST_DOWN: return "DOWN"; - case HOST_UNREACHABLE: return "UNREACHABLE"; } +static const char *host_state_name(int state) { + switch(state) { + case HOST_UP: + return "UP"; + case HOST_DOWN: + return "DOWN"; + case HOST_UNREACHABLE: + return "UNREACHABLE"; + } + return "(unknown)"; -} + } -static const char *state_type_name(int state_type) -{ +static const char *state_type_name(int state_type) { return state_type == HARD_STATE ? "HARD" : "SOFT"; -} + } /* * since we don't want child processes to hang indefinitely @@ -292,11 +295,11 @@ return ERROR; asprintf(&temp_buffer, "SERVICE ALERT: %s;%s;%s;%s;%d;%s\n", - svc->host_name, svc->description, - service_state_name(svc->current_state), - state_type_name(svc->state_type), - svc->current_attempt, - (svc->plugin_output == NULL) ? "" : svc->plugin_output); + svc->host_name, svc->description, + service_state_name(svc->current_state), + state_type_name(svc->state_type), + svc->current_attempt, + (svc->plugin_output == NULL) ? "" : svc->plugin_output); write_to_all_logs(temp_buffer, log_options); @@ -318,11 +321,11 @@ log_options = NSLOG_HOST_UP; asprintf(&temp_buffer, "HOST ALERT: %s;%s;%s;%d;%s\n", - hst->name, - host_state_name(hst->current_state), - state_type_name(hst->state_type), - hst->current_attempt, - (hst->plugin_output == NULL) ? "" : hst->plugin_output); + hst->name, + host_state_name(hst->current_state), + state_type_name(hst->state_type), + hst->current_attempt, + (hst->plugin_output == NULL) ? "" : hst->plugin_output); write_to_all_logs(temp_buffer, log_options); @@ -344,11 +347,11 @@ for(temp_host = host_list; temp_host != NULL; temp_host = temp_host->next) { asprintf(&temp_buffer, "%s HOST STATE: %s;%s;%s;%d;%s\n", (type == INITIAL_STATES) ? "INITIAL" : "CURRENT", - temp_host->name, - host_state_name(temp_host->current_state), - state_type_name(temp_host->state_type), - temp_host->current_attempt, - (temp_host->plugin_output == NULL) ? "" : temp_host->plugin_output); + temp_host->name, + host_state_name(temp_host->current_state), + state_type_name(temp_host->state_type), + temp_host->current_attempt, + (temp_host->plugin_output == NULL) ? "" : temp_host->plugin_output); write_to_all_logs_with_timestamp(temp_buffer, NSLOG_INFO_MESSAGE, timestamp); @@ -376,12 +379,12 @@ continue; asprintf(&temp_buffer, "%s SERVICE STATE: %s;%s;%s;%s;%d;%s\n", - (type == INITIAL_STATES) ? "INITIAL" : "CURRENT", - temp_service->host_name, temp_service->description, - service_state_name(temp_service->current_state), - state_type_name(temp_service->state_type), - temp_service->current_attempt, - temp_service->plugin_output); + (type == INITIAL_STATES) ? "INITIAL" : "CURRENT", + temp_service->host_name, temp_service->description, + service_state_name(temp_service->current_state), + state_type_name(temp_service->state_type), + temp_service->current_attempt, + temp_service->plugin_output); write_to_all_logs_with_timestamp(temp_buffer, NSLOG_INFO_MESSAGE, timestamp); @@ -502,10 +505,10 @@ if(debug_level == DEBUGL_NONE) return OK; - if( chown(debug_file, uid, gid) < 0) { - logit(NSLOG_RUNTIME_WARNING, TRUE, - "Failed to change ownership on debug log: %s.", - strerror( errno)); + if(chown(debug_file, uid, gid) < 0) { + logit(NSLOG_RUNTIME_WARNING, TRUE, + "Failed to change ownership on debug log: %s.", + strerror(errno)); return ERROR; } Modified: nagioscore/branches/nagios-3-4-x/base/nagios.c =================================================================== --- nagioscore/branches/nagios-3-4-x/base/nagios.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/base/nagios.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -9,7 +9,7 @@ * Copyright (c) 1999-2009 Ethan Galstad * * First Written: 01-28-1999 (start of development) - * Last Modified: + * Last Modified: * * Description: * @@ -98,7 +98,7 @@ unsigned long syslog_options = 0; int service_check_timeout = DEFAULT_SERVICE_CHECK_TIMEOUT; -int service_check_timeout_state=STATE_CRITICAL; +int service_check_timeout_state = STATE_CRITICAL; int host_check_timeout = DEFAULT_HOST_CHECK_TIMEOUT; int event_handler_timeout = DEFAULT_EVENT_HANDLER_TIMEOUT; int notification_timeout = DEFAULT_NOTIFICATION_TIMEOUT; Modified: nagioscore/branches/nagios-3-4-x/base/notifications.c =================================================================== --- nagioscore/branches/nagios-3-4-x/base/notifications.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/base/notifications.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -128,7 +128,7 @@ /* create the contact notification list for this service */ - /* 2011-11-01 MF: + /* 2011-11-01 MF: check viability before adding a contact to the notification list, requires type this prevents us from running through all @@ -975,10 +975,10 @@ if((temp_contact = temp_contactsmember->contact_ptr) == NULL) continue; /* check now if the contact can be notified */ - if (check_contact_service_notification_viability(temp_contact, svc, type, options) == OK) + if(check_contact_service_notification_viability(temp_contact, svc, type, options) == OK) add_notification(mac, temp_contact); else - log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n",temp_contact->name); + log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n", temp_contact->name); } log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Adding members of contact groups from service escalation(s) to notification list.\n"); @@ -992,10 +992,10 @@ if((temp_contact = temp_contactsmember->contact_ptr) == NULL) continue; /* check now if the contact can be notified */ - if (check_contact_service_notification_viability(temp_contact, svc, type, options) == OK) + if(check_contact_service_notification_viability(temp_contact, svc, type, options) == OK) add_notification(mac, temp_contact); else - log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n",temp_contact->name); + log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n", temp_contact->name); } } } @@ -1011,10 +1011,10 @@ if((temp_contact = temp_contactsmember->contact_ptr) == NULL) continue; /* check now if the contact can be notified */ - if (check_contact_service_notification_viability(temp_contact, svc, type, options) == OK) - add_notification(mac, temp_contact); - else - log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n",temp_contact->name); + if(check_contact_service_notification_viability(temp_contact, svc, type, options) == OK) + add_notification(mac, temp_contact); + else + log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n", temp_contact->name); } /* add all contacts that belong to contactgroups for this service */ @@ -1025,11 +1025,11 @@ for(temp_contactsmember = temp_contactgroup->members; temp_contactsmember != NULL; temp_contactsmember = temp_contactsmember->next) { if((temp_contact = temp_contactsmember->contact_ptr) == NULL) continue; - /* check now if the contact can be notified */ - if (check_contact_service_notification_viability(temp_contact, svc, type, options) == OK) - add_notification(mac, temp_contact); - else - log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n",temp_contact->name); + /* check now if the contact can be notified */ + if(check_contact_service_notification_viability(temp_contact, svc, type, options) == OK) + add_notification(mac, temp_contact); + else + log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n", temp_contact->name); } } } @@ -1107,7 +1107,7 @@ /* reset memory for local macro data */ memset(&mac, 0, sizeof(mac)); - /* 2011-11-01 MF: + /* 2011-11-01 MF: check viability before adding a contact to the notification list, requires type this prevents us from running through all @@ -1912,7 +1912,7 @@ if((temp_contact = temp_contactsmember->contact_ptr) == NULL) continue; /* check now if the contact can be notified */ - if (check_contact_host_notification_viability(temp_contact, hst, type, options) == OK) + if(check_contact_host_notification_viability(temp_contact, hst, type, options) == OK) add_notification(mac, temp_contact); else log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n", temp_contact->name); @@ -1928,11 +1928,11 @@ for(temp_contactsmember = temp_contactgroup->members; temp_contactsmember != NULL; temp_contactsmember = temp_contactsmember->next) { if((temp_contact = temp_contactsmember->contact_ptr) == NULL) continue; - /* check now if the contact can be notified */ - if (check_contact_host_notification_viability(temp_contact, hst, type, options) == OK) - add_notification(mac, temp_contact); - else - log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n", temp_contact->name); + /* check now if the contact can be notified */ + if(check_contact_host_notification_viability(temp_contact, hst, type, options) == OK) + add_notification(mac, temp_contact); + else + log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n", temp_contact->name); } } } @@ -1949,11 +1949,11 @@ for(temp_contactsmember = hst->contacts; temp_contactsmember != NULL; temp_contactsmember = temp_contactsmember->next) { if((temp_contact = temp_contactsmember->contact_ptr) == NULL) continue; - /* check now if the contact can be notified */ - if (check_contact_host_notification_viability(temp_contact, hst, type, options) == OK) - add_notification(mac, temp_contact); - else - log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n", temp_contact->name); + /* check now if the contact can be notified */ + if(check_contact_host_notification_viability(temp_contact, hst, type, options) == OK) + add_notification(mac, temp_contact); + else + log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n", temp_contact->name); } log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Adding members of contact groups for host to notification list.\n"); @@ -1967,11 +1967,11 @@ for(temp_contactsmember = temp_contactgroup->members; temp_contactsmember != NULL; temp_contactsmember = temp_contactsmember->next) { if((temp_contact = temp_contactsmember->contact_ptr) == NULL) continue; - /* check now if the contact can be notified */ - if (check_contact_host_notification_viability(temp_contact, hst, type, options) == OK) - add_notification(mac, temp_contact); - else - log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n", temp_contact->name); + /* check now if the contact can be notified */ + if(check_contact_host_notification_viability(temp_contact, hst, type, options) == OK) + add_notification(mac, temp_contact); + else + log_debug_info(DEBUGL_NOTIFICATIONS, 2, "Not adding contact '%s'\n", temp_contact->name); } } } Modified: nagioscore/branches/nagios-3-4-x/base/utils.c =================================================================== --- nagioscore/branches/nagios-3-4-x/base/utils.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/base/utils.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -2136,7 +2136,7 @@ } #endif /* Change the ownership on the debug log file */ - chown_debug_log( uid, gid); + chown_debug_log(uid, gid); if(setuid(uid) == -1) { logit(NSLOG_RUNTIME_WARNING, TRUE, "Warning: Could not set effective UID=%d", (int)uid); @@ -2284,8 +2284,8 @@ continue; /* process the file */ - result = process_check_result_file(file, &check_result_list, - TRUE, TRUE); + result = process_check_result_file(file, &check_result_list, + TRUE, TRUE); /* break out if we encountered an error */ if(result == ERROR) @@ -2302,7 +2302,7 @@ -/* Find checks that are currently executing. This function is intended to +/* Find checks that are currently executing. This function is intended to be used on a Nagios restart to prevent currently executing checks from being rescheduled. */ int find_executing_checks(char *dirname) { @@ -2343,7 +2343,7 @@ /* process this if it's a check result file... */ x = strlen(dirfile->d_name); - if(x == 11 && !strncmp( dirfile->d_name, "check", 5)) { + if(x == 11 && !strncmp(dirfile->d_name, "check", 5)) { if(stat(file, &stat_buf) == -1) { logit(NSLOG_RUNTIME_WARNING, TRUE, "Warning: Could not stat() check status '%s'.\n", file); @@ -2365,8 +2365,8 @@ } /* at this point we have a regular file... */ - log_debug_info(DEBUGL_CHECKS, 2, - "Looking for still-executing checks in %s.\n", file); + log_debug_info(DEBUGL_CHECKS, 2, + "Looking for still-executing checks in %s.\n", file); /* process the file */ result = process_check_result_file(file, &crl, FALSE, FALSE); @@ -2378,42 +2378,42 @@ time(¤t_time); /* examine the check results */ - while(( cr = read_check_result(&crl)) != NULL) { - if( HOST_CHECK == cr->object_check_type) { - log_debug_info(DEBUGL_CHECKS, 2, - "Determining whether check for host '%s' is still executing.\n", - cr->host_name); + while((cr = read_check_result(&crl)) != NULL) { + if(HOST_CHECK == cr->object_check_type) { + log_debug_info(DEBUGL_CHECKS, 2, + "Determining whether check for host '%s' is still executing.\n", + cr->host_name); if((host = find_host(cr->host_name)) == NULL) { - logit(NSLOG_RUNTIME_WARNING, TRUE, - "Warning: Check status contained host '%s', " - "but the host could not be found! Ignoring " - "check.\n", cr->host_name); + logit(NSLOG_RUNTIME_WARNING, TRUE, + "Warning: Check status contained host '%s', " + "but the host could not be found! Ignoring " + "check.\n", cr->host_name); } - else if( current_time - cr->start_time.tv_sec < - host_check_timeout) { - log_debug_info(DEBUGL_CHECKS, 1, - "Check for host %s is still executing.\n", - cr->host_name); + else if(current_time - cr->start_time.tv_sec < + host_check_timeout) { + log_debug_info(DEBUGL_CHECKS, 1, + "Check for host %s is still executing.\n", + cr->host_name); host->is_executing = TRUE; } } - else if( SERVICE_CHECK == cr->object_check_type) { - log_debug_info(DEBUGL_CHECKS, 2, - "Determining whether check for service '%s' on host '%s' is still executing.\n", - cr->host_name, cr->service_description); - if((svc = find_service(cr->host_name, - cr->service_description)) == NULL) { - logit(NSLOG_RUNTIME_WARNING, TRUE, - "Warning: Check status contained service '%s' " - "on host '%s', but the service could not be " - "found! Ignoring check.\n", - cr->service_description, cr->host_name); + else if(SERVICE_CHECK == cr->object_check_type) { + log_debug_info(DEBUGL_CHECKS, 2, + "Determining whether check for service '%s' on host '%s' is still executing.\n", + cr->host_name, cr->service_description); + if((svc = find_service(cr->host_name, + cr->service_description)) == NULL) { + logit(NSLOG_RUNTIME_WARNING, TRUE, + "Warning: Check status contained service '%s' " + "on host '%s', but the service could not be " + "found! Ignoring check.\n", + cr->service_description, cr->host_name); } - else if( current_time - cr->start_time.tv_sec < - service_check_timeout) { - log_debug_info(DEBUGL_CHECKS, 1, - "Check for service %s:%s is still executing.\n", - cr->host_name, cr->service_description); + else if(current_time - cr->start_time.tv_sec < + service_check_timeout) { + log_debug_info(DEBUGL_CHECKS, 1, + "Check for service %s:%s is still executing.\n", + cr->host_name, cr->service_description); svc->is_executing = TRUE; } } @@ -2478,8 +2478,8 @@ if(new_cr) { /* do we have the minimum amount of data? */ - if(new_cr->host_name != NULL && - ( !need_output || new_cr->output != NULL)) { + if(new_cr->host_name != NULL && + (!need_output || new_cr->output != NULL)) { /* add check result to list in memory */ add_check_result_to_list(listp, new_cr); @@ -2574,8 +2574,8 @@ if(new_cr) { /* do we have the minimum amount of data? */ - if(new_cr->host_name != NULL && - ( !need_output || new_cr->output != NULL)) { + if(new_cr->host_name != NULL && + (!need_output || new_cr->output != NULL)) { /* add check result to list in memory */ add_check_result_to_list(listp, new_cr); @@ -3259,10 +3259,10 @@ return FALSE; /* grab the first line - we should see Perl. go home if not */ - if (fgets(buf, 80, fp) == NULL || strstr(buf, "/bin/perl") == NULL) { + if(fgets(buf, 80, fp) == NULL || strstr(buf, "/bin/perl") == NULL) { fclose(fp); return FALSE; - } + } /* epn directives must be found in first ten lines of plugin */ for(line = 1; line < 10; line++) { @@ -3275,7 +3275,7 @@ if(strstr(buf, "# nagios:")) { char *p; p = strstr(buf + 8, "epn"); - if (!p) + if(!p) continue; /* @@ -4135,7 +4135,7 @@ /* free memory for the high priority event list */ this_event = event_list_high; while(this_event != NULL) { - if (this_event->event_type == EVENT_SCHEDULED_DOWNTIME) + if(this_event->event_type == EVENT_SCHEDULED_DOWNTIME) my_free(this_event->event_data); next_event = this_event->next; my_free(this_event); @@ -4148,7 +4148,7 @@ /* free memory for the low priority event list */ this_event = event_list_low; while(this_event != NULL) { - if (this_event->event_type == EVENT_SCHEDULED_DOWNTIME) + if(this_event->event_type == EVENT_SCHEDULED_DOWNTIME) my_free(this_event->event_data); next_event = this_event->next; my_free(this_event); Modified: nagioscore/branches/nagios-3-4-x/cgi/cgiauth.c =================================================================== --- nagioscore/branches/nagios-3-4-x/cgi/cgiauth.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/cgi/cgiauth.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -336,7 +336,7 @@ if(is_authorized_for_service(temp_service, authinfo) == TRUE) return TRUE; } - + /*return TRUE*/; return FALSE; } Modified: nagioscore/branches/nagios-3-4-x/cgi/cgiutils.c =================================================================== --- nagioscore/branches/nagios-3-4-x/cgi/cgiutils.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/cgi/cgiutils.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -329,8 +329,8 @@ else if(!strcmp(var, "refresh_rate")) refresh_rate = atoi(val); - - /* page limit added 2/1/2012 -MG */ + + /* page limit added 2/1/2012 -MG */ else if(!strcmp(var, "result_limit")) result_limit = atoi(val); @@ -374,11 +374,11 @@ snprintf(url_media_path, sizeof(url_media_path), "%smedia/", url_html_path); url_media_path[sizeof(url_media_path) - 1] = '\x0'; - - /* added JS directory 2/1/2012 -MG */ + + /* added JS directory 2/1/2012 -MG */ snprintf(url_js_path, sizeof(url_js_path), "%sjs/", url_html_path); url_js_path[sizeof(url_js_path) - 1] = '\x0'; - + } else if(!strcmp(var, "service_critical_sound")) @@ -974,104 +974,104 @@ /* we need up to six times the space to do the conversion */ len = (int)strlen(input); output_max = len * 6; - if(( outstp = encoded_html_string = (char *)malloc(output_max + 1)) == NULL) + if((outstp = encoded_html_string = (char *)malloc(output_max + 1)) == NULL) return ""; strcpy(encoded_html_string, ""); /* Convert the string to a wide character string */ - if(( wcinput = malloc( len * sizeof( wchar_t))) == NULL) { + if((wcinput = malloc(len * sizeof(wchar_t))) == NULL) { return ""; } - if(( mbstowcs_result = mbstowcs( wcinput, input, len)) < 0) { - free( wcinput); + if((mbstowcs_result = mbstowcs(wcinput, input, len)) < 0) { + free(wcinput); return ""; } /* Process all converted characters */ - for( x = 0, inwcp = wcinput; x < mbstowcs_result && '\0' != *inwcp; x++, inwcp++) { + for(x = 0, inwcp = wcinput; x < mbstowcs_result && '\0' != *inwcp; x++, inwcp++) { /* Most ASCII characters don't get encoded */ - if(( *inwcp >= 0x20 && *inwcp <= 0x7e) && - ( !( '"' == *inwcp || '&' == *inwcp || '\'' == *inwcp || - '<' == *inwcp || '>' == *inwcp))) { - wctomb_result = wctomb( mbtemp, *inwcp); - if(( wctomb_result > 0) && - ((( outstp - encoded_html_string) + wctomb_result) < output_max)) { - strncpy( outstp, mbtemp, wctomb_result); + if((*inwcp >= 0x20 && *inwcp <= 0x7e) && + (!('"' == *inwcp || '&' == *inwcp || '\'' == *inwcp || + '<' == *inwcp || '>' == *inwcp))) { + wctomb_result = wctomb(mbtemp, *inwcp); + if((wctomb_result > 0) && + (((outstp - encoded_html_string) + wctomb_result) < output_max)) { + strncpy(outstp, mbtemp, wctomb_result); outstp += wctomb_result; } } /* newlines turn to <BR> tags */ else if(escape_newlines == TRUE && '\n' == *inwcp) { - strncpy( outstp, "<BR>", 4); + strncpy(outstp, "<BR>", 4); outstp += 4; } - else if(escape_newlines == TRUE && '\\' == *inwcp && '\n' == *( inwcp + 1)) { - strncpy( outstp, "<BR>", 4); + else if(escape_newlines == TRUE && '\\' == *inwcp && '\n' == *(inwcp + 1)) { + strncpy(outstp, "<BR>", 4); outstp += 4; inwcp++; /* needed so loop skips two wide characters */ } /* TODO - strip all but allowed HTML tags out... */ - else if( '<' == *inwcp) { + else if('<' == *inwcp) { if(escape_html_tags == FALSE) { - wctomb_result = wctomb( mbtemp, *inwcp); - if(( wctomb_result > 0) && - ((( outstp - encoded_html_string) + wctomb_result) < output_max)) { - strncpy( outstp, mbtemp, wctomb_result); + wctomb_result = wctomb(mbtemp, *inwcp); + if((wctomb_result > 0) && + (((outstp - encoded_html_string) + wctomb_result) < output_max)) { + strncpy(outstp, mbtemp, wctomb_result); outstp += wctomb_result; } } else { - if((( outstp - encoded_html_string) + 4) < output_max) { - strncpy( outstp, "<", 4); + if(((outstp - encoded_html_string) + 4) < output_max) { + strncpy(outstp, "<", 4); outstp += 4; } } } - else if( '>' == *inwcp) { + else if('>' == *inwcp) { if(escape_html_tags == FALSE) { - wctomb_result = wctomb( mbtemp, *inwcp); - if(( wctomb_result > 0) && - ((( outstp - encoded_html_string) + wctomb_result) < output_max)) { - strncpy( outstp, mbtemp, wctomb_result); + wctomb_result = wctomb(mbtemp, *inwcp); + if((wctomb_result > 0) && + (((outstp - encoded_html_string) + wctomb_result) < output_max)) { + strncpy(outstp, mbtemp, wctomb_result); outstp += wctomb_result; } } else { - if((( outstp - encoded_html_string) + 4) < output_max) { - strncpy( outstp, ">", 4); + if(((outstp - encoded_html_string) + 4) < output_max) { + strncpy(outstp, ">", 4); outstp += 4; } } } - /* When not escaping HTML tags, don't encode quotes or ampersands + /* When not escaping HTML tags, don't encode quotes or ampersands (left and right carets are handled above */ - else if((escape_html_tags == FALSE) && ( '"' == *inwcp || - '&' == *inwcp || '\'' == *inwcp)) { - wctomb_result = wctomb( mbtemp, *inwcp); - if(( wctomb_result > 0) && - ((( outstp - encoded_html_string) + wctomb_result) < output_max)) { - strncpy( outstp, mbtemp, wctomb_result); + else if((escape_html_tags == FALSE) && ('"' == *inwcp || + '&' == *inwcp || '\'' == *inwcp)) { + wctomb_result = wctomb(mbtemp, *inwcp); + if((wctomb_result > 0) && + (((outstp - encoded_html_string) + wctomb_result) < output_max)) { + strncpy(outstp, mbtemp, wctomb_result); outstp += wctomb_result; } } /* for simplicity, all other chars represented by their numeric value */ else { - sprintf( temp_expansion, "&#%u;", *( unsigned int *)inwcp); - if((( outstp - encoded_html_string) + strlen( temp_expansion)) < - output_max) { - strncpy( outstp, temp_expansion, strlen( temp_expansion)); - outstp += strlen( temp_expansion); + sprintf(temp_expansion, "&#%u;", *(unsigned int *)inwcp); + if(((outstp - encoded_html_string) + strlen(temp_expansion)) < + output_max) { + strncpy(outstp, temp_expansion, strlen(temp_expansion)); + outstp += strlen(temp_expansion); } } } @@ -1119,46 +1119,46 @@ char temp_expansion[10]; /* If they don't give us anything to do... */ - if( NULL == input) { + if(NULL == input) { return ""; } /* We need up to six times the space to do the conversion */ len = (int)strlen(input); output_max = len * 6; - if(( stp = encoded_html_string = (char *)malloc(output_max + 1)) == NULL) + if((stp = encoded_html_string = (char *)malloc(output_max + 1)) == NULL) return ""; strcpy(encoded_html_string, ""); /* Get the first multibyte character in the input string */ - mbtowc_result = mbtowc( wctemp, input, MB_CUR_MAX); + mbtowc_result = mbtowc(wctemp, input, MB_CUR_MAX); /* Process all characters until a null character is found */ - while( 0 != mbtowc_result) { /* 0 indicates a null character was found */ + while(0 != mbtowc_result) { /* 0 indicates a null character was found */ - if(( size_t)-2 == mbtowc_result) { + if((size_t) - 2 == mbtowc_result) { /* No complete multibyte character found - try at next memory address */ input++; } - else if((( size_t)-1 == mbtowc_result) && ( EILSEQ == errno)) { + else if(((size_t) - 1 == mbtowc_result) && (EILSEQ == errno)) { /* Invalid multibyte character found - try at next memory address */ input++; } - /* Alpha-numeric characters and a few other characters don't get + /* Alpha-numeric characters and a few other characters don't get encoded */ - else if(( *wctemp >= '0' && *wctemp <= '9') || - ( *wctemp >= 'A' && *wctemp <= 'Z') || - ( *wctemp >= 'a' && *wctemp <= 'z') || - ' ' == *wctemp || '-' == *wctemp || '.' == *wctemp || - '_' == *wctemp || ':' == *wctemp) { - wctomb_result = wctomb( mbtemp, wctemp[0]); - if(( wctomb_result > 0) && - ((( stp - encoded_html_string) + wctomb_result) < output_max)) { - strncpy( stp, mbtemp, wctomb_result); + else if((*wctemp >= '0' && *wctemp <= '9') || + (*wctemp >= 'A' && *wctemp <= 'Z') || + (*wctemp >= 'a' && *wctemp <= 'z') || + ' ' == *wctemp || '-' == *wctemp || '.' == *wctemp || + '_' == *wctemp || ':' == *wctemp) { + wctomb_result = wctomb(mbtemp, wctemp[0]); + if((wctomb_result > 0) && + (((stp - encoded_html_string) + wctomb_result) < output_max)) { + strncpy(stp, mbtemp, wctomb_result); stp += wctomb_result; } input += mbtowc_result; @@ -1166,17 +1166,17 @@ /* Encode everything else (this may be excessive) */ else { - sprintf( temp_expansion, "&#%u;", ( unsigned int)wctemp[ 0]); - if((( stp - encoded_html_string) + strlen( temp_expansion)) < - output_max) { - strncpy( stp, temp_expansion, strlen( temp_expansion)); - stp += strlen( temp_expansion); + sprintf(temp_expansion, "&#%u;", (unsigned int)wctemp[ 0]); + if(((stp - encoded_html_string) + strlen(temp_expansion)) < + output_max) { + strncpy(stp, temp_expansion, strlen(temp_expansion)); + stp += strlen(temp_expansion); } input += mbtowc_result; } /* Read the next character */ - mbtowc_result = mbtowc( wctemp, input, MB_CUR_MAX); + mbtowc_result = mbtowc(wctemp, input, MB_CUR_MAX); } /* Null terminate the encoded string */ Modified: nagioscore/branches/nagios-3-4-x/cgi/cmd.c =================================================================== --- nagioscore/branches/nagios-3-4-x/cgi/cmd.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/cgi/cmd.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -219,7 +219,7 @@ free_object_data(); return OK; - } + } /* if no command was specified... */ if(command_type == CMD_NONE) { Modified: nagioscore/branches/nagios-3-4-x/cgi/getcgi.c =================================================================== --- nagioscore/branches/nagios-3-4-x/cgi/getcgi.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/cgi/getcgi.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -129,7 +129,7 @@ /* Attempt to set the locale */ accept_language = getenv("HTTP_ACCEPT_LANGUAGE"); - process_language( accept_language); + process_language(accept_language); /* depending on the request method, read all CGI input into cgiinput */ @@ -142,7 +142,7 @@ /* check for NULL query string environment variable - 04/28/00 (Ludo Bosmans) */ if(getenv("QUERY_STRING") == NULL) { cgiinput = (char *)malloc(1); - if(cgiinput != NULL) + if(cgiinput != NULL) cgiinput[0] = '\x0'; } else @@ -227,7 +227,7 @@ nvpair = strtok(cgiinput, "&"); while(nvpair) { pairlist[paircount] = strdup(nvpair); - if( NULL == pairlist[paircount]) { + if(NULL == pairlist[paircount]) { printf("getcgivars(): Could not allocate memory for name-value pair #%d.\n", paircount); exit(1); } @@ -257,7 +257,7 @@ if((eqpos = strchr(pairlist[i], '=')) != NULL) { *eqpos = '\0'; cgivars[i * 2 + 1] = strdup(eqpos + 1); - if( NULL == cgivars[ i * 2 + 1]) { + if(NULL == cgivars[ i * 2 + 1]) { printf("getcgivars(): Could not allocate memory for cgi value #%d.\n", i); exit(1); } @@ -265,7 +265,7 @@ } else { cgivars[i * 2 + 1] = strdup(""); - if( NULL == cgivars[ i * 2 + 1]) { + if(NULL == cgivars[ i * 2 + 1]) { printf("getcgivars(): Could not allocate memory for empty stringfor variable value #%d.\n", i); exit(1); } @@ -274,7 +274,7 @@ /* get the variable value (or name/value of there was no real "pair" in the first place) */ cgivars[i * 2] = strdup(pairlist[i]); - if( NULL == cgivars[ i * 2]) { + if(NULL == cgivars[ i * 2]) { printf("getcgivars(): Could not allocate memory for cgi name #%d.\n", i); exit(1); } @@ -299,42 +299,42 @@ /* Set the locale based on the HTTP_ACCEPT_LANGUAGE variable value sent by the browser */ -void process_language( char * accept_language) { +void process_language(char * accept_language) { accept_languages *accept_langs = NULL; int x; char locale_string[ 64]; char * locale = NULL; char * locale_failsafe[] = { "en_US.utf8", "POSIX", "C" }; - if( accept_language != NULL) { - accept_langs = parse_accept_languages( accept_language); - } + if(accept_language != NULL) { + accept_langs = parse_accept_languages(accept_language); + } - if( NULL != accept_langs) { + if(NULL != accept_langs) { /* Sort the results */ - qsort( accept_langs->languages, accept_langs->count, - sizeof( accept_langs->languages[ 0]), compare_accept_languages); + qsort(accept_langs->languages, accept_langs->count, + sizeof(accept_langs->languages[ 0]), compare_accept_languages); /* Try each language in order of priority */ - for( x = 0; (( x < accept_langs->count) && ( NULL == locale)); x++) { - snprintf( locale_string, sizeof( locale_string), "%s_%s.%s", - accept_langs->languages[ x]->language, - accept_langs->languages[ x]->locality, "utf8"); - locale = setlocale( LC_ALL, locale_string); + for(x = 0; ((x < accept_langs->count) && (NULL == locale)); x++) { + snprintf(locale_string, sizeof(locale_string), "%s_%s.%s", + accept_langs->languages[ x]->language, + accept_langs->languages[ x]->locality, "utf8"); + locale = setlocale(LC_ALL, locale_string); + } + + free_accept_languages(accept_langs); } - - free_accept_languages( accept_langs); - } - if( NULL == locale) { /* Still isn't set */ + if(NULL == locale) { /* Still isn't set */ /* Try the fail safe locales */ - for( x = 0; (( x < ( sizeof( locale_failsafe) / sizeof( char *))) && - ( NULL == locale)); x++) { - locale = setlocale( LC_ALL, locale_failsafe[ x]); + for(x = 0; ((x < (sizeof(locale_failsafe) / sizeof(char *))) && + (NULL == locale)); x++) { + locale = setlocale(LC_ALL, locale_failsafe[ x]); + } } } -} -accept_languages * parse_accept_languages( char * acceptlang) { +accept_languages * parse_accept_languages(char * acceptlang) { char * langdup; /* Duplicate of accept language for parsing */ accept_languages *langs = NULL; char * langtok; /* Language token (language + locality + q value) */ @@ -346,164 +346,164 @@ /* If the browser did not pass an HTTP_ACCEPT_LANGUAGE variable, there is not much we can do */ - if( NULL == acceptlang) { + if(NULL == acceptlang) { return NULL; - } + } /* Duplicate the browser supplied HTTP_ACCEPT_LANGUAGE variable */ - if( NULL == ( langdup = strdup( acceptlang))) { - printf( "Unable to allocate memory for langdup\n"); + if(NULL == (langdup = strdup(acceptlang))) { + printf("Unable to allocate memory for langdup\n"); return NULL; - } + } /* Initialize the structure to contain the parsed HTTP_ACCEPT_LANGUAGE information */ - if( NULL == ( langs = malloc( sizeof( accept_languages)))) { - printf( "Unable to allocate memory for langs\n"); - free( langdup); + if(NULL == (langs = malloc(sizeof(accept_languages)))) { + printf("Unable to allocate memory for langs\n"); + free(langdup); return NULL; - } + } langs->count = 0; - langs->languages = ( accept_language **)NULL; + langs->languages = (accept_language **)NULL; /* Tokenize the HTTP_ACCEPT_LANGUAGE string */ - langtok = strtok_r( langdup, ",", &saveptr); - while( langtok != NULL) { + langtok = strtok_r(langdup, ",", &saveptr); + while(langtok != NULL) { /* Bump the count and allocate memory for structures */ langs->count++; - if( NULL == langs->languages) { + if(NULL == langs->languages) { /* Adding first language */ - if( NULL == ( langs->languages = - malloc( langs->count * sizeof( accept_language *)))) { - printf( "Unable to allocate memory for first language\n"); + if(NULL == (langs->languages = + malloc(langs->count * sizeof(accept_language *)))) { + printf("Unable to allocate memory for first language\n"); langs->count--; - free_accept_languages( langs); - free( langdup); + free_accept_languages(langs); + free(langdup); return NULL; + } } - } else { /* Adding additional language */ - if( NULL == ( langs->languages = realloc( langs->languages, - langs->count * sizeof( accept_language *)))) { - printf( "Unable to allocate memory for additional language\n"); + if(NULL == (langs->languages = realloc(langs->languages, + langs->count * sizeof(accept_language *)))) { + printf("Unable to allocate memory for additional language\n"); langs->count--; - free_accept_languages( langs); - free( langdup); + free_accept_languages(langs); + free(langdup); return NULL; + } } - } - if( NULL == ( langs->languages[ langs->count - 1] = - malloc( sizeof( accept_language)))) { - printf( "Unable to allocate memory for language\n"); + if(NULL == (langs->languages[ langs->count - 1] = + malloc(sizeof(accept_language)))) { + printf("Unable to allocate memory for language\n"); langs->count--; - free_accept_languages( langs); - free( langdup); + free_accept_languages(langs); + free(langdup); return NULL; - } - langs->languages[ langs->count - 1]->language = ( char *)NULL; - langs->languages[ langs->count - 1]->locality = ( char *)NULL; + } + langs->languages[ langs->count - 1]->language = (char *)NULL; + langs->languages[ langs->count - 1]->locality = (char *)NULL; langs->languages[ langs->count - 1]->q = 1.0; - + /* Check to see if there is a q value */ - qdelim = strstr( langtok, ACCEPT_LANGUAGE_Q_DELIMITER); + qdelim = strstr(langtok, ACCEPT_LANGUAGE_Q_DELIMITER); - if( NULL != qdelim) { /* found a q value */ - langs->languages[ langs->count - 1]->q = - strtod( qdelim + strlen( ACCEPT_LANGUAGE_Q_DELIMITER), NULL); + if(NULL != qdelim) { /* found a q value */ + langs->languages[ langs->count - 1]->q = + strtod(qdelim + strlen(ACCEPT_LANGUAGE_Q_DELIMITER), NULL); langtok[ qdelim - langtok] = '\0'; - } + } /* Check to see if there is a locality specifier */ - if( NULL == ( localitydelim = strchr( langtok, '-'))) { - localitydelim = strchr( langtok, '_'); - } + if(NULL == (localitydelim = strchr(langtok, '-'))) { + localitydelim = strchr(langtok, '_'); + } - if( NULL != localitydelim) { + if(NULL != localitydelim) { /* We have a locality delimiter, so copy it */ - if( NULL == ( langs->languages[ langs->count - 1]->locality = - strdup( localitydelim + 1))) { - printf( "Unable to allocate memory for locality '%s'\n", - langtok); - free_accept_languages( langs); - free( langdup); + if(NULL == (langs->languages[ langs->count - 1]->locality = + strdup(localitydelim + 1))) { + printf("Unable to allocate memory for locality '%s'\n", + langtok); + free_accept_languages(langs); + free(langdup); return NULL; - } + } /* Ensure it is upper case */ - for( x = 0, stp = langs->languages[ langs->count - 1]->locality; - x < strlen( langs->languages[ langs->count - 1]->locality); - x++, stp++) { - *stp = toupper( *stp); - } + for(x = 0, stp = langs->languages[ langs->count - 1]->locality; + x < strlen(langs->languages[ langs->count - 1]->locality); + x++, stp++) { + *stp = toupper(*stp); + } /* Then null out the delimiter so the language copy works */ *localitydelim = '\0'; - } - if( NULL == ( langs->languages[ langs->count - 1]->language = - strdup( langtok))) { - printf( "Unable to allocate memory for language '%s'\n", - langtok); - free_accept_languages( langs); - free( langdup); + } + if(NULL == (langs->languages[ langs->count - 1]->language = + strdup(langtok))) { + printf("Unable to allocate memory for language '%s'\n", + langtok); + free_accept_languages(langs); + free(langdup); return NULL; + } + + /* Get the next language token */ + langtok = strtok_r(NULL, ",", &saveptr); } - /* Get the next language token */ - langtok = strtok_r( NULL, ",", &saveptr); + free(langdup); + return langs; } - free( langdup); - return langs; -} +int compare_accept_languages(const void *p1, const void *p2) { + accept_language * lang1 = *(accept_language **)p1; + accept_language * lang2 = *(accept_language **)p2; -int compare_accept_languages( const void *p1, const void *p2) { - accept_language * lang1 = *( accept_language **)p1; - accept_language * lang2 = *( accept_language **)p2; - - if( lang1->q == lang2->q) { - if((( NULL == lang1->locality) && ( NULL == lang2->locality)) || - (( NULL != lang1->locality) && ( NULL != lang2->locality))) { + if(lang1->q == lang2->q) { + if(((NULL == lang1->locality) && (NULL == lang2->locality)) || + ((NULL != lang1->locality) && (NULL != lang2->locality))) { return 0; - } - else if( NULL != lang1->locality) { + } + else if(NULL != lang1->locality) { return -1; - } + } else { /* NULL != lang2->locality */ return 1; + } } - } else { - return( lang2->q > lang1->q); + return(lang2->q > lang1->q); + } } -} -void free_accept_languages( accept_languages * langs) { +void free_accept_languages(accept_languages * langs) { int x; - if( NULL == langs) { + if(NULL == langs) { return; - } + } - for( x = 0; x < langs->count; x++) { - if( NULL != langs->languages[ x]) { - if( langs->languages[ x]->language != NULL) { - free( langs->languages[ x]->language); + for(x = 0; x < langs->count; x++) { + if(NULL != langs->languages[ x]) { + if(langs->languages[ x]->language != NULL) { + free(langs->languages[ x]->language); + } + if(langs->languages[ x]->locality != NULL) { + free(langs->languages[ x]->locality); + } + free(langs->languages[ x]); } - if( langs->languages[ x]->locality != NULL) { - free( langs->languages[ x]->locality); - } - free( langs->languages[ x]); } - } - if( langs->languages != NULL) { - free( langs->languages); - } - free( langs); + if(langs->languages != NULL) { + free(langs->languages); + } + free(langs); return; -} + } /* free() memory allocated to storing the CGI variables */ void free_cgivars(char **cgivars) { Modified: nagioscore/branches/nagios-3-4-x/cgi/history.c =================================================================== --- nagioscore/branches/nagios-3-4-x/cgi/history.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/cgi/history.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -805,22 +805,22 @@ else if(display_type == DISPLAY_HOSTS) { if(history_type == HOST_HISTORY || history_type == SERVICE_HISTORY) { - snprintf(match1, sizeof( match1), - " HOST ALERT: %s;", host_name); - snprintf(match2, sizeof( match2), - " SERVICE ALERT: %s;", host_name); + snprintf(match1, sizeof(match1), + " HOST ALERT: %s;", host_name); + snprintf(match2, sizeof(match2), + " SERVICE ALERT: %s;", host_name); } else if(history_type == HOST_FLAPPING_HISTORY || history_type == SERVICE_FLAPPING_HISTORY) { - snprintf(match1, sizeof( match1), - " HOST FLAPPING ALERT: %s;", host_name); - snprintf(match2, sizeof( match2), - " SERVICE FLAPPING ALERT: %s;", host_name); + snprintf(match1, sizeof(match1), + " HOST FLAPPING ALERT: %s;", host_name); + snprintf(match2, sizeof(match2), + " SERVICE FLAPPING ALERT: %s;", host_name); } else if(history_type == HOST_DOWNTIME_HISTORY || history_type == SERVICE_DOWNTIME_HISTORY) { - snprintf(match1, sizeof( match1), - " HOST DOWNTIME ALERT: %s;", host_name); - snprintf(match2, sizeof( match2), - " SERVICE DOWNTIME ALERT: %s;", host_name); + snprintf(match1, sizeof(match1), + " HOST DOWNTIME ALERT: %s;", host_name); + snprintf(match2, sizeof(match2), + " SERVICE DOWNTIME ALERT: %s;", host_name); } if(show_all_hosts == TRUE) @@ -859,11 +859,11 @@ else if(display_type == DISPLAY_SERVICES) { if(history_type == SERVICE_HISTORY) - snprintf(match1, sizeof( match1), " SERVICE ALERT: %s;%s;", host_name, svc_description); + snprintf(match1, sizeof(match1), " SERVICE ALERT: %s;%s;", host_name, svc_description); else if(history_type == SERVICE_FLAPPING_HISTORY) - snprintf(match1, sizeof( match1), " SERVICE FLAPPING ALERT: %s;%s;", host_name, svc_description); + snprintf(match1, sizeof(match1), " SERVICE FLAPPING ALERT: %s;%s;", host_name, svc_description); else if(history_type == SERVICE_DOWNTIME_HISTORY) - snprintf(match1, sizeof( match1), " SERVICE DOWNTIME ALERT: %s;%s;", host_name, svc_description); + snprintf(match1, sizeof(match1), " SERVICE DOWNTIME ALERT: %s;%s;", host_name, svc_description); if(strstr(temp_buffer, match1) && (history_type == SERVICE_HISTORY || history_type == SERVICE_FLAPPING_HISTORY || history_type == SERVICE_DOWNTIME_HISTORY)) display_line = TRUE; Modified: nagioscore/branches/nagios-3-4-x/cgi/status.c =================================================================== --- nagioscore/branches/nagios-3-4-x/cgi/status.c 2013-03-09 21:12:46 UTC (rev 2652) +++ nagioscore/branches/nagios-3-4-x/cgi/status.c 2013-03-09 21:46:35 UTC (rev 2653) @@ -128,8 +128,8 @@ void show_hostgroup_grid(hostgroup *); void show_filters(void); -void create_pagenumbers(int total_entries,int visible_entries, char *temp_url,int type_service); -void create_page_limiter(int result_limit,char *temp_url); +void create_pagenumbers(int total_entries, int visible_entries, char *temp_url, int type_service); +void create_page_limiter(int result_limit, char *temp_url); int passes_host_properties_filter(hoststatus *); int passes_service_properties_filter(servicestatus *); @@ -158,8 +158,8 @@ int group_style_type = STYLE_OVERVIEW; int navbar_search = FALSE; -/* experimental paging feature */ -int temp_result_limit; +/* experimental paging feature */ +int temp_result_limit; int page_start; int limit_results = TRUE; @@ -554,15 +554,15 @@ printf("<link rel='stylesheet' type='text/css' href='%s%s' />\n", url_stylesheets_path, COMMON_CSS); printf("<link rel='stylesheet' type='text/css' href='%s%s' />\n", url_stylesheets_path, STATUS_CSS); } - - /* added jquery library 1/31/2012 */ - printf("<script type='text/javascript' src='%s%s'></script>\n",url_js_path, JQUERY_JS); - /* JS function to append content to elements on page */ - printf("<script type='text/javascript'>\n"); - printf("$(document).ready(function() { $('#top_page_numbers').append($('#bottom_page_numbers').html() ); });"); + + /* added jquery library 1/31/2012 */ + printf("<script type='text/javascript' src='%s%s'></script>\n", url_js_path, JQUERY_JS); + /* JS function to append content to elements on page */ + printf("<script type='text/javascript'>\n"); + printf("$(document).ready(function() { $('#top_page_numbers').append($('#bottom_page_numbers').html() ); });"); printf("function set_limit(url) { \nthis.location = url+'&limit='+$('#limit').val();\n }"); printf("</script>\n"); - + printf("</head>\n"); printf("<body class='status'>\n"); @@ -787,7 +787,7 @@ service_filter = strdup(variables[x]); strip_html_brackets(service_filter); } - + /* experimental page limit feature */ else if(!strcmp(variables[x], "start")) { x++; @@ -796,23 +796,23 @@ break; } page_start = atoi(variables[x]); - } + } else if(!strcmp(variables[x], "limit")) { x++; if(variables[x] == NULL) { error = TRUE; break; } - temp_result_limit = atoi(variables[x]); - if(temp_result_limit == 0) + temp_result_limit = atoi(variables[x]); + if(temp_result_limit == 0) limit_results = FALSE; - else - limit_results = TRUE; - } - + else + limit_results = TRUE; + } + } - + /* free memory allocated to the CGI variables */ free_cgivars(variables); @@ -896,9 +896,9 @@ printf("<th class='serviceTotals'>"); printf("<a class='serviceTotals' href='%s?", STATUS_CGI); - /* paging */ + /* paging */ if(temp_result_limit) - printf("limit=%i&",temp_result_limit); + printf("limit=%i&", temp_result_limit); if(display_type == DISPLAY_HOSTS) printf("host=%s", (host_name == NULL) ? "all" : url_encode(host_name)); else if(display_type == DISPLAY_SERVICEGROUPS) @@ -911,9 +911,9 @@ printf("<th class='serviceTotals'>"); printf("<a class='serviceTotals' href='%s?", STATUS_CGI); - /* paging */ + /* paging */ if(temp_result_limit) - printf("limit=%i&",temp_result_limit); + printf("limit=%i&", temp_result_limit); if(display_type == DISPLAY_HOSTS) printf("host=%s", (host_name == NULL) ? "all" : url_encode(host_name)); else if(display_type == DISPLAY_SERVICEGROUPS) @@ -926,9 +926,9 @@ printf("<th class='serviceTotals'>"); printf("<a class='serviceTotals' href='%s?", STATUS_CGI); - /* paging */ + /* paging */ if(temp_result_limit) - printf("limit=%i&",temp_result_limit); + printf("limit=%i&", temp_result_limit); if(display_type == DISPLAY_HOSTS) printf("host=%s", (host_name == NULL) ? "all" : url_encode(host_name)); else if(display_type == DISPLAY_SERVICEGROUPS) @@ -941,9 +941,9 @@ printf("<th class='serviceTotals'>"); printf("<a class='serviceTotals' href='%s?", STATUS_CGI); - /* paging */ + /* paging */ if(temp_result_limit) - printf("limit=%i&",temp_result_limit); + printf("limit=%i&", temp_result_limit); if(display_type == DISPLAY_HOSTS) printf("host=%s", (host_name == NULL) ? "all" : url_encode(host_name)); else if(display_type == DISPLAY_SERVICEGROUPS) @@ -956,9 +956,9 @@ printf("<th class='serviceTotals'>"); printf("<a class='serviceTotals' href='%s?", STATUS_CGI); - /* paging */ + /* paging */ if(temp_result_limit) - printf("limit=%i&",temp_result_limit); + printf("limit=%i&", temp_result_limit); if(display_type == DISPLAY_HOSTS) printf("host=%s", (host_name == NULL) ? "all" : url_encode(host_name)); else if(display_type == DISPLAY_SERVICEGROUPS) @@ -1000,9 +1000,9 @@ printf("<th class='serviceTotals'>"); printf("<a class='serviceTotals' href='%s?", STATUS_CGI); - /* paging */ + /* paging */ if(temp_result_limit) - printf("limit=%i&",temp_result_limit); + printf("limit=%i&", temp_result_limit); if(display_type == DISPLAY_H... [truncated message content] |
From: <est...@us...> - 2013-03-09 21:12:54
|
Revision: 2652 http://nagios.svn.sourceforge.net/nagios/?rev=2652&view=rev Author: estanley375 Date: 2013-03-09 21:12:46 +0000 (Sat, 09 Mar 2013) Log Message: ----------- Fixed logic issue in html_encode() when not escaping HTML. Thanks to Phil Randal for point it out. Modified Paths: -------------- nagioscore/branches/nagios-3-4-x/Changelog nagioscore/branches/nagios-3-4-x/cgi/cgiutils.c Modified: nagioscore/branches/nagios-3-4-x/Changelog =================================================================== --- nagioscore/branches/nagios-3-4-x/Changelog 2013-03-06 13:54:46 UTC (rev 2651) +++ nagioscore/branches/nagios-3-4-x/Changelog 2013-03-09 21:12:46 UTC (rev 2652) @@ -4,7 +4,7 @@ 3.5.0 - xx/xx/xxxx ------------------ -* Fixed bug #403: The "configuration" page of the webui doesn't use entity encoding when displaying the "command expansion" item (Eric Stanley) +* Fixed bug #403: The "configuration" page of the webui doesn't use entity encoding when displaying the "command expansion" item (Eric Stanley, Phil Randal) * Fixed bug #424: Nagios Core 3.4.4 seg fault (core dump) on restart after removing config for running service (Eric Stanley) * Updated CGI utility functions to support UTF-8 characters (Eric Stanley) * Fixed bug where selecting Command Expansion from Configuration CGI page would display commands instead (Eric Stanley) Modified: nagioscore/branches/nagios-3-4-x/cgi/cgiutils.c =================================================================== --- nagioscore/branches/nagios-3-4-x/cgi/cgiutils.c 2013-03-06 13:54:46 UTC (rev 2651) +++ nagioscore/branches/nagios-3-4-x/cgi/cgiutils.c 2013-03-09 21:12:46 UTC (rev 2652) @@ -1053,9 +1053,21 @@ } } + /* When not escaping HTML tags, don't encode quotes or ampersands + (left and right carets are handled above */ + else if((escape_html_tags == FALSE) && ( '"' == *inwcp || + '&' == *inwcp || '\'' == *inwcp)) { + wctomb_result = wctomb( mbtemp, *inwcp); + if(( wctomb_result > 0) && + ((( outstp - encoded_html_string) + wctomb_result) < output_max)) { + strncpy( outstp, mbtemp, wctomb_result); + outstp += wctomb_result; + } + } + /* for simplicity, all other chars represented by their numeric value */ else { - sprintf( temp_expansion, "&#%u", *( unsigned int *)inwcp); + sprintf( temp_expansion, "&#%u;", *( unsigned int *)inwcp); if((( outstp - encoded_html_string) + strlen( temp_expansion)) < output_max) { strncpy( outstp, temp_expansion, strlen( temp_expansion)); @@ -1154,7 +1166,7 @@ /* Encode everything else (this may be excessive) */ else { - sprintf( temp_expansion, "&#%u", ( unsigned int)wctemp[ 0]); + sprintf( temp_expansion, "&#%u;", ( unsigned int)wctemp[ 0]); if((( stp - encoded_html_string) + strlen( temp_expansion)) < output_max) { strncpy( stp, temp_expansion, strlen( temp_expansion)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-06 13:54:53
|
Revision: 2651 http://nagios.svn.sourceforge.net/nagios/?rev=2651&view=rev Author: ageric Date: 2013-03-06 13:54:46 +0000 (Wed, 06 Mar 2013) Log Message: ----------- lib/worker: Do one last round of output gathering in finish_job() But only if the filedescriptors aren't -1 ofcourse. This works around a bug (or at least an oddity) with the epoll() interface on Linux kernels older than 2.6.31. Since later kernels will do the extra calls very rarely anyway (when a plugin times out and we kill it ourselves), we make them unconditional to make sure the code gets some exercise. To avoid unpleasantries of re-entering parent function and things like that, we revamp the static functions gather_output() and finish_job() somewhat. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/lib/worker.c Modified: nagioscore/trunk/lib/worker.c =================================================================== --- nagioscore/trunk/lib/worker.c 2013-03-06 13:54:29 UTC (rev 2650) +++ nagioscore/trunk/lib/worker.c 2013-03-06 13:54:46 UTC (rev 2651) @@ -209,12 +209,25 @@ kvvec_addkv_wlen(kvv, key, sizeof(key) - 1, buf, strlen(buf)); \ } while (0) +/* forward declaration */ +static void gather_output(child_process *cp, iobuf *io, int final); + int finish_job(child_process *cp, int reason) { static struct kvvec resp = KVVEC_INITIALIZER; struct rusage *ru = &cp->ei->rusage; int i, ret; + /* get rid of still open filedescriptors */ + if (cp->outstd.fd != -1) { + gather_output(cp, &cp->outstd, 1); + iobroker_close(iobs, cp->outstd.fd); + } + if (cp->outerr.fd != -1) { + gather_output(cp, &cp->outerr, 1); + iobroker_close(iobs, cp->outerr.fd); + } + /* how many key/value pairs do we need? */ if (kvvec_init(&resp, 12 + cp->request->kv_pairs) == NULL) { /* what the hell do we do now? */ @@ -238,12 +251,6 @@ squeue_remove(sq, cp->ei->sq_event); running_jobs--; - /* get rid of still open filedescriptors */ - if (cp->outstd.fd != -1) - iobroker_close(iobs, cp->outstd.fd); - if (cp->outerr.fd != -1) - iobroker_close(iobs, cp->outerr.fd); - cp->ei->runtime = tv_delta_f(&cp->ei->start, &cp->ei->stop); /* @@ -385,7 +392,7 @@ #endif /* PLAY_NICE_IN_kill_job */ } -static void gather_output(child_process *cp, iobuf *io) +static void gather_output(child_process *cp, iobuf *io, int final) { iobuf *other_io; @@ -409,7 +416,7 @@ memcpy(&io->buf[io->len], buf, rd); io->len += rd; io->buf[io->len] = '\0'; - } else { + } else if (!final) { iobroker_close(iobs, io->fd); io->fd = -1; if (other_io->fd < 0) { @@ -426,14 +433,14 @@ static int stderr_handler(int fd, int events, void *cp_) { child_process *cp = (child_process *)cp_; - gather_output(cp, &cp->outerr); + gather_output(cp, &cp->outerr, 0); return 0; } static int stdout_handler(int fd, int events, void *cp_) { child_process *cp = (child_process *)cp_; - gather_output(cp, &cp->outstd); + gather_output(cp, &cp->outstd, 0); return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-06 13:54:36
|
Revision: 2650 http://nagios.svn.sourceforge.net/nagios/?rev=2650&view=rev Author: ageric Date: 2013-03-06 13:54:29 +0000 (Wed, 06 Mar 2013) Log Message: ----------- lib/wproc: Stop printing signal name strsignal() isn't very portable, and it's broken on some RHEL 5 systems, so we just drop printing the name and leave that as an exercise for the reader to look up for themselves. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/lib/wproc.c Modified: nagioscore/trunk/lib/wproc.c =================================================================== --- nagioscore/trunk/lib/wproc.c 2013-03-04 23:42:27 UTC (rev 2649) +++ nagioscore/trunk/lib/wproc.c 2013-03-06 13:54:29 UTC (rev 2650) @@ -30,7 +30,7 @@ static void sighandler(int sig) { sigreceived = sig; - printf("%d: caught sig %d (%s)\n", getpid(), sig, strsignal(sig)); + printf("%d: caught sig %d\n", getpid(), sig); } static void child_exited(int sig) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-04 23:42:33
|
Revision: 2649 http://nagios.svn.sourceforge.net/nagios/?rev=2649&view=rev Author: ageric Date: 2013-03-04 23:42:27 +0000 (Mon, 04 Mar 2013) Log Message: ----------- core: Refuse to start if modules don't load for some reason Since nebmodules are an integral part of the Nagios system the user expects to bring to life (as of several years now), failure to load one or more of them should be considered critical. Suggested-by: Mark Frost <mar...@pe...> Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/base/nagios.c nagioscore/trunk/base/nebmods.c Modified: nagioscore/trunk/base/nagios.c =================================================================== --- nagioscore/trunk/base/nagios.c 2013-03-04 23:42:08 UTC (rev 2648) +++ nagioscore/trunk/base/nagios.c 2013-03-04 23:42:27 UTC (rev 2649) @@ -652,7 +652,13 @@ #ifdef USE_EVENT_BROKER /* load modules */ - neb_load_all_modules(); + if (neb_load_all_modules() != OK) { + logit(NSLOG_CONFIG_ERROR, ERROR, "Error: Module loading failed. Aborting.\n"); + /* if we're dumping core, we must remove all dl-files */ + if (daemon_dumps_core) + neb_unload_all_modules(NEBMODULE_FORCE_UNLOAD, NEBMODULE_NEB_SHUTDOWN); + exit(EXIT_FAILURE); + } timing_point("Modules loaded\n"); /* send program data to broker */ Modified: nagioscore/trunk/base/nebmods.c =================================================================== --- nagioscore/trunk/base/nebmods.c 2013-03-04 23:42:08 UTC (rev 2648) +++ nagioscore/trunk/base/nebmods.c 2013-03-04 23:42:27 UTC (rev 2649) @@ -148,12 +148,17 @@ /* load all modules */ int neb_load_all_modules(void) { nebmodule *temp_module = NULL; + int ret, errors = 0; for(temp_module = neb_module_list; temp_module; temp_module = temp_module->next) { - neb_load_module(temp_module); + ret = neb_load_module(temp_module); + if (ret != OK) { + logit(NSLOG_RUNTIME_ERROR, TRUE, "Error: Failed to load module '%s'.\n", temp_module->filename ? temp_module->filename : "(no file?)"); + errors++; + } } - return OK; + return errors ? ERROR : OK; } @@ -167,7 +172,7 @@ char output_file[PATH_MAX]; int dest_fd, result = OK; - if(mod == NULL || mod->filename == NULL) + if(mod == NULL) return ERROR; /* don't reopen the module */ @@ -175,7 +180,7 @@ return OK; /* don't load modules unless they should be loaded */ - if(mod->should_be_loaded == FALSE) + if(mod->should_be_loaded == FALSE || mod->filename == NULL) return ERROR; /********** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-04 23:42:15
|
Revision: 2648 http://nagios.svn.sourceforge.net/nagios/?rev=2648&view=rev Author: ageric Date: 2013-03-04 23:42:08 +0000 (Mon, 04 Mar 2013) Log Message: ----------- xrddefault: Use parsed and massaged main temp_file for retention data Changing things around so config parsing happens in *one* place would've been a pretty good idea quite some time ago, but this will at least make retention data temp-files go to the right place. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/xdata/xrddefault.c Modified: nagioscore/trunk/xdata/xrddefault.c =================================================================== --- nagioscore/trunk/xdata/xrddefault.c 2013-03-01 15:31:37 UTC (rev 2647) +++ nagioscore/trunk/xdata/xrddefault.c 2013-03-04 23:42:08 UTC (rev 2648) @@ -62,7 +62,6 @@ log_debug_info(DEBUGL_RETENTIONDATA, 2, "Error: Cannot open main configuration file '%s' for reading!\n", main_config_file); my_free(xrddefault_retention_file); - my_free(xrddefault_temp_file); return ERROR; } @@ -93,20 +92,18 @@ /* initialize locations if necessary */ if(xrddefault_retention_file == NULL) xrddefault_retention_file = (char *)strdup(DEFAULT_RETENTION_FILE); - if(xrddefault_temp_file == NULL) - xrddefault_temp_file = (char *)strdup(DEFAULT_TEMP_FILE); /* make sure we have everything */ if(xrddefault_retention_file == NULL) return ERROR; - if(xrddefault_temp_file == NULL) - return ERROR; /* save the retention file macro */ my_free(mac->x[MACRO_RETENTIONDATAFILE]); if((mac->x[MACRO_RETENTIONDATAFILE] = (char *)strdup(xrddefault_retention_file))) strip(mac->x[MACRO_RETENTIONDATAFILE]); + xrddefault_temp_file = temp_file; + return OK; } @@ -138,10 +135,6 @@ if(!strcmp(varname, "xrddefault_retention_file") || !strcmp(varname, "state_retention_file")) xrddefault_retention_file = (char *)strdup(varvalue); - /* temp file definition */ - else if(!strcmp(varname, "temp_file")) - xrddefault_temp_file = (char *)strdup(varvalue); - /* free memory */ my_free(varname); my_free(varvalue); @@ -175,7 +168,6 @@ /* free memory */ my_free(xrddefault_retention_file); - my_free(xrddefault_temp_file); return OK; } @@ -186,7 +178,7 @@ /******************************************************************/ int xrddefault_save_state_information(void) { - char *temp_file = NULL; + char *tmp_file = NULL; customvariablesmember *temp_customvariablesmember = NULL; time_t current_time = 0L; int result = OK; @@ -216,23 +208,23 @@ } /* open a safe temp file for output */ - asprintf(&temp_file, "%sXXXXXX", xrddefault_temp_file); - if(temp_file == NULL) + asprintf(&tmp_file, "%sXXXXXX", temp_file); + if(tmp_file == NULL) return ERROR; - if((fd = mkstemp(temp_file)) == -1) + if((fd = mkstemp(tmp_file)) == -1) return ERROR; - log_debug_info(DEBUGL_RETENTIONDATA, 2, "Writing retention data to temp file '%s'\n", temp_file); + log_debug_info(DEBUGL_RETENTIONDATA, 2, "Writing retention data to temp file '%s'\n", tmp_file); fp = (FILE *)fdopen(fd, "w"); if(fp == NULL) { close(fd); - unlink(temp_file); + unlink(tmp_file); - logit(NSLOG_RUNTIME_ERROR, TRUE, "Error: Could not open temp state retention file '%s' for writing!\n", temp_file); + logit(NSLOG_RUNTIME_ERROR, TRUE, "Error: Could not open temp state retention file '%s' for writing!\n", tmp_file); - my_free(temp_file); + my_free(tmp_file); return ERROR; } @@ -515,8 +507,8 @@ result = OK; /* move the temp file to the retention file (overwrite the old retention file) */ - if(my_rename(temp_file, xrddefault_retention_file)) { - unlink(temp_file); + if(my_rename(tmp_file, xrddefault_retention_file)) { + unlink(tmp_file); logit(NSLOG_RUNTIME_ERROR, TRUE, "Error: Unable to update retention file '%s': %s", xrddefault_retention_file, strerror(errno)); result = ERROR; } @@ -528,12 +520,12 @@ result = ERROR; /* remove temp file and log an error */ - unlink(temp_file); + unlink(tmp_file); logit(NSLOG_RUNTIME_ERROR, TRUE, "Error: Unable to save retention file: %s", strerror(errno)); } /* free memory */ - my_free(temp_file); + my_free(tmp_file); return result; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-01 15:31:43
|
Revision: 2647 http://nagios.svn.sourceforge.net/nagios/?rev=2647&view=rev Author: ageric Date: 2013-03-01 15:31:37 +0000 (Fri, 01 Mar 2013) Log Message: ----------- lib/test-runcmd: Add anomaly detection for semi-colons They're "job control" issues and must be properly detected as such. This is done properly, but the issue was raised since someone failed at shell-scripting, so we may as well have the test in place. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/lib/test-runcmd.c Modified: nagioscore/trunk/lib/test-runcmd.c =================================================================== --- nagioscore/trunk/lib/test-runcmd.c 2013-03-01 15:31:17 UTC (rev 2646) +++ nagioscore/trunk/lib/test-runcmd.c 2013-03-01 15:31:37 UTC (rev 2647) @@ -40,6 +40,8 @@ { 0, "foo \\&\\& bar" }, { CMD_HAS_JOBCONTROL, "foo & bar" }, { 0, "foo \\& bar" }, + { CMD_HAS_JOBCONTROL, "lala foo ; bar" }, + { 0, "lala 'foo; bar'" }, { CMD_HAS_SUBCOMMAND, "foo \"`extcmd`\"" }, { 0, "foo \"\\`extcmd\\`\"" }, { CMD_HAS_SUBCOMMAND, "foo `extcmd`" }, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-01 15:31:24
|
Revision: 2646 http://nagios.svn.sourceforge.net/nagios/?rev=2646&view=rev Author: ageric Date: 2013-03-01 15:31:17 +0000 (Fri, 01 Mar 2013) Log Message: ----------- core: Avoid warning about valid OCHP commands It's ok to have an OCHP command, so long as we can find it. Fortunately, the warning was a false alarm and configuration parsing still went through just fine, but we really should stfu when everything's fine and dandy. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/base/config.c Modified: nagioscore/trunk/base/config.c =================================================================== --- nagioscore/trunk/base/config.c 2013-03-01 15:30:55 UTC (rev 2645) +++ nagioscore/trunk/base/config.c 2013-03-01 15:31:17 UTC (rev 2646) @@ -1377,9 +1377,10 @@ } if(ochp_command != NULL) { ochp_command_ptr = find_bang_command(ochp_command); - logit(NSLOG_CONFIG_ERROR, TRUE, "Error: OCHP command '%s' is not defined anywhere!\n", ochp_command); - ochp_command_ptr = find_bang_command(ochp_command); - errors += ochp_command_ptr == NULL; + if (!ochp_command_ptr) { + logit(NSLOG_CONFIG_ERROR, TRUE, "Error: OCHP command '%s' is not defined anywhere!\n", ochp_command); + errors++; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-03-01 15:31:04
|
Revision: 2645 http://nagios.svn.sourceforge.net/nagios/?rev=2645&view=rev Author: ageric Date: 2013-03-01 15:30:55 +0000 (Fri, 01 Mar 2013) Log Message: ----------- lib/test-dkhash: Make build fail if any test fails t-utils is quickly approaching the need for an overhaul... While at it, fix a small indentation issue. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/lib/test-dkhash.c Modified: nagioscore/trunk/lib/test-dkhash.c =================================================================== --- nagioscore/trunk/lib/test-dkhash.c 2013-02-28 11:30:47 UTC (rev 2644) +++ nagioscore/trunk/lib/test-dkhash.c 2013-03-01 15:30:55 UTC (rev 2645) @@ -87,7 +87,7 @@ int main(int argc, char **argv) { dkhash_table *tx, *t; - int x; + int x, ret, r2; struct test_data s; char *p1, *p2; char *strs[10]; @@ -113,7 +113,7 @@ ok_int(dkhash_num_entries(t), 1, "should be 1 entries after 2 inserts and 1 successful remove"); p2 = dkhash_remove(t, "nisse", NULL); test(p1 == p2, "dkhash_remove() should return removed data"); - t_end(); + ret = t_end(); t_reset(); /* lots of tests below, so we shut up while they're running */ @@ -146,7 +146,8 @@ test(0 == dkhash_num_entries(tx), "x table post all ops"); test(0 == dkhash_check_table(tx), "x table consistency post all ops"); dkhash_debug_table(tx, 0); - t_end(); + r2 = t_end(); + ret = r2 ? r2 : ret; t_reset(); for(x = 0; x < 10; x++) { @@ -160,12 +161,13 @@ for(x = 0; x < 10; x++) { dkhash_insert(t, strs[x], NULL, strs[x]); } - for( x = 0; x < 10; x++) { + for(x = 0; x < 10; x++) { p1 = strs[x]; p2 = dkhash_remove(t, p1, NULL); test(p1 == p2, "remove should return a value"); } - t_end(); + r2 = t_end(); + ret = r2 ? r2 : ret; t_reset(); t_start("dkhash single bucket add remove backward"); @@ -180,5 +182,6 @@ test(p1 == p2, "remove should return a value"); } - return t_end(); + r2 = t_end(); + return r2 ? r2 : ret; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <est...@us...> - 2013-02-28 11:30:56
|
Revision: 2644 http://nagios.svn.sourceforge.net/nagios/?rev=2644&view=rev Author: estanley375 Date: 2013-02-28 11:30:47 +0000 (Thu, 28 Feb 2013) Log Message: ----------- Update version number for 3.5.0rc1 Modified Paths: -------------- nagioscore/branches/nagios-3-4-x/Changelog nagioscore/branches/nagios-3-4-x/base/nagios.c nagioscore/branches/nagios-3-4-x/base/nagiostats.c nagioscore/branches/nagios-3-4-x/configure nagioscore/branches/nagios-3-4-x/configure.in nagioscore/branches/nagios-3-4-x/html/main.php nagioscore/branches/nagios-3-4-x/include/common.h nagioscore/branches/nagios-3-4-x/nagios.spec nagioscore/branches/nagios-3-4-x/update-version Modified: nagioscore/branches/nagios-3-4-x/Changelog =================================================================== --- nagioscore/branches/nagios-3-4-x/Changelog 2013-02-27 14:50:10 UTC (rev 2643) +++ nagioscore/branches/nagios-3-4-x/Changelog 2013-02-28 11:30:47 UTC (rev 2644) @@ -2,7 +2,7 @@ Nagios 3.x Change Log ##################### -3.4.5 - xx/xx/xxxx +3.5.0 - xx/xx/xxxx ------------------ * Fixed bug #403: The "configuration" page of the webui doesn't use entity encoding when displaying the "command expansion" item (Eric Stanley) * Fixed bug #424: Nagios Core 3.4.4 seg fault (core dump) on restart after removing config for running service (Eric Stanley) Modified: nagioscore/branches/nagios-3-4-x/base/nagios.c =================================================================== --- nagioscore/branches/nagios-3-4-x/base/nagios.c 2013-02-27 14:50:10 UTC (rev 2643) +++ nagioscore/branches/nagios-3-4-x/base/nagios.c 2013-02-28 11:30:47 UTC (rev 2644) @@ -3,7 +3,7 @@ * NAGIOS.C - Core Program Code For Nagios * * Program: Nagios Core - * Version: 3.4.5rc1 + * Version: 3.5.0rc1 * License: GPL * Copyright (c) 2009-2010 Nagios Core Development Team and Community Contributors * Copyright (c) 1999-2009 Ethan Galstad Modified: nagioscore/branches/nagios-3-4-x/base/nagiostats.c =================================================================== --- nagioscore/branches/nagios-3-4-x/base/nagiostats.c 2013-02-27 14:50:10 UTC (rev 2643) +++ nagioscore/branches/nagios-3-4-x/base/nagiostats.c 2013-02-28 11:30:47 UTC (rev 2644) @@ -3,7 +3,7 @@ * NAGIOSTATS.C - Displays Nagios Statistics * * Program: Nagiostats - * Version: 3.4.5rc1 + * Version: 3.5.0rc1 * License: GPL * Copyright (c) 2003-2008 Ethan Galstad (ega...@na...) * Modified: nagioscore/branches/nagios-3-4-x/configure =================================================================== --- nagioscore/branches/nagios-3-4-x/configure 2013-02-27 14:50:10 UTC (rev 2643) +++ nagioscore/branches/nagios-3-4-x/configure 2013-02-28 11:30:47 UTC (rev 2644) @@ -1314,9 +1314,9 @@ PKG_NAME=nagios -PKG_VERSION="3.4.5rc1" +PKG_VERSION="3.5.0rc1" PKG_HOME_URL="http://www.nagios.org/" -PKG_REL_DATE="02-22-2013" +PKG_REL_DATE="02-28-2013" ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do Modified: nagioscore/branches/nagios-3-4-x/configure.in =================================================================== --- nagioscore/branches/nagios-3-4-x/configure.in 2013-02-27 14:50:10 UTC (rev 2643) +++ nagioscore/branches/nagios-3-4-x/configure.in 2013-02-28 11:30:47 UTC (rev 2644) @@ -9,9 +9,9 @@ AC_PREFIX_DEFAULT(/usr/local/nagios) PKG_NAME=nagios -PKG_VERSION="3.4.5rc1" +PKG_VERSION="3.5.0rc1" PKG_HOME_URL="http://www.nagios.org/" -PKG_REL_DATE="02-22-2013" +PKG_REL_DATE="02-28-2013" dnl Figure out how to invoke "install" and what install options to use. AC_PROG_INSTALL Modified: nagioscore/branches/nagios-3-4-x/html/main.php =================================================================== (Binary files differ) Modified: nagioscore/branches/nagios-3-4-x/include/common.h =================================================================== --- nagioscore/branches/nagios-3-4-x/include/common.h 2013-02-27 14:50:10 UTC (rev 2643) +++ nagioscore/branches/nagios-3-4-x/include/common.h 2013-02-28 11:30:47 UTC (rev 2644) @@ -22,8 +22,8 @@ #include "shared.h" -#define PROGRAM_VERSION "3.4.5rc1" -#define PROGRAM_MODIFICATION_DATE "02-22-2013" +#define PROGRAM_VERSION "3.5.0rc1" +#define PROGRAM_MODIFICATION_DATE "02-28-2013" /*#define DEBUG_CHECK_IPC 1 */ /*#define DEBUG_CHECK_IPC2 1*/ Modified: nagioscore/branches/nagios-3-4-x/nagios.spec =================================================================== --- nagioscore/branches/nagios-3-4-x/nagios.spec 2013-02-27 14:50:10 UTC (rev 2643) +++ nagioscore/branches/nagios-3-4-x/nagios.spec 2013-02-28 11:30:47 UTC (rev 2644) @@ -1,5 +1,5 @@ %define name nagios -%define version 3.4.5rc1 +%define version 3.5.0rc1 %define release 1 %define nsusr nagios %define nsgrp nagios Modified: nagioscore/branches/nagios-3-4-x/update-version =================================================================== --- nagioscore/branches/nagios-3-4-x/update-version 2013-02-27 14:50:10 UTC (rev 2643) +++ nagioscore/branches/nagios-3-4-x/update-version 2013-02-28 11:30:47 UTC (rev 2644) @@ -10,10 +10,10 @@ fi # Current version number -CURRENTVERSION=3.4.5rc1 +CURRENTVERSION=3.5.0rc1 # Last date -LASTDATE=02-22-2013 +LASTDATE=02-28-2013 if [ "x$1" = "x" ] then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-02-27 14:50:17
|
Revision: 2643 http://nagios.svn.sourceforge.net/nagios/?rev=2643&view=rev Author: ageric Date: 2013-02-27 14:50:10 +0000 (Wed, 27 Feb 2013) Log Message: ----------- lib/test-runcmd: Add argument-splitting tests This is just an embryo (or zygote, even) of a real testsuite for argument splitting, but since tests tend to get written when there's a comfortable framework to put them in, I expect more will come in case bugs are found in this area. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/lib/test-runcmd.c Modified: nagioscore/trunk/lib/test-runcmd.c =================================================================== --- nagioscore/trunk/lib/test-runcmd.c 2013-02-27 14:49:53 UTC (rev 2642) +++ nagioscore/trunk/lib/test-runcmd.c 2013-02-27 14:50:10 UTC (rev 2643) @@ -61,6 +61,17 @@ { 0, NULL}, }; +struct { + int ret; + char *cmd; + int argc_exp; + char *argv_exp[10]; +} parse_case[] = { + { 0, "foo bar nisse", 3, { "foo", "bar", "nisse", NULL }}, + { 0, "foo\\ bar nisse", 2, { "foo bar", "nisse", NULL }}, + { 0, NULL, 0, NULL }, +}; + int main(int argc, char **argv) { int ret, r2; @@ -98,5 +109,24 @@ } } r2 = t_end(); + ret = r2 ? r2 : ret; + t_reset(); + t_start("argument splitting"); + { + int i; + for (i = 0; parse_case[i].cmd; i++) { + int x, out_argc; + char *out_argv[256]; + int ret = runcmd_cmd2strv(parse_case[i].cmd, &out_argc, out_argv); + out_argv[out_argc] = NULL; + ok_int(ret, 0, parse_case[i].cmd); + ok_int(out_argc, parse_case[i].argc_exp, parse_case[i].cmd); + for (x = 0; x < parse_case[x].argc_exp && out_argv[x]; x++) { + ok_str(parse_case[i].argv_exp[x], out_argv[x], "argv comparison test"); + } + } + } + + r2 = t_end(); return r2 ? r2 : ret; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-02-27 14:49:59
|
Revision: 2642 http://nagios.svn.sourceforge.net/nagios/?rev=2642&view=rev Author: ageric Date: 2013-02-27 14:49:53 +0000 (Wed, 27 Feb 2013) Log Message: ----------- lib/test-runcmd: Add anomaly detection tests These are the tests responsible for the earlier flurry of commits. Since they've already proven useful, we keep them around in an easily runnable state. While at it, rename "runcmd test" to "exec output comparison". Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/lib/test-runcmd.c Modified: nagioscore/trunk/lib/test-runcmd.c =================================================================== --- nagioscore/trunk/lib/test-runcmd.c 2013-02-27 14:49:35 UTC (rev 2641) +++ nagioscore/trunk/lib/test-runcmd.c 2013-02-27 14:49:53 UTC (rev 2642) @@ -30,11 +30,44 @@ {NULL}, }; +struct { + int ret; + char *cmd; +} anomaly[] = { + { CMD_HAS_REDIR, "cat lala | grep foo" }, + { 0, "cat lala \\| grep foo" }, + { CMD_HAS_JOBCONTROL, "foo && bar" }, + { 0, "foo \\&\\& bar" }, + { CMD_HAS_JOBCONTROL, "foo & bar" }, + { 0, "foo \\& bar" }, + { CMD_HAS_SUBCOMMAND, "foo \"`extcmd`\"" }, + { 0, "foo \"\\`extcmd\\`\"" }, + { CMD_HAS_SUBCOMMAND, "foo `extcmd`" }, + { 0, "foo \\`extcmd\\`" }, + { CMD_HAS_SUBCOMMAND, "foo \"$(extcmd)\"" }, + { 0, "foo \\$\\(extcmd\\)" }, + { CMD_HAS_SUBCOMMAND | CMD_HAS_PAREN, "foo $(extcmd" }, + { 0, "foo \\$\\(extcmd\\)" }, + { CMD_HAS_UBDQ, "foo\" bar" }, + { 0, "foo\\\" bar" }, + { CMD_HAS_UBSQ, "foo' bar" }, + { 0, "foo\\' bar" }, + { CMD_HAS_WILDCARD, "ls -l /tmp/*" }, + { 0, "ls -l /tmp/\\*" }, + { CMD_HAS_WILDCARD, "ls -l /dev/tty?" }, + { 0, "ls -l /dev/tty\\?" }, + { CMD_HAS_SHVAR, "echo $foo" }, + { 0, "echo \\$foo" }, + { 0, NULL}, +}; + int main(int argc, char **argv) { + int ret, r2; + runcmd_init(); t_set_colors(0); - t_start("runcmd test"); + t_start("exec output comparison"); { int i; char *out = calloc(1, BUF_SIZE); @@ -52,6 +85,18 @@ close(fd); } } - t_end(); - return t_end(); + ret = t_end(); + t_reset(); + t_start("anomaly detection"); + { + int i; + for (i = 0; anomaly[i].cmd; i++) { + int out_argc; + char *out_argv[256]; + int ret = runcmd_cmd2strv(anomaly[i].cmd, &out_argc, out_argv); + ok_int(ret, anomaly[i].ret, anomaly[i].cmd); + } + } + r2 = t_end(); + return r2 ? r2 : ret; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-02-27 14:49:41
|
Revision: 2641 http://nagios.svn.sourceforge.net/nagios/?rev=2641&view=rev Author: ageric Date: 2013-02-27 14:49:35 +0000 (Wed, 27 Feb 2013) Log Message: ----------- lib/test-runcmd: Make test-failures cause "build" failures This makes these tests infinitely more useful from buildbots and whatnot. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/lib/test-runcmd.c Modified: nagioscore/trunk/lib/test-runcmd.c =================================================================== --- nagioscore/trunk/lib/test-runcmd.c 2013-02-27 14:49:14 UTC (rev 2640) +++ nagioscore/trunk/lib/test-runcmd.c 2013-02-27 14:49:35 UTC (rev 2641) @@ -53,5 +53,5 @@ } } t_end(); - return 0; + return t_end(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-02-27 14:49:21
|
Revision: 2640 http://nagios.svn.sourceforge.net/nagios/?rev=2640&view=rev Author: ageric Date: 2013-02-27 14:49:14 +0000 (Wed, 27 Feb 2013) Log Message: ----------- lib/runcmd: Detect closing parentheses as CMD_HAS_PAREN too Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/lib/runcmd.c Modified: nagioscore/trunk/lib/runcmd.c =================================================================== --- nagioscore/trunk/lib/runcmd.c 2013-02-27 14:48:55 UTC (rev 2639) +++ nagioscore/trunk/lib/runcmd.c 2013-02-27 14:49:14 UTC (rev 2640) @@ -213,7 +213,7 @@ } break; - case '(': + case '(': case ')': if (!in_quotes) { add_ret(CMD_HAS_PAREN); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ag...@us...> - 2013-02-27 14:49:02
|
Revision: 2639 http://nagios.svn.sourceforge.net/nagios/?rev=2639&view=rev Author: ageric Date: 2013-02-27 14:48:55 +0000 (Wed, 27 Feb 2013) Log Message: ----------- lib/runcmd: Detect shell variables We can't really interpolate them properly, so it's an error if we find any. Signed-off-by: Andreas Ericsson <ae...@op...> Modified Paths: -------------- nagioscore/trunk/lib/runcmd.c nagioscore/trunk/lib/runcmd.h Modified: nagioscore/trunk/lib/runcmd.c =================================================================== --- nagioscore/trunk/lib/runcmd.c 2013-02-27 14:48:34 UTC (rev 2638) +++ nagioscore/trunk/lib/runcmd.c 2013-02-27 14:48:55 UTC (rev 2639) @@ -223,6 +223,8 @@ if (!(state & STATE_INSQ)) { if (p[1] == '(') add_ret(CMD_HAS_SUBCOMMAND); + else + add_ret(CMD_HAS_SHVAR); } break; Modified: nagioscore/trunk/lib/runcmd.h =================================================================== --- nagioscore/trunk/lib/runcmd.h 2013-02-27 14:48:34 UTC (rev 2638) +++ nagioscore/trunk/lib/runcmd.h 2013-02-27 14:48:55 UTC (rev 2639) @@ -21,6 +21,7 @@ #define CMD_HAS_UBSQ (1 << 4) /**< unbalanced single quotes */ #define CMD_HAS_UBDQ (1 << 5) /**< unbalanced double quotes */ #define CMD_HAS_WILDCARD (1 << 6) /**< wildcards present */ +#define CMD_HAS_SHVAR (1 << 7) /**< shell variables present */ #define RUNCMD_EFD (-1) /**< Failed to pipe() or open() */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |