X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fcheck_nwstat.c;h=72a47b16e71b6c8b734f9d39ac59c2598c0e2974;hb=5a6268f72953d7d0aa0f22f278ac929b1f183686;hp=91797dc816f5c9d298dee0fd37e31985c5013687;hpb=082cfc29e3673abf595d70cd05f0a483947c22d5;p=nagiosplug.git diff --git a/plugins/check_nwstat.c b/plugins/check_nwstat.c index 91797dc..72a47b1 100644 --- a/plugins/check_nwstat.c +++ b/plugins/check_nwstat.c @@ -1,43 +1,36 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_nwstat plugin -* +* * License: GPL -* Copyright (c) 2000-2006 nagios-plugins team -* -* Last Modified: $Date$ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* * Description: -* +* * This file contains the check_nwstat plugin -* -* This plugin attempts to contact the MRTGEXT NLM running on a -* Novell server to gather the requested system information. * -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* This plugin attempts to contact the MRTGEXT NLM running on a +* Novell server to gather the requested system information. +* +* +* 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. - - $Id$ - -******************************************************************************/ +* along with this program. If not, see . +* +* +*****************************************************************************/ const char *progname = "check_nwstat"; -const char *revision = "$Revision$"; -const char *copyright = "2000-2006"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -173,6 +166,9 @@ main(int argc, char **argv) { bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts(&argc, argv, progname); + if (process_arguments(argc,argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -203,7 +199,7 @@ main(int argc, char **argv) { /* check CPU load */ if (vars_to_check==LOAD1 || vars_to_check==LOAD5 || vars_to_check==LOAD15) { - + switch(vars_to_check) { case LOAD1: temp_buffer = strdup ("1"); @@ -249,7 +245,7 @@ main(int argc, char **argv) { temp_buffer, utilization, warning_value, - critical_value); + critical_value); /* check number of user connections */ } else if (vars_to_check==CONNS) { @@ -457,7 +453,7 @@ main(int argc, char **argv) { critical_value); } - + /* check % free space on volume */ } else if (vars_to_check==VPF) { @@ -521,14 +517,14 @@ main(int argc, char **argv) { result=STATE_OK; else result=STATE_WARNING; - + close(sd); my_tcp_connect (server_address, server_port, &sd); send_buffer = strdup ("S13\r\n"); result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); temp_buffer=strtok(recv_buffer,"\r\n"); - + asprintf (&output_message,_("Directory Services Database is %s (DS version %s)"),(result==STATE_OK)?"open":"closed",temp_buffer); /* check to see if logins are enabled */ @@ -568,11 +564,11 @@ main(int argc, char **argv) { result=STATE_WARNING; asprintf (&output_message,_("Warning - NRM Status is suspect!")); } - + asprintf (&output_message,_("OK - NRM Status is good!")); } - + /* check packet receive buffers */ } else if (vars_to_check==UPRB || vars_to_check==PUPRB) { @@ -596,7 +592,7 @@ main(int argc, char **argv) { return result; max_packet_receive_buffers=atoi(recv_buffer); - + percent_used_packet_receive_buffers=(unsigned long)(((double)used_packet_receive_buffers/(double)max_packet_receive_buffers)*100.0); if (vars_to_check==UPRB) { @@ -610,7 +606,7 @@ main(int argc, char **argv) { else if (check_warning_value==TRUE && percent_used_packet_receive_buffers >= warning_value) result=STATE_WARNING; } - + asprintf (&output_message,_("%lu of %lu (%lu%%) packet receive buffers used"),used_packet_receive_buffers,max_packet_receive_buffers,percent_used_packet_receive_buffers); /* check SAP table entries */ @@ -626,9 +622,9 @@ main(int argc, char **argv) { result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; - + sap_entries=atoi(recv_buffer); - + if (check_critical_value==TRUE && sap_entries >= critical_value) result=STATE_CRITICAL; else if (check_warning_value==TRUE && sap_entries >= warning_value) @@ -814,9 +810,9 @@ main(int argc, char **argv) { result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; - + open_files=atoi(recv_buffer); - + if (check_critical_value==TRUE && open_files >= critical_value) result=STATE_CRITICAL; else if (check_warning_value==TRUE && open_files >= warning_value) @@ -827,7 +823,7 @@ main(int argc, char **argv) { open_files, warning_value, critical_value); - + /* check # of abended threads (Netware > 5.x only) */ } else if (vars_to_check==ABENDS) { @@ -839,9 +835,9 @@ main(int argc, char **argv) { result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; - + abended_threads=atoi(recv_buffer); - + if (check_critical_value==TRUE && abended_threads >= critical_value) result=STATE_CRITICAL; else if (check_warning_value==TRUE && abended_threads >= warning_value) @@ -863,9 +859,9 @@ main(int argc, char **argv) { result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; - + max_service_processes=atoi(recv_buffer); - + close(sd); my_tcp_connect (server_address, server_port, &sd); @@ -873,9 +869,9 @@ main(int argc, char **argv) { result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; - + current_service_processes=atoi(recv_buffer); - + if (check_critical_value==TRUE && current_service_processes >= critical_value) result=STATE_CRITICAL; else if (check_warning_value==TRUE && current_service_processes >= warning_value) @@ -914,7 +910,7 @@ main(int argc, char **argv) { - + /* check LRU sitting time in secondss */ } else if (vars_to_check==LRUS) { @@ -977,7 +973,7 @@ main(int argc, char **argv) { total_cache_buffers, warning_value, critical_value); - + } else if (vars_to_check==DSVER) { close(sd); @@ -1005,7 +1001,7 @@ main(int argc, char **argv) { recv_buffer[sizeof(recv_buffer)-1]=0; recv_buffer[strlen(recv_buffer)-1]=0; - + asprintf (&output_message,_("Up %s"),recv_buffer); } else if (vars_to_check==NLM) { @@ -1024,7 +1020,7 @@ main(int argc, char **argv) { } else { result=STATE_CRITICAL; asprintf (&output_message,_("Module %s is not loaded"),nlm_name); - + } } else if (vars_to_check==NRMP) { @@ -1313,7 +1309,7 @@ int process_arguments(int argc, char **argv) { int option = 0; static struct option longopts[] = - { + { {"port", required_argument,0,'p'}, {"timeout", required_argument,0,'t'}, {"critical", required_argument,0,'c'}, @@ -1355,12 +1351,12 @@ int process_arguments(int argc, char **argv) { switch (c) { case '?': /* print short usage statement if args not parsable */ - usage2 (_("Unknown argument"), optarg); + usage5 (); case 'h': /* help */ print_help(); exit(STATE_OK); case 'V': /* version */ - print_revision(progname, revision); + print_revision(progname, NP_VERSION); exit(STATE_OK); case 'H': /* hostname */ server_address=optarg; @@ -1498,7 +1494,7 @@ int process_arguments(int argc, char **argv) { nrmm_name = strdup (optarg+4); if (!strcmp(nrmm_name,"")) nrmm_name = strdup ("AVAILABLE_CACHE_MEMORY"); - + } else if (strncmp(optarg,"NRMS",4)==0) { @@ -1506,7 +1502,7 @@ int process_arguments(int argc, char **argv) { nrms_name = strdup (optarg+4); if (!strcmp(nrms_name,"")) nrms_name = strdup ("USED_SWAP_SPACE"); - + } else if (strncmp(optarg,"NSS1",4)==0) { @@ -1514,7 +1510,7 @@ int process_arguments(int argc, char **argv) { nss1_name = strdup (optarg+4); if (!strcmp(nss1_name,"")) nss1_name = strdup ("CURRENTBUFFERCACHESIZE"); - + } else if (strncmp(optarg,"NSS2",4)==0) { @@ -1522,7 +1518,7 @@ int process_arguments(int argc, char **argv) { nss2_name = strdup (optarg+4); if (!strcmp(nss2_name,"")) nss2_name = strdup ("CACHEHITS"); - + } else if (strncmp(optarg,"NSS3",4)==0) { @@ -1530,7 +1526,7 @@ int process_arguments(int argc, char **argv) { nss3_name = strdup (optarg+4); if (!strcmp(nss3_name,"")) nss3_name = strdup ("CACHEGITPERCENT"); - + } else if (strncmp(optarg,"NSS4",4)==0) { @@ -1538,7 +1534,7 @@ int process_arguments(int argc, char **argv) { nss4_name = strdup (optarg+4); if (!strcmp(nss4_name,"")) nss4_name = strdup ("CURRENTOPENCOUNT"); - + } else if (strncmp(optarg,"NSS5",4)==0) { @@ -1546,7 +1542,7 @@ int process_arguments(int argc, char **argv) { nss5_name = strdup (optarg+4); if (!strcmp(nss5_name,"")) nss5_name = strdup ("CACHEMISSES"); - + } @@ -1555,7 +1551,7 @@ int process_arguments(int argc, char **argv) { nss6_name = strdup (optarg+4); if (!strcmp(nss6_name,"")) nss6_name = strdup ("PENDINGWORKSCOUNT"); - + } @@ -1564,7 +1560,7 @@ int process_arguments(int argc, char **argv) { nss7_name = strdup (optarg+4); if (!strcmp(nss7_name,"")) nss7_name = strdup ("CACHESIZE"); - + } @@ -1597,7 +1593,7 @@ void print_help(void) char *myport; asprintf (&myport, "%d", PORT); - print_revision (progname, revision); + print_revision (progname, NP_VERSION); printf ("Copyright (c) 1999 Ethan Galstad \n"); printf (COPYRIGHT, copyright, email); @@ -1610,6 +1606,7 @@ void print_help(void) print_usage(); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', myport); @@ -1676,7 +1673,10 @@ void print_help(void) printf (" %s\n", _(" (available from http://www.engr.wisc.edu/~drews/mrtg/)")); printf (" %s\n", _("- Values for critical thresholds should be lower than warning thresholds")); printf (" %s\n", _(" when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, ")); - printf (" %S\n", _(" TCB, LRUS and LRUM.\n")); + printf (" %s\n", _(" TCB, LRUS and LRUM.")); +#ifdef NP_EXTRA_OPTS + printf (" -%s", _(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); }