瀏覽代碼

remove call_getopt

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@188 f882894a-f735-0410-b71e-b25c423dba1c
Karl DeBisschop 23 年之前
父節點
當前提交
41367d9625
共有 3 個文件被更改,包括 73 次插入149 次删除
  1. 38 64
      plugins/check_mysql.c
  2. 30 75
      plugins/check_real.c
  3. 5 10
      plugins/check_ups.c

+ 38 - 64
plugins/check_mysql.c

@@ -15,6 +15,8 @@
 ******************************************************************************/
 
 #define PROGNAME "check_mysql"
+#define REVISION "$Revision$"
+#define COPYRIGHT "1999-2002"
 
 #include "common.h"
 #include "utils.h"
@@ -22,14 +24,13 @@
 #include <mysql/mysql.h>
 #include <mysql/errmsg.h>
 
-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);
@@ -126,48 +127,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[] = {
@@ -183,28 +142,20 @@ call_getopt (int argc, char **argv)
 	};
 #endif
 
+	if (argc < 1)
+		return ERROR;
+
 	while (1) {
 #ifdef HAVE_GETOPT_H
 		c =
-			getopt_long (argc, argv, "+hVP:p:u:d:H:", long_options, &option_index);
+			getopt_long (argc, argv, "hVP:p:u:d:H:", long_options, &option_index);
 #else
-		c = getopt (argc, argv, "+?hVP:p:u:d:H:");
+		c = getopt (argc, argv, "hVP:p:u:d:H:");
 #endif
 
-		i++;
-
-		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 +178,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 +187,30 @@ call_getopt (int argc, char **argv)
 			usage ("Invalid argument\n");
 		}
 	}
-	return i;
+
+	c = optind;
+
+	if (strlen(db_host) == 0 && argc > c)
+		if (is_host (argv[c])) {
+			db_host = argv[c++];
+		}
+		else {
+			usage ("Invalid host name");
+		}
+
+	if (strlen(db_user) == 0 && argc > c)
+		db_user = argv[c++];
+
+	if (strlen(db_pass) == 0 && argc > c)
+		db_pass = argv[c++];
+
+	if (strlen(db) == 0 && argc > c)
+		db = argv[c++];
+
+	if (is_intnonneg (argv[c]))
+		db_port = atoi (argv[c++]);
+
+	return validate_arguments ();
 }
 
 
@@ -256,7 +230,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");

+ 30 - 75
plugins/check_real.c

@@ -55,17 +55,16 @@
 #define URL	""
 
 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);
 
 int server_port = PORT;
-char *server_address = NULL;
+char *server_address = "";
 char *host_name = NULL;
 char *server_url = NULL;
-char *server_expect = NULL;
+char *server_expect = EXPECT;
 int warning_time = 0;
 int check_warning_time = FALSE;
 int critical_time = 0;
@@ -117,7 +116,7 @@ main (int argc, char **argv)
 		terminate (STATE_CRITICAL, "No data received from %s\n", host_name);
 
 	/* make sure we find the response we are looking for */
