Code

Change warning message if there is stderr output. This catches a problem
authorTon Voon <tonvoon@users.sourceforge.net>
Mon, 13 Mar 2006 11:08:28 +0000 (11:08 +0000)
committerTon Voon <tonvoon@users.sourceforge.net>
Mon, 13 Mar 2006 11:08:28 +0000 (11:08 +0000)
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

plugins/check_ping.c

index 1903678dfbd8fb61ccddff97408db751ed8fb882..a7b7d902d1696f67b1972b966ed62eca78aad9b2 100644 (file)
@@ -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);