X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fcheck_nt.c;h=1bdddc45a4b1ce517fe16dcf8e8f0a982dfb79ed;hb=d4c0948266f261525e12c58d58e0fc68987a9818;hp=8d66092d4f9781547020e7ccfede00afd31aab29;hpb=ec69901ec2f01b4b6346a4daf29ca86856f28f35;p=nagiosplug.git diff --git a/plugins/check_nt.c b/plugins/check_nt.c index 8d66092..1bdddc4 100644 --- a/plugins/check_nt.c +++ b/plugins/check_nt.c @@ -26,8 +26,15 @@ * 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_nt"; +const char *revision = "$Revision$"; +const char *copyright = "2003-2004"; +const char *email = "nagiosplug-devel@lists.sourceforge.net"; + #include "common.h" #include "netutils.h" #include "utils.h" @@ -63,8 +70,6 @@ int check_critical_value=FALSE; enum checkvars vars_to_check = CHECK_NONE; int show_all=FALSE; -const char *progname = "check_nt"; - char recv_buffer[MAX_INPUT_BUFFER]; void fetch_data (const char* address, int port, const char* sendb); @@ -75,6 +80,9 @@ void print_help(void); void print_usage(void); int main(int argc, char **argv){ + +/* should be int result = STATE_UNKNOWN; */ + int return_code = STATE_UNKNOWN; char *send_buffer=NULL; char *output_message=NULL; @@ -95,7 +103,7 @@ int main(int argc, char **argv){ unsigned long utilization; unsigned long uptime; unsigned long age_in_minutes; - double counter_value; + double counter_value = 0.0; int offset=0; int updays=0; int uphours=0; @@ -108,8 +116,8 @@ int main(int argc, char **argv){ bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); - if(process_arguments(argc,argv)==ERROR) - usage(_("Could not parse arguments\n")); + if(process_arguments(argc,argv) == ERROR) + usage4 (_("Could not parse arguments")); /* initialize alarm signal handling */ signal(SIGALRM,socket_timeout_alarm_handler); @@ -188,7 +196,7 @@ int main(int argc, char **argv){ updays = uptime / 86400; uphours = (uptime % 86400) / 3600; upminutes = ((uptime % 86400) % 3600) / 60; - asprintf(&output_message,_("System Uptime : %u day(s) %u hour(s) %u minute(s)"),updays,uphours, upminutes); + asprintf(&output_message,_("System Uptime - %u day(s) %u hour(s) %u minute(s)"),updays,uphours, upminutes); return_code=STATE_OK; break; @@ -347,14 +355,18 @@ int main(int argc, char **argv){ if (allRight) { /* Let's format the output string, finally... */ - - asprintf (&output_message, "%s = %.2f %s", description, counter_value, counter_unit); - output_message = strcat (output_message, "|"); - output_message = strcat (output_message, - fperfdata (description, counter_value, counter_unit, - 1, warning_value, 1, critical_value, - (!(isPercent) && (minval != NULL)), fminval, - (!(isPercent) && (minval != NULL)), fmaxval)); + if (strstr(description, "%") == NULL) { + asprintf (&output_message, "%s = %.2f %s", description, counter_value, counter_unit); + } else { + /* has formatting, will segv if wrong */ + asprintf (&output_message, description, counter_value); + } + asprintf (&output_message, "%s |", output_message); + asprintf (&output_message,"%s %s", output_message, + fperfdata (description, counter_value, + counter_unit, 1, warning_value, 1, critical_value, + (!(isPercent) && (minval != NULL)), fminval, + (!(isPercent) && (minval != NULL)), fmaxval)); } } @@ -410,7 +422,7 @@ int main(int argc, char **argv){ case CHECK_NONE: default: - usage (_("Please specify a variable to check")); + usage4 (_("Please specify a variable to check")); break; } @@ -427,9 +439,6 @@ int main(int argc, char **argv){ - - - /* process command-line arguments */ int process_arguments(int argc, char **argv){ int c; @@ -477,14 +486,12 @@ int process_arguments(int argc, char **argv){ 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); case 'V': /* version */ - print_revision(progname,"$Revision$"); + print_revision(progname,revision); exit(STATE_OK); case 'H': /* hostname */ if (server_address) free(server_address); @@ -497,7 +504,7 @@ int process_arguments(int argc, char **argv){ if (is_intnonneg(optarg)) server_port=atoi(optarg); else - die(STATE_UNKNOWN,_("Server port an integer (seconds)\nType '%s -h' for additional help\n"),progname); + die(STATE_UNKNOWN,_("Server port must be an integer\n")); break; case 'v': if(strlen(optarg)<4) @@ -557,16 +564,13 @@ int process_arguments(int argc, char **argv){ - - - void fetch_data (const char *address, int port, const char *sendb) { int result; result=process_tcp_request(address, port, sendb, recv_buffer,sizeof(recv_buffer)); if(result!=STATE_OK) - die (result, "could not fetch information from server\n"); + die (result, _("could not fetch information from server\n")); if (!strncmp(recv_buffer,"ERROR",5)) die (STATE_UNKNOWN, "NSClient - %s\n",recv_buffer); @@ -603,17 +607,18 @@ void preparelist(char *string) { - - - void print_help(void) { - print_revision(progname,"$Revision$"); - printf (_("\ -Copyright (c) 2000 Yves Rubin (rubiyz@yahoo.com)\n\n\ -This plugin collects data from the NSClient service running on a\n\ -Windows NT/2000/XP server.\n\n")); + print_revision(progname,revision); + + printf ("Copyright (c) 2000 Yves Rubin (rubiyz@yahoo.com)\n"); + printf (COPYRIGHT, copyright, email); + + printf (_("This plugin collects data from the NSClient service running on a\n\ +Windows NT/2000/XP/2003 server.\n\n")); + print_usage(); + printf (_("\nOptions:\n\ -H, --hostname=HOST\n\ Name of the host to check\n\ @@ -630,8 +635,8 @@ Windows NT/2000/XP server.\n\n")); -h, --help\n\ Print this help screen\n\ -V, --version\n\ - Print version information\n"), - PORT, DEFAULT_SOCKET_TIMEOUT); + Print version information\n"), PORT, DEFAULT_SOCKET_TIMEOUT); + printf (_("\ -v, --variable=STRING\n\ Variable to check. Valid variables are:\n")); @@ -669,7 +674,8 @@ Windows NT/2000/XP server.\n\n")); Request a -l parameters with the following syntax:\n\ -l \"\\\\\\\\counter\",\"\n\ The parameter is optional and \n\ - is given to a printf output command which require a float parameters.\n\ + is given to a printf output command which requires a float parameter.\n\ + If does not include \"%%\", it is used as a label.\n\ Some examples:\n\ \"Paging file usage is %%.2f %%%%\"\n\ \"%%.f %%%% paging file used.\"\n")); @@ -681,11 +687,9 @@ Windows NT/2000/XP server.\n\n")); - void print_usage(void) { - printf(_("\ + printf("\ Usage: %s -H host -v variable [-p port] [-w warning] [-c critical]\n\ - [-l params] [-d SHOWALL] [-t timeout]\n"), progname); - printf (_(UT_HLP_VRS), progname, progname); + [-l params] [-d SHOWALL] [-t timeout]\n", progname); }