-	if (!strstr (buffer, EXPECT)) {
+	if (!strstr (buffer, server_expect)) {
 		if (server_port == PORT)
 			printf ("Invalid REAL response received from host\n");
 		else
@@ -190,7 +189,7 @@ main (int argc, char **argv)
 		}
 		else {
 			/* make sure we find the response we are looking for */
-			if (!strstr (buffer, EXPECT)) {
+			if (!strstr (buffer, server_expect)) {
 				if (server_port == PORT)
 					printf ("Invalid REAL response received from host\n");
 				else
@@ -275,52 +274,6 @@ process_arguments (int argc, char **argv)
 {
 	int c;
 
-	if (argc < 2)
-		return ERROR;
-
-	for (c = 1; c < argc; c++) {
-		if (strcmp ("-to", argv[c]) == 0)
-			strcpy (argv[c], "-t");
-		else if (strcmp ("-wt", argv[c]) == 0)
-			strcpy (argv[c], "-w");
-		else if (strcmp ("-ct", argv[c]) == 0)
-			strcpy (argv[c], "-c");
-	}
-
-
-
-	c = 0;
-	while ((c += (call_getopt (argc - c, &argv[c]))) < argc) {
-
-		if (is_option (argv[c]))
-			continue;
-
-		if (server_address == NULL) {
-			if (is_host (argv[c])) {
-				server_address = argv[c];
-			}
-			else {
-				usage ("Invalid host name");
-			}
-		}
-	}
-
-	if (server_expect == NULL)
-		server_expect = strscpy (NULL, EXPECT);
-
-	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[] = {
@@ -339,6 +292,18 @@ call_getopt (int argc, char **argv)
 	};
 #endif
 
+	if (argc < 2)
+		return ERROR;
+
+	for (c = 1; c < argc; c++) {
+		if (strcmp ("-to", argv[c]) == 0)
+			strcpy (argv[c], "-t");
+		else if (strcmp ("-wt", argv[c]) == 0)
+			strcpy (argv[c], "-w");
+		else if (strcmp ("-ct", argv[c]) == 0)
+			strcpy (argv[c], "-c");
+	}
+
 	while (1) {
 #ifdef HAVE_GETOPT_H
 		c =
@@ -348,32 +313,11 @@ call_getopt (int argc, char **argv)
 		c = getopt (argc, argv, "+?hVI:H:e:u:p:w:c:t");
 #endif
 
-		i++;
-
-		if (c == -1 || c == EOF || c == 1)
+		if (c == -1 || c == EOF)
 			break;
 
-		switch (c) {
-		case 'I':
-		case 'H':
-		case 'e':
-		case 'u':
-		case 'p':
-		case 'w':
-		case 'c':
-		case 't':
-			i++;
-		}
-
 		switch (c) {
 		case 'I':									/* hostname */
-			if (is_host (optarg)) {
-				server_address = optarg;
-			}
-			else {
-				usage ("Invalid host name\n");
-			}
-			break;
 		case 'H':									/* hostname */
 			if (is_host (optarg)) {
 				server_address = optarg;
@@ -385,7 +329,7 @@ call_getopt (int argc, char **argv)
 		case 'e':									/* string to expect in response header */
 			server_expect = optarg;
 			break;
-		case 'u':									/* string to expect in response header */
+		case 'u':									/* server URL */
 			server_url = optarg;
 			break;
 		case 'p':									/* port */
@@ -435,7 +379,18 @@ call_getopt (int argc, char **argv)
 			usage ("Invalid argument\n");
 		}
 	}
-	return i;
+
+	c = optind;
+	if (strlen(server_address) == 0 && argc > c) {
+		if (is_host (argv[c])) {
+			server_address = argv[c++];
+		}
+		else {
+			usage ("Invalid host name");
+		}
+	}
+
+	return validate_arguments ();
 }
 
 

+ 5 - 10
plugins/check_ups.c

@@ -82,7 +82,7 @@
 #define UPSSTATUS_UNKOWN	32
 
 int server_port = PORT;
-char *server_address = NULL;
+char *server_address = "127.0.0.1";
 char *ups_name = NULL;
 double warning_value = 0.0L;
 double critical_value = 0.0L;
@@ -103,7 +103,6 @@ int determine_supported_vars (void);
 int get_ups_variable (const char *, char *, int);
 
 int process_arguments (int, char **);
-int call_getopt (int, char **);
 int validate_arguments (void);
 void print_help (void);
 void print_usage (void);
@@ -547,17 +546,13 @@ process_arguments (int argc, char **argv)
 	}
 
 
-	if (server_address == NULL) {
-		if (optind >= argc) {
-			server_address = strscpy (NULL, "127.0.0.1");
-		}
-		else if (is_host (argv[optind])) {
+	if (server_address == NULL && argc > optind) {
+		if (is_host (argv[optind]))
 			server_address = argv[optind++];
-		}
-		else {
+		else
 			usage ("Invalid host name");
-		}
 	}
+
 	return validate_arguments();
 }