4
0
Эх сурвалжийг харах

check_ups now sends a LOGOUT string (debian bug #387001)

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@2062 f882894a-f735-0410-b71e-b25c423dba1c
Thomas Guyot-Sionnest 17 жил өмнө
parent
commit
47fddad5fd
3 өөрчлөгдсөн 8 нэмэгдсэн , 1 устгасан
  1. 1 0
      NEWS
  2. 2 0
      THANKS.in
  3. 5 1
      plugins/check_ups.c

+ 1 - 0
NEWS

@@ -5,6 +5,7 @@ This file documents the major additions and syntax changes between releases.
 	Updated tinderbox_build script to point to new tinderbox server
 	check_ifoperstatus -n flag now works as expected (sf.net #1569488)
 	check_ifoperstatus now supports ifType based lookup for ifIndex
+	check_ups now sends a LOGOUT string (debian bug #387001)
 
 1.4.13 25th Sept 2008
 	Fix Debian bug #460097: check_http --max-age broken (Hilko Bengen)

+ 2 - 0
THANKS.in

@@ -238,3 +238,5 @@ Rob Windsor
 Hilko Bengen
 Sven Nierlein
 Erik Wasser
+Tilman Koschnick
+Olivier 'Babar' Raginel

+ 5 - 1
plugins/check_ups.c

@@ -398,12 +398,15 @@ get_ups_variable (const char *varname, char *buf, size_t buflen)
 	char temp_buffer[MAX_INPUT_BUFFER];
 	char send_buffer[MAX_INPUT_BUFFER];
 	char *ptr;
+	char *logout = "OK Goodbye\n";
+	int logout_len = strlen(logout);
 	int len;
 
 	*buf=0;
 	
 	/* create the command string to send to the UPS daemon */
-	sprintf (send_buffer, "GET VAR %s %s\n", ups_name, varname);
+	/* Add LOGOUT to avoid read failure logs */
+	sprintf (send_buffer, "GET VAR %s %s\nLOGOUT\n", ups_name, varname);
 
 	/* send the command to the daemon and get a response back */
 	if (process_tcp_request
@@ -415,6 +418,7 @@ get_ups_variable (const char *varname, char *buf, size_t buflen)
 
 	ptr = temp_buffer;
 	len = strlen(ptr);
+	if (len > logout_len && strcmp (ptr + len - logout_len, logout) == 0) len -= logout_len;
 	if (len > 0 && ptr[len-1] == '\n') ptr[len-1]=0;
 	if (strcmp (ptr, "ERR UNKNOWN-UPS") == 0) {
 		printf (_("CRITICAL - no such ups '%s' on that host\n"), ups_name);