diff options
| author | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2003-08-09 13:36:49 +0000 |
|---|---|---|
| committer | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2003-08-09 13:36:49 +0000 |
| commit | 90b45deb4138efb47efbdd98a4aede1aebb47146 (patch) | |
| tree | d27a0180ce89542ee546a0b1e958b68a114ea7ce /plugins/check_ups.c | |
| parent | 4784cac1f017a67978c2f3f2af75b161d1ef33c0 (diff) | |
| download | monitoring-plugins-90b45deb4138efb47efbdd98a4aede1aebb47146.tar.gz | |
more pedantic compiler warnings
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@674 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins/check_ups.c')
| -rw-r--r-- | plugins/check_ups.c | 148 |
1 files changed, 81 insertions, 67 deletions
diff --git a/plugins/check_ups.c b/plugins/check_ups.c index 499b9222..fcee7477 100644 --- a/plugins/check_ups.c +++ b/plugins/check_ups.c | |||
| @@ -29,68 +29,6 @@ enum { | |||
| 29 | PORT = 3493 | 29 | PORT = 3493 |
| 30 | }; | 30 | }; |
| 31 | 31 | ||
| 32 | void | ||
| 33 | print_usage (void) | ||
| 34 | { | ||
| 35 | printf (_("\ | ||
| 36 | Usage: %s -H host [-e expect] [-p port] [-w warn] [-c crit]\n\ | ||
| 37 | [-t timeout] [-v]\n"), progname); | ||
| 38 | printf (_(UT_HLP_VRS), progname, progname); | ||
| 39 | } | ||
| 40 | |||
| 41 | void | ||
| 42 | print_help (void) | ||
| 43 | { | ||
| 44 | char *myport; | ||
| 45 | asprintf (&myport, "%d", PORT); | ||
| 46 | |||
| 47 | print_revision (progname, revision); | ||
| 48 | |||
| 49 | printf (_("Copyright (c) 2000 Tom Shields")); | ||
| 50 | printf (_(COPYRIGHT), copyright, email); | ||
| 51 | |||
| 52 | printf (_("This plugin tests the UPS service on the specified host.\n\ | ||
| 53 | Network UPS Tools from www.exploits.org must be running for this plugin to\n\ | ||
| 54 | work.\n\n")); | ||
| 55 | |||
| 56 | print_usage (); | ||
| 57 | |||
| 58 | printf (_(UT_HELP_VRSN)); | ||
| 59 | |||
| 60 | printf (_(UT_HOST_PORT), 'p', myport); | ||
| 61 | |||
| 62 | printf (_("\ | ||
| 63 | -u, --ups=STRING\n\ | ||
| 64 | Name of UPS\n")); | ||
| 65 | |||
| 66 | printf (_(UT_WARN_CRIT)); | ||
| 67 | |||
| 68 | printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); | ||
| 69 | |||
| 70 | printf (_(UT_VERBOSE)); | ||
| 71 | |||
| 72 | printf (_("\ | ||
| 73 | This plugin attempts to determine the status of a UPS (Uninterruptible Power\n\ | ||
| 74 | Supply) on a local or remote host. If the UPS is online or calibrating, the\n\ | ||
| 75 | plugin will return an OK state. If the battery is on it will return a WARNING\n\ | ||
| 76 | state. If the UPS is off or has a low battery the plugin will return a CRITICAL\n\ | ||
| 77 | state.\n\n")); | ||
| 78 | |||
| 79 | printf (_("\ | ||
| 80 | You may also specify a variable to check [such as temperature, utility voltage,\n\ | ||
| 81 | battery load, etc.] as well as warning and critical thresholds for the value of\n\ | ||
| 82 | that variable. If the remote host has multiple UPS that are being monitored you\n\ | ||
| 83 | will have to use the [ups] option to specify which UPS to check.\n\n")); | ||
| 84 | |||
| 85 | printf (_("Notes:\n\n\ | ||
| 86 | This plugin requires that the UPSD daemon distributed with Russel Kroll's\n\ | ||
| 87 | Smart UPS Tools be installed on the remote host. If you do not have the\n\ | ||
| 88 | package installed on your system, you can download it from\n\ | ||
| 89 | http://www.exploits.org/nut\n\n")); | ||
| 90 | |||
| 91 | printf (_(UT_SUPPORT)); | ||
| 92 | } | ||
| 93 | |||
| 94 | #define CHECK_NONE 0 | 32 | #define CHECK_NONE 0 |
| 95 | 33 | ||
| 96 | #define UPS_NONE 0 /* no supported options */ | 34 | #define UPS_NONE 0 /* no supported options */ |
| @@ -110,7 +48,7 @@ http://www.exploits.org/nut\n\n")); | |||
| 110 | #define UPSSTATUS_UNKOWN 64 | 48 | #define UPSSTATUS_UNKOWN 64 |
| 111 | 49 | ||
| 112 | int server_port = PORT; | 50 | int server_port = PORT; |
| 113 | char *server_address = "127.0.0.1"; | 51 | char *server_address; |
| 114 | char *ups_name = NULL; | 52 | char *ups_name = NULL; |
| 115 | double warning_value = 0.0; | 53 | double warning_value = 0.0; |
| 116 | double critical_value = 0.0; | 54 | double critical_value = 0.0; |
| @@ -124,14 +62,16 @@ double ups_utility_voltage = 0.0; | |||
| 124 | double ups_battery_percent = 0.0; | 62 | double ups_battery_percent = 0.0; |
| 125 | double ups_load_percent = 0.0; | 63 | double ups_load_percent = 0.0; |
| 126 | double ups_temperature = 0.0; | 64 | double ups_temperature = 0.0; |
| 127 | char *ups_status = "N/A"; | 65 | char *ups_status; |
| 128 | 66 | ||
| 129 | int determine_status (void); | 67 | int determine_status (void); |
| 130 | int determine_supported_vars (void); | 68 | int determine_supported_vars (void); |
| 131 | int get_ups_variable (const char *, char *, int); | 69 | int get_ups_variable (const char *, char *, size_t); |
| 132 | 70 | ||
| 133 | int process_arguments (int, char **); | 71 | int process_arguments (int, char **); |
| 134 | int validate_arguments (void); | 72 | int validate_arguments (void); |
| 73 | void print_help (void); | ||
| 74 | void print_usage (void); | ||
| 135 | 75 | ||
| 136 | int | 76 | int |
| 137 | main (int argc, char **argv) | 77 | main (int argc, char **argv) |
| @@ -141,6 +81,7 @@ main (int argc, char **argv) | |||
| 141 | char temp_buffer[MAX_INPUT_BUFFER]; | 81 | char temp_buffer[MAX_INPUT_BUFFER]; |
| 142 | 82 | ||
| 143 | double ups_utility_deviation = 0.0; | 83 | double ups_utility_deviation = 0.0; |
| 84 | ups_status = strdup ("N/A"); | ||
| 144 | 85 | ||
| 145 | if (process_arguments (argc, argv) != OK) | 86 | if (process_arguments (argc, argv) != OK) |
| 146 | usage ("Invalid command arguments supplied\n"); | 87 | usage ("Invalid command arguments supplied\n"); |
| @@ -160,7 +101,7 @@ main (int argc, char **argv) | |||
| 160 | 101 | ||
| 161 | if (determine_status () != OK) | 102 | if (determine_status () != OK) |
| 162 | return STATE_CRITICAL; | 103 | return STATE_CRITICAL; |
| 163 | asprintf (&ups_status, ""); | 104 | ups_status = strdup (""); |
| 164 | result = STATE_OK; | 105 | result = STATE_OK; |
| 165 | 106 | ||
| 166 | if (status & UPSSTATUS_OFF) { | 107 | if (status & UPSSTATUS_OFF) { |
| @@ -395,7 +336,7 @@ determine_supported_vars (void) | |||
| 395 | 336 | ||
| 396 | /* gets a variable value for a specific UPS */ | 337 | /* gets a variable value for a specific UPS */ |
| 397 | int | 338 | int |
| 398 | get_ups_variable (const char *varname, char *buf, int buflen) | 339 | get_ups_variable (const char *varname, char *buf, size_t buflen) |
| 399 | { | 340 | { |
| 400 | /* char command[MAX_INPUT_BUFFER]; */ | 341 | /* char command[MAX_INPUT_BUFFER]; */ |
| 401 | char temp_buffer[MAX_INPUT_BUFFER]; | 342 | char temp_buffer[MAX_INPUT_BUFFER]; |
| @@ -569,6 +510,9 @@ process_arguments (int argc, char **argv) | |||
| 569 | usage ("Invalid host name"); | 510 | usage ("Invalid host name"); |
| 570 | } | 511 | } |
| 571 | 512 | ||
| 513 | if (server_address == NULL) | ||
| 514 | server_address = strdup("127.0.0.1"); | ||
| 515 | |||
| 572 | return validate_arguments(); | 516 | return validate_arguments(); |
| 573 | } | 517 | } |
| 574 | 518 | ||
| @@ -581,3 +525,73 @@ validate_arguments (void) | |||
| 581 | { | 525 | { |
| 582 | return OK; | 526 | return OK; |
| 583 | } | 527 | } |
| 528 | |||
| 529 | |||
| 530 | |||
| 531 | |||
| 532 | |||
| 533 | |||
| 534 | void | ||
| 535 | print_help (void) | ||
| 536 | { | ||
| 537 | char *myport; | ||
| 538 | asprintf (&myport, "%d", PORT); | ||
| 539 | |||
| 540 | print_revision (progname, revision); | ||
| 541 | |||
| 542 | printf (_("Copyright (c) 2000 Tom Shields")); | ||
| 543 | printf (_(COPYRIGHT), copyright, email); | ||
| 544 | |||
| 545 | printf (_("This plugin tests the UPS service on the specified host.\n\ | ||
| 546 | Network UPS Tools from www.exploits.org must be running for this plugin to\n\ | ||
| 547 | work.\n\n")); | ||
| 548 | |||
| 549 | print_usage (); | ||
| 550 | |||
| 551 | printf (_(UT_HELP_VRSN)); | ||
| 552 | |||
| 553 | printf (_(UT_HOST_PORT), 'p', myport); | ||
| 554 | |||
| 555 | printf (_("\ | ||
| 556 | -u, --ups=STRING\n\ | ||
| 557 | Name of UPS\n")); | ||
| 558 | |||
| 559 | printf (_(UT_WARN_CRIT)); | ||
| 560 | |||
| 561 | printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); | ||
| 562 | |||
| 563 | printf (_(UT_VERBOSE)); | ||
| 564 | |||
| 565 | printf (_("\ | ||
| 566 | This plugin attempts to determine the status of a UPS (Uninterruptible Power\n\ | ||
| 567 | Supply) on a local or remote host. If the UPS is online or calibrating, the\n\ | ||
| 568 | plugin will return an OK state. If the battery is on it will return a WARNING\n\ | ||
| 569 | state. If the UPS is off or has a low battery the plugin will return a CRITICAL\n\ | ||
| 570 | state.\n\n")); | ||
| 571 | |||
| 572 | printf (_("\ | ||
| 573 | You may also specify a variable to check [such as temperature, utility voltage,\n\ | ||
| 574 | battery load, etc.] as well as warning and critical thresholds for the value of\n\ | ||
| 575 | that variable. If the remote host has multiple UPS that are being monitored you\n\ | ||
| 576 | will have to use the [ups] option to specify which UPS to check.\n\n")); | ||
| 577 | |||
| 578 | printf (_("Notes:\n\n\ | ||
| 579 | This plugin requires that the UPSD daemon distributed with Russel Kroll's\n\ | ||
| 580 | Smart UPS Tools be installed on the remote host. If you do not have the\n\ | ||
| 581 | package installed on your system, you can download it from\n\ | ||
| 582 | http://www.exploits.org/nut\n\n")); | ||
| 583 | |||
| 584 | printf (_(UT_SUPPORT)); | ||
| 585 | } | ||
| 586 | |||
| 587 | |||
| 588 | |||
| 589 | |||
| 590 | void | ||
| 591 | print_usage (void) | ||
| 592 | { | ||
| 593 | printf (_("\ | ||
| 594 | Usage: %s -H host [-e expect] [-p port] [-w warn] [-c crit]\n\ | ||
| 595 | [-t timeout] [-v]\n"), progname); | ||
| 596 | printf (_(UT_HLP_VRS), progname, progname); | ||
| 597 | } | ||
