diff --git a/plugins/check_nwstat.c b/plugins/check_nwstat.c
index 91797dc816f5c9d298dee0fd37e31985c5013687..6e09286773a503c8837ce07a513d9c0120d6c635 100644 (file)
--- a/plugins/check_nwstat.c
+++ b/plugins/check_nwstat.c
-/******************************************************************************
-*
+/*****************************************************************************
+*
* 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 <http://www.gnu.org/licenses/>.
+*
+*
+*****************************************************************************/
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"
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"));
/* 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");
temp_buffer,
utilization,
warning_value,
- critical_value);
+ critical_value);
/* check number of user connections */
} else if (vars_to_check==CONNS) {
critical_value);
}
-
+
/* check % free space on volume */
} else if (vars_to_check==VPF) {
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 */
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) {
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) {
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 */
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)
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)
open_files,
warning_value,
critical_value);
-
+
/* check # of abended threads (Netware > 5.x only) */
} else if (vars_to_check==ABENDS) {
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)
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);
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)
-
+
/* check LRU sitting time in secondss */
} else if (vars_to_check==LRUS) {
total_cache_buffers,
warning_value,
critical_value);
-
+
} else if (vars_to_check==DSVER) {
close(sd);
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) {
} else {
result=STATE_CRITICAL;
asprintf (&output_message,_("Module %s is not loaded"),nlm_name);
-
+
}
} else if (vars_to_check==NRMP) {
int option = 0;
static struct option longopts[] =
- {
+ {
{"port", required_argument,0,'p'},
{"timeout", required_argument,0,'t'},
{"critical", required_argument,0,'c'},
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;
nrmm_name = strdup (optarg+4);
if (!strcmp(nrmm_name,""))
nrmm_name = strdup ("AVAILABLE_CACHE_MEMORY");
-
+
}
else if (strncmp(optarg,"NRMS",4)==0) {
nrms_name = strdup (optarg+4);
if (!strcmp(nrms_name,""))
nrms_name = strdup ("USED_SWAP_SPACE");
-
+
}
else if (strncmp(optarg,"NSS1",4)==0) {
nss1_name = strdup (optarg+4);
if (!strcmp(nss1_name,""))
nss1_name = strdup ("CURRENTBUFFERCACHESIZE");
-
+
}
else if (strncmp(optarg,"NSS2",4)==0) {
nss2_name = strdup (optarg+4);
if (!strcmp(nss2_name,""))
nss2_name = strdup ("CACHEHITS");
-
+
}
else if (strncmp(optarg,"NSS3",4)==0) {
nss3_name = strdup (optarg+4);
if (!strcmp(nss3_name,""))
nss3_name = strdup ("CACHEGITPERCENT");
-
+
}
else if (strncmp(optarg,"NSS4",4)==0) {
nss4_name = strdup (optarg+4);
if (!strcmp(nss4_name,""))
nss4_name = strdup ("CURRENTOPENCOUNT");
-
+
}
else if (strncmp(optarg,"NSS5",4)==0) {
nss5_name = strdup (optarg+4);
if (!strcmp(nss5_name,""))
nss5_name = strdup ("CACHEMISSES");
-
+
}
nss6_name = strdup (optarg+4);
if (!strcmp(nss6_name,""))
nss6_name = strdup ("PENDINGWORKSCOUNT");
-
+
}
nss7_name = strdup (optarg+4);
if (!strcmp(nss7_name,""))
nss7_name = strdup ("CACHESIZE");
-
+
}
char *myport;
asprintf (&myport, "%d", PORT);
- print_revision (progname, revision);
+ print_revision (progname, NP_VERSION);
printf ("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>\n");
printf (COPYRIGHT, copyright, email);
print_usage();
- printf (_(UT_HELP_VRSN));
+ printf (UT_HELP_VRSN);
+ printf (UT_EXTRA_OPTS);
- printf (_(UT_HOST_PORT), 'p', myport);
+ printf (UT_HOST_PORT, 'p', myport);
printf (" %s\n", "-v, --variable=STRING");
printf (" %s\n", _("Variable to check. Valid variables include:"));
printf (" %s\n", "-o, --osversion");
printf (" %s\n", _("Include server version string in results"));
- printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
+ printf (UT_TIMEOUT, DEFAULT_SOCKET_TIMEOUT);
printf ("\n");
printf ("%s\n", _("Notes:"));
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."));
- printf (_(UT_SUPPORT));
+ printf (UT_SUPPORT);
}