diff options
-rw-r--r-- | plugins/check_ldap.c | 4 | ||||
-rw-r--r-- | plugins/check_nagios.c | 162 | ||||
-rw-r--r-- | plugins/check_radius.c | 189 | ||||
-rw-r--r-- | plugins/check_udp.c | 182 | ||||
-rw-r--r-- | plugins/check_ups.c | 209 | ||||
-rw-r--r-- | plugins/negate.c | 147 |
6 files changed, 401 insertions, 492 deletions
diff --git a/plugins/check_ldap.c b/plugins/check_ldap.c index f6e0fca0..2064dd3b 100644 --- a/plugins/check_ldap.c +++ b/plugins/check_ldap.c | |||
@@ -88,6 +88,10 @@ print_help () | |||
88 | 88 | ||
89 | printf (_(UT_WARN_CRIT)); | 89 | printf (_(UT_WARN_CRIT)); |
90 | 90 | ||
91 | printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); | ||
92 | |||
93 | printf (_(UT_VERBOSE)); | ||
94 | |||
91 | printf (_(UT_SUPPORT)); | 95 | printf (_(UT_SUPPORT)); |
92 | } | 96 | } |
93 | 97 | ||
diff --git a/plugins/check_nagios.c b/plugins/check_nagios.c index 64a828b9..7ae0ff85 100644 --- a/plugins/check_nagios.c +++ b/plugins/check_nagios.c | |||
@@ -1,40 +1,72 @@ | |||
1 | /****************************************************************************** | 1 | /****************************************************************************** |
2 | * | 2 | |
3 | * CHECK_NAGIOS.C | 3 | This program is free software; you can redistribute it and/or modify |
4 | * | 4 | it under the terms of the GNU General Public License as published by |
5 | * Program: Nagios process plugin for Nagios | 5 | the Free Software Foundation; either version 2 of the License, or |
6 | * License: GPL | 6 | (at your option) any later version. |
7 | * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org) | 7 | |
8 | * | 8 | This program is distributed in the hope that it will be useful, |
9 | * $Id$ | 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | * | 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 | * License Information: | 11 | GNU General Public License for more details. |
12 | * | 12 | |
13 | * This program is free software; you can redistribute it and/or modify | 13 | You should have received a copy of the GNU General Public License |
14 | * it under the terms of the GNU General Public License as published by | 14 | along with this program; if not, write to the Free Software |
15 | * the Free Software Foundation; either version 2 of the License, or | 15 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
16 | * (at your option) any later version. | 16 | |
17 | * | 17 | ******************************************************************************/ |
18 | * This program is distributed in the hope that it will be useful, | 18 | |
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 19 | const char *progname = "check_nagios"; |
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 20 | const char *revision = "$Revision$"; |
21 | * GNU General Public License for more details. | 21 | const char *copyright = "1999-2003"; |
22 | * | 22 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; |
23 | * You should have received a copy of the GNU General Public License | ||
24 | * along with this program; if not, write to the Free Software | ||
25 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
26 | * | ||
27 | *****************************************************************************/ | ||
28 | 23 | ||
29 | #include "common.h" | 24 | #include "common.h" |
30 | #include "popen.h" | 25 | #include "popen.h" |
31 | #include "utils.h" | 26 | #include "utils.h" |
32 | 27 | ||
33 | const char *progname = "check_nagios"; | 28 | void |
29 | print_usage (void) | ||
30 | { | ||
31 | printf (_("\ | ||
32 | Usage: %s -F <status log file> -e <expire_minutes> -C <process_string>\n"), | ||
33 | progname); | ||
34 | } | ||
34 | 35 | ||
36 | void | ||
37 | print_help (void) | ||
38 | { | ||
39 | print_revision (progname, revision); | ||
40 | |||
41 | printf (_(COPYRIGHT), copyright, email); | ||
42 | |||
43 | printf (_("\ | ||
44 | This plugin attempts to check the status of the Nagios process on the local\n\ | ||
45 | machine. The plugin will check to make sure the Nagios status log is no older\n\ | ||
46 | than the number of minutes specified by the <expire_minutes> option. It also\n\ | ||
47 | uses the /bin/ps command to check for a process matching whatever you specify\n\ | ||
48 | by the <process_string> argument.\n")); | ||
49 | |||
50 | print_usage (); | ||
51 | |||
52 | printf (_(UT_HELP_VRSN)); | ||
53 | |||
54 | printf (_("\ | ||
55 | -F, --filename=FILE\n\ | ||
56 | Name of the log file to check\n\ | ||
57 | -e, --expires=INTEGER\n\ | ||
58 | Seconds aging afterwhich logfile is condsidered stale\n\ | ||
59 | -C, --command=STRING\n\ | ||
60 | Command to search for in process table\n")); | ||
61 | |||
62 | printf (_("\ | ||
63 | Example:\n\ | ||
64 | ./check_nagios -e 5 \\\ | ||
65 | -F /usr/local/nagios/var/status.log \\\ | ||
66 | -C /usr/local/nagios/bin/nagios\n")); | ||
67 | } | ||
68 | |||
35 | int process_arguments (int, char **); | 69 | int process_arguments (int, char **); |
36 | void print_usage (void); | ||
37 | void print_help (void); | ||
38 | 70 | ||
39 | char *status_log = NULL; | 71 | char *status_log = NULL; |
40 | char *process_string = NULL; | 72 | char *process_string = NULL; |
@@ -64,11 +96,11 @@ main (int argc, char **argv) | |||
64 | int pos, cols; | 96 | int pos, cols; |
65 | 97 | ||
66 | if (process_arguments (argc, argv) == ERROR) | 98 | if (process_arguments (argc, argv) == ERROR) |
67 | usage ("Could not parse arguments\n"); | 99 | usage (_("Could not parse arguments\n")); |
68 | 100 | ||
69 | /* Set signal handling and alarm */ | 101 | /* Set signal handling and alarm */ |
70 | if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) { | 102 | if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) { |
71 | printf ("Cannot catch SIGALRM"); | 103 | printf (_("Cannot catch SIGALRM")); |
72 | return STATE_UNKNOWN; | 104 | return STATE_UNKNOWN; |
73 | } | 105 | } |
74 | 106 | ||
@@ -78,7 +110,7 @@ main (int argc, char **argv) | |||
78 | /* open the status log */ | 110 | /* open the status log */ |
79 | fp = fopen (status_log, "r"); | 111 | fp = fopen (status_log, "r"); |
80 | if (fp == NULL) { | 112 | if (fp == NULL) { |
81 | printf ("Error: Cannot open status log for reading!\n"); | 113 | printf (_("Error: Cannot open status log for reading!\n")); |
82 | return STATE_CRITICAL; | 114 | return STATE_CRITICAL; |
83 | } | 115 | } |
84 | 116 | ||
@@ -95,13 +127,13 @@ main (int argc, char **argv) | |||
95 | /* run the command to check for the Nagios process.. */ | 127 | /* run the command to check for the Nagios process.. */ |
96 | child_process = spopen (PS_COMMAND); | 128 | child_process = spopen (PS_COMMAND); |
97 | if (child_process == NULL) { | 129 | if (child_process == NULL) { |
98 | printf ("Could not open pipe: %s\n", PS_COMMAND); | 130 | printf (_("Could not open pipe: %s\n"), PS_COMMAND); |
99 | return STATE_UNKNOWN; | 131 | return STATE_UNKNOWN; |
100 | } | 132 | } |
101 | 133 | ||
102 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); | 134 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); |
103 | if (child_stderr == NULL) { | 135 | if (child_stderr == NULL) { |
104 | printf ("Could not open stderr for %s\n", PS_COMMAND); | 136 | printf (_("Could not open stderr for %s\n"), PS_COMMAND); |
105 | } | 137 | } |
106 | 138 | ||
107 | fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process); | 139 | fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process); |
@@ -116,7 +148,7 @@ main (int argc, char **argv) | |||
116 | if (!strstr(procargs, argv[0]) && strstr(procargs, process_string)) { | 148 | if (!strstr(procargs, argv[0]) && strstr(procargs, process_string)) { |
117 | proc_entries++; | 149 | proc_entries++; |
118 | if (verbose) | 150 | if (verbose) |
119 | printf ("Found process: %s\n", procargs); | 151 | printf (_("Found process: %s\n"), procargs); |
120 | } | 152 | } |
121 | } | 153 | } |
122 | } | 154 | } |
@@ -136,18 +168,18 @@ main (int argc, char **argv) | |||
136 | alarm (0); | 168 | alarm (0); |
137 | 169 | ||
138 | if (proc_entries == 0) { | 170 | if (proc_entries == 0) { |
139 | printf ("Could not locate a running Nagios process!\n"); | 171 | printf (_("Could not locate a running Nagios process!\n")); |
140 | return STATE_CRITICAL; | 172 | return STATE_CRITICAL; |
141 | } | 173 | } |
142 | 174 | ||
143 | result = STATE_OK; | 175 | result = STATE_OK; |
144 | 176 | ||
145 | time (¤t_time); | 177 | time (¤t_time); |
146 | if ((current_time - latest_entry_time) > (expire_minutes * 60)) | 178 | if ((int)(current_time - latest_entry_time) > (expire_minutes * 60)) |
147 | result = STATE_WARNING; | 179 | result = STATE_WARNING; |
148 | 180 | ||
149 | printf | 181 | printf |
150 | ("Nagios %s: located %d process%s, status log updated %d second%s ago\n", | 182 | (_("Nagios %s: located %d process%s, status log updated %d second%s ago\n"), |
151 | (result == STATE_OK) ? "ok" : "problem", proc_entries, | 183 | (result == STATE_OK) ? "ok" : "problem", proc_entries, |
152 | (proc_entries == 1) ? "" : "es", | 184 | (proc_entries == 1) ? "" : "es", |
153 | (int) (current_time - latest_entry_time), | 185 | (int) (current_time - latest_entry_time), |
@@ -186,7 +218,7 @@ process_arguments (int argc, char **argv) | |||
186 | expire_minutes = atoi (argv[2]); | 218 | expire_minutes = atoi (argv[2]); |
187 | else | 219 | else |
188 | terminate (STATE_UNKNOWN, | 220 | terminate (STATE_UNKNOWN, |
189 | "Expiration time must be an integer (seconds)\nType '%s -h' for additional help\n", | 221 | _("Expiration time must be an integer (seconds)\nType '%s -h' for additional help\n"), |
190 | progname); | 222 | progname); |
191 | process_string = argv[3]; | 223 | process_string = argv[3]; |
192 | return OK; | 224 | return OK; |
@@ -200,7 +232,7 @@ process_arguments (int argc, char **argv) | |||
200 | 232 | ||
201 | switch (c) { | 233 | switch (c) { |
202 | case '?': /* print short usage statement if args not parsable */ | 234 | case '?': /* print short usage statement if args not parsable */ |
203 | printf ("%s: Unknown argument: %c\n\n", progname, optopt); | 235 | printf (_("%s: Unknown argument: %c\n\n"), progname, optopt); |
204 | print_usage (); | 236 | print_usage (); |
205 | exit (STATE_UNKNOWN); | 237 | exit (STATE_UNKNOWN); |
206 | case 'h': /* help */ | 238 | case 'h': /* help */ |
@@ -220,7 +252,7 @@ process_arguments (int argc, char **argv) | |||
220 | expire_minutes = atoi (optarg); | 252 | expire_minutes = atoi (optarg); |
221 | else | 253 | else |
222 | terminate (STATE_UNKNOWN, | 254 | terminate (STATE_UNKNOWN, |
223 | "Expiration time must be an integer (seconds)\nType '%s -h' for additional help\n", | 255 | _("Expiration time must be an integer (seconds)\nType '%s -h' for additional help\n"), |
224 | progname); | 256 | progname); |
225 | break; | 257 | break; |
226 | case 'v': | 258 | case 'v': |
@@ -232,56 +264,12 @@ process_arguments (int argc, char **argv) | |||
232 | 264 | ||
233 | if (status_log == NULL) | 265 | if (status_log == NULL) |
234 | terminate (STATE_UNKNOWN, | 266 | terminate (STATE_UNKNOWN, |
235 | "You must provide the status_log\nType '%s -h' for additional help\n", | 267 | _("You must provide the status_log\nType '%s -h' for additional help\n"), |
236 | progname); | 268 | progname); |
237 | else if (process_string == NULL) | 269 | else if (process_string == NULL) |
238 | terminate (STATE_UNKNOWN, | 270 | terminate (STATE_UNKNOWN, |
239 | "You must provide a process string\nType '%s -h' for additional help\n", | 271 | _("You must provide a process string\nType '%s -h' for additional help\n"), |
240 | progname); | 272 | progname); |
241 | 273 | ||
242 | return OK; | 274 | return OK; |
243 | } | 275 | } |
244 | |||
245 | |||
246 | |||
247 | |||
248 | |||
249 | void | ||
250 | print_usage (void) | ||
251 | { | ||
252 | printf | ||
253 | ("Usage: %s -F <status log file> -e <expire_minutes> -C <process_string>\n", | ||
254 | progname); | ||
255 | } | ||
256 | |||
257 | |||
258 | |||
259 | |||
260 | |||
261 | void | ||
262 | print_help (void) | ||
263 | { | ||
264 | print_revision (progname, "$Revision$"); | ||
265 | printf | ||
266 | ("Copyright (c) 2000 Ethan Galstad/Karl DeBisschop\n\n" | ||
267 | "This plugin attempts to check the status of the Nagios process on the local\n" | ||
268 | "machine. The plugin will check to make sure the Nagios status log is no older\n" | ||
269 | "than the number of minutes specified by the <expire_minutes> option. It also\n" | ||
270 | "uses the /bin/ps command to check for a process matching whatever you specify\n" | ||
271 | "by the <process_string> argument.\n"); | ||
272 | print_usage (); | ||
273 | printf | ||
274 | ("\nOptions:\n" | ||
275 | "-F, --filename=FILE\n" | ||
276 | " Name of the log file to check\n" | ||
277 | "-e, --expires=INTEGER\n" | ||
278 | " Seconds aging afterwhich logfile is condsidered stale\n" | ||
279 | "-C, --command=STRING\n" | ||
280 | " Command to search for in process table\n" | ||
281 | "-h, --help\n" | ||
282 | " Print this help screen\n" | ||
283 | "-V, --version\n" | ||
284 | " Print version information\n\n" | ||
285 | "Example:\n" | ||
286 | " ./check_nagios -F /usr/local/nagios/var/status.log -e 5 -C /usr/local/nagios/bin/nagios\n"); | ||
287 | } | ||
diff --git a/plugins/check_radius.c b/plugins/check_radius.c index c71f3b4c..3aa5ae71 100644 --- a/plugins/check_radius.c +++ b/plugins/check_radius.c | |||
@@ -1,45 +1,60 @@ | |||
1 | /****************************************************************************** | 1 | /****************************************************************************** |
2 | * | 2 | |
3 | * Program: radius server check plugin for Nagios | 3 | This program is free software; you can redistribute it and/or modify |
4 | * License: GPL | 4 | it under the terms of the GNU General Public License as published by |
5 | * | 5 | the Free Software Foundation; either version 2 of the License, or |
6 | * License Information: | 6 | (at your option) any later version. |
7 | * | 7 | |
8 | * This program is free software; you can redistribute it and/or modify | 8 | This program is distributed in the hope that it will be useful, |
9 | * it under the terms of the GNU General Public License as published by | 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | * the Free Software Foundation; either version 2 of the License, or | 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 | * (at your option) any later version. | 11 | GNU General Public License for more details. |
12 | * | 12 | |
13 | * This program is distributed in the hope that it will be useful, | 13 | You should have received a copy of the GNU General Public License |
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 | along with this program; if not, write to the Free Software |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 15 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
16 | * GNU General Public License for more details. | 16 | |
17 | * | 17 | ******************************************************************************/ |
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
21 | * | ||
22 | * $Id$ | ||
23 | * | ||
24 | *****************************************************************************/ | ||
25 | 18 | ||
26 | const char *progname = "check_radius"; | 19 | const char *progname = "check_radius"; |
27 | #define REVISION "$Revision$" | 20 | const char *revision = "$Revision$"; |
28 | #define COPYRIGHT "1999-2001" | 21 | const char *copyright = "2000-2003"; |
29 | #define AUTHORS "Robert August Vincent II/Karl DeBisschop" | 22 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; |
30 | #define EMAIL "kdebisschop@users.sourceforge.net" | 23 | |
31 | #define SUMMARY "Tests to see if a radius server is accepting connections.\n" | 24 | #include "config.h" |
32 | 25 | #include "common.h" | |
33 | #define OPTIONS "\ | 26 | #include "utils.h" |
34 | -H host -F config_file -u username -p password\'\ | 27 | #include <radiusclient.h> |
35 | [-P port] [-t timeout] [-r retries] [-e expect]" | 28 | |
36 | 29 | void | |
37 | #define LONGOPTIONS "\ | 30 | print_usage (void) |
38 | -H, --hostname=HOST\n\ | 31 | { |
39 | Host name argument for servers using host headers (use numeric\n\ | 32 | printf ("\ |
40 | address if possible to bypass DNS lookup).\n\ | 33 | Usage: %s -H host -F config_file -u username -p password [-P port]\n\ |
41 | -P, --port=INTEGER\n\ | 34 | [-t timeout] [-r retries] [-e expect]\n", progname); |
42 | Port number (default: %d)\n\ | 35 | printf (_(UT_HLP_VRS), progname, progname); |
36 | } | ||
37 | |||
38 | void | ||
39 | print_help (void) | ||
40 | { | ||
41 | char *myport; | ||
42 | asprintf (&myport, "%d", PW_AUTH_UDP_PORT); | ||
43 | |||
44 | print_revision (progname, revision); | ||
45 | |||
46 | printf (_("Copyright (c) 1999 Robert August Vincent II\n")); | ||
47 | printf (_(COPYRIGHT), copyright, email); | ||
48 | |||
49 | printf(_("Tests to see if a radius server is accepting connections.\n\n")); | ||
50 | |||
51 | print_usage (); | ||
52 | |||
53 | printf (_(UT_HELP_VRSN)); | ||
54 | |||
55 | printf (_(UT_HOST_PORT), 'P', myport); | ||
56 | |||
57 | printf (_("\ | ||
43 | -u, --username=STRING\n\ | 58 | -u, --username=STRING\n\ |
44 | The user to authenticate\n\ | 59 | The user to authenticate\n\ |
45 | -p, --password=STRING\n\ | 60 | -p, --password=STRING\n\ |
@@ -49,48 +64,38 @@ const char *progname = "check_radius"; | |||
49 | -e, --expect=STRING\n\ | 64 | -e, --expect=STRING\n\ |
50 | Response string to expect from the server\n\ | 65 | Response string to expect from the server\n\ |
51 | -r, --retries=INTEGER\n\ | 66 | -r, --retries=INTEGER\n\ |
52 | Number of times to retry a failed connection\n\ | 67 | Number of times to retry a failed connection\n")); |
53 | -t, --timeout=INTEGER\n\ | 68 | |
54 | Seconds before connection times out (default: %d)\n\ | 69 | printf (_(UT_TIMEOUT), timeout_interval); |
55 | -v, --verbose\n\ | 70 | |
56 | Show details for command-line debugging (do not use with nagios server)\n\ | 71 | printf (_("\n\ |
57 | -h, --help\n\ | ||
58 | Print detailed help screen\n\ | ||
59 | -V, --version\n\ | ||
60 | Print version information\n" | ||
61 | |||
62 | #define DESCRIPTION "\ | ||
63 | This plugin tests a radius server to see if it is accepting connections.\n\ | 72 | This plugin tests a radius server to see if it is accepting connections.\n\ |
64 | \n\ | 73 | \n\ |
65 | The server to test must be specified in the invocation, as well as a user\n\ | 74 | The server to test must be specified in the invocation, as well as a user\n\ |
66 | name and password. A configuration file may also be present. The format of\n\ | 75 | name and password. A configuration file may also be present. The format of\n\ |
67 | the configuration file is described in the radiusclient library sources.\n\ | 76 | the configuration file is described in the radiusclient library sources.\n\n")); |
68 | \n\ | 77 | |
78 | printf (_("\ | ||
69 | The password option presents a substantial security issue because the\n\ | 79 | The password option presents a substantial security issue because the\n\ |
70 | password can be determined by careful watching of the command line in\n\ | 80 | password can be determined by careful watching of the command line in\n\ |
71 | a process listing. This risk is exacerbated because nagios will\n\ | 81 | a process listing. This risk is exacerbated because nagios will\n\ |
72 | run the plugin at regular prdictable intervals. Please be sure that\n\ | 82 | run the plugin at regular prdictable intervals. Please be sure that\n\ |
73 | the password used does not allow access to sensitive system resources,\n\ | 83 | the password used does not allow access to sensitive system resources,\n\ |
74 | otherwise compormise could occur.\n" | 84 | otherwise compormise could occur.\n")); |
75 | |||
76 | #include "config.h" | ||
77 | #include "common.h" | ||
78 | #include "utils.h" | ||
79 | #include <radiusclient.h> | ||
80 | 85 | ||
86 | printf (_(UT_SUPPORT)); | ||
87 | } | ||
88 | |||
81 | int process_arguments (int, char **); | 89 | int process_arguments (int, char **); |
82 | void print_usage (void); | ||
83 | void print_help (void); | ||
84 | 90 | ||
85 | char *server = NULL; | 91 | char *server = NULL; |
86 | int port = PW_AUTH_UDP_PORT; | ||
87 | char *username = NULL; | 92 | char *username = NULL; |
88 | char *password = NULL; | 93 | char *password = NULL; |
89 | char *expect = NULL; | 94 | char *expect = NULL; |
90 | char *config_file = NULL; | 95 | char *config_file = NULL; |
96 | int port = PW_AUTH_UDP_PORT; | ||
91 | int retries = 1; | 97 | int retries = 1; |
92 | int verbose = FALSE; | 98 | int verbose = FALSE; |
93 | |||
94 | ENV *env = NULL; | 99 | ENV *env = NULL; |
95 | 100 | ||
96 | /****************************************************************************** | 101 | /****************************************************************************** |
@@ -151,23 +156,23 @@ main (int argc, char **argv) | |||
151 | { | 156 | { |
152 | UINT4 service; | 157 | UINT4 service; |
153 | char msg[BUFFER_LEN]; | 158 | char msg[BUFFER_LEN]; |
154 | SEND_DATA data = { 0 }; | 159 | SEND_DATA data; |
155 | int result; | 160 | int result; |
156 | UINT4 client_id; | 161 | UINT4 client_id; |
157 | 162 | ||
158 | if (process_arguments (argc, argv) == ERROR) | 163 | if (process_arguments (argc, argv) == ERROR) |
159 | usage ("Could not parse arguments\n"); | 164 | usage (_("Could not parse arguments\n")); |
160 | 165 | ||
161 | if ((config_file && rc_read_config (config_file)) || | 166 | if ((config_file && rc_read_config (config_file)) || |
162 | rc_read_dictionary (rc_conf_str ("dictionary"))) | 167 | rc_read_dictionary (rc_conf_str ("dictionary"))) |
163 | terminate (STATE_UNKNOWN, "Config file error"); | 168 | terminate (STATE_UNKNOWN, _("Config file error")); |
164 | 169 | ||
165 | service = PW_AUTHENTICATE_ONLY; | 170 | service = PW_AUTHENTICATE_ONLY; |
166 | 171 | ||
167 | if (!(rc_avpair_add (&data.send_pairs, PW_SERVICE_TYPE, &service, 0) && | 172 | if (!(rc_avpair_add (&data.send_pairs, PW_SERVICE_TYPE, &service, 0) && |
168 | rc_avpair_add (&data.send_pairs, PW_USER_NAME, username, 0) && | 173 | rc_avpair_add (&data.send_pairs, PW_USER_NAME, username, 0) && |
169 | rc_avpair_add (&data.send_pairs, PW_USER_PASSWORD, password, 0))) | 174 | rc_avpair_add (&data.send_pairs, PW_USER_PASSWORD, password, 0))) |
170 | terminate (STATE_UNKNOWN, "Out of Memory?"); | 175 | terminate (STATE_UNKNOWN, _("Out of Memory?")); |
171 | 176 | ||
172 | /* | 177 | /* |
173 | * Fill in NAS-IP-Address | 178 | * Fill in NAS-IP-Address |
@@ -188,15 +193,15 @@ main (int argc, char **argv) | |||
188 | rc_avpair_free (data.receive_pairs); | 193 | rc_avpair_free (data.receive_pairs); |
189 | 194 | ||
190 | if (result == TIMEOUT_RC) | 195 | if (result == TIMEOUT_RC) |
191 | terminate (STATE_CRITICAL, "Timeout"); | 196 | terminate (STATE_CRITICAL, _("Timeout")); |
192 | if (result == ERROR_RC) | 197 | if (result == ERROR_RC) |
193 | terminate (STATE_CRITICAL, "Auth Error"); | 198 | terminate (STATE_CRITICAL, _("Auth Error")); |
194 | if (result == BADRESP_RC) | 199 | if (result == BADRESP_RC) |
195 | terminate (STATE_WARNING, "Auth Failed"); | 200 | terminate (STATE_WARNING, _("Auth Failed")); |
196 | if (expect && !strstr (msg, expect)) | 201 | if (expect && !strstr (msg, expect)) |
197 | terminate (STATE_WARNING, msg); | 202 | terminate (STATE_WARNING, msg); |
198 | if (result == OK_RC) | 203 | if (result == OK_RC) |
199 | terminate (STATE_OK, "Auth OK"); | 204 | terminate (STATE_OK, _("Auth OK")); |
200 | return (0); | 205 | return (0); |
201 | } | 206 | } |
202 | 207 | ||
@@ -234,16 +239,16 @@ process_arguments (int argc, char **argv) | |||
234 | if (is_intpos (argv[4])) | 239 | if (is_intpos (argv[4])) |
235 | timeout_interval = atoi (argv[4]); | 240 | timeout_interval = atoi (argv[4]); |
236 | else | 241 | else |
237 | usage ("Timeout interval must be a positive integer"); | 242 | usage (_("Timeout interval must be a positive integer")); |
238 | if (is_intpos (argv[5])) | 243 | if (is_intpos (argv[5])) |
239 | retries = atoi (argv[5]); | 244 | retries = atoi (argv[5]); |
240 | else | 245 | else |
241 | usage ("Number of retries must be a positive integer"); | 246 | usage (_("Number of retries must be a positive integer")); |
242 | server = argv[6]; | 247 | server = argv[6]; |
243 | if (is_intpos (argv[7])) | 248 | if (is_intpos (argv[7])) |
244 | port = atoi (argv[7]); | 249 | port = atoi (argv[7]); |
245 | else | 250 | else |
246 | usage ("Server port must be a positive integer"); | 251 | usage (_("Server port must be a positive integer")); |
247 | expect = argv[8]; | 252 | expect = argv[8]; |
248 | return OK; | 253 | return OK; |
249 | } | 254 | } |
@@ -257,21 +262,21 @@ process_arguments (int argc, char **argv) | |||
257 | 262 | ||
258 | switch (c) { | 263 | switch (c) { |
259 | case '?': /* print short usage statement if args not parsable */ | 264 | case '?': /* print short usage statement if args not parsable */ |
260 | printf ("%s: Unknown argument: %s\n\n", progname, optarg); | 265 | printf (_("%s: Unknown argument: %s\n\n"), progname, optarg); |
261 | print_usage (); | 266 | print_usage (); |
262 | exit (STATE_UNKNOWN); | 267 | exit (STATE_UNKNOWN); |
263 | case 'h': /* help */ | 268 | case 'h': /* help */ |
264 | print_help (); | 269 | print_help (); |
265 | exit (OK); | 270 | exit (OK); |
266 | case 'V': /* version */ | 271 | case 'V': /* version */ |
267 | print_revision (progname, "$Revision$"); | 272 | print_revision (progname, revision); |
268 | exit (OK); | 273 | exit (OK); |
269 | case 'v': /* verbose mode */ | 274 | case 'v': /* verbose mode */ |
270 | verbose = TRUE; | 275 | verbose = TRUE; |
271 | break; | 276 | break; |
272 | case 'H': /* hostname */ | 277 | case 'H': /* hostname */ |
273 | if (is_host (optarg) == FALSE) { | 278 | if (is_host (optarg) == FALSE) { |
274 | printf ("Invalid host name/address\n\n"); | 279 | printf (_("Invalid host name/address\n\n")); |
275 | print_usage (); | 280 | print_usage (); |
276 | exit (STATE_UNKNOWN); | 281 | exit (STATE_UNKNOWN); |
277 | } | 282 | } |
@@ -281,7 +286,7 @@ process_arguments (int argc, char **argv) | |||
281 | if (is_intnonneg (optarg)) | 286 | if (is_intnonneg (optarg)) |
282 | port = atoi (optarg); | 287 | port = atoi (optarg); |
283 | else | 288 | else |
284 | usage ("Server port must be a positive integer"); | 289 | usage (_("Server port must be a positive integer")); |
285 | break; | 290 | break; |
286 | case 'u': /* username */ | 291 | case 'u': /* username */ |
287 | username = optarg; | 292 | username = optarg; |
@@ -299,41 +304,15 @@ process_arguments (int argc, char **argv) | |||
299 | if (is_intpos (optarg)) | 304 | if (is_intpos (optarg)) |
300 | retries = atoi (optarg); | 305 | retries = atoi (optarg); |
301 | else | 306 | else |
302 | usage ("Number of retries must be a positive integer"); | 307 | usage (_("Number of retries must be a positive integer")); |
303 | break; | 308 | break; |
304 | case 't': /* timeout */ | 309 | case 't': /* timeout */ |
305 | if (is_intpos (optarg)) | 310 | if (is_intpos (optarg)) |
306 | timeout_interval = atoi (optarg); | 311 | timeout_interval = atoi (optarg); |
307 | else | 312 | else |
308 | usage ("Timeout interval must be a positive integer"); | 313 | usage (_("Timeout interval must be a positive integer")); |
309 | break; | 314 | break; |
310 | } | 315 | } |
311 | } | 316 | } |
312 | return OK; | 317 | return OK; |
313 | } | 318 | } |
314 | |||
315 | |||
316 | |||
317 | void | ||
318 | print_help (void) | ||
319 | { | ||
320 | print_revision (progname, REVISION); | ||
321 | printf | ||
322 | ("Copyright (c) %s %s <%s>\n\n%s\n", | ||
323 | COPYRIGHT, AUTHORS, EMAIL, SUMMARY); | ||
324 | print_usage (); | ||
325 | printf | ||
326 | ("\nOptions:\n" LONGOPTIONS "\n" DESCRIPTION "\n", | ||
327 | port, timeout_interval); | ||
328 | support (); | ||
329 | } | ||
330 | |||
331 | |||
332 | void | ||
333 | print_usage (void) | ||
334 | { | ||
335 | printf ("Usage:\n" " %s %s\n" | ||
336 | " %s (-h | --help) for detailed help\n" | ||
337 | " %s (-V | --version) for version information\n", | ||
338 | progname, OPTIONS, progname, progname); | ||
339 | } | ||
diff --git a/plugins/check_udp.c b/plugins/check_udp.c index da9a1420..3e903dfc 100644 --- a/plugins/check_udp.c +++ b/plugins/check_udp.c | |||
@@ -1,57 +1,84 @@ | |||
1 | /****************************************************************************** | 1 | /****************************************************************************** |
2 | * | 2 | |
3 | * CHECK_UDP.C | 3 | This program is free software; you can redistribute it and/or modify |
4 | * | 4 | it under the terms of the GNU General Public License as published by |
5 | * Program: UDP port plugin for Nagios | 5 | the Free Software Foundation; either version 2 of the License, or |
6 | * License: GPL | 6 | (at your option) any later version. |
7 | * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org) | 7 | |
8 | * | 8 | This program is distributed in the hope that it will be useful, |
9 | * Last Modified: $Date$ | 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | * | 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 | * Command line: CHECK_UDP <host_address> [-p port] [-s send] [-e expect] \ | 11 | GNU General Public License for more details. |
12 | * [-wt warn_time] [-ct crit_time] [-to to_sec] | 12 | |
13 | * | 13 | You should have received a copy of the GNU General Public License |
14 | * Description: | 14 | along with this program; if not, write to the Free Software |
15 | * | 15 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
16 | * This plugin will attempt to connect to the specified port | 16 | |
17 | * on the host. Successul connects return STATE_OK, refusals | ||
18 | * and timeouts return STATE_CRITICAL, other errors return | ||
19 | * STATE_UNKNOWN. | ||
20 | * | ||
21 | * License Information: | ||
22 | * | ||
23 | * This program is free software; you can redistribute it and/or modify | ||
24 | * it under the terms of the GNU General Public License as published by | ||
25 | * the Free Software Foundation; either version 2 of the License, or | ||
26 | * (at your option) any later version. | ||
27 | * | ||
28 | * This program is distributed in the hope that it will be useful, | ||
29 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
30 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
31 | * GNU General Public License for more details. | ||
32 | * | ||
33 | * You should have received a copy of the GNU General Public License | ||
34 | * along with this program; if not, write to the Free Software | ||
35 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
36 | * | ||
37 | *****************************************************************************/ | 17 | *****************************************************************************/ |
38 | 18 | ||
39 | #include "config.h" | 19 | const char *progname = "check_udp"; |
20 | const char *revision = "$Revision$"; | ||
21 | const char *copyright = "1999-2002"; | ||
22 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; | ||
23 | |||
40 | #include "common.h" | 24 | #include "common.h" |
41 | #include "netutils.h" | 25 | #include "netutils.h" |
42 | #include "utils.h" | 26 | #include "utils.h" |
43 | 27 | ||
44 | const char *progname = "check_udp"; | 28 | /* Original Command line: |
29 | check_udp <host_address> [-p port] [-s send] [-e expect] \ | ||
30 | [-wt warn_time] [-ct crit_time] [-to to_sec] */ | ||
31 | void | ||
32 | print_usage (void) | ||
33 | { | ||
34 | printf (_("\ | ||
35 | Usage: %s -H <host_address> [-p port] [-w warn_time] [-c crit_time]\n\ | ||
36 | [-e expect] [-s send] [-t to_sec] [-v]\n"), progname); | ||
37 | } | ||
38 | |||
39 | void | ||
40 | print_help (void) | ||
41 | { | ||
42 | print_revision (progname, revision); | ||
43 | |||
44 | printf (_("Copyright (c) 1999 Ethan Galstad\n")); | ||
45 | printf (_(COPYRIGHT), copyright, email); | ||
46 | |||
47 | printf (_("\ | ||
48 | This plugin tests an UDP connection with the specified host.\n\n")); | ||
49 | |||
50 | print_usage (); | ||
51 | |||
52 | printf (_(UT_HELP_VRSN)); | ||
53 | |||
54 | printf (_(UT_HOST_PORT), 'p', "none"); | ||
55 | |||
56 | printf (_("\ | ||
57 | -e, --expect=STRING <optional>\n\ | ||
58 | String to expect in first line of server response\n\ | ||
59 | -s, --send=STRING <optional>\n\ | ||
60 | String to send to the server when initiating the connection\n")); | ||
61 | |||
62 | printf (_(UT_WARN_CRIT)); | ||
63 | |||
64 | printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); | ||
65 | |||
66 | printf (_(UT_VERBOSE)); | ||
67 | |||
68 | printf (_("\ | ||
69 | This plugin will attempt to connect to the specified port on the host.\n\ | ||
70 | Successful connects return STATE_OK, refusals and timeouts return\n\ | ||
71 | STATE_CRITICAL, other errors return STATE_UNKNOWN.\n\n")); | ||
72 | |||
73 | printf(_(UT_SUPPORT)); | ||
74 | } | ||
75 | |||
76 | int process_arguments (int, char **); | ||
45 | 77 | ||
46 | int warning_time = 0; | 78 | int warning_time = 0; |
47 | int check_warning_time = FALSE; | 79 | int check_warning_time = FALSE; |
48 | int critical_time = 0; | 80 | int critical_time = 0; |
49 | int check_critical_time = FALSE; | 81 | int check_critical_time = FALSE; |
50 | |||
51 | int process_arguments (int, char **); | ||
52 | void print_usage (void); | ||
53 | void print_help (void); | ||
54 | |||
55 | int verbose = FALSE; | 82 | int verbose = FALSE; |
56 | int server_port = 0; | 83 | int server_port = 0; |
57 | char *server_address = NULL; | 84 | char *server_address = NULL; |
@@ -104,8 +131,8 @@ main (int argc, char **argv) | |||
104 | && (end_time - start_time) > warning_time) result = | 131 | && (end_time - start_time) > warning_time) result = |
105 | STATE_WARNING; | 132 | STATE_WARNING; |
106 | 133 | ||
107 | printf ("Connection %s on port %d - %d second response time\n", | 134 | printf (_("Connection %s on port %d - %d second response time\n"), |
108 | (result == STATE_OK) ? "accepted" : "problem", server_port, | 135 | (result == STATE_OK) ? _("accepted") : _("problem"), server_port, |
109 | (int) (end_time - start_time)); | 136 | (int) (end_time - start_time)); |
110 | } | 137 | } |
111 | 138 | ||
@@ -159,43 +186,43 @@ process_arguments (int argc, char **argv) | |||
159 | 186 | ||
160 | switch (c) { | 187 | switch (c) { |
161 | case '?': /* print short usage statement if args not parsable */ | 188 | case '?': /* print short usage statement if args not parsable */ |
162 | printf ("%s: Unknown argument: %s\n\n", progname, optarg); | 189 | printf (_("%s: Unknown argument: %s\n\n"), progname, optarg); |
163 | print_usage (); | 190 | print_usage (); |
164 | exit (STATE_UNKNOWN); | 191 | exit (STATE_UNKNOWN); |
165 | case 'h': /* help */ | 192 | case 'h': /* help */ |
166 | print_help (); | 193 | print_help (); |
167 | exit (STATE_OK); | 194 | exit (STATE_OK); |
168 | case 'V': /* version */ | 195 | case 'V': /* version */ |
169 | print_revision (progname, "$Revision$"); | 196 | print_revision (progname, revision); |
170 | exit (STATE_OK); | 197 | exit (STATE_OK); |
171 | case 'v': /* verbose mode */ | 198 | case 'v': /* verbose mode */ |
172 | verbose = TRUE; | 199 | verbose = TRUE; |
173 | break; | 200 | break; |
174 | case 'H': /* hostname */ | 201 | case 'H': /* hostname */ |
175 | if (is_host (optarg) == FALSE) | 202 | if (is_host (optarg) == FALSE) |
176 | usage ("Invalid host name/address\n"); | 203 | usage (_("Invalid host name/address\n")); |
177 | server_address = optarg; | 204 | server_address = optarg; |
178 | break; | 205 | break; |
179 | case 'c': /* critical */ | 206 | case 'c': /* critical */ |
180 | if (!is_intnonneg (optarg)) | 207 | if (!is_intnonneg (optarg)) |
181 | usage ("Critical threshold must be a nonnegative integer\n"); | 208 | usage (_("Critical threshold must be a nonnegative integer\n")); |
182 | critical_time = atoi (optarg); | 209 | critical_time = atoi (optarg); |
183 | check_critical_time = TRUE; | 210 | check_critical_time = TRUE; |
184 | break; | 211 | break; |
185 | case 'w': /* warning */ | 212 | case 'w': /* warning */ |
186 | if (!is_intnonneg (optarg)) | 213 | if (!is_intnonneg (optarg)) |
187 | usage ("Warning threshold must be a nonnegative integer\n"); | 214 | usage (_("Warning threshold must be a nonnegative integer\n")); |
188 | warning_time = atoi (optarg); | 215 | warning_time = atoi (optarg); |
189 | check_warning_time = TRUE; | 216 | check_warning_time = TRUE; |
190 | break; | 217 | break; |
191 | case 't': /* timeout */ | 218 | case 't': /* timeout */ |
192 | if (!is_intnonneg (optarg)) | 219 | if (!is_intnonneg (optarg)) |
193 | usage ("Timeout interval must be a nonnegative integer\n"); | 220 | usage (_("Timeout interval must be a nonnegative integer\n")); |
194 | socket_timeout = atoi (optarg); | 221 | socket_timeout = atoi (optarg); |
195 | break; | 222 | break; |
196 | case 'p': /* port */ | 223 | case 'p': /* port */ |
197 | if (!is_intnonneg (optarg)) | 224 | if (!is_intnonneg (optarg)) |
198 | usage ("Serevr port must be a nonnegative integer\n"); | 225 | usage (_("Server port must be a nonnegative integer\n")); |
199 | server_port = atoi (optarg); | 226 | server_port = atoi (optarg); |
200 | break; | 227 | break; |
201 | case 'e': /* expect */ | 228 | case 'e': /* expect */ |
@@ -210,61 +237,12 @@ process_arguments (int argc, char **argv) | |||
210 | c = optind; | 237 | c = optind; |
211 | if (server_address == NULL && c < argc && argv[c]) { | 238 | if (server_address == NULL && c < argc && argv[c]) { |
212 | if (is_host (argv[c]) == FALSE) | 239 | if (is_host (argv[c]) == FALSE) |
213 | usage ("Invalid host name/address\n"); | 240 | usage (_("Invalid host name/address\n")); |
214 | server_address = argv[c++]; | 241 | server_address = argv[c++]; |
215 | } | 242 | } |
216 | 243 | ||
217 | if (server_address == NULL) | 244 | if (server_address == NULL) |
218 | usage ("Host name was not supplied\n"); | 245 | usage (_("Host name was not supplied\n")); |
219 | 246 | ||
220 | return c; | 247 | return c; |
221 | } | 248 | } |
222 | |||
223 | |||
224 | |||
225 | |||
226 | |||
227 | void | ||
228 | print_usage (void) | ||
229 | { | ||
230 | printf | ||
231 | ("Usage: %s -H <host_address> [-p port] [-w warn_time] [-c crit_time]\n" | ||
232 | " [-e expect] [-s send] [-t to_sec] [-v]\n", progname); | ||
233 | } | ||
234 | |||
235 | |||
236 | |||
237 | |||
238 | |||
239 | void | ||
240 | print_help (void) | ||
241 | { | ||
242 | print_revision (progname, "$Revision$"); | ||
243 | printf | ||
244 | ("Copyright (c) 1999 Ethan Galstad (nagios@nagios.org)\n\n" | ||
245 | "This plugin tests an UDP connection with the specified host.\n\n"); | ||
246 | print_usage (); | ||
247 | printf | ||
248 | ("Options:\n" | ||
249 | " -H, --hostname=ADDRESS\n" | ||
250 | " Host name argument for servers using host headers (use numeric\n" | ||
251 | " address if possible to bypass DNS lookup).\n" | ||
252 | " -p, --port=INTEGER\n" | ||
253 | " Port number\n" | ||
254 | " -e, --expect=STRING <optional>\n" | ||
255 | " String to expect in first line of server response\n" | ||
256 | " -s, --send=STRING <optional>\n" | ||
257 | " String to send to the server when initiating the connection\n" | ||
258 | " -w, --warning=INTEGER <optional>\n" | ||
259 | " Response time to result in warning status (seconds)\n" | ||
260 | " -c, --critical=INTEGER <optional>\n" | ||
261 | " Response time to result in critical status (seconds)\n" | ||
262 | " -t, --timeout=INTEGER <optional>\n" | ||
263 | " Seconds before connection times out (default: %d)\n" | ||
264 | " -v, --verbose <optional>\n" | ||
265 | " Show details for command-line debugging (do not use with nagios server)\n" | ||
266 | " -h, --help\n" | ||
267 | " Print detailed help screen and exit\n" | ||
268 | " -V, --version\n" | ||
269 | " Print version information and exit\n", DEFAULT_SOCKET_TIMEOUT); | ||
270 | } | ||
diff --git a/plugins/check_ups.c b/plugins/check_ups.c index b077d31f..499b9222 100644 --- a/plugins/check_ups.c +++ b/plugins/check_ups.c | |||
@@ -1,70 +1,97 @@ | |||
1 | /****************************************************************************** | 1 | /****************************************************************************** |
2 | * | 2 | |
3 | * CHECK_UPS.C | 3 | This program is free software; you can redistribute it and/or modify |
4 | * | 4 | it under the terms of the GNU General Public License as published by |
5 | * Program: UPS monitor plugin for Nagios | 5 | the Free Software Foundation; either version 2 of the License, or (at |
6 | * License: GPL | 6 | your option) any later version. |
7 | * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org) | 7 | |
8 | * | 8 | This program is distributed in the hope that it will be useful, but |
9 | * Last Modified: $Date$ | 9 | WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | * | 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
11 | * Command line: CHECK_UPS <host_address> [-u ups] [-p port] [-v variable] \ | 11 | General Public License for more details. |
12 | * [-wv warn_value] [-cv crit_value] [-to to_sec] | 12 | |
13 | * | 13 | You should have received a copy of the GNU General Public License |
14 | * Description: | 14 | along with this program; if not, write to the Free Software |
15 | * | 15 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
16 | 16 | ||
17 | * This plugin attempts to determine the status of an UPS | ||
18 | * (Uninterruptible Power Supply) on a remote host (or the local host) | ||
19 | * that is being monitored with Russel Kroll's "Smarty UPS Tools" | ||
20 | * package. If the UPS is online or calibrating, the plugin will | ||
21 | * return an OK state. If the battery is on it will return a WARNING | ||
22 | * state. If the UPS is off or has a low battery the plugin will | ||
23 | * return a CRITICAL state. You may also specify a variable to check | ||
24 | * (such as temperature, utility voltage, battery load, etc.) as well | ||
25 | * as warning and critical thresholds for the value of that variable. | ||
26 | * If the remote host has multiple UPS that are being monitored you | ||
27 | * will have to use the [ups] option to specify which UPS to check. | ||
28 | * | ||
29 | * Notes: | ||
30 | * | ||
31 | * This plugin requires that the UPSD daemon distributed with Russel | ||
32 | * Kroll's "Smart UPS Tools" be installed on the remote host. If you | ||
33 | * don't have the package installed on your system, you can download | ||
34 | * it from http://www.exploits.org/nut | ||
35 | * | ||
36 | * License Information: | ||
37 | * | ||
38 | * This program is free software; you can redistribute it and/or modify | ||
39 | * it under the terms of the GNU General Public License as published by | ||
40 | * the Free Software Foundation; either version 2 of the License, or | ||
41 | * (at your option) any later version. | ||
42 | * | ||
43 | * This program is distributed in the hope that it will be useful, | ||
44 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
45 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
46 | * GNU General Public License for more details. | ||
47 | * | ||
48 | * You should have received a copy of the GNU General Public License | ||
49 | * along with this program; if not, write to the Free Software | ||
50 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
51 | * | ||
52 | ******************************************************************************/ | 17 | ******************************************************************************/ |
53 | 18 | ||
54 | #include "config.h" | 19 | const char *progname = "check_ups"; |
20 | const char *revision = "$Revision$"; | ||
21 | const char *copyright = "2000-2002"; | ||
22 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; | ||
23 | |||
55 | #include "common.h" | 24 | #include "common.h" |
56 | #include "netutils.h" | 25 | #include "netutils.h" |
57 | #include "utils.h" | 26 | #include "utils.h" |
58 | 27 | ||
59 | const char *progname = "check_ups"; | 28 | enum { |
60 | #define REVISION "$Revision$" | 29 | PORT = 3493 |
61 | #define COPYRIGHT "1999-2002" | 30 | }; |
62 | #define AUTHOR "Ethan Galstad" | 31 | |
63 | #define EMAIL "nagios@nagios.org" | 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)); | ||
64 | 67 | ||
65 | #define CHECK_NONE 0 | 68 | printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); |
66 | 69 | ||
67 | #define PORT 3493 | 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 | ||
68 | 95 | ||
69 | #define UPS_NONE 0 /* no supported options */ | 96 | #define UPS_NONE 0 /* no supported options */ |
70 | #define UPS_UTILITY 1 /* supports utility line voltage */ | 97 | #define UPS_UTILITY 1 /* supports utility line voltage */ |
@@ -85,18 +112,18 @@ const char *progname = "check_ups"; | |||
85 | int server_port = PORT; | 112 | int server_port = PORT; |
86 | char *server_address = "127.0.0.1"; | 113 | char *server_address = "127.0.0.1"; |
87 | char *ups_name = NULL; | 114 | char *ups_name = NULL; |
88 | double warning_value = 0.0L; | 115 | double warning_value = 0.0; |
89 | double critical_value = 0.0L; | 116 | double critical_value = 0.0; |
90 | int check_warning_value = FALSE; | 117 | int check_warning_value = FALSE; |
91 | int check_critical_value = FALSE; | 118 | int check_critical_value = FALSE; |
92 | int check_variable = UPS_NONE; | 119 | int check_variable = UPS_NONE; |
93 | int supported_options = UPS_NONE; | 120 | int supported_options = UPS_NONE; |
94 | int status = UPSSTATUS_NONE; | 121 | int status = UPSSTATUS_NONE; |
95 | 122 | ||
96 | double ups_utility_voltage = 0.0L; | 123 | double ups_utility_voltage = 0.0; |
97 | double ups_battery_percent = 0.0L; | 124 | double ups_battery_percent = 0.0; |
98 | double ups_load_percent = 0.0L; | 125 | double ups_load_percent = 0.0; |
99 | double ups_temperature = 0.0L; | 126 | double ups_temperature = 0.0; |
100 | char *ups_status = "N/A"; | 127 | char *ups_status = "N/A"; |
101 | 128 | ||
102 | int determine_status (void); | 129 | int determine_status (void); |
@@ -105,8 +132,6 @@ int get_ups_variable (const char *, char *, int); | |||
105 | 132 | ||
106 | int process_arguments (int, char **); | 133 | int process_arguments (int, char **); |
107 | int validate_arguments (void); | 134 | int validate_arguments (void); |
108 | void print_help (void); | ||
109 | void print_usage (void); | ||
110 | 135 | ||
111 | int | 136 | int |
112 | main (int argc, char **argv) | 137 | main (int argc, char **argv) |
@@ -115,7 +140,7 @@ main (int argc, char **argv) | |||
115 | char *message; | 140 | char *message; |
116 | char temp_buffer[MAX_INPUT_BUFFER]; | 141 | char temp_buffer[MAX_INPUT_BUFFER]; |
117 | 142 | ||
118 | double ups_utility_deviation = 0.0L; | 143 | double ups_utility_deviation = 0.0; |
119 | 144 | ||
120 | if (process_arguments (argc, argv) != OK) | 145 | if (process_arguments (argc, argv) != OK) |
121 | usage ("Invalid command arguments supplied\n"); | 146 | usage ("Invalid command arguments supplied\n"); |
@@ -556,53 +581,3 @@ validate_arguments (void) | |||
556 | { | 581 | { |
557 | return OK; | 582 | return OK; |
558 | } | 583 | } |
559 | |||
560 | |||
561 | |||
562 | |||
563 | |||
564 | void | ||
565 | print_help (void) | ||
566 | { | ||
567 | print_revision (progname, "$Revision$"); | ||
568 | printf | ||
569 | ("Copyright (c) 2000 Tom Shields/Karl DeBisschop\n\n" | ||
570 | "This plugin tests the UPS service on the specified host.\n" | ||
571 | "Newtork UPS Tools for www.exploits.org must be running for this plugin to work.\n\n"); | ||
572 | print_usage (); | ||
573 | printf | ||
574 | ("\nOptions:\n" | ||
575 | " -H, --hostname=STRING or IPADDRESS\n" | ||
576 | " Check server on the indicated host\n" | ||
577 | " -p, --port=INTEGER\n" | ||
578 | " Make connection on the indicated port (default: %d)\n" | ||
579 | " -u, --ups=STRING\n" | ||
580 | " Name of UPS\n" | ||
581 | " -w, --warning=INTEGER\n" | ||
582 | " Seconds necessary to result in a warning status\n" | ||
583 | " -c, --critical=INTEGER\n" | ||
584 | " Seconds necessary to result in a critical status\n" | ||
585 | " -t, --timeout=INTEGER\n" | ||
586 | " Seconds before connection attempt times out (default: %d)\n" | ||
587 | " -v, --verbose\n" | ||
588 | " Print extra information (command-line use only)\n" | ||
589 | " -h, --help\n" | ||
590 | " Print detailed help screen\n" | ||
591 | " -V, --version\n" | ||
592 | " Print version information\n\n", PORT, DEFAULT_SOCKET_TIMEOUT); | ||
593 | support (); | ||
594 | } | ||
595 | |||
596 | |||
597 | |||
598 | |||
599 | |||
600 | void | ||
601 | print_usage (void) | ||
602 | { | ||
603 | printf | ||
604 | ("Usage: %s -H host [-e expect] [-p port] [-w warn] [-c crit]\n" | ||
605 | " [-t timeout] [-v]\n" | ||
606 | " %s --help\n" | ||
607 | " %s --version\n", progname, progname, progname); | ||
608 | } | ||
diff --git a/plugins/negate.c b/plugins/negate.c index d1fcb5dd..faf81b34 100644 --- a/plugins/negate.c +++ b/plugins/negate.c | |||
@@ -1,68 +1,79 @@ | |||
1 | /****************************************************************************** | 1 | /****************************************************************************** |
2 | * | 2 | |
3 | * Program: Inverting plugin wrapper for Nagios | 3 | This program is free software; you can redistribute it and/or modify |
4 | * License: GPL | 4 | it under the terms of the GNU General Public License as published by |
5 | * | 5 | the Free Software Foundation; either version 2 of the License, or |
6 | * License Information: | 6 | (at your option) any later version. |
7 | * | 7 | |
8 | * This program is free software; you can redistribute it and/or modify | 8 | This program is distributed in the hope that it will be useful, |
9 | * it under the terms of the GNU General Public License as published by | 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | * the Free Software Foundation; either version 2 of the License, or | 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 | * (at your option) any later version. | 11 | GNU General Public License for more details. |
12 | * | 12 | |
13 | * This program is distributed in the hope that it will be useful, | 13 | You should have received a copy of the GNU General Public License |
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 | along with this program; if not, write to the Free Software |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 15 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
16 | * GNU General Public License for more details. | 16 | |
17 | * | 17 | ******************************************************************************/ |
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
21 | * | ||
22 | * $Id$ | ||
23 | * | ||
24 | *****************************************************************************/ | ||
25 | 18 | ||
26 | const char *progname = "negate"; | 19 | const char *progname = "negate"; |
27 | #define REVISION "$Revision$" | 20 | const char *revision = "$Revision$"; |
28 | #define COPYRIGHT "2002" | 21 | const char *copyright = "2002-2003"; |
29 | #define AUTHOR "Karl DeBisschop" | 22 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; |
30 | #define EMAIL "kdebisschop@users.sourceforge.net" | 23 | |
31 | #define SUMMARY "Negates the status of a plugin (returns OK for CRITICAL, and vice-versa).\n" | 24 | #define DEFAULT_TIMEOUT 9 |
25 | |||
26 | #include "common.h" | ||
27 | #include "utils.h" | ||
28 | #include "popen.h" | ||
29 | |||
30 | void | ||
31 | print_usage (void) | ||
32 | { | ||
33 | printf (_("Usage: %s [-t timeout] <definition of wrapped plugin>\n"), | ||
34 | progname); | ||
35 | printf (_(UT_HLP_VRS), progname, progname); | ||
36 | } | ||
37 | |||
38 | void | ||
39 | print_help (void) | ||
40 | { | ||
41 | print_revision (progname, revision); | ||
42 | |||
43 | printf (_(COPYRIGHT), copyright, email); | ||
44 | |||
45 | printf (_("\ | ||
46 | Negates the status of a plugin (returns OK for CRITICAL, and vice-versa).\n\ | ||
47 | \n")); | ||
48 | |||
49 | print_usage (); | ||
32 | 50 | ||
33 | #define OPTIONS "\ | 51 | printf (_(UT_HELP_VRSN)); |
34 | [-t timeout] <definition of wrapped plugin>" | ||
35 | 52 | ||
36 | #define LONGOPTIONS "\ | 53 | printf (_(UT_TIMEOUT), DEFAULT_TIMEOUT); |
37 | -t, --timeout=INTEGER\n\ | ||
38 | Terminate test if timeout limit is exceeded (default: %d)\n\ | ||
39 | [keep this less than the plugin timeout to retain CRITICAL status]\n" | ||
40 | 54 | ||
41 | #define EXAMPLES "\ | 55 | printf (_("\ |
56 | [keep timeout than the plugin timeout to retain CRITICAL status]\n")); | ||
57 | |||
58 | printf (_("\ | ||
42 | negate \"/usr/local/nagios/libexec/check_ping -H host\"\n\ | 59 | negate \"/usr/local/nagios/libexec/check_ping -H host\"\n\ |
43 | Run check_ping and invert result. Must use full path to plugin\n\ | 60 | Run check_ping and invert result. Must use full path to plugin\n\ |
44 | negate \"/usr/local/nagios/libexec/check_procs -a 'vi negate.c'\"\n\ | 61 | negate \"/usr/local/nagios/libexec/check_procs -a 'vi negate.c'\"\n\ |
45 | Use single quotes if you need to retain spaces\n" | 62 | Use single quotes if you need to retain spaces\n")); |
46 | 63 | ||
47 | #define DESCRIPTION "\ | 64 | printf (_("\ |
48 | This plugin is a wrapper to take the output of another plugin and invert it.\n\ | 65 | This plugin is a wrapper to take the output of another plugin and invert it.\n\ |
49 | If the wrapped plugin returns STATE_OK, the wrapper will return STATE_CRITICAL.\n\ | 66 | If the wrapped plugin returns STATE_OK, the wrapper will return STATE_CRITICAL.\n\ |
50 | If the wrapped plugin returns STATE_CRITICAL, the wrapper will return STATE_OK.\n\ | 67 | If the wrapped plugin returns STATE_CRITICAL, the wrapper will return STATE_OK.\n\ |
51 | Otherwise, the output state of the wrapped plugin is unchanged.\n" | 68 | Otherwise, the output state of the wrapped plugin is unchanged.\n")); |
52 | |||
53 | #define DEFAULT_TIMEOUT 9 | ||
54 | |||
55 | #include "common.h" | ||
56 | #include "utils.h" | ||
57 | #include "popen.h" | ||
58 | 69 | ||
70 | printf (_(UT_SUPPORT)); | ||
71 | } | ||
72 | |||
59 | char *command_line; | 73 | char *command_line; |
60 | 74 | ||
61 | int process_arguments (int, char **); | 75 | int process_arguments (int, char **); |
62 | int validate_arguments (void); | 76 | int validate_arguments (void); |
63 | void print_usage (void); | ||
64 | void print_help (void); | ||
65 | |||
66 | /****************************************************************************** | 77 | /****************************************************************************** |
67 | 78 | ||
68 | The (psuedo?)literate programming XML is contained within \@\@\- <XML> \-\@\@ | 79 | The (psuedo?)literate programming XML is contained within \@\@\- <XML> \-\@\@ |
@@ -123,21 +134,21 @@ main (int argc, char **argv) | |||
123 | char input_buffer[MAX_INPUT_BUFFER]; | 134 | char input_buffer[MAX_INPUT_BUFFER]; |
124 | 135 | ||
125 | if (process_arguments (argc, argv) == ERROR) | 136 | if (process_arguments (argc, argv) == ERROR) |
126 | usage ("Could not parse arguments\n"); | 137 | usage (_("Could not parse arguments\n")); |
127 | 138 | ||
128 | /* Set signal handling and alarm */ | 139 | /* Set signal handling and alarm */ |
129 | if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) | 140 | if (signal (SIGALRM, timeout_alarm_handler) == SIG_ERR) |
130 | terminate (STATE_UNKNOWN, "Cannot catch SIGALRM"); | 141 | terminate (STATE_UNKNOWN, _("Cannot catch SIGALRM")); |
131 | 142 | ||
132 | (void) alarm ((unsigned) timeout_interval); | 143 | (void) alarm ((unsigned) timeout_interval); |
133 | 144 | ||
134 | child_process = spopen (command_line); | 145 | child_process = spopen (command_line); |
135 | if (child_process == NULL) | 146 | if (child_process == NULL) |
136 | terminate (STATE_UNKNOWN, "Could not open pipe: %s\n", command_line); | 147 | terminate (STATE_UNKNOWN, _("Could not open pipe: %s\n"), command_line); |
137 | 148 | ||
138 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); | 149 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); |
139 | if (child_stderr == NULL) { | 150 | if (child_stderr == NULL) { |
140 | printf ("Could not open stderr for %s\n", command_line); | 151 | printf (_("Could not open stderr for %s\n"), command_line); |
141 | } | 152 | } |
142 | 153 | ||
143 | while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) { | 154 | while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) { |
@@ -153,7 +164,7 @@ main (int argc, char **argv) | |||
153 | 164 | ||
154 | if (!found) | 165 | if (!found) |
155 | terminate (STATE_UNKNOWN,\ | 166 | terminate (STATE_UNKNOWN,\ |
156 | "%s problem - No data recieved from host\nCMD: %s\n",\ | 167 | _("%s problem - No data recieved from host\nCMD: %s\n"),\ |
157 | argv[0], command_line); | 168 | argv[0], command_line); |
158 | 169 | ||
159 | /* close the pipe */ | 170 | /* close the pipe */ |
@@ -176,32 +187,6 @@ main (int argc, char **argv) | |||
176 | 187 | ||
177 | 188 | ||
178 | 189 | ||
179 | |||
180 | void | ||
181 | print_help (void) | ||
182 | { | ||
183 | print_revision (progname, REVISION); | ||
184 | printf | ||
185 | ("Copyright (c) %s %s <%s>\n\n%s\n", | ||
186 | COPYRIGHT, AUTHOR, EMAIL, SUMMARY); | ||
187 | print_usage (); | ||
188 | printf | ||
189 | ("\nOptions:\n" LONGOPTIONS "\n" "Examples:\n" EXAMPLES "\n" | ||
190 | DESCRIPTION "\n", DEFAULT_TIMEOUT); | ||
191 | support (); | ||
192 | } | ||
193 | |||
194 | void | ||
195 | print_usage (void) | ||
196 | { | ||
197 | printf ("Usage:\n" " %s %s\n" | ||
198 | " %s (-h | --help) for detailed help\n" | ||
199 | " %s (-V | --version) for version information\n", | ||
200 | progname, OPTIONS, progname, progname); | ||
201 | } | ||
202 | |||
203 | |||
204 | |||
205 | /****************************************************************************** | 190 | /****************************************************************************** |
206 | @@- | 191 | @@- |
207 | <sect3> | 192 | <sect3> |
@@ -240,16 +225,16 @@ process_arguments (int argc, char **argv) | |||
240 | 225 | ||
241 | switch (c) { | 226 | switch (c) { |
242 | case '?': /* help */ | 227 | case '?': /* help */ |
243 | usage3 ("Unknown argument", optopt); | 228 | usage3 (_("Unknown argument"), optopt); |
244 | case 'h': /* help */ | 229 | case 'h': /* help */ |
245 | print_help (); | 230 | print_help (); |
246 | exit (EXIT_SUCCESS); | 231 | exit (EXIT_SUCCESS); |
247 | case 'V': /* version */ | 232 | case 'V': /* version */ |
248 | print_revision (progname, REVISION); | 233 | print_revision (progname, revision); |
249 | exit (EXIT_SUCCESS); | 234 | exit (EXIT_SUCCESS); |
250 | case 't': /* timeout period */ | 235 | case 't': /* timeout period */ |
251 | if (!is_integer (optarg)) | 236 | if (!is_integer (optarg)) |
252 | usage2 ("Timeout Interval must be an integer", optarg); | 237 | usage2 (_("Timeout Interval must be an integer"), optarg); |
253 | timeout_interval = atoi (optarg); | 238 | timeout_interval = atoi (optarg); |
254 | break; | 239 | break; |
255 | } | 240 | } |