diff options
Diffstat (limited to 'plugins/check_ping.c')
| -rw-r--r-- | plugins/check_ping.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/plugins/check_ping.c b/plugins/check_ping.c index 5eada4f4..420f148c 100644 --- a/plugins/check_ping.c +++ b/plugins/check_ping.c | |||
| @@ -121,8 +121,12 @@ main (int argc, char **argv) | |||
| 121 | else if (pl >= wpl || rta >= wrta) | 121 | else if (pl >= wpl || rta >= wrta) |
| 122 | result = STATE_WARNING; | 122 | result = STATE_WARNING; |
| 123 | else if (pl < wpl && rta < wrta && pl >= 0 && rta >= 0) | 123 | else if (pl < wpl && rta < wrta && pl >= 0 && rta >= 0) |
| 124 | result = max (result, STATE_OK); | 124 | /* cannot use the max function because STATE_UNKNOWN is now 3 gt STATE_OK |
| 125 | 125 | result = max (result, STATE_OK); */ | |
| 126 | if( !( (result == STATE_WARNING) || (result == STATE_CRITICAL) ) ) { | ||
| 127 | result = STATE_OK; | ||
| 128 | } | ||
| 129 | |||
| 126 | if (display_html == TRUE) | 130 | if (display_html == TRUE) |
| 127 | printf ("<A HREF='%s/traceroute.cgi?%s'>", CGIURL, server_address); | 131 | printf ("<A HREF='%s/traceroute.cgi?%s'>", CGIURL, server_address); |
| 128 | if (pl == 100) | 132 | if (pl == 100) |
| @@ -381,7 +385,12 @@ run_ping (char *command_line) | |||
| 381 | while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) { | 385 | while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) { |
| 382 | 386 | ||
| 383 | if (strstr (input_buffer, "(DUP!)")) { | 387 | if (strstr (input_buffer, "(DUP!)")) { |
| 384 | result = max (result, STATE_WARNING); | 388 | /* cannot use the max function since STATE_UNKNOWN is max |
| 389 | result = max (result, STATE_WARNING); */ | ||
| 390 | if( !(result == STATE_CRITICAL) ){ | ||
| 391 | result = STATE_WARNING; | ||
| 392 | } | ||
| 393 | |||
| 385 | warn_text = realloc (warn_text, strlen (WARN_DUPLICATES) + 1); | 394 | warn_text = realloc (warn_text, strlen (WARN_DUPLICATES) + 1); |
| 386 | if (warn_text == NULL) | 395 | if (warn_text == NULL) |
| 387 | terminate (STATE_UNKNOWN, "unable to realloc warn_text"); | 396 | terminate (STATE_UNKNOWN, "unable to realloc warn_text"); |
| @@ -445,6 +454,9 @@ run_ping (char *command_line) | |||
| 445 | else if (strstr (input_buffer, "Destination Host Unreachable")) | 454 | else if (strstr (input_buffer, "Destination Host Unreachable")) |
| 446 | terminate (STATE_CRITICAL, "PING CRITICAL - Host Unreachable (%s)", | 455 | terminate (STATE_CRITICAL, "PING CRITICAL - Host Unreachable (%s)", |
| 447 | server_address); | 456 | server_address); |
| 457 | else if (strstr (input_buffer, "unknown host" ) ) | ||
| 458 | terminate (STATE_CRITICAL, "PING CRITICAL - Host not found (%s)", | ||
| 459 | server_address); | ||
| 448 | 460 | ||
| 449 | warn_text = | 461 | warn_text = |
| 450 | realloc (warn_text, strlen (warn_text) + strlen (input_buffer) + 2); | 462 | realloc (warn_text, strlen (warn_text) + strlen (input_buffer) + 2); |
| @@ -456,9 +468,15 @@ run_ping (char *command_line) | |||
| 456 | sprintf (warn_text, "%s %s", warn_text, input_buffer); | 468 | sprintf (warn_text, "%s %s", warn_text, input_buffer); |
| 457 | 469 | ||
| 458 | if (strstr (input_buffer, "DUPLICATES FOUND")) | 470 | if (strstr (input_buffer, "DUPLICATES FOUND")) |
| 459 | result = max (result, STATE_WARNING); | 471 | /* cannot use the max function since STATE_UNKNOWN is max |
| 472 | result = max (result, STATE_WARNING); */ | ||
| 473 | if( !(result == STATE_CRITICAL) ){ | ||
| 474 | result = STATE_WARNING; | ||
| 475 | } | ||
| 460 | else | 476 | else |
| 461 | result = max (result, STATE_CRITICAL); | 477 | /* cannot use the max function since STATE_UNKNOWN is max |
| 478 | result = max (result, STATE_CRITICAL); */ | ||
| 479 | result = STATE_CRITICAL ; | ||
| 462 | } | 480 | } |
| 463 | (void) fclose (child_stderr); | 481 | (void) fclose (child_stderr); |
| 464 | 482 | ||
| @@ -469,7 +487,7 @@ run_ping (char *command_line) | |||
| 469 | 487 | ||
| 470 | return result; | 488 | return result; |
| 471 | } | 489 | } |
| 472 | 490 | ||
| 473 | 491 | ||
| 474 | void | 492 | void |
| 475 | print_usage (void) | 493 | print_usage (void) |
