diff options
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/negate.c | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/plugins/negate.c b/plugins/negate.c index b6effe39..a11558d5 100644 --- a/plugins/negate.c +++ b/plugins/negate.c | |||
| @@ -120,17 +120,14 @@ main (int argc, char **argv) | |||
| 120 | usage ("Could not parse arguments"); | 120 | usage ("Could not parse arguments"); |
| 121 | 121 | ||
| 122 | /* Set signal handling and alarm */ | 122 | /* Set signal handling and alarm */ |
| 123 | if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) { | 123 | if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) |
| 124 | printf ("Cannot catch SIGALRM"); | 124 | terminate (STATE_UNKNOWN, "Cannot catch SIGALRM"); |
| 125 | return STATE_UNKNOWN; | 125 | |
| 126 | } | 126 | (void) alarm ((unsigned) timeout_interval); |
| 127 | alarm (timeout_interval); | ||
| 128 | 127 | ||
| 129 | child_process = spopen (command_line); | 128 | child_process = spopen (command_line); |
| 130 | if (child_process == NULL) { | 129 | if (child_process == NULL) |
| 131 | printf ("Could not open pipe: %s\n", command_line); | 130 | terminate (STATE_UNKNOWN, "Could not open pipe: %s\n", command_line); |
| 132 | exit (STATE_UNKNOWN); | ||
| 133 | } | ||
| 134 | 131 | ||
| 135 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); | 132 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); |
| 136 | if (child_stderr == NULL) { | 133 | if (child_stderr == NULL) { |
| @@ -139,7 +136,7 @@ main (int argc, char **argv) | |||
| 139 | 136 | ||
| 140 | while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) { | 137 | while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) { |
| 141 | found++; | 138 | found++; |
| 142 | if (index (input_buffer, '\n')) { | 139 | if (strchr (input_buffer, '\n')) { |
| 143 | input_buffer[strcspn (input_buffer, "\n")] = 0; | 140 | input_buffer[strcspn (input_buffer, "\n")] = 0; |
| 144 | printf ("%s\n", input_buffer); | 141 | printf ("%s\n", input_buffer); |
| 145 | } | 142 | } |
| @@ -148,11 +145,10 @@ main (int argc, char **argv) | |||
| 148 | } | 145 | } |
| 149 | } | 146 | } |
| 150 | 147 | ||
| 151 | if (!found) { | 148 | if (!found) |
| 152 | printf ("%s problem - No data recieved from host\nCMD: %s\n", argv[0], | 149 | terminate (STATE_UNKNOWN,\ |
| 153 | command_line); | 150 | "%s problem - No data recieved from host\nCMD: %s\n",\ |
| 154 | exit (STATE_UNKNOWN); | 151 | argv[0], command_line); |
| 155 | } | ||
| 156 | 152 | ||
| 157 | /* close the pipe */ | 153 | /* close the pipe */ |
| 158 | result = spclose (child_process); | 154 | result = spclose (child_process); |
| @@ -165,11 +161,11 @@ main (int argc, char **argv) | |||
| 165 | (void) fclose (child_stderr); | 161 | (void) fclose (child_stderr); |
| 166 | 162 | ||
| 167 | if (result == STATE_OK) | 163 | if (result == STATE_OK) |
| 168 | return STATE_CRITICAL; | 164 | exit (STATE_CRITICAL); |
| 169 | else if (result == STATE_CRITICAL) | 165 | else if (result == STATE_CRITICAL) |
| 170 | return STATE_OK; | 166 | exit (EXIT_SUCCESS); |
| 171 | else | 167 | else |
| 172 | return result; | 168 | exit (result); |
| 173 | } | 169 | } |
| 174 | 170 | ||
| 175 | 171 | ||
| @@ -251,10 +247,10 @@ process_arguments (int argc, char **argv) | |||
| 251 | usage2 ("Unknown argument", optarg); | 247 | usage2 ("Unknown argument", optarg); |
| 252 | case 'h': /* help */ | 248 | case 'h': /* help */ |
| 253 | print_help (); | 249 | print_help (); |
| 254 | exit (STATE_OK); | 250 | exit (EXIT_SUCCESS); |
| 255 | case 'V': /* version */ | 251 | case 'V': /* version */ |
| 256 | print_revision (PROGNAME, REVISION); | 252 | print_revision (PROGNAME, REVISION); |
| 257 | exit (STATE_OK); | 253 | exit (EXIT_SUCCESS); |
| 258 | case 't': /* timeout period */ | 254 | case 't': /* timeout period */ |
| 259 | if (!is_integer (optarg)) | 255 | if (!is_integer (optarg)) |
| 260 | usage2 ("Timeout Interval must be an integer", optarg); | 256 | usage2 ("Timeout Interval must be an integer", optarg); |
| @@ -265,7 +261,7 @@ process_arguments (int argc, char **argv) | |||
| 265 | 261 | ||
| 266 | command_line = strscpy (command_line, argv[optind]); | 262 | command_line = strscpy (command_line, argv[optind]); |
| 267 | for (c = optind+1; c <= argc; c++) { | 263 | for (c = optind+1; c <= argc; c++) { |
| 268 | command_line = ssprintf (command_line, "%s %s", command_line, argv[c]); | 264 | asprintf (&command_line, "%s %s", command_line, argv[c]); |
| 269 | } | 265 | } |
| 270 | 266 | ||
| 271 | return validate_arguments (); | 267 | return validate_arguments (); |
| @@ -286,7 +282,7 @@ process_arguments (int argc, char **argv) | |||
| 286 | int | 282 | int |
| 287 | validate_arguments () | 283 | validate_arguments () |
| 288 | { | 284 | { |
| 289 | return OK; | 285 | return STATE_OK; |
| 290 | } | 286 | } |
| 291 | 287 | ||
| 292 | 288 | ||
