diff --git a/plugins/negate.c b/plugins/negate.c
index b6effe399facbc30477bc1c100a42380c50d97ee..454ac963570f9705678330d7b7e99b75f4375df6 100644 (file)
--- a/plugins/negate.c
+++ b/plugins/negate.c
*
*****************************************************************************/
-#define PROGNAME "negate"
+const char *progname = "negate";
#define REVISION "$Revision$"
#define COPYRIGHT "2002"
#define AUTHOR "Karl DeBisschop"
char *command_line;
-static int process_arguments (int, char **);
-static int validate_arguments (void);
-static void print_usage (void);
-static void print_help (void);
+int process_arguments (int, char **);
+int validate_arguments (void);
+void print_usage (void);
+void print_help (void);
\f
/******************************************************************************
<manvolnum>5<manvolnum>
</refmeta>
<refnamdiv>
-<refname>&PROGNAME;</refname>
+<refname>&progname;</refname>
<refpurpose>&SUMMARY;</refpurpose>
</refnamdiv>
</refentry>
usage ("Could not parse arguments");
/* Set signal handling and alarm */
- if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) {
- printf ("Cannot catch SIGALRM");
- return STATE_UNKNOWN;
- }
- alarm (timeout_interval);
+ if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR)
+ terminate (STATE_UNKNOWN, "Cannot catch SIGALRM");
+
+ (void) alarm ((unsigned) timeout_interval);
child_process = spopen (command_line);
- if (child_process == NULL) {
- printf ("Could not open pipe: %s\n", command_line);
- exit (STATE_UNKNOWN);
- }
+ if (child_process == NULL)
+ terminate (STATE_UNKNOWN, "Could not open pipe: %s\n", command_line);
child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r");
if (child_stderr == NULL) {
while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) {
found++;
- if (index (input_buffer, '\n')) {
+ if (strchr (input_buffer, '\n')) {
input_buffer[strcspn (input_buffer, "\n")] = 0;
printf ("%s\n", input_buffer);
}
}
}
- if (!found) {
- printf ("%s problem - No data recieved from host\nCMD: %s\n", argv[0],
- command_line);
- exit (STATE_UNKNOWN);
- }
+ if (!found)
+ terminate (STATE_UNKNOWN,\
+ "%s problem - No data recieved from host\nCMD: %s\n",\
+ argv[0], command_line);
/* close the pipe */
result = spclose (child_process);
(void) fclose (child_stderr);
if (result == STATE_OK)
- return STATE_CRITICAL;
+ exit (STATE_CRITICAL);
else if (result == STATE_CRITICAL)
- return STATE_OK;
+ exit (EXIT_SUCCESS);
else
- return result;
+ exit (result);
}
\f
void
print_help (void)
{
- print_revision (PROGNAME, REVISION);
+ print_revision (progname, REVISION);
printf
("Copyright (c) %s %s <%s>\n\n%s\n",
COPYRIGHT, AUTHOR, EMAIL, SUMMARY);
" %s -h for detailed help\n"
" %s -V for version information\n",
#endif
- PROGNAME, OPTIONS, PROGNAME, PROGNAME);
+ progname, OPTIONS, progname, progname);
}
\f
while (1) {
#ifdef HAVE_GETOPT_H
- c = getopt_long (argc, argv, "+?hVt:",
+ c = getopt_long (argc, argv, "hVt:",
long_options, &option_index);
#else
- c = getopt (argc, argv, "+?hVt:");
+ c = getopt (argc, argv, "hVt:");
#endif
if (c == -1 || c == EOF)
break;
switch (c) {
case '?': /* help */
- usage2 ("Unknown argument", optarg);
+ usage3 ("Unknown argument", optopt);
case 'h': /* help */
print_help ();
- exit (STATE_OK);
+ exit (EXIT_SUCCESS);
case 'V': /* version */
- print_revision (PROGNAME, REVISION);
- exit (STATE_OK);
+ print_revision (progname, REVISION);
+ exit (EXIT_SUCCESS);
case 't': /* timeout period */
if (!is_integer (optarg))
usage2 ("Timeout Interval must be an integer", optarg);
command_line = strscpy (command_line, argv[optind]);
for (c = optind+1; c <= argc; c++) {
- command_line = ssprintf (command_line, "%s %s", command_line, argv[c]);
+ asprintf (&command_line, "%s %s", command_line, argv[c]);
}
return validate_arguments ();
int
validate_arguments ()
{
- return OK;
+ return STATE_OK;
}
\f