diff options
-rw-r--r-- | plugins/check_dig.c | 4 | ||||
-rw-r--r-- | plugins/check_http.c | 1 | ||||
-rw-r--r-- | plugins/check_load.c | 6 | ||||
-rw-r--r-- | plugins/check_mrtg.c | 165 | ||||
-rw-r--r-- | plugins/check_mrtgtraf.c | 119 | ||||
-rw-r--r-- | plugins/check_nwstat.c | 33 | ||||
-rw-r--r-- | plugins/check_overcr.c | 26 | ||||
-rw-r--r-- | plugins/check_ping.c | 32 | ||||
-rw-r--r-- | plugins/check_procs.c | 109 | ||||
-rw-r--r-- | plugins/check_real.c | 31 | ||||
-rw-r--r-- | plugins/utils.c | 6 | ||||
-rw-r--r-- | plugins/utils.h | 6 |
12 files changed, 301 insertions, 237 deletions
diff --git a/plugins/check_dig.c b/plugins/check_dig.c index 7c39a243..ff160591 100644 --- a/plugins/check_dig.c +++ b/plugins/check_dig.c | |||
@@ -97,7 +97,7 @@ main (int argc, char **argv) | |||
97 | input_buffer[strcspn (input_buffer, "\r\n")] = '\0'; | 97 | input_buffer[strcspn (input_buffer, "\r\n")] = '\0'; |
98 | 98 | ||
99 | if (strstr (input_buffer, query_address) == input_buffer) { | 99 | if (strstr (input_buffer, query_address) == input_buffer) { |
100 | asprintf (&output, input_buffer); | 100 | output = strdup(input_buffer); |
101 | result = STATE_OK; | 101 | result = STATE_OK; |
102 | } | 102 | } |
103 | else { | 103 | else { |
@@ -119,7 +119,7 @@ main (int argc, char **argv) | |||
119 | result = max_state (result, STATE_WARNING); | 119 | result = max_state (result, STATE_WARNING); |
120 | printf ("%s", input_buffer); | 120 | printf ("%s", input_buffer); |
121 | if (strlen (output) == 0) | 121 | if (strlen (output) == 0) |
122 | asprintf (&output, 1 + index (input_buffer, ':')); | 122 | output = strdup (1 + index (input_buffer, ':')); |
123 | } | 123 | } |
124 | 124 | ||
125 | (void) fclose (child_stderr); | 125 | (void) fclose (child_stderr); |
diff --git a/plugins/check_http.c b/plugins/check_http.c index e2047edd..3321d5ac 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c | |||
@@ -992,6 +992,7 @@ print_help (void) | |||
992 | { | 992 | { |
993 | print_revision (progname, revision); | 993 | print_revision (progname, revision); |
994 | 994 | ||
995 | printf (_("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>\n")); | ||
995 | printf (_(COPYRIGHT), copyright, email); | 996 | printf (_(COPYRIGHT), copyright, email); |
996 | 997 | ||
997 | printf (_("\ | 998 | printf (_("\ |
diff --git a/plugins/check_load.c b/plugins/check_load.c index 4a38e6ce..bdb1e55d 100644 --- a/plugins/check_load.c +++ b/plugins/check_load.c | |||
@@ -45,7 +45,7 @@ void print_usage (void); | |||
45 | float wload1 = -1, wload5 = -1, wload15 = -1; | 45 | float wload1 = -1, wload5 = -1, wload15 = -1; |
46 | float cload1 = -1, cload5 = -1, cload15 = -1; | 46 | float cload1 = -1, cload5 = -1, cload15 = -1; |
47 | 47 | ||
48 | char *status_line = ""; | 48 | char *status_line; |
49 | 49 | ||
50 | 50 | ||
51 | 51 | ||
@@ -72,7 +72,7 @@ main (int argc, char **argv) | |||
72 | float la1, la5, la15; | 72 | float la1, la5, la15; |
73 | 73 | ||
74 | if (process_arguments (argc, argv) == ERROR) | 74 | if (process_arguments (argc, argv) == ERROR) |
75 | usage ("\n"); | 75 | usage ("failed processing arguments\n"); |
76 | 76 | ||
77 | #if HAVE_GETLOADAVG==1 | 77 | #if HAVE_GETLOADAVG==1 |
78 | result = getloadavg (la, 3); | 78 | result = getloadavg (la, 3); |
@@ -122,7 +122,7 @@ main (int argc, char **argv) | |||
122 | # endif | 122 | # endif |
123 | #endif | 123 | #endif |
124 | 124 | ||
125 | if ((la1 == -1) || (la5 == -1) || (la15 == -1)) { | 125 | if ((la1 < 0.0) || (la5 < 0.0) || (la15 < 0.0)) { |
126 | #if HAVE_GETLOADAVG==1 | 126 | #if HAVE_GETLOADAVG==1 |
127 | printf (_("Error in getloadavg()\n")); | 127 | printf (_("Error in getloadavg()\n")); |
128 | #else | 128 | #else |
diff --git a/plugins/check_mrtg.c b/plugins/check_mrtg.c index 2a9958d0..21efac2e 100644 --- a/plugins/check_mrtg.c +++ b/plugins/check_mrtg.c | |||
@@ -24,80 +24,10 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; | |||
24 | #include "common.h" | 24 | #include "common.h" |
25 | #include "utils.h" | 25 | #include "utils.h" |
26 | 26 | ||
27 | /* original command line: | ||
28 | <log_file> <expire_minutes> <AVG|MAX> <variable> <vwl> <vcl> <label> [units] */ | ||
29 | |||
30 | void | ||
31 | print_usage (void) | ||
32 | { | ||
33 | printf (_("\ | ||
34 | Usage: %s -F log_file -a <AVG | MAX> -v variable -w warning -c critical\n\ | ||
35 | [-l label] [-u units] [-e expire_minutes] [-t timeout] [-v]\n"), progname); | ||
36 | printf (_(UT_HLP_VRS), progname, progname); | ||
37 | } | ||
38 | |||
39 | void | ||
40 | print_help (void) | ||
41 | { | ||
42 | print_revision (progname, revision); | ||
43 | |||
44 | printf (_(COPYRIGHT), copyright, email); | ||
45 | |||
46 | printf(_("\ | ||
47 | This plugin will check either the average or maximum value of one of the\n\ | ||
48 | two variables recorded in an MRTG log file.\n")); | ||
49 | |||
50 | print_usage (); | ||
51 | |||
52 | printf (_(UT_HELP_VRSN)); | ||
53 | |||
54 | printf (_("\ | ||
55 | -F, --logfile=FILE\n\ | ||
56 | The MRTG log file containing the data you want to monitor\n\ | ||
57 | -e, --expires=MINUTES\n\ | ||
58 | Minutes before MRTG data is considered to be too old\n\ | ||
59 | -a, --aggregation=AVG|MAX\n\ | ||
60 | Should we check average or maximum values?\n\ | ||
61 | -v, --variable=INTEGER\n\ | ||
62 | Which variable set should we inspect? (1 or 2)\n\ | ||
63 | -w, --warning=INTEGER\n\ | ||
64 | Threshold value for data to result in WARNING status\n\ | ||
65 | -c, --critical=INTEGER\n\ | ||
66 | Threshold value for data to result in CRITICAL status\n")); | ||
67 | |||
68 | printf (_("\ | ||
69 | -l, --label=STRING\n\ | ||
70 | Type label for data (Examples: Conns, \"Processor Load\", In, Out)\n\ | ||
71 | -u, --units=STRING\n\ | ||
72 | Option units label for data (Example: Packets/Sec, Errors/Sec, \n\ | ||
73 | \"Bytes Per Second\", \"%% Utilization\")\n")); | ||
74 | |||
75 | printf (_("\ | ||
76 | If the value exceeds the <vwl> threshold, a WARNING status is returned. If\n\ | ||
77 | the value exceeds the <vcl> threshold, a CRITICAL status is returned. If\n\ | ||
78 | the data in the log file is older than <expire_minutes> old, a WARNING\n\ | ||
79 | status is returned and a warning message is printed.\n\n")); | ||
80 | |||
81 | printf(_("This plugin is useful for monitoring MRTG data that does not correspond to\n\ | ||
82 | bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth).\n\ | ||
83 | It can be used to monitor any kind of data that MRTG is monitoring - errors,\n\ | ||
84 | packets/sec, etc. I use MRTG in conjuction with the Novell NLM that allows\n\ | ||
85 | me to track processor utilization, user connections, drive space, etc and\n\ | ||
86 | this plugin works well for monitoring that kind of data as well.\n\n")); | ||
87 | |||
88 | printf (_("Notes:\n\ | ||
89 | - This plugin only monitors one of the two variables stored in the MRTG log\n\ | ||
90 | file. If you want to monitor both values you will have to define two\n\ | ||
91 | commands with different values for the <variable> argument. Of course,\n\ | ||
92 | you can always hack the code to make this plugin work for you...\n\ | ||
93 | - MRTG stands for the Multi Router Traffic Grapher. It can be downloaded from\n\ | ||
94 | http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html\n")); | ||
95 | |||
96 | printf (_(UT_SUPPORT)); | ||
97 | } | ||
98 | |||
99 | int process_arguments (int, char **); | 27 | int process_arguments (int, char **); |
100 | int validate_arguments (void); | 28 | int validate_arguments (void); |
29 | void print_help (void); | ||
30 | void print_usage (void); | ||
101 | 31 | ||
102 | char *log_file = NULL; | 32 | char *log_file = NULL; |
103 | int expire_minutes = 0; | 33 | int expire_minutes = 0; |
@@ -105,8 +35,8 @@ int use_average = TRUE; | |||
105 | int variable_number = -1; | 35 | int variable_number = -1; |
106 | unsigned long value_warning_threshold = 0L; | 36 | unsigned long value_warning_threshold = 0L; |
107 | unsigned long value_critical_threshold = 0L; | 37 | unsigned long value_critical_threshold = 0L; |
108 | char *value_label = ""; | 38 | char *value_label; |
109 | char *units_label = ""; | 39 | char *units_label; |
110 | 40 | ||
111 | int | 41 | int |
112 | main (int argc, char **argv) | 42 | main (int argc, char **argv) |
@@ -351,5 +281,92 @@ validate_arguments (void) | |||
351 | if (variable_number == -1) | 281 | if (variable_number == -1) |
352 | usage (_("You must supply the variable number\n")); | 282 | usage (_("You must supply the variable number\n")); |
353 | 283 | ||
284 | if (value_label == NULL) | ||
285 | value_label = strdup (""); | ||
286 | |||
287 | if (units_label == NULL) | ||
288 | units_label = strdup (""); | ||
289 | |||
354 | return OK; | 290 | return OK; |
355 | } | 291 | } |
292 | |||
293 | |||
294 | |||
295 | |||
296 | |||
297 | |||
298 | void | ||
299 | print_help (void) | ||
300 | { | ||
301 | print_revision (progname, revision); | ||
302 | |||
303 | printf (_("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>\n")); | ||
304 | printf (_(COPYRIGHT), copyright, email); | ||
305 | |||
306 | printf(_("\ | ||
307 | This plugin will check either the average or maximum value of one of the\n\ | ||
308 | two variables recorded in an MRTG log file.\n")); | ||
309 | |||
310 | print_usage (); | ||
311 | |||
312 | printf (_(UT_HELP_VRSN)); | ||
313 | |||
314 | printf (_("\ | ||
315 | -F, --logfile=FILE\n\ | ||
316 | The MRTG log file containing the data you want to monitor\n\ | ||
317 | -e, --expires=MINUTES\n\ | ||
318 | Minutes before MRTG data is considered to be too old\n\ | ||
319 | -a, --aggregation=AVG|MAX\n\ | ||
320 | Should we check average or maximum values?\n\ | ||
321 | -v, --variable=INTEGER\n\ | ||
322 | Which variable set should we inspect? (1 or 2)\n\ | ||
323 | -w, --warning=INTEGER\n\ | ||
324 | Threshold value for data to result in WARNING status\n\ | ||
325 | -c, --critical=INTEGER\n\ | ||
326 | Threshold value for data to result in CRITICAL status\n")); | ||
327 | |||
328 | printf (_("\ | ||
329 | -l, --label=STRING\n\ | ||
330 | Type label for data (Examples: Conns, \"Processor Load\", In, Out)\n\ | ||
331 | -u, --units=STRING\n\ | ||
332 | Option units label for data (Example: Packets/Sec, Errors/Sec, \n\ | ||
333 | \"Bytes Per Second\", \"%% Utilization\")\n")); | ||
334 | |||
335 | printf (_("\ | ||
336 | If the value exceeds the <vwl> threshold, a WARNING status is returned. If\n\ | ||
337 | the value exceeds the <vcl> threshold, a CRITICAL status is returned. If\n\ | ||
338 | the data in the log file is older than <expire_minutes> old, a WARNING\n\ | ||
339 | status is returned and a warning message is printed.\n\n")); | ||
340 | |||
341 | printf(_("This plugin is useful for monitoring MRTG data that does not correspond to\n\ | ||
342 | bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth).\n\ | ||
343 | It can be used to monitor any kind of data that MRTG is monitoring - errors,\n\ | ||
344 | packets/sec, etc. I use MRTG in conjuction with the Novell NLM that allows\n\ | ||
345 | me to track processor utilization, user connections, drive space, etc and\n\ | ||
346 | this plugin works well for monitoring that kind of data as well.\n\n")); | ||
347 | |||
348 | printf (_("Notes:\n\ | ||
349 | - This plugin only monitors one of the two variables stored in the MRTG log\n\ | ||
350 | file. If you want to monitor both values you will have to define two\n\ | ||
351 | commands with different values for the <variable> argument. Of course,\n\ | ||
352 | you can always hack the code to make this plugin work for you...\n\ | ||
353 | - MRTG stands for the Multi Router Traffic Grapher. It can be downloaded from\n\ | ||
354 | http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html\n")); | ||
355 | |||
356 | printf (_(UT_SUPPORT)); | ||
357 | } | ||
358 | |||
359 | |||
360 | |||
361 | |||
362 | /* original command line: | ||
363 | <log_file> <expire_minutes> <AVG|MAX> <variable> <vwl> <vcl> <label> [units] */ | ||
364 | |||
365 | void | ||
366 | print_usage (void) | ||
367 | { | ||
368 | printf (_("\ | ||
369 | Usage: %s -F log_file -a <AVG | MAX> -v variable -w warning -c critical\n\ | ||
370 | [-l label] [-u units] [-e expire_minutes] [-t timeout] [-v]\n"), progname); | ||
371 | printf (_(UT_HLP_VRS), progname, progname); | ||
372 | } | ||
diff --git a/plugins/check_mrtgtraf.c b/plugins/check_mrtgtraf.c index ce9ab191..be2f562e 100644 --- a/plugins/check_mrtgtraf.c +++ b/plugins/check_mrtgtraf.c | |||
@@ -24,60 +24,10 @@ const char *revision = "$Revision$"; | |||
24 | const char *copyright = "1999-2003"; | 24 | const char *copyright = "1999-2003"; |
25 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; | 25 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; |
26 | 26 | ||
27 | void | ||
28 | print_usage (void) | ||
29 | { | ||
30 | printf (_("\ | ||
31 | Usage: %s -F <log_file> -a <AVG | MAX> -v <variable> -w <warning_pair> -c <critical_pair>\n\ | ||
32 | [-e expire_minutes] [-t timeout] [-v]\n"), progname); | ||
33 | printf (_(UT_HLP_VRS), progname, progname); | ||
34 | } | ||
35 | |||
36 | void | ||
37 | print_help (void) | ||
38 | { | ||
39 | print_revision (progname, revision); | ||
40 | |||
41 | printf (_(COPYRIGHT), copyright, email); | ||
42 | |||
43 | print_usage (); | ||
44 | |||
45 | printf (_(UT_HELP_VRSN)); | ||
46 | |||
47 | printf (_("\ | ||
48 | -F, --filename=STRING\n\ | ||
49 | File to read log from\n\ | ||
50 | -e, --expires=INTEGER\n\ | ||
51 | Minutes after which log expires\n\ | ||
52 | -a, --aggregation=(AVG|MAX)\n\ | ||
53 | Test average or maximum\n\ | ||
54 | -w, --warning\n\ | ||
55 | Warning threshold pair \"<incoming>,<outgoing>\"\n\ | ||
56 | -c, --critical\n\ | ||
57 | Critical threshold pair \"<incoming>,<outgoing>\"\n")); | ||
58 | |||
59 | printf (_("\n\ | ||
60 | This plugin will check the incoming/outgoing transfer rates of a router,\n\ | ||
61 | switch, etc recorded in an MRTG log. If the newest log entry is older\n\ | ||
62 | than <expire_minutes>, a WARNING status is returned. If either the\n\ | ||
63 | incoming or outgoing rates exceed the <icl> or <ocl> thresholds (in\n\ | ||
64 | Bytes/sec), a CRITICAL status results. If either of the rates exceed\n\ | ||
65 | the <iwl> or <owl> thresholds (in Bytes/sec), a WARNING status results.\n\n")); | ||
66 | |||
67 | printf (_("Notes:\n\ | ||
68 | - MRTG stands for Multi Router Traffic Grapher. It can be downloaded from\n\ | ||
69 | http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html\n\ | ||
70 | - While MRTG can monitor things other than traffic rates, this\n\ | ||
71 | plugin probably won't work with much else without modification.\n\ | ||
72 | - The calculated i/o rates are a little off from what MRTG actually\n\ | ||
73 | reports. I'm not sure why this is right now, but will look into it\n\ | ||
74 | for future enhancements of this plugin.\n")); | ||
75 | |||
76 | printf (_(UT_SUPPORT)); | ||
77 | } | ||
78 | |||
79 | int process_arguments (int, char **); | 27 | int process_arguments (int, char **); |
80 | int validate_arguments (void); | 28 | int validate_arguments (void); |
29 | void print_help(void); | ||
30 | void print_usage(void); | ||
81 | 31 | ||
82 | char *log_file = NULL; | 32 | char *log_file = NULL; |
83 | int expire_minutes = -1; | 33 | int expire_minutes = -1; |
@@ -87,6 +37,10 @@ unsigned long incoming_critical_threshold = 0L; | |||
87 | unsigned long outgoing_warning_threshold = 0L; | 37 | unsigned long outgoing_warning_threshold = 0L; |
88 | unsigned long outgoing_critical_threshold = 0L; | 38 | unsigned long outgoing_critical_threshold = 0L; |
89 | 39 | ||
40 | |||
41 | |||
42 | |||
43 | |||
90 | int | 44 | int |
91 | main (int argc, char **argv) | 45 | main (int argc, char **argv) |
92 | { | 46 | { |
@@ -357,3 +311,64 @@ validate_arguments (void) | |||
357 | { | 311 | { |
358 | return OK; | 312 | return OK; |
359 | } | 313 | } |
314 | |||
315 | |||
316 | |||
317 | |||
318 | |||
319 | |||
320 | void | ||
321 | print_help (void) | ||
322 | { | ||
323 | print_revision (progname, revision); | ||
324 | |||
325 | printf (_("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>\n")); | ||
326 | printf (_(COPYRIGHT), copyright, email); | ||
327 | |||
328 | print_usage (); | ||
329 | |||
330 | printf (_(UT_HELP_VRSN)); | ||
331 | |||
332 | printf (_("\ | ||
333 | -F, --filename=STRING\n\ | ||
334 | File to read log from\n\ | ||
335 | -e, --expires=INTEGER\n\ | ||
336 | Minutes after which log expires\n\ | ||
337 | -a, --aggregation=(AVG|MAX)\n\ | ||
338 | Test average or maximum\n\ | ||
339 | -w, --warning\n\ | ||
340 | Warning threshold pair \"<incoming>,<outgoing>\"\n\ | ||
341 | -c, --critical\n\ | ||
342 | Critical threshold pair \"<incoming>,<outgoing>\"\n")); | ||
343 | |||
344 | printf (_("\n\ | ||
345 | This plugin will check the incoming/outgoing transfer rates of a router,\n\ | ||
346 | switch, etc recorded in an MRTG log. If the newest log entry is older\n\ | ||
347 | than <expire_minutes>, a WARNING status is returned. If either the\n\ | ||
348 | incoming or outgoing rates exceed the <icl> or <ocl> thresholds (in\n\ | ||
349 | Bytes/sec), a CRITICAL status results. If either of the rates exceed\n\ | ||
350 | the <iwl> or <owl> thresholds (in Bytes/sec), a WARNING status results.\n\n")); | ||
351 | |||
352 | printf (_("Notes:\n\ | ||
353 | - MRTG stands for Multi Router Traffic Grapher. It can be downloaded from\n\ | ||
354 | http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html\n\ | ||
355 | - While MRTG can monitor things other than traffic rates, this\n\ | ||
356 | plugin probably won't work with much else without modification.\n\ | ||
357 | - The calculated i/o rates are a little off from what MRTG actually\n\ | ||
358 | reports. I'm not sure why this is right now, but will look into it\n\ | ||
359 | for future enhancements of this plugin.\n")); | ||
360 | |||
361 | printf (_(UT_SUPPORT)); | ||
362 | } | ||
363 | |||
364 | |||
365 | |||
366 | |||
367 | void | ||
368 | print_usage (void) | ||
369 | { | ||
370 | printf (_("\ | ||
371 | Usage: %s -F <log_file> -a <AVG | MAX> -v <variable> -w <warning_pair> -c <critical_pair>\n\ | ||
372 | [-e expire_minutes] [-t timeout] [-v]\n"), progname); | ||
373 | printf (_(UT_HLP_VRS), progname, progname); | ||
374 | } | ||
diff --git a/plugins/check_nwstat.c b/plugins/check_nwstat.c index de8a6200..4b227269 100644 --- a/plugins/check_nwstat.c +++ b/plugins/check_nwstat.c | |||
@@ -75,9 +75,14 @@ enum checkvar vars_to_check = NONE; | |||
75 | int sap_number=-1; | 75 | int sap_number=-1; |
76 | 76 | ||
77 | int process_arguments(int, char **); | 77 | int process_arguments(int, char **); |
78 | void print_usage(void); | ||
79 | void print_help(void); | 78 | void print_help(void); |
79 | void print_usage(void); | ||
80 | |||
81 | |||
80 | 82 | ||
83 | |||
84 | |||
85 | |||
81 | int | 86 | int |
82 | main(int argc, char **argv) { | 87 | main(int argc, char **argv) { |
83 | int result; | 88 | int result; |
@@ -878,15 +883,12 @@ int process_arguments(int argc, char **argv) { | |||
878 | 883 | ||
879 | return OK; | 884 | return OK; |
880 | } | 885 | } |
881 | |||
882 | void print_usage(void) | ||
883 | { | ||
884 | printf (_("\ | ||
885 | Usage: %s -H host [-p port] [-v variable] [-w warning] [-c critical]\n\ | ||
886 | [-t timeout].\n"), progname); | ||
887 | printf (_(UT_HLP_VRS), progname, progname); | ||
888 | } | ||
889 | 886 | ||
887 | |||
888 | |||
889 | |||
890 | |||
891 | |||
890 | void print_help(void) | 892 | void print_help(void) |
891 | { | 893 | { |
892 | char *myport; | 894 | char *myport; |
@@ -894,7 +896,7 @@ void print_help(void) | |||
894 | 896 | ||
895 | print_revision (progname, revision); | 897 | print_revision (progname, revision); |
896 | 898 | ||
897 | printf (_("Copyright (c) 1999-2001 Ethan Galstad <nagios@nagios.org>\n")); | 899 | printf (_("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>\n")); |
898 | printf (_(COPYRIGHT), copyright, email); | 900 | printf (_(COPYRIGHT), copyright, email); |
899 | 901 | ||
900 | printf (_("\ | 902 | printf (_("\ |
@@ -972,3 +974,14 @@ Notes:\n\ | |||
972 | 974 | ||
973 | printf (_(UT_SUPPORT)); | 975 | printf (_(UT_SUPPORT)); |
974 | } | 976 | } |
977 | |||
978 | |||
979 | |||
980 | |||
981 | void print_usage(void) | ||
982 | { | ||
983 | printf (_("\ | ||
984 | Usage: %s -H host [-p port] [-v variable] [-w warning] [-c critical]\n\ | ||
985 | [-t timeout].\n"), progname); | ||
986 | printf (_(UT_HLP_VRS), progname, progname); | ||
987 | } | ||
diff --git a/plugins/check_overcr.c b/plugins/check_overcr.c index 5f50ca7e..9958432e 100644 --- a/plugins/check_overcr.c +++ b/plugins/check_overcr.c | |||
@@ -106,17 +106,20 @@ main (int argc, char **argv) | |||
106 | temp_ptr = (char *) strtok (recv_buffer, "\r\n"); | 106 | temp_ptr = (char *) strtok (recv_buffer, "\r\n"); |
107 | if (temp_ptr == NULL) | 107 | if (temp_ptr == NULL) |
108 | die (STATE_CRITICAL, _("Invalid response from server - no load information\n")); | 108 | die (STATE_CRITICAL, _("Invalid response from server - no load information\n")); |
109 | load_1min = strtod (temp_ptr, NULL); | 109 | else |
110 | load_1min = strtod (temp_ptr, NULL); | ||
110 | 111 | ||
111 | temp_ptr = (char *) strtok (NULL, "\r\n"); | 112 | temp_ptr = (char *) strtok (NULL, "\r\n"); |
112 | if (temp_ptr == NULL) | 113 | if (temp_ptr == NULL) |
113 | die (STATE_CRITICAL, _("Invalid response from server after load 1\n")); | 114 | die (STATE_CRITICAL, _("Invalid response from server after load 1\n")); |
114 | load_5min = strtod (temp_ptr, NULL); | 115 | else |
116 | load_5min = strtod (temp_ptr, NULL); | ||
115 | 117 | ||
116 | temp_ptr = (char *) strtok (NULL, "\r\n"); | 118 | temp_ptr = (char *) strtok (NULL, "\r\n"); |
117 | if (temp_ptr == NULL) | 119 | if (temp_ptr == NULL) |
118 | die (STATE_CRITICAL, _("Invalid response from server after load 5\n")); | 120 | die (STATE_CRITICAL, _("Invalid response from server after load 5\n")); |
119 | load_15min = strtod (temp_ptr, NULL); | 121 | else |
122 | load_15min = strtod (temp_ptr, NULL); | ||
120 | 123 | ||
121 | switch (vars_to_check) { | 124 | switch (vars_to_check) { |
122 | case LOAD1: | 125 | case LOAD1: |
@@ -160,7 +163,8 @@ main (int argc, char **argv) | |||
160 | temp_ptr = (char *) strtok (NULL, "%"); | 163 | temp_ptr = (char *) strtok (NULL, "%"); |
161 | if (temp_ptr == NULL) | 164 | if (temp_ptr == NULL) |
162 | die (STATE_CRITICAL, _("Invalid response from server\n")); | 165 | die (STATE_CRITICAL, _("Invalid response from server\n")); |
163 | percent_used_disk_space = strtoul (temp_ptr, NULL, 10); | 166 | else |
167 | percent_used_disk_space = strtoul (temp_ptr, NULL, 10); | ||
164 | break; | 168 | break; |
165 | } | 169 | } |
166 | 170 | ||
@@ -186,8 +190,8 @@ main (int argc, char **argv) | |||
186 | 190 | ||
187 | if (result != STATE_OK) | 191 | if (result != STATE_OK) |
188 | die (result, _("Unknown error fetching network status\n")); | 192 | die (result, _("Unknown error fetching network status\n")); |
189 | 193 | else | |
190 | port_connections = strtod (recv_buffer, NULL); | 194 | port_connections = strtod (recv_buffer, NULL); |
191 | 195 | ||
192 | if (check_critical_value == TRUE && (port_connections >= critical_value)) | 196 | if (check_critical_value == TRUE && (port_connections >= critical_value)) |
193 | result = STATE_CRITICAL; | 197 | result = STATE_CRITICAL; |
@@ -215,8 +219,8 @@ main (int argc, char **argv) | |||
215 | temp_ptr = (char *) strtok (NULL, ")"); | 219 | temp_ptr = (char *) strtok (NULL, ")"); |
216 | if (temp_ptr == NULL) | 220 | if (temp_ptr == NULL) |
217 | die (STATE_CRITICAL, _("Invalid response from server\n")); | 221 | die (STATE_CRITICAL, _("Invalid response from server\n")); |
218 | 222 | else | |
219 | processes = strtod (temp_ptr, NULL); | 223 | processes = strtod (temp_ptr, NULL); |
220 | 224 | ||
221 | if (check_critical_value == TRUE && (processes >= critical_value)) | 225 | if (check_critical_value == TRUE && (processes >= critical_value)) |
222 | result = STATE_CRITICAL; | 226 | result = STATE_CRITICAL; |
@@ -264,11 +268,11 @@ main (int argc, char **argv) | |||
264 | } | 268 | } |
265 | 269 | ||
266 | /* reset timeout */ | 270 | /* reset timeout */ |
267 | alarm (0); | 271 | /* alarm (0); */ |
268 | 272 | ||
269 | printf (_("Reached end of program with no data returned\n")); | 273 | /* printf (_("Reached end of program with no data returned\n")); */ |
270 | 274 | ||
271 | return result; | 275 | /* return result; */ |
272 | } | 276 | } |
273 | 277 | ||
274 | 278 | ||
diff --git a/plugins/check_ping.c b/plugins/check_ping.c index 26c0192a..fd73b8ce 100644 --- a/plugins/check_ping.c +++ b/plugins/check_ping.c | |||
@@ -55,7 +55,7 @@ int verbose = FALSE; | |||
55 | float rta = UNKNOWN_TRIP_TIME; | 55 | float rta = UNKNOWN_TRIP_TIME; |
56 | int pl = UNKNOWN_PACKET_LOSS; | 56 | int pl = UNKNOWN_PACKET_LOSS; |
57 | 57 | ||
58 | char *warn_text = ""; | 58 | char *warn_text; |
59 | 59 | ||
60 | 60 | ||
61 | 61 | ||
@@ -69,11 +69,10 @@ main (int argc, char **argv) | |||
69 | int this_result = STATE_UNKNOWN; | 69 | int this_result = STATE_UNKNOWN; |
70 | int i; | 70 | int i; |
71 | 71 | ||
72 | addresses = malloc (max_addr); | 72 | addresses = malloc ((size_t)max_addr); |
73 | 73 | ||
74 | if (process_arguments (argc, argv) == ERROR) | 74 | if (process_arguments (argc, argv) == ERROR) |
75 | usage (_("Could not parse arguments")); | 75 | usage (_("Could not parse arguments")); |
76 | exit; | ||
77 | 76 | ||
78 | /* Set signal handling and alarm */ | 77 | /* Set signal handling and alarm */ |
79 | if (signal (SIGALRM, popen_timeout_alarm_handler) == SIG_ERR) { | 78 | if (signal (SIGALRM, popen_timeout_alarm_handler) == SIG_ERR) { |
@@ -113,7 +112,7 @@ main (int argc, char **argv) | |||
113 | /* run the command */ | 112 | /* run the command */ |
114 | this_result = run_ping (cmd, addresses[i]); | 113 | this_result = run_ping (cmd, addresses[i]); |
115 | 114 | ||
116 | if (pl == UNKNOWN_PACKET_LOSS || rta == UNKNOWN_TRIP_TIME) { | 115 | if (pl == UNKNOWN_PACKET_LOSS || rta < 0.0) { |
117 | printf ("%s\n", cmd); | 116 | printf ("%s\n", cmd); |
118 | die (STATE_UNKNOWN, | 117 | die (STATE_UNKNOWN, |
119 | _("Error: Could not interpret output from ping command\n")); | 118 | _("Error: Could not interpret output from ping command\n")); |
@@ -193,12 +192,15 @@ process_arguments (int argc, char **argv) | |||
193 | switch (c) { | 192 | switch (c) { |
194 | case '?': /* usage */ | 193 | case '?': /* usage */ |
195 | usage3 (_("Unknown argument"), optopt); | 194 | usage3 (_("Unknown argument"), optopt); |
195 | break; | ||
196 | case 'h': /* help */ | 196 | case 'h': /* help */ |
197 | print_help (); | 197 | print_help (); |
198 | exit (STATE_OK); | 198 | exit (STATE_OK); |
199 | break; | ||
199 | case 'V': /* version */ | 200 | case 'V': /* version */ |
200 | print_revision (progname, revision); | 201 | print_revision (progname, revision); |
201 | exit (STATE_OK); | 202 | exit (STATE_OK); |
203 | break; | ||
202 | case 't': /* timeout period */ | 204 | case 't': /* timeout period */ |
203 | timeout_interval = atoi (optarg); | 205 | timeout_interval = atoi (optarg); |
204 | break; | 206 | break; |
@@ -221,7 +223,7 @@ process_arguments (int argc, char **argv) | |||
221 | n_addresses++; | 223 | n_addresses++; |
222 | if (n_addresses > max_addr) { | 224 | if (n_addresses > max_addr) { |
223 | max_addr *= 2; | 225 | max_addr *= 2; |
224 | addresses = realloc (addresses, max_addr); | 226 | addresses = realloc (addresses, (size_t)max_addr); |
225 | if (addresses == NULL) | 227 | if (addresses == NULL) |
226 | die (STATE_UNKNOWN, _("Could not realloc() addresses\n")); | 228 | die (STATE_UNKNOWN, _("Could not realloc() addresses\n")); |
227 | } | 229 | } |
@@ -292,7 +294,7 @@ process_arguments (int argc, char **argv) | |||
292 | } | 294 | } |
293 | } | 295 | } |
294 | 296 | ||
295 | if (wrta == UNKNOWN_TRIP_TIME) { | 297 | if (wrta < 0.0) { |
296 | if (is_negative (argv[c])) { | 298 | if (is_negative (argv[c])) { |
297 | printf (_("<wrta> (%s) must be a non-negative number\n"), argv[c]); | 299 | printf (_("<wrta> (%s) must be a non-negative number\n"), argv[c]); |
298 | return ERROR; | 300 | return ERROR; |
@@ -303,7 +305,7 @@ process_arguments (int argc, char **argv) | |||
303 | } | 305 | } |
304 | } | 306 | } |
305 | 307 | ||
306 | if (crta == UNKNOWN_TRIP_TIME) { | 308 | if (crta < 0.0) { |
307 | if (is_negative (argv[c])) { | 309 | if (is_negative (argv[c])) { |
308 | printf (_("<crta> (%s) must be a non-negative number\n"), argv[c]); | 310 | printf (_("<crta> (%s) must be a non-negative number\n"), argv[c]); |
309 | return ERROR; | 311 | return ERROR; |
@@ -346,11 +348,11 @@ validate_arguments () | |||
346 | float max_seconds; | 348 | float max_seconds; |
347 | int i; | 349 | int i; |
348 | 350 | ||
349 | if (wrta == UNKNOWN_TRIP_TIME) { | 351 | if (wrta < 0.0) { |
350 | printf (_("<wrta> was not set\n")); | 352 | printf (_("<wrta> was not set\n")); |
351 | return ERROR; | 353 | return ERROR; |
352 | } | 354 | } |
353 | else if (crta == UNKNOWN_TRIP_TIME) { | 355 | else if (crta < 0.0) { |
354 | printf (_("<crta> was not set\n")); | 356 | printf (_("<crta> was not set\n")); |
355 | return ERROR; | 357 | return ERROR; |
356 | } | 358 | } |
@@ -397,10 +399,9 @@ run_ping (char *cmd, char *server_address) | |||
397 | char buf[MAX_INPUT_BUFFER]; | 399 | char buf[MAX_INPUT_BUFFER]; |
398 | int result = STATE_UNKNOWN; | 400 | int result = STATE_UNKNOWN; |
399 | 401 | ||
400 | if ((child_process = spopen (cmd)) == NULL) { | 402 | if ((child_process = spopen (cmd)) == NULL) |
401 | printf (_("Cannot open pipe: ")); | 403 | die (STATE_UNKNOWN, _("Cannot open pipe: %s"), cmd); |
402 | die (STATE_UNKNOWN, cmd); | 404 | |
403 | } | ||
404 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); | 405 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); |
405 | if (child_stderr == NULL) | 406 | if (child_stderr == NULL) |
406 | printf (_("Cannot open stderr for %s\n"), cmd); | 407 | printf (_("Cannot open stderr for %s\n"), cmd); |
@@ -455,7 +456,7 @@ run_ping (char *cmd, char *server_address) | |||
455 | _("PING CRITICAL - Host not found (%s)"), | 456 | _("PING CRITICAL - Host not found (%s)"), |
456 | server_address); | 457 | server_address); |
457 | 458 | ||
458 | if (strlen (warn_text) == 0) | 459 | if (warn_text == NULL) |
459 | warn_text = strdup (buf); | 460 | warn_text = strdup (buf); |
460 | else if (asprintf (&warn_text, "%s %s", warn_text, buf) == -1) | 461 | else if (asprintf (&warn_text, "%s %s", warn_text, buf) == -1) |
461 | die (STATE_UNKNOWN, _("unable to realloc warn_text")); | 462 | die (STATE_UNKNOWN, _("unable to realloc warn_text")); |
@@ -472,6 +473,9 @@ run_ping (char *cmd, char *server_address) | |||
472 | if (spclose (child_process)) | 473 | if (spclose (child_process)) |
473 | result = max_state (result, STATE_WARNING); | 474 | result = max_state (result, STATE_WARNING); |
474 | 475 | ||
476 | if (warn_text == NULL) | ||
477 | warn_text = strdup(""); | ||
478 | |||
475 | return result; | 479 | return result; |
476 | } | 480 | } |
477 | 481 | ||
diff --git a/plugins/check_procs.c b/plugins/check_procs.c index 1b641c55..1894b281 100644 --- a/plugins/check_procs.c +++ b/plugins/check_procs.c | |||
@@ -49,12 +49,14 @@ int options = 0; /* bitmask of filter criteria to test against */ | |||
49 | #define PCPU 256 | 49 | #define PCPU 256 |
50 | 50 | ||
51 | /* Different metrics */ | 51 | /* Different metrics */ |
52 | int metric = 0; | 52 | char *metric_name; |
53 | #define METRIC_PROCS 0 | 53 | enum metric { |
54 | #define METRIC_VSZ 1 | 54 | METRIC_PROCS, |
55 | #define METRIC_RSS 2 | 55 | METRIC_VSZ, |
56 | #define METRIC_CPU 3 | 56 | METRIC_RSS, |
57 | char *metric_name = ""; | 57 | METRIC_CPU |
58 | }; | ||
59 | enum metric metric = METRIC_PROCS; | ||
58 | 60 | ||
59 | int verbose = 0; | 61 | int verbose = 0; |
60 | int uid; | 62 | int uid; |
@@ -62,11 +64,11 @@ int ppid; | |||
62 | int vsz; | 64 | int vsz; |
63 | int rss; | 65 | int rss; |
64 | float pcpu; | 66 | float pcpu; |
65 | char *statopts = ""; | 67 | char *statopts; |
66 | char *prog = ""; | 68 | char *prog; |
67 | char *args = ""; | 69 | char *args; |
68 | char *fmt = ""; | 70 | char *fmt; |
69 | char *fails = ""; | 71 | char *fails; |
70 | char tmp[MAX_INPUT_BUFFER]; | 72 | char tmp[MAX_INPUT_BUFFER]; |
71 | 73 | ||
72 | 74 | ||
@@ -317,54 +319,35 @@ process_arguments (int argc, char **argv) | |||
317 | print_revision (progname, revision); | 319 | print_revision (progname, revision); |
318 | exit (STATE_OK); | 320 | exit (STATE_OK); |
319 | case 't': /* timeout period */ | 321 | case 't': /* timeout period */ |
320 | if (!is_integer (optarg)) { | 322 | if (!is_integer (optarg)) |
321 | printf (_("%s: Timeout Interval must be an integer!\n\n"), | 323 | usage (_("Timeout Interval must be an integer!\n\n")); |
322 | progname); | 324 | else |
323 | print_usage (); | 325 | timeout_interval = atoi (optarg); |
324 | exit (STATE_UNKNOWN); | ||
325 | } | ||
326 | timeout_interval = atoi (optarg); | ||
327 | break; | 326 | break; |
328 | case 'c': /* critical threshold */ | 327 | case 'c': /* critical threshold */ |
329 | if (is_integer (optarg)) { | 328 | if (is_integer (optarg)) |
330 | cmax = atoi (optarg); | 329 | cmax = atoi (optarg); |
330 | else if (sscanf (optarg, ":%d", &cmax) == 1) | ||
331 | break; | 331 | break; |
332 | } | 332 | else if (sscanf (optarg, "%d:%d", &cmin, &cmax) == 2) |
333 | else if (sscanf (optarg, ":%d", &cmax) == 1) { | ||
334 | break; | 333 | break; |
335 | } | 334 | else if (sscanf (optarg, "%d:", &cmin) == 1) |
336 | else if (sscanf (optarg, "%d:%d", &cmin, &cmax) == 2) { | ||
337 | break; | 335 | break; |
338 | } | 336 | else |
339 | else if (sscanf (optarg, "%d:", &cmin) == 1) { | 337 | usage (_("Critical Process Count must be an integer!\n\n")); |
340 | break; | 338 | break; |
341 | } | ||
342 | else { | ||
343 | printf (_("%s: Critical Process Count must be an integer!\n\n"), | ||
344 | progname); | ||
345 | print_usage (); | ||
346 | exit (STATE_UNKNOWN); | ||
347 | } | ||
348 | case 'w': /* warning time threshold */ | 339 | case 'w': /* warning time threshold */ |
349 | if (is_integer (optarg)) { | 340 | if (is_integer (optarg)) |
350 | wmax = atoi (optarg); | 341 | wmax = atoi (optarg); |
342 | else if (sscanf (optarg, ":%d", &wmax) == 1) | ||
351 | break; | 343 | break; |
352 | } | 344 | else if (sscanf (optarg, "%d:%d", &wmin, &wmax) == 2) |
353 | else if (sscanf (optarg, ":%d", &wmax) == 1) { | ||
354 | break; | ||
355 | } | ||
356 | else if (sscanf (optarg, "%d:%d", &wmin, &wmax) == 2) { | ||
357 | break; | 345 | break; |
358 | } | 346 | else if (sscanf (optarg, "%d:", &wmin) == 1) |
359 | else if (sscanf (optarg, "%d:", &wmin) == 1) { | ||
360 | break; | 347 | break; |
361 | } | 348 | else |
362 | else { | 349 | usage (_("%s: Warning Process Count must be an integer!\n\n")); |
363 | printf (_("%s: Warning Process Count must be an integer!\n\n"), | 350 | break; |
364 | progname); | ||
365 | print_usage (); | ||
366 | exit (STATE_UNKNOWN); | ||
367 | } | ||
368 | case 'p': /* process id */ | 351 | case 'p': /* process id */ |
369 | if (sscanf (optarg, "%d%[^0-9]", &ppid, tmp) == 1) { | 352 | if (sscanf (optarg, "%d%[^0-9]", &ppid, tmp) == 1) { |
370 | asprintf (&fmt, "%s%sPPID = %d", fmt, (options ? ", " : ""), ppid); | 353 | asprintf (&fmt, "%s%sPPID = %d", fmt, (options ? ", " : ""), ppid); |
@@ -376,7 +359,10 @@ process_arguments (int argc, char **argv) | |||
376 | print_usage (); | 359 | print_usage (); |
377 | exit (STATE_UNKNOWN); | 360 | exit (STATE_UNKNOWN); |
378 | case 's': /* status */ | 361 | case 's': /* status */ |
379 | asprintf (&statopts, "%s", optarg); | 362 | if (statopts) |
363 | break; | ||
364 | else | ||
365 | statopts = strdup(optarg); | ||
380 | asprintf (&fmt, _("%s%sSTATE = %s"), fmt, (options ? ", " : ""), statopts); | 366 | asprintf (&fmt, _("%s%sSTATE = %s"), fmt, (options ? ", " : ""), statopts); |
381 | options |= STAT; | 367 | options |= STAT; |
382 | break; | 368 | break; |
@@ -408,13 +394,19 @@ process_arguments (int argc, char **argv) | |||
408 | options |= USER; | 394 | options |= USER; |
409 | break; | 395 | break; |
410 | case 'C': /* command */ | 396 | case 'C': /* command */ |
411 | asprintf (&prog, "%s", optarg); | 397 | if (prog) |
398 | break; | ||
399 | else | ||
400 | prog = strdup(optarg); | ||
412 | asprintf (&fmt, _("%s%scommand name '%s'"), fmt, (options ? ", " : ""), | 401 | asprintf (&fmt, _("%s%scommand name '%s'"), fmt, (options ? ", " : ""), |
413 | prog); | 402 | prog); |
414 | options |= PROG; | 403 | options |= PROG; |
415 | break; | 404 | break; |
416 | case 'a': /* args (full path name with args) */ | 405 | case 'a': /* args (full path name with args) */ |
417 | asprintf (&args, "%s", optarg); | 406 | if (args) |
407 | break; | ||
408 | else | ||
409 | args = strdup(optarg); | ||
418 | asprintf (&fmt, _("%s%sargs '%s'"), fmt, (options ? ", " : ""), args); | 410 | asprintf (&fmt, _("%s%sargs '%s'"), fmt, (options ? ", " : ""), args); |
419 | options |= ARGS; | 411 | options |= ARGS; |
420 | break; | 412 | break; |
@@ -521,6 +513,21 @@ validate_arguments () | |||
521 | if (options == 0) | 513 | if (options == 0) |
522 | options = ALL; | 514 | options = ALL; |
523 | 515 | ||
516 | if (statopts==NULL) | ||
517 | statopts = strdup(""); | ||
518 | |||
519 | if (prog==NULL) | ||
520 | prog = strdup(""); | ||
521 | |||
522 | if (args==NULL) | ||
523 | args = strdup(""); | ||
524 | |||
525 | if (fmt==NULL) | ||
526 | fmt = strdup(""); | ||
527 | |||
528 | if (fails==NULL) | ||
529 | fails = strdup(""); | ||
530 | |||
524 | return options; | 531 | return options; |
525 | } | 532 | } |
526 | 533 | ||
diff --git a/plugins/check_real.c b/plugins/check_real.c index ecdd5619..9c9c3e0b 100644 --- a/plugins/check_real.c +++ b/plugins/check_real.c | |||
@@ -38,10 +38,10 @@ void print_help (void); | |||
38 | void print_usage (void); | 38 | void print_usage (void); |
39 | 39 | ||
40 | int server_port = PORT; | 40 | int server_port = PORT; |
41 | char *server_address = ""; | 41 | char *server_address; |
42 | char *host_name = ""; | 42 | char *host_name; |
43 | char *server_url = NULL; | 43 | char *server_url = NULL; |
44 | char *server_expect = EXPECT; | 44 | char *server_expect; |
45 | int warning_time = 0; | 45 | int warning_time = 0; |
46 | int check_warning_time = FALSE; | 46 | int check_warning_time = FALSE; |
47 | int critical_time = 0; | 47 | int critical_time = 0; |
@@ -294,18 +294,18 @@ process_arguments (int argc, char **argv) | |||
294 | switch (c) { | 294 | switch (c) { |
295 | case 'I': /* hostname */ | 295 | case 'I': /* hostname */ |
296 | case 'H': /* hostname */ | 296 | case 'H': /* hostname */ |
297 | if (is_host (optarg)) { | 297 | if (server_address) |
298 | server_address = optarg; | 298 | break; |
299 | } | 299 | else if (is_host (optarg)) |
300 | else { | 300 | server_address = strdup(optarg); |
301 | else | ||
301 | usage (_("Invalid host name\n")); | 302 | usage (_("Invalid host name\n")); |
302 | } | ||
303 | break; | 303 | break; |
304 | case 'e': /* string to expect in response header */ | 304 | case 'e': /* string to expect in response header */ |
305 | server_expect = optarg; | 305 | server_expect = strdup(optarg); |
306 | break; | 306 | break; |
307 | case 'u': /* server URL */ | 307 | case 'u': /* server URL */ |
308 | server_url = optarg; | 308 | server_url = strdup(optarg); |
309 | break; | 309 | break; |
310 | case 'p': /* port */ | 310 | case 'p': /* port */ |
311 | if (is_intpos (optarg)) { | 311 | if (is_intpos (optarg)) { |
@@ -356,7 +356,7 @@ process_arguments (int argc, char **argv) | |||
356 | } | 356 | } |
357 | 357 | ||
358 | c = optind; | 358 | c = optind; |
359 | if (strlen(server_address)==0 && argc>c) { | 359 | if (server_address==NULL && argc>c) { |
360 | if (is_host (argv[c])) { | 360 | if (is_host (argv[c])) { |
361 | server_address = argv[c++]; | 361 | server_address = argv[c++]; |
362 | } | 362 | } |
@@ -365,11 +365,14 @@ process_arguments (int argc, char **argv) | |||
365 | } | 365 | } |
366 | } | 366 | } |
367 | 367 | ||
368 | if (strlen(server_address) == 0) | 368 | if (server_address==NULL) |
369 | usage (_("You must provide a server to check\n")); | 369 | usage (_("You must provide a server to check\n")); |
370 | 370 | ||
371 | if (strlen(host_name) == 0) | 371 | if (host_name==NULL) |
372 | asprintf (&host_name, "%s", server_address); | 372 | host_name = strdup (server_address); |
373 | |||
374 | if (server_expect == NULL) | ||
375 | server_expect = strdup(EXPECT); | ||
373 | 376 | ||
374 | return validate_arguments (); | 377 | return validate_arguments (); |
375 | } | 378 | } |
diff --git a/plugins/utils.c b/plugins/utils.c index 518caa8c..5b975729 100644 --- a/plugins/utils.c +++ b/plugins/utils.c | |||
@@ -52,14 +52,14 @@ max_state (int a, int b) | |||
52 | return max (a, b); | 52 | return max (a, b); |
53 | } | 53 | } |
54 | 54 | ||
55 | void usage (char *msg) | 55 | void usage (const char *msg) |
56 | { | 56 | { |
57 | printf ("%s", msg); | 57 | printf ("%s", msg); |
58 | print_usage (); | 58 | print_usage (); |
59 | exit (STATE_UNKNOWN); | 59 | exit (STATE_UNKNOWN); |
60 | } | 60 | } |
61 | 61 | ||
62 | void usage2(char *msg, char *arg) | 62 | void usage2(const char *msg, const char *arg) |
63 | { | 63 | { |
64 | printf ("%s: %s - %s\n",progname,msg,arg); | 64 | printf ("%s: %s - %s\n",progname,msg,arg); |
65 | print_usage (); | 65 | print_usage (); |
@@ -67,7 +67,7 @@ void usage2(char *msg, char *arg) | |||
67 | } | 67 | } |
68 | 68 | ||
69 | void | 69 | void |
70 | usage3 (char *msg, int arg) | 70 | usage3 (const char *msg, int arg) |
71 | { | 71 | { |
72 | printf ("%s: %s - %c\n", progname, msg, arg); | 72 | printf ("%s: %s - %c\n", progname, msg, arg); |
73 | print_usage(); | 73 | print_usage(); |
diff --git a/plugins/utils.h b/plugins/utils.h index b763b1e2..efdbed41 100644 --- a/plugins/utils.h +++ b/plugins/utils.h | |||
@@ -71,9 +71,9 @@ char *strpcat (char *dest, const char *src, const char *str); | |||
71 | 71 | ||
72 | int max_state (int a, int b); | 72 | int max_state (int a, int b); |
73 | 73 | ||
74 | void usage (char *msg) __attribute__((noreturn)); | 74 | void usage (const char *msg) __attribute__((noreturn)); |
75 | void usage2(char *msg, char *arg) __attribute__((noreturn)); | 75 | void usage2(const char *msg, const char *arg) __attribute__((noreturn)); |
76 | void usage3(char *msg, int arg) __attribute__((noreturn)); | 76 | void usage3(const char *msg, int arg) __attribute__((noreturn)); |
77 | 77 | ||
78 | const char *state_text (int result); | 78 | const char *state_text (int result); |
79 | 79 | ||