[Nagiosplug-devel] Patch for leading whitespace on comments

Tobias Klausmann klausman at schwarzvogel.de
Fri Jan 19 13:25:43 CET 2007


Hi! 

As of 2.6, Nagios recognizes leading whitespace only in the main
config file. The attached patch fixes this.

To illustrate, this piece of config does not work currently:

define host {
    host_name                 eric.schwarzvogel.de
    alias                     eric.schwarzvogel.de
    address                   194.97.4.250
    #check_command             check_host_alive
    check_command             check_host_new
    max_check_attempts        3
    retain_status_information 1
    contact_groups            Privat Klausmann
    notification_interval     30
    notification_period       24x7
    notification_options      d,u,r
    passive_checks_enabled    1
}

The reason is the commented-out check_command line. It would work
like this:

define host {
...
#   check_command             check_host_alive
    check_command             check_host_new
...
}

This is because (for non-main config files), Nagios first checks
if the first char is "#" and *then* strips the line. For the main
config file, this happens the other way around.

I've attached a patch that makes this behaviour more consistent.
I believe the check for '\0', '\n' etc. could be simplified to,
*if* strip() removes some of the chars. I tried to be
non-invasive as possible, so I didn't do that.

I'd like it if this patch makes it into the 2.x series. 

Regards,
Tobias

-------------- next part --------------
--- base/config.c.orig	2007-01-19 13:15:52.000000000 +0100
+++ base/config.c	2007-01-19 13:17:00.000000000 +0100
@@ -1518,12 +1518,15 @@
 
 		current_line=thefile->current_line;
 
+		/* Strip line first so that a hash preceded by
+		 * only whitespace is treated correctly 
+		 */
+		strip(input);
+
 		/* skip blank lines and comments */
 		if(input[0]=='#' || input[0]=='\x0' || input[0]=='\n' || input[0]=='\r')
 			continue;
 
-		strip(input);
-
 		/* get the variable name */
 		temp_ptr=my_strtok(input,"=");
 


More information about the Devel mailing list