diff --git a/plugins/check_users.c b/plugins/check_users.c
index 9e182015e21c6c07e4df41303d1b1cfe910bc8d3..25d04ed0b02de0d58a8b24bba49ba64e0fdaf6b4 100644 (file)
--- a/plugins/check_users.c
+++ b/plugins/check_users.c
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ $Id$
+
*****************************************************************************/
const char *progname = "check_users";
const char *revision = "$Revision$";
-const char *copyright = "2000-2003";
+const char *copyright = "2000-2004";
const char *email = "nagiosplug-devel@lists.sourceforge.net";
#include "common.h"
main (int argc, char **argv)
{
int users = -1;
- int result = STATE_OK;
+ int result = STATE_UNKNOWN;
char input_buffer[MAX_INPUT_BUFFER];
+ char *perf;
+
+ setlocale (LC_ALL, "");
+ bindtextdomain (PACKAGE, LOCALEDIR);
+ textdomain (PACKAGE);
+
+ perf = strdup("");
if (process_arguments (argc, argv) == ERROR)
- usage (_("Could not parse arguments\n"));
+ usage4 (_("Could not parse arguments"));
/* run the command */
child_process = spopen (WHO_COMMAND);
if (result == STATE_UNKNOWN)
printf (_("Unable to read output\n"));
- else
- printf (_("USERS %s - %d users currently logged in\n"), state_text (result),
- users);
+ else {
+ asprintf(&perf, "%s", perfdata ("users", users, "",
+ TRUE, wusers,
+ TRUE, cusers,
+ TRUE, 0,
+ FALSE, 0));
+ printf (_("USERS %s - %d users currently logged in |%s\n"), state_text (result),
+ users, perf);
+ }
return result;
}
-
-
/* process command-line arguments */
int
process_arguments (int argc, char **argv)
{
int c;
- int option_index = 0;
- static struct option long_options[] = {
+ int option = 0;
+ static struct option longopts[] = {
{"critical", required_argument, 0, 'c'},
{"warning", required_argument, 0, 'w'},
{"version", no_argument, 0, 'V'},
usage ("\n");
while (1) {
- c = getopt_long (argc, argv, "+hVvc:w:", long_options, &option_index);
+ c = getopt_long (argc, argv, "+hVvc:w:", longopts, &option);
if (c == -1 || c == EOF || c == 1)
break;
switch (c) {
case '?': /* print short usage statement if args not parsable */
- printf (_("%s: Unknown argument: %s\n\n"), progname, optarg);
- print_usage ();
- exit (STATE_UNKNOWN);
+ usage2 (_("Unknown argument"), optarg);
case 'h': /* help */
print_help ();
exit (STATE_OK);
exit (STATE_OK);
case 'c': /* critical */
if (!is_intnonneg (optarg))
- usage (_("Critical threshold must be a nonnegative integer\n"));
+ usage4 (_("Critical threshold must be a positive integer"));
else
cusers = atoi (optarg);
break;
case 'w': /* warning */
if (!is_intnonneg (optarg))
- usage (_("Warning threshold must be a nonnegative integer\n"));
+ usage4 (_("Warning threshold must be a positive integer"));
else
wusers = atoi (optarg);
break;
c = optind;
if (wusers == -1 && argc > c) {
if (is_intnonneg (argv[c]) == FALSE)
- usage (_("Warning threshold must be a nonnegative integer\n"));
+ usage4 (_("Warning threshold must be a positive integer"));
else
wusers = atoi (argv[c++]);
}
if (cusers == -1 && argc > c) {
if (is_intnonneg (argv[c]) == FALSE)
- usage (_("Warning threshold must be a nonnegative integer\n"));
+ usage4 (_("Warning threshold must be a positive integer"));
else
cusers = atoi (argv[c]);
}
-
-
-\f
void
print_help (void)
{
print_revision (progname, revision);
- printf (_("Copyright (c) 1999 Ethan Galstad\n"));
- printf (_(COPYRIGHT), copyright, email);
+ printf ("Copyright (c) 1999 Ethan Galstad\n");
+ printf (COPYRIGHT, copyright, email);
printf (_("\
This plugin checks the number of users currently logged in on the local\n\
@@ -200,11 +208,8 @@ system and generates an error if the number exceeds the thresholds specified.\n"
}
-
-
void
print_usage (void)
{
printf ("Usage: %s -w <users> -c <users>\n", progname);
- printf (_(UT_HLP_VRS), progname, progname);
}