Code

starttls support for check_smtp #1041576
[nagiosplug.git] / plugins / check_nagios.c
index 7c36d116b8be3c5e30491699d0ed1be54f2e7f3b..0176983c5866f900a20587416cfe3aa9b4bab70e 100644 (file)
@@ -20,7 +20,7 @@
 
 const char *progname = "check_nagios";
 const char *revision = "$Revision$";
 
 const char *progname = "check_nagios";
 const char *revision = "$Revision$";
-const char *copyright = "1999-2003";
+const char *copyright = "1999-2004";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -54,6 +54,7 @@ main (int argc, char **argv)
        int procrss = 0;
        float procpcpu = 0;
        char procstat[8];
        int procrss = 0;
        float procpcpu = 0;
        char procstat[8];
+       char procetime[MAX_INPUT_BUFFER];
        char procprog[MAX_INPUT_BUFFER];
        char *procargs;
        int pos, cols;
        char procprog[MAX_INPUT_BUFFER];
        char *procargs;
        int pos, cols;
@@ -65,13 +66,12 @@ main (int argc, char **argv)
        bindtextdomain (PACKAGE, LOCALEDIR);
        textdomain (PACKAGE);
 
        bindtextdomain (PACKAGE, LOCALEDIR);
        textdomain (PACKAGE);
 
-       if (process_arguments (argc, argv) != TRUE)
-               usage (_("check_nagios: could not parse arguments\n"));
+       if (process_arguments (argc, argv) == ERROR)
+               usage4 (_("Could not parse arguments"));
 
 
-       /* Set signal handling and alarm */
+       /* Set signal handling and alarm timeout */
        if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) {
        if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) {
-               printf (_("Cannot catch SIGALRM"));
-               return STATE_UNKNOWN;
+               usage4 (_("Cannot catch SIGALRM"));
        }
 
        /* handle timeouts gracefully... */
        }
 
        /* handle timeouts gracefully... */
@@ -95,7 +95,7 @@ main (int argc, char **argv)
        fclose (fp);
 
        if (verbose >= 2)
        fclose (fp);
 
        if (verbose >= 2)
-               printf("command: %s\n", PS_COMMAND);
+               printf(_("command: %s\n"), PS_COMMAND);
 
        /* run the command to check for the Nagios process.. */
        child_process = spopen (PS_COMMAND);
 
        /* run the command to check for the Nagios process.. */
        child_process = spopen (PS_COMMAND);
@@ -134,7 +134,7 @@ main (int argc, char **argv)
                         }
 
                        /* May get empty procargs */
                         }
 
                        /* May get empty procargs */
