X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2Fcheck_mysql.c;h=307481463371417e8f3cb36bf0294726008d7880;hb=b785fae376955045c2667073071678be647f0e17;hp=50836f91109f4ec9f0b51be0e81eb04ac3ec89ef;hpb=44a321cb8a42d6c0ea2d96a1086a17f2134c89cc;p=nagiosplug.git diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c index 50836f9..3074814 100644 --- a/plugins/check_mysql.c +++ b/plugins/check_mysql.c @@ -14,7 +14,9 @@ * This plugin is for testing a mysql server. ******************************************************************************/ -#define PROGNAME "check_mysql" +const char *progname = "check_mysql"; +#define REVISION "$Revision$" +#define COPYRIGHT "1999-2002" #include "common.h" #include "utils.h" @@ -22,16 +24,14 @@ #include #include -char *db_user = NULL; -char *db_host = NULL; -char *db_pass = NULL; -char *db = NULL; +char *db_user = ""; +char *db_host = ""; +char *db_pass = ""; +char *db = ""; unsigned int db_port = MYSQL_PORT; int process_arguments (int, char **); -int call_getopt (int, char **); int validate_arguments (void); -int check_disk (int usp, int free_disk); void print_help (void); void print_usage (void); @@ -126,49 +126,6 @@ process_arguments (int argc, char **argv) { int c; - if (argc < 1) - return ERROR; - - c = 0; - while ((c += (call_getopt (argc - c, &argv[c]))) < argc) { - - if (is_option (argv[c])) - continue; - - if (db_host == NULL) - if (is_host (argv[c])) { - db_host = argv[c]; - } - else { - usage ("Invalid host name"); - } - else if (db_user == NULL) - db_user = argv[c]; - else if (db_pass == NULL) - db_pass = argv[c]; - else if (db == NULL) - db = argv[c]; - else if (is_intnonneg (argv[c])) - db_port = atoi (argv[c]); - } - - if (db_host == NULL) - db_host = strscpy (db_host, "127.0.0.1"); - - return validate_arguments (); -} - - - - - - -int -call_getopt (int argc, char **argv) -{ - int c, i = 0; - -#ifdef HAVE_GETOPT_H int option_index = 0; static struct option long_options[] = { {"hostname", required_argument, 0, 'H'}, @@ -181,30 +138,16 @@ call_getopt (int argc, char **argv) {"help", no_argument, 0, 'h'}, {0, 0, 0, 0} }; -#endif - while (1) { -#ifdef HAVE_GETOPT_H - c = - getopt_long (argc, argv, "+hVP:p:u:d:H:", long_options, &option_index); -#else - c = getopt (argc, argv, "+?hVP:p:u:d:H:"); -#endif + if (argc < 1) + return ERROR; - i++; + while (1) { + c = getopt_long (argc, argv, "hVP:p:u:d:H:", long_options, &option_index); - if (c == -1 || c == EOF || c == 1) + if (c == -1 || c == EOF) break; - switch (c) { - case 'P': - case 'p': - case 'u': - case 'd': - case 'H': - i++; - } - switch (c) { case 'H': /* hostname */ if (is_host (optarg)) { @@ -227,7 +170,7 @@ call_getopt (int argc, char **argv) db_port = atoi (optarg); break; case 'V': /* version */ - print_revision (my_basename (argv[0]), "$Revision$"); + print_revision (progname, REVISION); exit (STATE_OK); case 'h': /* help */ print_help (); @@ -236,7 +179,31 @@ call_getopt (int argc, char **argv) usage ("Invalid argument\n"); } } - return i; + + c = optind; + + while ( argc > c ) { + + if (strlen(db_host) == 0) + if (is_host (argv[c])) { + db_host = argv[c++]; + } + else { + usage ("Invalid host name"); + } + else if (strlen(db_user) == 0) + db_user = argv[c++]; + else if (strlen(db_pass) == 0) + db_pass = argv[c++]; + else if (strlen(db) == 0) + db = argv[c++]; + else if (is_intnonneg (argv[c])) + db_port = atoi (argv[c++]); + else + break; + } + + return validate_arguments (); } @@ -256,7 +223,7 @@ validate_arguments (void) void print_help (void) { - print_revision (PROGNAME, "$Revision$"); + print_revision (progname, REVISION); printf ("Copyright (c) 2000 Didi Rieder/Karl DeBisschop\n\n" "This plugin is for testing a mysql server.\n"); @@ -293,5 +260,5 @@ print_usage (void) printf ("Usage: %s [-d database] [-H host] [-P port] [-u user] [-p password]\n" " %s --help\n" - " %s --version\n", PROGNAME, PROGNAME, PROGNAME); + " %s --version\n", progname, progname, progname); }