diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/check_tcp.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/plugins/check_tcp.c b/plugins/check_tcp.c index 9e62638b..e8d7ec68 100644 --- a/plugins/check_tcp.c +++ b/plugins/check_tcp.c | |||
@@ -82,15 +82,14 @@ static int sd = 0; | |||
82 | #define MAXBUF 1024 | 82 | #define MAXBUF 1024 |
83 | static char buffer[MAXBUF]; | 83 | static char buffer[MAXBUF]; |
84 | static int expect_mismatch_state = STATE_WARNING; | 84 | static int expect_mismatch_state = STATE_WARNING; |
85 | static int match_flags = NP_MATCH_EXACT; | ||
85 | 86 | ||
86 | #define FLAG_SSL 0x01 | 87 | #define FLAG_SSL 0x01 |
87 | #define FLAG_VERBOSE 0x02 | 88 | #define FLAG_VERBOSE 0x02 |
88 | #define FLAG_EXACT_MATCH 0x04 | 89 | #define FLAG_TIME_WARN 0x04 |
89 | #define FLAG_TIME_WARN 0x08 | 90 | #define FLAG_TIME_CRIT 0x08 |
90 | #define FLAG_TIME_CRIT 0x10 | 91 | #define FLAG_HIDE_OUTPUT 0x10 |
91 | #define FLAG_HIDE_OUTPUT 0x20 | 92 | static size_t flags; |
92 | #define FLAG_MATCH_ALL 0x40 | ||
93 | static size_t flags = FLAG_EXACT_MATCH; | ||
94 | 93 | ||
95 | int | 94 | int |
96 | main (int argc, char **argv) | 95 | main (int argc, char **argv) |
@@ -296,12 +295,7 @@ main (int argc, char **argv) | |||
296 | (int)len + 1, status); | 295 | (int)len + 1, status); |
297 | while(isspace(status[len])) status[len--] = '\0'; | 296 | while(isspace(status[len])) status[len--] = '\0'; |
298 | 297 | ||
299 | match = np_expect_match(status, | 298 | match = np_expect_match(status, server_expect, server_expect_count, match_flags); |
300 | server_expect, | ||
301 | server_expect_count, | ||
302 | (flags & FLAG_MATCH_ALL ? TRUE : FALSE), | ||
303 | (flags & FLAG_EXACT_MATCH ? TRUE : FALSE), | ||
304 | (flags & FLAG_VERBOSE ? TRUE : FALSE)); | ||
305 | } | 299 | } |
306 | 300 | ||
307 | if (server_quit != NULL) { | 301 | if (server_quit != NULL) { |
@@ -450,6 +444,7 @@ process_arguments (int argc, char **argv) | |||
450 | exit (STATE_OK); | 444 | exit (STATE_OK); |
451 | case 'v': /* verbose mode */ | 445 | case 'v': /* verbose mode */ |
452 | flags |= FLAG_VERBOSE; | 446 | flags |= FLAG_VERBOSE; |
447 | match_flags |= NP_MATCH_VERBOSE; | ||
453 | break; | 448 | break; |
454 | case '4': | 449 | case '4': |
455 | address_family = AF_INET; | 450 | address_family = AF_INET; |
@@ -506,7 +501,7 @@ process_arguments (int argc, char **argv) | |||
506 | xasprintf(&server_send, "%s", optarg); | 501 | xasprintf(&server_send, "%s", optarg); |
507 | break; | 502 | break; |
508 | case 'e': /* expect string (may be repeated) */ | 503 | case 'e': /* expect string (may be repeated) */ |
509 | flags &= ~FLAG_EXACT_MATCH; | 504 | match_flags &= ~NP_MATCH_EXACT; |
510 | if (server_expect_count == 0) | 505 | if (server_expect_count == 0) |
511 | server_expect = malloc (sizeof (char *) * (++server_expect_count)); | 506 | server_expect = malloc (sizeof (char *) * (++server_expect_count)); |
512 | else | 507 | else |
@@ -584,7 +579,7 @@ process_arguments (int argc, char **argv) | |||
584 | #endif | 579 | #endif |
585 | break; | 580 | break; |
586 | case 'A': | 581 | case 'A': |
587 | flags |= FLAG_MATCH_ALL; | 582 | match_flags |= NP_MATCH_ALL; |
588 | break; | 583 | break; |
589 | } | 584 | } |
590 | } | 585 | } |