Code

check_tcp code cleanup from andreas plus fix to andreas' patch from sean
[nagiosplug.git] / plugins / check_overcr.c
index 5f50ca7ec4c848538ddb3ac4e2cd06b1589990fe..a4abf2b9cc35060de8457623e0963f0d7e03e711 100644 (file)
  along with this program; if not, write to the Free Software
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
+ $Id$
 ******************************************************************************/
 
 const char *progname = "check_overcr";
 const char *revision = "$Revision$";
-const char *copyright = "2000-2003";
+const char *copyright = "2000-2004";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #include "common.h"
@@ -61,7 +63,7 @@ void print_help (void);
 int
 main (int argc, char **argv)
 {
-       int result;
+       int result = STATE_UNKNOWN;
        char recv_buffer[MAX_INPUT_BUFFER];
        char temp_buffer[MAX_INPUT_BUFFER];
        char *temp_ptr = NULL;
@@ -79,8 +81,12 @@ main (int argc, char **argv)
        int uptime_hours = 0;
        int uptime_minutes = 0;
 
+       setlocale (LC_ALL, "");
+       bindtextdomain (PACKAGE, LOCALEDIR);
+       textdomain (PACKAGE);
+
        if (process_arguments (argc, argv) == ERROR)
-               usage ("Could not parse arguments\n");
+               usage4 (_("Could not parse arguments"));
 
        /* initialize alarm signal handling */
        signal (SIGALRM, socket_timeout_alarm_handler);
@@ -106,17 +112,20 @@ main (int argc, char **argv)
                temp_ptr = (char *) strtok (recv_buffer, "\r\n");
                if (temp_ptr == NULL)
                        die (STATE_CRITICAL, _("Invalid response from server - no load information\n"));
-               load_1min = strtod (temp_ptr, NULL);
+               else
+                       load_1min = strtod (temp_ptr, NULL);
 
                temp_ptr = (char *) strtok (NULL, "\r\n");
                if (temp_ptr == NULL)
                        die (STATE_CRITICAL, _("Invalid response from server after load 1\n"));
-               load_5min = strtod (temp_ptr, NULL);
+               else
+                       load_5min = strtod (temp_ptr, NULL);
 
                temp_ptr = (char *) strtok (NULL, "\r\n");
                if (temp_ptr == NULL)
                        die (STATE_CRITICAL, _("Invalid response from server after load 5\n"));
-               load_15min = strtod (temp_ptr, NULL);
+               else
+                       load_15min = strtod (temp_ptr, NULL);
 
                switch (vars_to_check) {
                case LOAD1:
@@ -160,7 +169,8 @@ main (int argc, char **argv)
                                temp_ptr = (char *) strtok (NULL, "%");
                                if (temp_ptr == NULL)
                                        die (STATE_CRITICAL, _("Invalid response from server\n"));
-                               percent_used_disk_space = strtoul (temp_ptr, NULL, 10);
+                               else
+                                       percent_used_disk_space = strtoul (temp_ptr, NULL, 10);
                                break;
                        }
 
@@ -170,7 +180,7 @@ main (int argc, char **argv)
                /* error if we couldn't find the info for the disk */
                if (found_disk == FALSE)
                        die (STATE_CRITICAL,
-                                  "Error: Disk '%s' non-existent or not mounted",
+                                  "CRITICAL - Disk '%s' non-existent or not mounted",
                                   disk_name);
 
                if (check_critical_value == TRUE && (percent_used_disk_space >= critical_value))
@@ -186,8 +196,8 @@ main (int argc, char **argv)
 
                if (result != STATE_OK)
                        die (result, _("Unknown error fetching network status\n"));
-
-               port_connections = strtod (recv_buffer, NULL);
+               else
+                       port_connections = strtod (recv_buffer, NULL);
 
                if (check_critical_value == TRUE && (port_connections >= critical_value))
                        result = STATE_CRITICAL;
@@ -215,8 +225,8 @@ main (int argc, char **argv)
                temp_ptr = (char *) strtok (NULL, ")");
                if (temp_ptr == NULL)
                        die (STATE_CRITICAL, _("Invalid response from server\n"));
-
-               processes = strtod (temp_ptr, NULL);
+               else
+                       processes = strtod (temp_ptr, NULL);
 
                if (check_critical_value == TRUE && (processes >= critical_value))
                        result = STATE_CRITICAL;
@@ -262,27 +272,17 @@ main (int argc, char **argv)
                die (STATE_UNKNOWN, _("Nothing to check!\n"));
                break;
        }
-
-       /* reset timeout */
-       alarm (0);
-
-       printf (_("Reached end of program with no data returned\n"));
-
-       return result;
 }
 
 
-
-
-
 /* process command-line arguments */
 int
 process_arguments (int argc, char **argv)
 {
        int c;
 
-       int option_index = 0;
-       static struct option long_options[] = {
+       int option = 0;
+       static struct option longopts[] = {
                {"port", required_argument, 0, 'p'},
                {"timeout", required_argument, 0, 't'},
                {"critical", required_argument, 0, 'c'},
@@ -316,22 +316,20 @@ process_arguments (int argc, char **argv)
        }
 
        while (1) {
-               c = getopt_long (argc, argv, "+hVH:t:c:w:p:v:", long_options,
-                                                                        &option_index);
+               c = getopt_long (argc, argv, "+hVH:t:c:w:p:v:", longopts,
+                                                                        &option);
 
                if (c == -1 || c == EOF || c == 1)
                        break;
 
                switch (c) {
                case '?':                                                                       /* print short usage statement if args not parsable */
-                       printf (_("%s: Unknown argument: %s\n\n"), progname, optarg);
-                       print_usage ();
-                       exit (STATE_UNKNOWN);
+                       usage2 (_("Unknown argument"), optarg);
                case 'h':                                                                       /* help */
                        print_help ();
                        exit (STATE_OK);
                case 'V':                                                                       /* version */
-                       print_revision (progname, "$Revision$");
+                       print_revision (progname, revision);
                        exit (STATE_OK);
                case 'H':                                                                       /* hostname */
                        server_address = optarg;
@@ -341,8 +339,7 @@ process_arguments (int argc, char **argv)
                                server_port = atoi (optarg);
                        else
                                die (STATE_UNKNOWN,
-                                                                        _("Server port an integer (seconds)\nType '%s -h' for additional help\n"),
-                                                                        progname);
+                                                                        _("Server port an integer\n"));
                        break;
                case 'v':                                                                       /* variable */
                        if (strcmp (optarg, "LOAD") == 0) {
@@ -393,16 +390,7 @@ process_arguments (int argc, char **argv)
        }
        return OK;
 }
-\f
-void
-print_usage (void)
-{
-       printf (_("\
-Usage: %s -H host [-p port] [-v variable] [-w warning] [-c critical]\n\
-  [-t timeout]\n"),
-               progname);
-       printf (_(UT_HLP_VRS), progname, progname);
-}
+
 
 void
 print_help (void)
@@ -412,8 +400,8 @@ print_help (void)
 
        print_revision (progname, revision);
 
-       printf (_("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>\n"));
-       printf (_(COPYRIGHT), copyright, email);
+       printf ("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>\n");
+       printf (COPYRIGHT, copyright, email);
 
        printf (_("\
 This plugin attempts to contact the Over-CR collector daemon running on the\n\
@@ -457,3 +445,12 @@ Notes:\n\
 
        printf (_(UT_SUPPORT));
 }
+
+
+void
+print_usage (void)
+{
+       printf ("\
+Usage: %s -H host [-p port] [-v variable] [-w warning] [-c critical]\n\
+                    [-t timeout]\n", progname);
+}