X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fnegate.c;h=c1c0bc57fd07ae71fb16cf11b26102dc7afd22df;hb=11b35b92e3195d230bef359f6a0679ae4414716b;hp=c76f5ca08cddddddc6bd50fdeb48c1cc0dc24741;hpb=731426203c88b76255492ad69138e6ecc7b0c7b5;p=nagiosplug.git diff --git a/plugins/negate.c b/plugins/negate.c index c76f5ca..c1c0bc5 100644 --- a/plugins/negate.c +++ b/plugins/negate.c @@ -23,7 +23,7 @@ * *****************************************************************************/ -#define PROGNAME "negate" +const char *progname = "negate"; #define REVISION "$Revision$" #define COPYRIGHT "2002" #define AUTHOR "Karl DeBisschop" @@ -31,7 +31,7 @@ #define SUMMARY "Negates the status of a plugin (returns OK for CRITICAL, and vice-versa).\n" #define OPTIONS "\ -\[-t timeout] " +[-t timeout] " #define LONGOPTIONS "\ -t, --timeout=INTEGER\n\ @@ -52,10 +52,10 @@ Otherwise, the output state of the wrapped plugin is unchanged.\n" 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); /****************************************************************************** @@ -76,7 +76,7 @@ Please note that all tags must be lowercase to use the DocBook XML DTD. 5 -&PROGNAME; +&progname; &SUMMARY; @@ -117,7 +117,7 @@ main (int argc, char **argv) char input_buffer[MAX_INPUT_BUFFER]; if (process_arguments (argc, argv) == ERROR) - usage ("Could not parse arguments"); + usage ("Could not parse arguments\n"); /* Set signal handling and alarm */ if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) @@ -174,7 +174,7 @@ main (int argc, char **argv) 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); @@ -189,14 +189,9 @@ void print_usage (void) { printf ("Usage:\n" " %s %s\n" -#ifdef HAVE_GETOPT_H " %s (-h | --help) for detailed help\n" " %s (-V | --version) for version information\n", -#else - " %s -h for detailed help\n" - " %s -V for version information\n", -#endif - PROGNAME, OPTIONS, PROGNAME, PROGNAME); + progname, OPTIONS, progname, progname); } @@ -222,7 +217,6 @@ process_arguments (int argc, char **argv) { int c; -#ifdef HAVE_GETOPT_H int option_index = 0; static struct option long_options[] = { {"help", no_argument, 0, 'h'}, @@ -230,15 +224,11 @@ process_arguments (int argc, char **argv) {"timeout", required_argument, 0, 't'}, {0, 0, 0, 0} }; -#endif 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:"); -#endif + if (c == -1 || c == EOF) break; @@ -249,7 +239,7 @@ process_arguments (int argc, char **argv) print_help (); exit (EXIT_SUCCESS); case 'V': /* version */ - print_revision (PROGNAME, REVISION); + print_revision (progname, REVISION); exit (EXIT_SUCCESS); case 't': /* timeout period */ if (!is_integer (optarg)) @@ -259,8 +249,8 @@ process_arguments (int argc, char **argv) } } - command_line = strscpy (command_line, argv[optind]); - for (c = optind+1; c <= argc; c++) { + asprintf (&command_line, "%s", argv[optind]); + for (c = optind+1; c < argc; c++) { asprintf (&command_line, "%s %s", command_line, argv[c]); } @@ -282,6 +272,8 @@ process_arguments (int argc, char **argv) int validate_arguments () { + if (command_line == NULL) + return ERROR; return STATE_OK; }