diff options
| author | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2003-08-09 06:01:03 +0000 |
|---|---|---|
| committer | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2003-08-09 06:01:03 +0000 |
| commit | a228492c4bea15a3e6e7bdbfd6631611c97fe92c (patch) | |
| tree | 0d21d5c54a2ab5ec3f4171fab668d390ea09bbaa /plugins | |
| parent | 024751bac56791b7ae5347404274046e8ba58ccb (diff) | |
| download | monitoring-plugins-a228492c4bea15a3e6e7bdbfd6631611c97fe92c.tar.gz | |
more pedantic compiler warns
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@672 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins')
| -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 | ||
