diff --git a/plugins/check_game.c b/plugins/check_game.c
index 9f9ff7d84fc6372f7ce91bc7d0428f53c4bad3c8..5496c4dc5f3cb9580784457f81265cc8df9971a4 100644 (file)
--- a/plugins/check_game.c
+++ b/plugins/check_game.c
-/******************************************************************************
-*
-* This program is free software; you can redistribute it and/or modify
+/*****************************************************************************
+*
+* Nagios check_game plugin
+*
+* License: GPL
+* Copyright (c) 2002-2007 Nagios Plugins Development Team
+*
+* Description:
+*
+* This file contains the check_game plugin
+*
+* This plugin tests game server connections with the specified host.
+* using the qstat program
+*
+*
+* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
+* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*
*
-* $Id$
*****************************************************************************/
const char *progname = "check_game";
-const char *revision = "$Revision$";
-const char *copyright = "2002-2005";
+const char *copyright = "2002-2007";
const char *email = "nagiosplug-devel@lists.sourceforge.net";
#include "common.h"
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
-
+
+ /* Parse extra opts if any */
+ argv=np_extra_opts (&argc, argv, progname);
+
if (process_arguments (argc, argv) == ERROR)
usage_va(_("Could not parse arguments"));
/* create the command line to execute */
asprintf (&command_line, "%s -raw %s -%s %s",
PATH_TO_QSTAT, QSTAT_DATA_DELIMITER, game_type, server_ip);
-
+
if (port)
asprintf (&command_line, "%s:%-d", command_line, port);
/* was thinking about running qstat without any options, capturing the
-default line, parsing it & making an array of all know server types
but thought this would be too much hassle considering this is a tool
- for intelligent sysadmins (ha). Could put a static array of known
+ for intelligent sysadmins (ha). Could put a static array of known
server types in a header file but then we'd be limiting ourselves
In the end, I figured I'd simply let an error occur & then trap it
result = STATE_CRITICAL;
}
else {
- printf ("OK: %s/%s %s (%s), Ping: %s ms|%s %s\n",
+ printf ("OK: %s/%s %s (%s), Ping: %s ms|%s %s\n",
ret[qstat_game_players],
ret[qstat_game_players_max],
- ret[qstat_game_field],
+ ret[qstat_game_field],
ret[qstat_map_field],
ret[qstat_ping_field],
perfdata ("players", atol(ret[qstat_game_players]), "",
print_help ();
exit (STATE_OK);
case 'V': /* version */
- print_revision (progname, revision);
+ print_revision (progname, NP_VERSION);
exit (STATE_OK);
case 'v': /* version */
verbose = TRUE;
return ERROR;
break;
default: /* args not parsable */
- usage_va(_("Unknown argument - %s"), optarg);
+ usage5();
}
}
void
print_help (void)
{
- print_revision (progname, revision);
+ print_revision (progname, NP_VERSION);
printf ("Copyright (c) 1999 Ian Cass, Knowledge Matters Limited\n");
printf (COPYRIGHT, copyright, email);
printf (_("This plugin tests game server connections with the specified host."));
- printf ("\n\n");
-
- print_usage ();
-
- printf (_(UT_HELP_VRSN));
-
- printf (_("\
-<game> = Game type that is recognised by qstat (without the leading dash)\n\
-<ip_address> = The IP address of the device you wish to query\n\
- [port] = Optional port of which to connect\n\
- [game_field] = Field number in raw qstat output that contains game name\n\
- [map_field] = Field number in raw qstat output that contains map name\n\
- [ping_field] = Field number in raw qstat output that contains ping time\n"));
+ printf ("\n\n");
- printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
-
- printf (_("Notes:"));
-
- printf ("\n");
+ print_usage ();
- printf (_("This plugin uses the 'qstat' command, the popular game server status query tool ."));
-
- printf ("\n");
+ printf (UT_HELP_VRSN);
+ printf (UT_EXTRA_OPTS);
- printf (_("If you don't have the package installed, you will need to download it from"));
-
- printf ("\n");
+ printf (" %s\n", "-p");
+ printf (" %s\n", _("Optional port of which to connect"));
+ printf (" %s\n", "gf");
+ printf (" %s\n", _("Field number in raw qstat output that contains game name"));
+ printf (" %s\n", "-mf");
+ printf (" %s\n", _("Field number in raw qstat output that contains map name"));
+ printf (" %s\n", "-pf");
+ printf (" %s\n", _("Field number in raw qstat output that contains ping time"));
- printf (_("http://www.activesw.com/people/steve/qstat.html before you can use this plugin."));
+ printf (UT_TIMEOUT, DEFAULT_SOCKET_TIMEOUT);
printf ("\n");
+ printf ("%s\n", _("Notes:"));
+ printf (" %s\n", _("This plugin uses the 'qstat' command, the popular game server status query tool."));
+ printf (" %s\n", _("If you don't have the package installed, you will need to download it from"));
+ printf (" %s\n", _("http://www.activesw.com/people/steve/qstat.html before you can use this plugin."));
- printf (_(UT_SUPPORT));
+ printf (UT_SUPPORT);
}
void
print_usage (void)
{
- printf (_("Usage:"));
- printf (" %s <game> <ip_address> [-p port] [-gf game_field] [-mf map_field] [-pf ping_field]\n", progname);
+ printf ("%s\n", _("Usage:"));
+ printf (" %s [-hvV] [-P port] [-t timeout] [-g game_field] [-m map_field] [-p ping_field] [-G game-time] [-H hostname] <game> <ip_address>\n", progname);
}
/******************************************************************************
* Test Cases:
*
* ./check_game --players 7 -p 8 --map 5 qs 67.20.190.61 26000
- *
+ *
* qstat -raw , -qs 67.20.190.61
* ==> QS,67.20.190.61,Nightmare.fintek.ca,67.20.190.61:26000,3,e2m1,6,0,83,0
*