-                       if (!strstr(procargs, argv[0]) && strstr(procprog, process_string) && strcmp(procargs,"")) {
+                       if (!strstr(procargs, argv[0]) && strstr(procargs, process_string) && strcmp(procargs,"")) {
                                proc_entries++;
                                if (verbose >= 2) {
                                        printf (_("Found process: %s %s\n"), procprog, procargs);
                                proc_entries++;
                                if (verbose >= 2) {
                                        printf (_("Found process: %s %s\n"), procprog, procargs);
@@ -206,8 +206,7 @@ process_arguments (int argc, char **argv)
                        expire_minutes = atoi (argv[2]);
                else
                        die (STATE_UNKNOWN,
                        expire_minutes = atoi (argv[2]);
                else
                        die (STATE_UNKNOWN,
-                                                                _("Expiration time must be an integer (seconds)\nType '%s -h' for additional help\n"),
-                                                                progname);
+                                                                _("Expiration time must be an integer (seconds)\n"));
                process_string = argv[3];
                return OK;
        }
                process_string = argv[3];
                return OK;
        }
@@ -220,9 +219,7 @@ process_arguments (int argc, char **argv)
 
                switch (c) {
                case '?':                                                                       /* print short usage statement if args not parsable */
 
                switch (c) {
                case '?':                                                                       /* print short usage statement if args not parsable */
-                       printf (_("%s: Unknown argument: %c\n\n"), progname, optopt);
-                       print_usage ();
-                       exit (STATE_UNKNOWN);
+                       usage2 (_("Unknown argument"), optarg);
                case 'h':                                                                       /* help */
                        print_help ();
                        exit (STATE_OK);
                case 'h':                                                                       /* help */
                        print_help ();
                        exit (STATE_OK);
@@ -240,8 +237,7 @@ process_arguments (int argc, char **argv)
                                expire_minutes = atoi (optarg);
                        else
                                die (STATE_UNKNOWN,
                                expire_minutes = atoi (optarg);
                        else
                                die (STATE_UNKNOWN,
-                                    _("Expiration time must be an integer (seconds)\nType '%s -h' for additional help\n"),
-                                    progname);
+                                    _("Expiration time must be an integer (seconds)\n"));
                        break;
                case 'v':
                        verbose++;
                        break;
                case 'v':
                        verbose++;
@@ -252,12 +248,10 @@ process_arguments (int argc, char **argv)
 
        if (status_log == NULL)
                die (STATE_UNKNOWN,
 
        if (status_log == NULL)
                die (STATE_UNKNOWN,
-                    _("You must provide the status_log\nType '%s -h' for additional help\n"),
-                    progname);
+                    _("You must provide the status_log\n"));
        else if (process_string == NULL)
                die (STATE_UNKNOWN,
        else if (process_string == NULL)
                die (STATE_UNKNOWN,
-                                                        _("You must provide a process string\nType '%s -h' for additional help\n"),
-                                                        progname);
+                                                        _("You must provide a process string\n"));
 
        return OK;
 }
 
        return OK;
 }
@@ -272,29 +266,26 @@ print_help (void)
        printf (_(COPYRIGHT), copyright, email);
 
        printf (_("\
        printf (_(COPYRIGHT), copyright, email);
 
        printf (_("\
-This plugin attempts to check the status of the Nagios process on the local\n\
+This plugin checks the status of the Nagios process on the local\n\
 machine. The plugin will check to make sure the Nagios status log is no older\n\
 machine. The plugin will check to make sure the Nagios status log is no older\n\
-than the number of minutes specified by the <expire_minutes> option.  It also\n\
-uses the /bin/ps command to check for a process matching whatever you specify\n\
-by the <process_string> argument.\n"));
+than the number of minutes specified by the expires option. It also\n\
+checks the process table for a process matching the command argument.\n\n"));
 
        print_usage ();
 
        printf (_(UT_HELP_VRSN));
 
        printf (_("\
 
        print_usage ();
 
        printf (_(UT_HELP_VRSN));
 
        printf (_("\
--F, --filename=FILE\n\
+ -F, --filename=FILE\n\
    Name of the log file to check\n\
    Name of the log file to check\n\
--e, --expires=INTEGER\n\
-   Seconds aging afterwhich logfile is condsidered stale\n\
--C, --command=STRING\n\
-   Command to search for in process table\n"));
+ -e, --expires=INTEGER\n\
+   Minutes aging after which logfile is considered stale\n\
+ -C, --command=STRING\n\
+   Substring to search for in process arguments\n"));
 
        printf (_("\
 Example:\n\
 
        printf (_("\
 Example:\n\
-   ./check_nagios -e 5 \\\
-   -F /usr/local/nagios/var/status.log \\\
-   -C /usr/local/nagios/bin/nagios\n"));
+   ./check_nagios -e 5 -F /usr/local/nagios/var/status.log -C /usr/local/nagios/bin/nagios\n"));
 }
 
 
 }
 
 
@@ -302,7 +293,6 @@ Example:\n\
 void
 print_usage (void)
 {
 void
 print_usage (void)
 {
-       printf (_("\
-Usage: %s -F <status log file> -e <expire_minutes> -C <process_string>\n"),
-               progname);
+       printf ("\
+Usage: %s -F <status log file> -e <expire_minutes> -C <process_string>\n", progname);
 }
 }