ソースを参照

Change warning message if there is stderr output. This catches a problem
where time was shifting backwards on a linux VMware guest during the ping


git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1322 f882894a-f735-0410-b71e-b25c423dba1c

Ton Voon 20 年 前
コミット
5c0aa37260
1 ファイル変更16 行追加3 行削除
  1. 16 3
      plugins/check_ping.c

+ 16 - 3
plugins/check_ping.c

@@ -452,9 +452,22 @@ run_ping (const char *cmd, const char *addr)
 		rta = crta;
 
 	/* check stderr, setting at least WARNING if there is output here */
-	while (fgets (buf, MAX_INPUT_BUFFER - 1, child_stderr))
-		if (! strstr(buf,"WARNING - no SO_TIMESTAMP support, falling back to SIOCGSTAMP"))
-			result = max_state (STATE_WARNING, error_scan (buf, addr));
+	/* Add warning into warn_text */
+	while (fgets (buf, MAX_INPUT_BUFFER - 1, child_stderr)) {
+		if (! strstr(buf,"WARNING - no SO_TIMESTAMP support, falling back to SIOCGSTAMP")) {
+			if (verbose >= 3) {
+				printf("Got stderr: %s", buf);
+			}
+			if ((result=error_scan(buf, addr)) == STATE_OK) {
+				result = STATE_WARNING;
+				if (warn_text == NULL) {
+					warn_text = strdup(_("System call sent warnings to stderr "));
+				} else {
+					asprintf(&warn_text, "%s %s", warn_text, _("System call sent warnings to stderr "));
+				}
+			}
+		}
+	}
 
 	(void) fclose (child_stderr);