diff options
| author | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2003-08-04 07:42:24 +0000 |
|---|---|---|
| committer | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2003-08-04 07:42:24 +0000 |
| commit | 55def28f6619ab0f9807a0195aa01da5d6ff1dc0 (patch) | |
| tree | f0762811e1ff964e874d88bd4448b64213bcbd45 /plugins | |
| parent | 04b3d4554b829531ee4859859e7dd25fe660bba8 (diff) | |
| download | monitoring-plugins-55def28f6619ab0f9807a0195aa01da5d6ff1dc0.tar.gz | |
markup for translation
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@643 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins')
| -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 | } |
