diff options
| author | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2002-11-09 11:37:14 +0000 |
|---|---|---|
| committer | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2002-11-09 11:37:14 +0000 |
| commit | 938d0d68daecf2a4d45b9e39d191259b63304bd2 (patch) | |
| tree | 516608b265259b56245ff4d6126f68a98fe4c11e | |
| parent | 6fa04c4a4954c34bd212a0f383fd1337d29a6cde (diff) | |
| download | monitoring-plugins-938d0d68daecf2a4d45b9e39d191259b63304bd2.tar.gz | |
remove call_getopt
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@182 f882894a-f735-0410-b71e-b25c423dba1c
| -rw-r--r-- | plugins/check_ups.c | 106 | ||||
| -rw-r--r-- | plugins/check_users.c | 74 |
2 files changed, 65 insertions, 115 deletions
diff --git a/plugins/check_ups.c b/plugins/check_ups.c index 1e1aa39c..c711de20 100644 --- a/plugins/check_ups.c +++ b/plugins/check_ups.c | |||
| @@ -57,6 +57,10 @@ | |||
| 57 | #include "utils.h" | 57 | #include "utils.h" |
| 58 | 58 | ||
| 59 | #define PROGNAME "check_ups" | 59 | #define PROGNAME "check_ups" |
| 60 | #define REVISION "$Revision$" | ||
| 61 | #define COPYRIGHT "1999-2002" | ||
| 62 | #define AUTHOR "Ethan Galstad" | ||
| 63 | #define EMAIL "nagios@nagios.org" | ||
| 60 | 64 | ||
| 61 | #define CHECK_NONE 0 | 65 | #define CHECK_NONE 0 |
| 62 | 66 | ||
| @@ -433,50 +437,6 @@ process_arguments (int argc, char **argv) | |||
| 433 | { | 437 | { |
| 434 | int c; | 438 | int c; |
| 435 | 439 | ||
| 436 | if (argc < 2) | ||
| 437 | return ERROR; | ||
| 438 | |||
| 439 | for (c = 1; c < argc; c++) { | ||
| 440 | if (strcmp ("-to", argv[c]) == 0) | ||
| 441 | strcpy (argv[c], "-t"); | ||
| 442 | else if (strcmp ("-wt", argv[c]) == 0) | ||
| 443 | strcpy (argv[c], "-w"); | ||
| 444 | else if (strcmp ("-ct", argv[c]) == 0) | ||
| 445 | strcpy (argv[c], "-c"); | ||
| 446 | } | ||
| 447 | |||
| 448 | c = 0; | ||
| 449 | while ((c += (call_getopt (argc - c, &argv[c]))) < argc) { | ||
| 450 | |||
| 451 | if (is_option (argv[c])) | ||
| 452 | continue; | ||
| 453 | |||
| 454 | if (server_address == NULL) { | ||
| 455 | if (is_host (argv[c])) { | ||
| 456 | server_address = argv[c]; | ||
| 457 | } | ||
| 458 | else { | ||
| 459 | usage ("Invalid host name"); | ||
| 460 | } | ||
| 461 | } | ||
| 462 | } | ||
| 463 | |||
| 464 | if (server_address == NULL) | ||
| 465 | server_address = strscpy (NULL, "127.0.0.1"); | ||
| 466 | |||
| 467 | return validate_arguments (); | ||
| 468 | } | ||
| 469 | |||
| 470 | |||
| 471 | |||
| 472 | |||
| 473 | |||
| 474 | |||
| 475 | int | ||
| 476 | call_getopt (int argc, char **argv) | ||
| 477 | { | ||
| 478 | int c, i = 0; | ||
| 479 | |||
| 480 | #ifdef HAVE_GETOPT_H | 440 | #ifdef HAVE_GETOPT_H |
| 481 | int option_index = 0; | 441 | int option_index = 0; |
| 482 | static struct option long_options[] = { | 442 | static struct option long_options[] = { |
| @@ -493,40 +453,39 @@ call_getopt (int argc, char **argv) | |||
| 493 | }; | 453 | }; |
| 494 | #endif | 454 | #endif |
| 495 | 455 | ||
| 456 | if (argc < 2) | ||
| 457 | return ERROR; | ||
| 458 | |||
| 459 | for (c = 1; c < argc; c++) { | ||
| 460 | if (strcmp ("-to", argv[c]) == 0) | ||
| 461 | strcpy (argv[c], "-t"); | ||
| 462 | else if (strcmp ("-wt", argv[c]) == 0) | ||
| 463 | strcpy (argv[c], "-w"); | ||
| 464 | else if (strcmp ("-ct", argv[c]) == 0) | ||
| 465 | strcpy (argv[c], "-c"); | ||
| 466 | } | ||
| 467 | |||
| 496 | while (1) { | 468 | while (1) { |
| 497 | #ifdef HAVE_GETOPT_H | 469 | #ifdef HAVE_GETOPT_H |
| 498 | c = | 470 | c = |
| 499 | getopt_long (argc, argv, "+hVH:u:p:v:c:w:t:", long_options, | 471 | getopt_long (argc, argv, "hVH:u:p:v:c:w:t:", long_options, |
| 500 | &option_index); | 472 | &option_index); |
| 501 | #else | 473 | #else |
| 502 | c = getopt (argc, argv, "+?hVH:u:p:v:c:w:t:"); | 474 | c = getopt (argc, argv, "hVH:u:p:v:c:w:t:"); |
| 503 | #endif | 475 | #endif |
| 504 | 476 | ||
| 505 | i++; | 477 | if (c == -1 || c == EOF) |
| 506 | |||
| 507 | if (c == -1 || c == EOF || c == 1) | ||
| 508 | break; | 478 | break; |
| 509 | 479 | ||
| 510 | switch (c) { | 480 | switch (c) { |
| 511 | case 'H': | ||
| 512 | case 'u': | ||
| 513 | case 'p': | ||
| 514 | case 'v': | ||
| 515 | case 'c': | ||
| 516 | case 'w': | ||
| 517 | case 't': | ||
| 518 | i++; | ||
| 519 | } | ||
| 520 | |||
| 521 | switch (c) { | ||
| 522 | case '?': /* help */ | 481 | case '?': /* help */ |
| 523 | usage ("Invalid argument\n"); | 482 | usage3 ("Unknown option", optopt); |
| 524 | case 'H': /* hostname */ | 483 | case 'H': /* hostname */ |
| 525 | if (is_host (optarg)) { | 484 | if (is_host (optarg)) { |
| 526 | server_address = optarg; | 485 | server_address = optarg; |
| 527 | } | 486 | } |
| 528 | else { | 487 | else { |
| 529 | usage ("Invalid host name\n"); | 488 | usage2 ("Invalid host name", optarg); |
| 530 | } | 489 | } |
| 531 | break; | 490 | break; |
| 532 | case 'u': /* ups name */ | 491 | case 'u': /* ups name */ |
| @@ -537,7 +496,7 @@ call_getopt (int argc, char **argv) | |||
| 537 | server_port = atoi (optarg); | 496 | server_port = atoi (optarg); |
| 538 | } | 497 | } |
| 539 | else { | 498 | else { |
| 540 | usage ("Server port must be a positive integer\n"); | 499 | usage2 ("Server port must be a positive integer", optarg); |
| 541 | } | 500 | } |
| 542 | break; | 501 | break; |
| 543 | case 'c': /* critical time threshold */ | 502 | case 'c': /* critical time threshold */ |
| @@ -546,7 +505,7 @@ call_getopt (int argc, char **argv) | |||
| 546 | check_critical_value = TRUE; | 505 | check_critical_value = TRUE; |
| 547 | } | 506 | } |
| 548 | else { | 507 | else { |
| 549 | usage ("Critical time must be a nonnegative integer\n"); | 508 | usage2 ("Critical time must be a nonnegative integer", optarg); |
| 550 | } | 509 | } |
| 551 | break; | 510 | break; |
| 552 | case 'w': /* warning time threshold */ | 511 | case 'w': /* warning time threshold */ |
| @@ -555,7 +514,7 @@ call_getopt (int argc, char **argv) | |||
| 555 | check_warning_value = TRUE; | 514 | check_warning_value = TRUE; |
| 556 | } | 515 | } |
| 557 | else { | 516 | else { |
| 558 | usage ("Warning time must be a nonnegative integer\n"); | 517 | usage2 ("Warning time must be a nonnegative integer", optarg); |
| 559 | } | 518 | } |
| 560 | break; | 519 | break; |
| 561 | case 'v': /* variable */ | 520 | case 'v': /* variable */ |
| @@ -568,7 +527,7 @@ call_getopt (int argc, char **argv) | |||
| 568 | else if (!strcmp (optarg, "LOADPCT")) | 527 | else if (!strcmp (optarg, "LOADPCT")) |
| 569 | check_variable = UPS_LOADPCT; | 528 | check_variable = UPS_LOADPCT; |
| 570 | else | 529 | else |
| 571 | usage ("Unrecognized UPS variable\n"); | 530 | usage2 ("Unrecognized UPS variable", optarg); |
| 572 | break; | 531 | break; |
| 573 | case 't': /* timeout */ | 532 | case 't': /* timeout */ |
| 574 | if (is_intnonneg (optarg)) { | 533 | if (is_intnonneg (optarg)) { |
| @@ -586,7 +545,20 @@ call_getopt (int argc, char **argv) | |||
| 586 | exit (STATE_OK); | 545 | exit (STATE_OK); |
| 587 | } | 546 | } |
| 588 | } | 547 | } |
| 589 | return i; | 548 | |
| 549 | |||
| 550 | if (server_address == NULL) { | ||
| 551 | if (optind >= argc) { | ||
| 552 | server_address = strscpy (NULL, "127.0.0.1"); | ||
| 553 | } | ||
| 554 | else if (is_host (argv[optind])) { | ||
| 555 | server_address = argv[optind++]; | ||
| 556 | } | ||
| 557 | else { | ||
| 558 | usage ("Invalid host name"); | ||
| 559 | } | ||
| 560 | } | ||
| 561 | return validate_arguments(); | ||
| 590 | } | 562 | } |
| 591 | 563 | ||
| 592 | 564 | ||
diff --git a/plugins/check_users.c b/plugins/check_users.c index 2b8fa15b..e39e0d2b 100644 --- a/plugins/check_users.c +++ b/plugins/check_users.c | |||
| @@ -49,11 +49,14 @@ | |||
| 49 | #include "utils.h" | 49 | #include "utils.h" |
| 50 | 50 | ||
| 51 | #define PROGNAME "check_users" | 51 | #define PROGNAME "check_users" |
| 52 | #define REVISION "$Revision$" | ||
| 53 | #define COPYRIGHT "1999-2002" | ||
| 54 | #define AUTHOR "Ethan Galstad" | ||
| 55 | #define EMAIL "nagios@nagios.org" | ||
| 52 | 56 | ||
| 53 | #define possibly_set(a,b) ((a) == 0 ? (b) : 0) | 57 | #define possibly_set(a,b) ((a) == 0 ? (b) : 0) |
| 54 | 58 | ||
| 55 | int process_arguments (int, char **); | 59 | int process_arguments (int, char **); |
| 56 | int call_getopt (int, char **); | ||
| 57 | void print_usage (void); | 60 | void print_usage (void); |
| 58 | void print_help (void); | 61 | void print_help (void); |
| 59 | 62 | ||
| @@ -133,40 +136,6 @@ process_arguments (int argc, char **argv) | |||
| 133 | { | 136 | { |
| 134 | int c; | 137 | int c; |
| 135 | 138 | ||
| 136 | if (argc < 2) | ||
| 137 | usage ("\n"); | ||
| 138 | |||
| 139 | c = 0; | ||
| 140 | while ((c += call_getopt (argc - c, &argv[c])) < argc) { | ||
| 141 | |||
| 142 | if (is_option (argv[c])) | ||
| 143 | continue; | ||
| 144 | |||
| 145 | if (wusers == -1 && argc > c) { | ||
| 146 | if (is_intnonneg (argv[c]) == FALSE) | ||
| 147 | usage ("Warning threshold must be a nonnegative integer\n"); | ||
| 148 | wusers = atoi (argv[c]); | ||
| 149 | |||
| 150 | } | ||
| 151 | else if (cusers == -1 && argc > c) { | ||
| 152 | if (is_intnonneg (argv[c]) == FALSE) | ||
| 153 | usage ("Warning threshold must be a nonnegative integer\n"); | ||
| 154 | cusers = atoi (argv[c]); | ||
| 155 | } | ||
| 156 | } | ||
| 157 | |||
| 158 | return OK; | ||
| 159 | } | ||
| 160 | |||
| 161 | |||
| 162 | |||
| 163 | |||
| 164 | |||
| 165 | int | ||
| 166 | call_getopt (int argc, char **argv) | ||
| 167 | { | ||
| 168 | int c, i = 0; | ||
| 169 | |||
| 170 | #ifdef HAVE_GETOPT_H | 139 | #ifdef HAVE_GETOPT_H |
| 171 | int option_index = 0; | 140 | int option_index = 0; |
| 172 | static struct option long_options[] = { | 141 | static struct option long_options[] = { |
| @@ -178,6 +147,9 @@ call_getopt (int argc, char **argv) | |||
| 178 | }; | 147 | }; |
| 179 | #endif | 148 | #endif |
| 180 | 149 | ||
| 150 | if (argc < 2) | ||
| 151 | usage ("\n"); | ||
| 152 | |||
| 181 | while (1) { | 153 | while (1) { |
| 182 | #ifdef HAVE_GETOPT_H | 154 | #ifdef HAVE_GETOPT_H |
| 183 | c = getopt_long (argc, argv, "+hVvc:w:", long_options, &option_index); | 155 | c = getopt_long (argc, argv, "+hVvc:w:", long_options, &option_index); |
| @@ -185,27 +157,19 @@ call_getopt (int argc, char **argv) | |||
| 185 | c = getopt (argc, argv, "+hVvc:w:"); | 157 | c = getopt (argc, argv, "+hVvc:w:"); |
| 186 | #endif | 158 | #endif |
| 187 | 159 | ||
| 188 | i++; | ||
| 189 | |||
| 190 | if (c == -1 || c == EOF || c == 1) | 160 | if (c == -1 || c == EOF || c == 1) |
| 191 | break; | 161 | break; |
| 192 | 162 | ||
| 193 | switch (c) { | 163 | switch (c) { |
| 194 | case 'c': | ||
| 195 | case 'w': | ||
| 196 | i++; | ||
| 197 | } | ||
| 198 | |||
| 199 | switch (c) { | ||
| 200 | case '?': /* print short usage statement if args not parsable */ | 164 | case '?': /* print short usage statement if args not parsable */ |
| 201 | printf ("%s: Unknown argument: %s\n\n", my_basename (argv[0]), optarg); | 165 | printf ("%s: Unknown argument: %s\n\n", PROGNAME, optarg); |
| 202 | print_usage (); | 166 | print_usage (); |
| 203 | exit (STATE_UNKNOWN); | 167 | exit (STATE_UNKNOWN); |
| 204 | case 'h': /* help */ | 168 | case 'h': /* help */ |
| 205 | print_help (); | 169 | print_help (); |
| 206 | exit (STATE_OK); | 170 | exit (STATE_OK); |
| 207 | case 'V': /* version */ | 171 | case 'V': /* version */ |
| 208 | print_revision (my_basename (argv[0]), "$Revision$"); | 172 | print_revision (PROGNAME, REVISION); |
| 209 | exit (STATE_OK); | 173 | exit (STATE_OK); |
| 210 | case 'c': /* critical */ | 174 | case 'c': /* critical */ |
| 211 | if (!is_intnonneg (optarg)) | 175 | if (!is_intnonneg (optarg)) |
| @@ -219,7 +183,21 @@ call_getopt (int argc, char **argv) | |||
| 219 | break; | 183 | break; |
| 220 | } | 184 | } |
| 221 | } | 185 | } |
| 222 | return i; | 186 | |
| 187 | c = optind; | ||
| 188 | if (wusers == -1 && argc > c) { | ||
| 189 | if (is_intnonneg (argv[c]) == FALSE) | ||
| 190 | usage ("Warning threshold must be a nonnegative integer\n"); | ||
| 191 | wusers = atoi (argv[c++]); | ||
| 192 | } | ||
| 193 | |||
| 194 | if (cusers == -1 && argc > c) { | ||
| 195 | if (is_intnonneg (argv[c]) == FALSE) | ||
| 196 | usage ("Warning threshold must be a nonnegative integer\n"); | ||
| 197 | cusers = atoi (argv[c]); | ||
| 198 | } | ||
| 199 | |||
| 200 | return OK; | ||
| 223 | } | 201 | } |
| 224 | 202 | ||
| 225 | 203 | ||
| @@ -239,9 +217,9 @@ print_usage (void) | |||
| 239 | void | 217 | void |
| 240 | print_help (void) | 218 | print_help (void) |
| 241 | { | 219 | { |
| 242 | print_revision (PROGNAME, "$Revision$"); | 220 | print_revision (PROGNAME, REVISION); |
| 243 | printf | 221 | printf |
| 244 | ("Copyright (c) 1999 Ethan Galstad (nagios@nagios.org)\n\n" | 222 | ("Copyright (c) " COPYRIGHT " " AUTHOR "(" EMAIL ")\n\n" |
| 245 | "This plugin checks the number of users currently logged in on the local\n" | 223 | "This plugin checks the number of users currently logged in on the local\n" |
| 246 | "system and generates an error if the number exceeds the thresholds specified.\n"); | 224 | "system and generates an error if the number exceeds the thresholds specified.\n"); |
| 247 | print_usage (); | 225 | print_usage (); |
