Code

Remove unnecessary getopt references and link in lib directory
[nagiosplug.git] / plugins / negate.c
index b6effe399facbc30477bc1c100a42380c50d97ee..454ac963570f9705678330d7b7e99b75f4375df6 100644 (file)
@@ -23,7 +23,7 @@
  *
  *****************************************************************************/
 
-#define PROGNAME "negate"
+const char *progname = "negate";
 #define REVISION "$Revision$"
 #define COPYRIGHT "2002"
 #define AUTHOR "Karl DeBisschop"
@@ -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);
 \f
 /******************************************************************************
 
@@ -76,7 +76,7 @@ Please note that all tags must be lowercase to use the DocBook XML DTD.
 <manvolnum>5<manvolnum>
 </refmeta>
 <refnamdiv>
-<refname>&PROGNAME;</refname>
+<refname>&progname;</refname>
 <refpurpose>&SUMMARY;</refpurpose>
 </refnamdiv>
 </refentry>
@@ -120,17 +120,14 @@ main (int argc, char **argv)
                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) {
@@ -139,7 +136,7 @@ main (int argc, char **argv)
 
        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);
                }
@@ -148,11 +145,10 @@ main (int argc, char **argv)
                }
        }
 
-       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);
@@ -165,11 +161,11 @@ main (int argc, char **argv)
        (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
 
@@ -178,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);
@@ -200,7 +196,7 @@ print_usage (void)
                                        " %s -h for detailed help\n"
                                        " %s -V for version information\n",
 #endif
-                                       PROGNAME, OPTIONS, PROGNAME, PROGNAME);
+                                       progname, OPTIONS, progname, progname);
 }
 \f
 
@@ -238,23 +234,23 @@ process_arguments (int argc, char **argv)
 
        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);
@@ -265,7 +261,7 @@ process_arguments (int argc, char **argv)
 
        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 ();
@@ -286,7 +282,7 @@ process_arguments (int argc, char **argv)
 int
 validate_arguments ()
 {
-       return OK;
+       return STATE_OK;
 }
 \f