diff options
Diffstat (limited to 'plugins/check_by_ssh.c')
| -rw-r--r-- | plugins/check_by_ssh.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/plugins/check_by_ssh.c b/plugins/check_by_ssh.c index 1675071c..65eee3c5 100644 --- a/plugins/check_by_ssh.c +++ b/plugins/check_by_ssh.c | |||
| @@ -46,9 +46,9 @@ int validate_arguments (void); | |||
| 46 | void print_help (void); | 46 | void print_help (void); |
| 47 | void print_usage (void); | 47 | void print_usage (void); |
| 48 | 48 | ||
| 49 | int commands = 0; | 49 | unsigned int commands = 0; |
| 50 | int services = 0; | 50 | unsigned int services = 0; |
| 51 | int skip = 0; | 51 | unsigned int skip = 0; |
| 52 | char *remotecmd = NULL; | 52 | char *remotecmd = NULL; |
| 53 | char *comm = NULL; | 53 | char *comm = NULL; |
| 54 | char *hostname = NULL; | 54 | char *hostname = NULL; |
| @@ -92,12 +92,13 @@ main (int argc, char **argv) | |||
| 92 | printf ("%s\n", comm); | 92 | printf ("%s\n", comm); |
| 93 | 93 | ||
| 94 | result = np_runcmd(comm, &chld_out, &chld_err, 0); | 94 | result = np_runcmd(comm, &chld_out, &chld_err, 0); |
| 95 | /* UNKNOWN if output found on stderr */ | 95 | /* UNKNOWN if (non-skipped) output found on stderr */ |
| 96 | if(chld_err.buflen) { | 96 | if((signed)chld_err.lines - (signed)skip > 0) { |
| 97 | printf(_("Remote command execution failed: %s\n"), | 97 | printf(_("Remote command execution failed: %s\n"), |
| 98 | chld_err.buflen ? chld_err.buf : _("Unknown error")); | 98 | skip < chld_err.lines ? chld_err.line[skip] : chld_err.buf); |
| 99 | return STATE_UNKNOWN; | 99 | return STATE_UNKNOWN; |
| 100 | } | 100 | } |
| 101 | skip -= chld_err.lines; | ||
| 101 | 102 | ||
| 102 | /* this is simple if we're not supposed to be passive. | 103 | /* this is simple if we're not supposed to be passive. |
| 103 | * Wrap up quickly and keep the tricks below */ | 104 | * Wrap up quickly and keep the tricks below */ |
| @@ -336,7 +337,7 @@ print_help (void) | |||
| 336 | printf (" %s\n", _("tell ssh to use Protocol 1")); | 337 | printf (" %s\n", _("tell ssh to use Protocol 1")); |
| 337 | printf (" %s\n", "-2, --proto2"); | 338 | printf (" %s\n", "-2, --proto2"); |
| 338 | printf (" %s\n", _("tell ssh to use Protocol 2")); | 339 | printf (" %s\n", _("tell ssh to use Protocol 2")); |
| 339 | printf (" %s\n", "-S, --skiplines=n"); | 340 | printf (" %s\n", "-S, --skip=n"); |
| 340 | printf (" %s\n", _("Ignore first n lines on STDERR (to suppress a logon banner)")); | 341 | printf (" %s\n", _("Ignore first n lines on STDERR (to suppress a logon banner)")); |
| 341 | printf (" %s\n", "-f"); | 342 | printf (" %s\n", "-f"); |
| 342 | printf (" %s\n", _("tells ssh to fork rather than create a tty")); | 343 | printf (" %s\n", _("tells ssh to fork rather than create a tty")); |
| @@ -383,6 +384,8 @@ void | |||
| 383 | print_usage (void) | 384 | print_usage (void) |
| 384 | { | 385 | { |
| 385 | printf (_("Usage:")); | 386 | printf (_("Usage:")); |
| 386 | printf(" %s [-fq46] [-t timeout] [-i identity] [-l user] -H <host> -C <command>",progname); | 387 | printf (" %s -H <host> -C <command> [-fq] [-1|-2] [-4|-6]\n" |
| 387 | printf(" [-n name] [-s servicelist] [-O outputfile] [-p port] [-o ssh-option]\n"); | 388 | " [-S lines] [-t timeout] [-i identity] [-l user] [-n name]\n" |
| 389 | " [-s servicelist] [-O outputfile] [-p port] [-o ssh-option]\n", | ||
| 390 | progname); | ||
| 388 | } | 391 | } |
