Merge tag 'upstream/1.4.11'
Upstream version 1.4.11
This commit is contained in:
commit
116dc37be7
2
BUGS
2
BUGS
|
@ -2,7 +2,7 @@ This file lists the major bugs from the Nagios Plugins page on Sourceforge
|
|||
at http://sourceforge.net/tracker/?group_id=29880&atid=397597. These are not
|
||||
necessarily verified as errors.
|
||||
|
||||
For the 1.4.9 release:
|
||||
For the 1.4.11 release:
|
||||
|
||||
1724055 - check_dns: does not sort address data
|
||||
1681516 - output too verbose for various checks
|
||||
|
|
16
INSTALL
16
INSTALL
|
@ -102,16 +102,16 @@ for another architecture.
|
|||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PREFIX'.
|
||||
By default, `make install' installs the package's commands under
|
||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||
can specify an installation prefix other than `/usr/local' by giving
|
||||
`configure' the option `--prefix=PREFIX'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
give `configure' the option `--exec-prefix=PREFIX', the package will
|
||||
use PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files will still use the regular prefix.
|
||||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=DIR' to specify different values for particular
|
||||
|
@ -159,7 +159,7 @@ where SYSTEM can have one of these forms:
|
|||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the `--target=TYPE' option to select the type of system they will
|
||||
use the option `--target=TYPE' to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
|
|
10
Makefile.am
10
Makefile.am
|
@ -22,11 +22,11 @@ dist-hook:
|
|||
install-root:
|
||||
cd plugins-root && $(MAKE) $@
|
||||
|
||||
test:
|
||||
cd lib && $(MAKE) test
|
||||
if test "$(PERLMODS_DIR)" != ""; then cd perlmods && $(MAKE) test; fi
|
||||
cd plugins && $(MAKE) test
|
||||
cd plugins-scripts && $(MAKE) test
|
||||
test test-debug:
|
||||
cd lib && $(MAKE) $@
|
||||
if test "$(PERLMODS_DIR)" != ""; then cd perlmods && $(MAKE) $@; fi
|
||||
cd plugins && $(MAKE) $@
|
||||
cd plugins-scripts && $(MAKE) $@
|
||||
|
||||
nagios-plugins.spec: nagios-plugins.spec.in
|
||||
sed "s/%%{VERSION}/${VERSION}/;s/%%{RELEASE}/${RELEASE}/;s/^%%{requires}$$//" $? > $@
|
||||
|
|
23
Makefile.in
23
Makefile.in
|
@ -1,4 +1,4 @@
|
|||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
|
@ -184,6 +184,7 @@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
|
|||
GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
|
||||
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
|
||||
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
|
||||
|
@ -223,7 +224,6 @@ LTLIBINTL = @LTLIBINTL@
|
|||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MATHLIBS = @MATHLIBS@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
|
@ -301,12 +301,9 @@ WCTYPE_H = @WCTYPE_H@
|
|||
WINT_T_SUFFIX = @WINT_T_SUFFIX@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
|
@ -324,6 +321,9 @@ build_os = @build_os@
|
|||
build_vendor = @build_vendor@
|
||||
check_tcp_ssl = @check_tcp_ssl@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
gl_LIBOBJS = @gl_LIBOBJS@
|
||||
gl_LTLIBOBJS = @gl_LTLIBOBJS@
|
||||
|
@ -332,6 +332,7 @@ host_alias = @host_alias@
|
|||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
|
@ -343,8 +344,10 @@ mandir = @mandir@
|
|||
mkdir_p = @mkdir_p@
|
||||
np_mysql_config = @np_mysql_config@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
|
@ -817,11 +820,11 @@ dist-hook:
|
|||
install-root:
|
||||
cd plugins-root && $(MAKE) $@
|
||||
|
||||
test:
|
||||
cd lib && $(MAKE) test
|
||||
if test "$(PERLMODS_DIR)" != ""; then cd perlmods && $(MAKE) test; fi
|
||||
cd plugins && $(MAKE) test
|
||||
cd plugins-scripts && $(MAKE) test
|
||||
test test-debug:
|
||||
cd lib && $(MAKE) $@
|
||||
if test "$(PERLMODS_DIR)" != ""; then cd perlmods && $(MAKE) $@; fi
|
||||
cd plugins && $(MAKE) $@
|
||||
cd plugins-scripts && $(MAKE) $@
|
||||
|
||||
nagios-plugins.spec: nagios-plugins.spec.in
|
||||
sed "s/%%{VERSION}/${VERSION}/;s/%%{RELEASE}/${RELEASE}/;s/^%%{requires}$$//" $? > $@
|
||||
|
|
20
NEWS
20
NEWS
|
@ -1,5 +1,25 @@
|
|||
This file documents the major additions and syntax changes between releases.
|
||||
|
||||
1.4.11 13th December 2007
|
||||
Fix check_http regression in 1.4.10 where following redirects to
|
||||
relative URLs on virtual hosts failed if both "-H" and "-I" were used
|
||||
check_ntp now return UNKNOWN instead of WARNING if jitter is unavailable (jitter=-1.000000)
|
||||
as long as the thresholds range inculde -1. If no offset threshold is specified
|
||||
and the offset is unavailable, will return UNKNOWN as well.
|
||||
NOTE: If jitter thresholds are specified as integers it will return CRITICAL if jitter
|
||||
is "-1" as the default range starts at 0. See Examples in --help output.
|
||||
Fix broken usage2 in check_snmp and check_cluster
|
||||
check_cluster now accept all valid characters in its thresholds ("-", "@", "~")
|
||||
Merge two new checks that deprecates check_ntp: check_ntp_peer and check_ntp_time.
|
||||
You should read the --help output so see which one is suitable for you. check_ntp_peer
|
||||
implement stratum thresholds support (feature request #1703823).
|
||||
Fix check_disk reporting OK if disk usage grows over 100% (bug #1348746).
|
||||
The problem happens to be in Gnulib but a workaround have been implemented in check_disk.c
|
||||
Fix check_load argument handling when not passing triplets (bug #1831890)
|
||||
Tinderbox builds now run tests in a verbose mode
|
||||
Update to Nagios::Plugin 0.22
|
||||
VPATH problem fixed for compiling plugins-root
|
||||
|
||||
1.4.10 28th September 2007
|
||||
Fix check_http buffer overflow vulnerability when following HTTP redirects
|
||||
check_http now explicitly asks HTTP/1.1 servers to close the connection
|
||||
|
|
5
THANKS
5
THANKS
|
@ -3,6 +3,7 @@ there have been many contributors to this project. Everyone below has helped in
|
|||
raising bug reports, creating patches or contributing new plugins.
|
||||
|
||||
dag rob?le
|
||||
fabiodds
|
||||
Randy O'Meara
|
||||
Lance Albertson
|
||||
David Alden
|
||||
|
@ -78,6 +79,7 @@ Paulo Fessel
|
|||
Paulo Afonso Graner Fessel
|
||||
James Fidell
|
||||
Johan Fischer
|
||||
Bernhard Fischer
|
||||
Matthias Flacke
|
||||
Felix Frank
|
||||
Rick Frey
|
||||
|
@ -154,6 +156,7 @@ Thomas Nilsen
|
|||
Walbert Oberngruber
|
||||
Craig Orsinger
|
||||
Remi Paulmier
|
||||
Tom Payerle
|
||||
Fabian Pehla
|
||||
Matt Perry
|
||||
Matthew Peters
|
||||
|
@ -209,7 +212,7 @@ Ibere Tizio
|
|||
Julien Touche
|
||||
Kyle Tucker
|
||||
Jerome Tytgat
|
||||
MAtteo HCE Valsasna
|
||||
Matteo HCE Valsasna
|
||||
Jon Vandegrift
|
||||
Laurent Vaslin
|
||||
Carole Verdon
|
||||
|
|
4
aclocal.m4
vendored
4
aclocal.m4
vendored
|
@ -1,4 +1,4 @@
|
|||
# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005 Free Software Foundation, Inc.
|
||||
|
@ -6397,7 +6397,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
|
|||
# Call AM_AUTOMAKE_VERSION so it can be traced.
|
||||
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.9.5])])
|
||||
[AM_AUTOMAKE_VERSION([1.9.6])])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand `-c -o'.
|
||||
|
||||
scriptversion=2005-02-03.08
|
||||
scriptversion=2005-05-14.22
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
|
@ -18,7 +18,7 @@ scriptversion=2005-02-03.08
|
|||
#
|
||||
# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
|
|
575
build-aux/config.guess
vendored
575
build-aux/config.guess
vendored
File diff suppressed because it is too large
Load diff
109
build-aux/config.sub
vendored
109
build-aux/config.sub
vendored
|
@ -1,9 +1,10 @@
|
|||
#! /bin/sh
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
|
||||
# Inc.
|
||||
|
||||
timestamp='2005-04-22'
|
||||
timestamp='2006-07-02'
|
||||
|
||||
# This file is (in principle) common to ALL GNU software.
|
||||
# The presence of a machine in this file suggests that SOME GNU software
|
||||
|
@ -21,14 +22,15 @@ timestamp='2005-04-22'
|
|||
#
|
||||
# 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., 59 Temple Place - Suite 330,
|
||||
# Boston, MA 02111-1307, USA.
|
||||
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
|
||||
# Please send patches to <config-patches@gnu.org>. Submit a context
|
||||
# diff and a properly formatted ChangeLog entry.
|
||||
#
|
||||
|
@ -83,11 +85,11 @@ Try \`$me --help' for more information."
|
|||
while test $# -gt 0 ; do
|
||||
case $1 in
|
||||
--time-stamp | --time* | -t )
|
||||
echo "$timestamp" ; exit 0 ;;
|
||||
echo "$timestamp" ; exit ;;
|
||||
--version | -v )
|
||||
echo "$version" ; exit 0 ;;
|
||||
echo "$version" ; exit ;;
|
||||
--help | --h* | -h )
|
||||
echo "$usage"; exit 0 ;;
|
||||
echo "$usage"; exit ;;
|
||||
-- ) # Stop option processing
|
||||
shift; break ;;
|
||||
- ) # Use stdin as input.
|
||||
|
@ -99,7 +101,7 @@ while test $# -gt 0 ; do
|
|||
*local*)
|
||||
# First pass through any local machine types.
|
||||
echo $1
|
||||
exit 0;;
|
||||
exit ;;
|
||||
|
||||
* )
|
||||
break ;;
|
||||
|
@ -118,8 +120,9 @@ esac
|
|||
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||
case $maybe_os in
|
||||
nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
|
||||
kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
|
||||
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
|
||||
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
|
||||
storm-chaos* | os2-emx* | rtmk-nova*)
|
||||
os=-$maybe_os
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||
;;
|
||||
|
@ -170,6 +173,10 @@ case $os in
|
|||
-hiux*)
|
||||
os=-hiuxwe2
|
||||
;;
|
||||
-sco6)
|
||||
os=-sco5v6
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco5)
|
||||
os=-sco3.2v5
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
|
@ -186,6 +193,10 @@ case $os in
|
|||
# Don't forget version if it is 3.2v4 or newer.
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco5v6*)
|
||||
# Don't forget version if it is 3.2v4 or newer.
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco*)
|
||||
os=-sco3.2v2
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
|
@ -230,7 +241,7 @@ case $basic_machine in
|
|||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
||||
| am33_2.0 \
|
||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
|
||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
|
||||
| bfin \
|
||||
| c4x | clipper \
|
||||
| d10v | d30v | dlx | dsp16xx \
|
||||
|
@ -238,7 +249,8 @@ case $basic_machine in
|
|||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||
| i370 | i860 | i960 | ia64 \
|
||||
| ip2k | iq2000 \
|
||||
| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
|
||||
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
||||
| maxq | mb | microblaze | mcore \
|
||||
| mips | mipsbe | mipseb | mipsel | mipsle \
|
||||
| mips16 \
|
||||
| mips64 | mips64el \
|
||||
|
@ -247,6 +259,7 @@ case $basic_machine in
|
|||
| mips64vr4100 | mips64vr4100el \
|
||||
| mips64vr4300 | mips64vr4300el \
|
||||
| mips64vr5000 | mips64vr5000el \
|
||||
| mips64vr5900 | mips64vr5900el \
|
||||
| mipsisa32 | mipsisa32el \
|
||||
| mipsisa32r2 | mipsisa32r2el \
|
||||
| mipsisa64 | mipsisa64el \
|
||||
|
@ -255,17 +268,19 @@ case $basic_machine in
|
|||
| mipsisa64sr71k | mipsisa64sr71kel \
|
||||
| mipstx39 | mipstx39el \
|
||||
| mn10200 | mn10300 \
|
||||
| mt \
|
||||
| msp430 \
|
||||
| nios | nios2 \
|
||||
| ns16k | ns32k \
|
||||
| openrisc | or32 \
|
||||
| or32 \
|
||||
| pdp10 | pdp11 | pj | pjl \
|
||||
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
||||
| pyramid \
|
||||
| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
|
||||
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||
| sh64 | sh64le \
|
||||
| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
|
||||
| sparcv8 | sparcv9 | sparcv9b \
|
||||
| strongarm \
|
||||
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
|
||||
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
||||
| spu | strongarm \
|
||||
| tahoe | thumb | tic4x | tic80 | tron \
|
||||
| v850 | v850e \
|
||||
| we32k \
|
||||
|
@ -280,6 +295,9 @@ case $basic_machine in
|
|||
;;
|
||||
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
|
||||
;;
|
||||
ms1)
|
||||
basic_machine=mt-unknown
|
||||
;;
|
||||
|
||||
# We use `pc' rather than `unknown'
|
||||
# because (1) that's what they normally are, and
|
||||
|
@ -299,7 +317,7 @@ case $basic_machine in
|
|||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
||||
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
|
||||
| avr-* \
|
||||
| avr-* | avr32-* \
|
||||
| bfin-* | bs2000-* \
|
||||
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
|
||||
| clipper-* | craynv-* | cydra-* \
|
||||
|
@ -310,7 +328,7 @@ case $basic_machine in
|
|||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||
| i*86-* | i860-* | i960-* | ia64-* \
|
||||
| ip2k-* | iq2000-* \
|
||||
| m32r-* | m32rle-* \
|
||||
| m32c-* | m32r-* | m32rle-* \
|
||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||
| m88110-* | m88k-* | maxq-* | mcore-* \
|
||||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
||||
|
@ -321,6 +339,7 @@ case $basic_machine in
|
|||
| mips64vr4100-* | mips64vr4100el-* \
|
||||
| mips64vr4300-* | mips64vr4300el-* \
|
||||
| mips64vr5000-* | mips64vr5000el-* \
|
||||
| mips64vr5900-* | mips64vr5900el-* \
|
||||
| mipsisa32-* | mipsisa32el-* \
|
||||
| mipsisa32r2-* | mipsisa32r2el-* \
|
||||
| mipsisa64-* | mipsisa64el-* \
|
||||
|
@ -329,18 +348,20 @@ case $basic_machine in
|
|||
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
|
||||
| mipstx39-* | mipstx39el-* \
|
||||
| mmix-* \
|
||||
| mt-* \
|
||||
| msp430-* \
|
||||
| nios-* | nios2-* \
|
||||
| none-* | np1-* | ns16k-* | ns32k-* \
|
||||
| orion-* \
|
||||
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
||||
| pyramid-* \
|
||||
| romp-* | rs6000-* \
|
||||
| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
|
||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
||||
| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
|
||||
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
||||
| sparclite-* \
|
||||
| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
|
||||
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
|
||||
| tahoe-* | thumb-* \
|
||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
||||
| tron-* \
|
||||
|
@ -686,6 +707,9 @@ case $basic_machine in
|
|||
basic_machine=i386-pc
|
||||
os=-msdos
|
||||
;;
|
||||
ms1-*)
|
||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||
;;
|
||||
mvs)
|
||||
basic_machine=i370-ibm
|
||||
os=-mvs
|
||||
|
@ -761,9 +785,8 @@ case $basic_machine in
|
|||
basic_machine=hppa1.1-oki
|
||||
os=-proelf
|
||||
;;
|
||||
or32 | or32-*)
|
||||
openrisc | openrisc-*)
|
||||
basic_machine=or32-unknown
|
||||
os=-coff
|
||||
;;
|
||||
os400)
|
||||
basic_machine=powerpc-ibm
|
||||
|
@ -794,6 +817,12 @@ case $basic_machine in
|
|||
pc532 | pc532-*)
|
||||
basic_machine=ns32k-pc532
|
||||
;;
|
||||
pc98)
|
||||
basic_machine=i386-pc
|
||||
;;
|
||||
pc98-*)
|
||||
basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pentium | p5 | k5 | k6 | nexgen | viac3)
|
||||
basic_machine=i586-pc
|
||||
;;
|
||||
|
@ -850,6 +879,10 @@ case $basic_machine in
|
|||
basic_machine=i586-unknown
|
||||
os=-pw32
|
||||
;;
|
||||
rdos)
|
||||
basic_machine=i386-pc
|
||||
os=-rdos
|
||||
;;
|
||||
rom68k)
|
||||
basic_machine=m68k-rom68k
|
||||
os=-coff
|
||||
|
@ -1089,13 +1122,10 @@ case $basic_machine in
|
|||
we32k)
|
||||
basic_machine=we32k-att
|
||||
;;
|
||||
sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||
sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||
basic_machine=sh-unknown
|
||||
;;
|
||||
sh64)
|
||||
basic_machine=sh64-unknown
|
||||
;;
|
||||
sparc | sparcv8 | sparcv9 | sparcv9b)
|
||||
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
||||
basic_machine=sparc-sun
|
||||
;;
|
||||
cydra)
|
||||
|
@ -1168,20 +1198,23 @@ case $os in
|
|||
| -aos* \
|
||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
|
||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||
| -openbsd* | -solidbsd* \
|
||||
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
|
||||
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||
| -chorusos* | -chorusrdb* \
|
||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
|
||||
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
|
||||
| -uxpv* | -beos* | -mpeix* | -udk* \
|
||||
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
|
||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||
| -skyos* | -haiku* | -rdos* | -toppers*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
-qnx*)
|
||||
|
@ -1199,7 +1232,7 @@ case $os in
|
|||
os=`echo $os | sed -e 's|nto|nto-qnx|'`
|
||||
;;
|
||||
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
|
||||
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \
|
||||
| -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
|
||||
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
|
||||
;;
|
||||
-mac*)
|
||||
|
@ -1333,6 +1366,9 @@ else
|
|||
# system, and we'll never get to this point.
|
||||
|
||||
case $basic_machine in
|
||||
spu-*)
|
||||
os=-elf
|
||||
;;
|
||||
*-acorn)
|
||||
os=-riscix1.2
|
||||
;;
|
||||
|
@ -1388,6 +1424,9 @@ case $basic_machine in
|
|||
*-be)
|
||||
os=-beos
|
||||
;;
|
||||
*-haiku)
|
||||
os=-haiku
|
||||
;;
|
||||
*-ibm)
|
||||
os=-aix
|
||||
;;
|
||||
|
@ -1559,7 +1598,7 @@ case $basic_machine in
|
|||
esac
|
||||
|
||||
echo $basic_machine$os
|
||||
exit 0
|
||||
exit
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2005-02-09.22
|
||||
scriptversion=2005-07-09.11
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
|
@ -17,8 +17,8 @@ scriptversion=2005-02-09.22
|
|||
|
||||
# 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., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
|
@ -467,7 +467,8 @@ cpp)
|
|||
done
|
||||
|
||||
"$@" -E |
|
||||
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2005-02-02.21
|
||||
scriptversion=2005-05-14.22
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2005-02-08.22
|
||||
scriptversion=2005-06-08.21
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
|
@ -19,8 +19,8 @@ scriptversion=2005-02-08.22
|
|||
|
||||
# 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., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
|
@ -297,6 +297,9 @@ WARNING: \`$1' is $msg. You should only need it if
|
|||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||
fi
|
||||
# If the file does not exist, the user really needs makeinfo;
|
||||
# let's fail without touching anything.
|
||||
test -f $file || exit 1
|
||||
touch $file
|
||||
;;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
# mkinstalldirs --- make directory hierarchy
|
||||
|
||||
scriptversion=2005-02-02.21
|
||||
scriptversion=2005-06-29.22
|
||||
|
||||
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||
# Created: 1993-05-16
|
||||
|
@ -12,7 +12,7 @@ scriptversion=2005-02-02.21
|
|||
# <automake-patches@gnu.org>.
|
||||
|
||||
errstatus=0
|
||||
dirmode=""
|
||||
dirmode=
|
||||
|
||||
usage="\
|
||||
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
|
||||
|
@ -103,13 +103,21 @@ esac
|
|||
|
||||
for file
|
||||
do
|
||||
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
|
||||
case $file in
|
||||
/*) pathcomp=/ ;;
|
||||
*) pathcomp= ;;
|
||||
esac
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
set fnord $file
|
||||
shift
|
||||
IFS=$oIFS
|
||||
|
||||
pathcomp=
|
||||
for d
|
||||
do
|
||||
pathcomp="$pathcomp$d"
|
||||
test "x$d" = x && continue
|
||||
|
||||
pathcomp=$pathcomp$d
|
||||
case $pathcomp in
|
||||
-*) pathcomp=./$pathcomp ;;
|
||||
esac
|
||||
|
@ -124,7 +132,7 @@ do
|
|||
else
|
||||
if test ! -z "$dirmode"; then
|
||||
echo "chmod $dirmode $pathcomp"
|
||||
lasterr=""
|
||||
lasterr=
|
||||
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
||||
|
||||
if test ! -z "$lasterr"; then
|
||||
|
@ -134,7 +142,7 @@ do
|
|||
fi
|
||||
fi
|
||||
|
||||
pathcomp="$pathcomp/"
|
||||
pathcomp=$pathcomp/
|
||||
done
|
||||
done
|
||||
|
||||
|
|
|
@ -848,7 +848,7 @@
|
|||
|
||||
/* If using the C implementation of alloca, define if you know the
|
||||
direction of stack growth for your system; otherwise it will be
|
||||
automatically deduced at run-time.
|
||||
automatically deduced at runtime.
|
||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||
|
@ -1061,7 +1061,7 @@
|
|||
supported. Do not define if restrict is supported directly. */
|
||||
#undef restrict
|
||||
|
||||
/* Define to `unsigned' if <sys/types.h> does not define. */
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
||||
|
||||
/* type to use in place of socklen_t if not defined */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_REVISION ($Revision: 1801 $)
|
||||
AC_REVISION ($Revision: 1873 $)
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT(nagios-plugins,1.4.10)
|
||||
AC_INIT(nagios-plugins,1.4.11)
|
||||
AC_CONFIG_SRCDIR(NPTest.pm)
|
||||
AC_CONFIG_FILES(gl/Makefile)
|
||||
AC_CONFIG_AUX_DIR(build-aux)
|
||||
|
@ -155,7 +155,7 @@ AC_SUBST(MATHLIBS)
|
|||
|
||||
dnl Check for libtap, to run perl-like tests
|
||||
AC_CHECK_LIB(tap, plan_tests,
|
||||
EXTRA_TEST="test_utils test_disk test_tcp test_cmd"
|
||||
EXTRA_TEST="test_utils test_disk test_tcp test_cmd test_base64"
|
||||
AC_SUBST(EXTRA_TEST)
|
||||
)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
|
@ -27,8 +27,6 @@
|
|||
|
||||
|
||||
|
||||
SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES)
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
@ -194,6 +192,7 @@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
|
|||
GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
|
||||
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
|
||||
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
|
||||
|
@ -233,7 +232,6 @@ LTLIBINTL = @LTLIBINTL@
|
|||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MATHLIBS = @MATHLIBS@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
|
@ -311,12 +309,9 @@ WCTYPE_H = @WCTYPE_H@
|
|||
WINT_T_SUFFIX = @WINT_T_SUFFIX@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
|
@ -334,6 +329,9 @@ build_os = @build_os@
|
|||
build_vendor = @build_vendor@
|
||||
check_tcp_ssl = @check_tcp_ssl@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
gl_LIBOBJS = @gl_LIBOBJS@
|
||||
gl_LTLIBOBJS = @gl_LTLIBOBJS@
|
||||
|
@ -342,6 +340,7 @@ host_alias = @host_alias@
|
|||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
|
@ -353,8 +352,10 @@ mandir = @mandir@
|
|||
mkdir_p = @mkdir_p@
|
||||
np_mysql_config = @np_mysql_config@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
|
|
|
@ -5,11 +5,11 @@ SUBDIRS = tests
|
|||
noinst_LIBRARIES = libnagiosplug.a
|
||||
|
||||
|
||||
libnagiosplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c utils_cmd.c
|
||||
EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h
|
||||
libnagiosplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c utils_cmd.c base64.c
|
||||
EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h base64.h
|
||||
|
||||
INCLUDES = -I$(srcdir) -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins
|
||||
|
||||
test:
|
||||
cd tests && make test
|
||||
test test-debug:
|
||||
cd tests && make $@
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
|
@ -14,8 +14,6 @@
|
|||
|
||||
@SET_MAKE@
|
||||
|
||||
SOURCES = $(libnagiosplug_a_SOURCES)
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
@ -105,7 +103,7 @@ ARFLAGS = cru
|
|||
libnagiosplug_a_AR = $(AR) $(ARFLAGS)
|
||||
libnagiosplug_a_LIBADD =
|
||||
am_libnagiosplug_a_OBJECTS = utils_base.$(OBJEXT) utils_disk.$(OBJEXT) \
|
||||
utils_tcp.$(OBJEXT) utils_cmd.$(OBJEXT)
|
||||
utils_tcp.$(OBJEXT) utils_cmd.$(OBJEXT) base64.$(OBJEXT)
|
||||
libnagiosplug_a_OBJECTS = $(am_libnagiosplug_a_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
|
||||
|
@ -185,6 +183,7 @@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
|
|||
GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
|
||||
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
|
||||
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
|
||||
|
@ -224,7 +223,6 @@ LTLIBINTL = @LTLIBINTL@
|
|||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MATHLIBS = @MATHLIBS@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
|
@ -302,12 +300,9 @@ WCTYPE_H = @WCTYPE_H@
|
|||
WINT_T_SUFFIX = @WINT_T_SUFFIX@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
|
@ -325,6 +320,9 @@ build_os = @build_os@
|
|||
build_vendor = @build_vendor@
|
||||
check_tcp_ssl = @check_tcp_ssl@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
gl_LIBOBJS = @gl_LIBOBJS@
|
||||
gl_LTLIBOBJS = @gl_LTLIBOBJS@
|
||||
|
@ -333,6 +331,7 @@ host_alias = @host_alias@
|
|||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
|
@ -344,8 +343,10 @@ mandir = @mandir@
|
|||
mkdir_p = @mkdir_p@
|
||||
np_mysql_config = @np_mysql_config@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
|
@ -353,8 +354,8 @@ target_alias = @target_alias@
|
|||
with_trusted_path = @with_trusted_path@
|
||||
SUBDIRS = tests
|
||||
noinst_LIBRARIES = libnagiosplug.a
|
||||
libnagiosplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c utils_cmd.c
|
||||
EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h
|
||||
libnagiosplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c utils_cmd.c base64.c
|
||||
EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h base64.h
|
||||
INCLUDES = -I$(srcdir) -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins
|
||||
all: all-recursive
|
||||
|
||||
|
@ -403,6 +404,7 @@ mostlyclean-compile:
|
|||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_base.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_cmd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_disk.Po@am__quote@
|
||||
|
@ -710,8 +712,8 @@ uninstall-info: uninstall-info-recursive
|
|||
tags tags-recursive uninstall uninstall-am uninstall-info-am
|
||||
|
||||
|
||||
test:
|
||||
cd tests && make test
|
||||
test test-debug:
|
||||
cd tests && make $@
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
|
50
lib/base64.c
Normal file
50
lib/base64.c
Normal file
|
@ -0,0 +1,50 @@
|
|||
/****************************************************************************
|
||||
* Function to encode in Base64
|
||||
*
|
||||
* Written by Lauri Alanko
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#include "common.h"
|
||||
#include "base64.h"
|
||||
|
||||
char *
|
||||
base64 (const char *bin, size_t len)
|
||||
{
|
||||
|
||||
char *buf = (char *) malloc ((len + 2) / 3 * 4 + 1);
|
||||
size_t i = 0, j = 0;
|
||||
|
||||
char BASE64_END = '=';
|
||||
char base64_table[64];
|
||||
strncpy (base64_table, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", 64);
|
||||
|
||||
while (j < len - 2) {
|
||||
buf[i++] = base64_table[bin[j] >> 2];
|
||||
buf[i++] = base64_table[((bin[j] & 3) << 4) | (bin[j + 1] >> 4)];
|
||||
buf[i++] = base64_table[((bin[j + 1] & 15) << 2) | (bin[j + 2] >> 6)];
|
||||
buf[i++] = base64_table[bin[j + 2] & 63];
|
||||
j += 3;
|
||||
}
|
||||
|
||||
switch (len - j) {
|
||||
case 1:
|
||||
buf[i++] = base64_table[bin[j] >> 2];
|
||||
buf[i++] = base64_table[(bin[j] & 3) << 4];
|
||||
buf[i++] = BASE64_END;
|
||||
buf[i++] = BASE64_END;
|
||||
break;
|
||||
case 2:
|
||||
buf[i++] = base64_table[bin[j] >> 2];
|
||||
buf[i++] = base64_table[((bin[j] & 3) << 4) | (bin[j + 1] >> 4)];
|
||||
buf[i++] = base64_table[(bin[j + 1] & 15) << 2];
|
||||
buf[i++] = BASE64_END;
|
||||
break;
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
|
||||
buf[i] = '\0';
|
||||
return buf;
|
||||
}
|
||||
|
4
lib/base64.h
Normal file
4
lib/base64.h
Normal file
|
@ -0,0 +1,4 @@
|
|||
/* Header file for base64.c */
|
||||
|
||||
char *base64 (const char *bin, size_t len);
|
||||
|
|
@ -7,9 +7,9 @@ check_PROGRAMS = @EXTRA_TEST@
|
|||
|
||||
INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins
|
||||
|
||||
EXTRA_PROGRAMS = test_utils test_disk test_tcp test_cmd
|
||||
EXTRA_PROGRAMS = test_utils test_disk test_tcp test_cmd test_base64
|
||||
|
||||
EXTRA_DIST = test_utils.t test_disk.t test_tcp.t test_cmd.t
|
||||
EXTRA_DIST = test_utils.t test_disk.t test_tcp.t test_cmd.t test_base64.t
|
||||
|
||||
LIBS = @LIBINTL@
|
||||
|
||||
|
@ -33,6 +33,14 @@ test_cmd_CFLAGS = -g -I..
|
|||
test_cmd_LDFLAGS = -L/usr/local/lib -ltap
|
||||
test_cmd_LDADD = ../utils_cmd.o ../utils_base.o
|
||||
|
||||
test_base64_SOURCES = test_base64.c
|
||||
test_base64_CFLAGS = -g -I..
|
||||
test_base64_LDFLAGS = -L/usr/local/lib -ltap
|
||||
test_base64_LDADD = ../base64.o
|
||||
|
||||
test: ${noinst_PROGRAMS}
|
||||
perl -MTest::Harness -e '$$Test::Harness::switches=""; runtests(map {$$_ .= ".t"} @ARGV)' $(EXTRA_PROGRAMS)
|
||||
|
||||
test-debug: ${noinst_PROGRAMS}
|
||||
perl -MTest::Harness -e '$$Test::Harness::verbose=1; $$Test::Harness::switches=""; runtests(map {$$_ .= ".t"} @ARGV)' $(EXTRA_PROGRAMS)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
|
@ -14,8 +14,6 @@
|
|||
|
||||
@SET_MAKE@
|
||||
|
||||
SOURCES = $(test_cmd_SOURCES) $(test_disk_SOURCES) $(test_tcp_SOURCES) $(test_utils_SOURCES)
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
@ -40,7 +38,7 @@ host_triplet = @host@
|
|||
noinst_PROGRAMS = @EXTRA_TEST@
|
||||
check_PROGRAMS = @EXTRA_TEST@
|
||||
EXTRA_PROGRAMS = test_utils$(EXEEXT) test_disk$(EXEEXT) \
|
||||
test_tcp$(EXEEXT) test_cmd$(EXEEXT)
|
||||
test_tcp$(EXEEXT) test_cmd$(EXEEXT) test_base64$(EXEEXT)
|
||||
subdir = lib/tests
|
||||
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
|
@ -105,6 +103,9 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
|
|||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
PROGRAMS = $(noinst_PROGRAMS)
|
||||
am_test_base64_OBJECTS = test_base64-test_base64.$(OBJEXT)
|
||||
test_base64_OBJECTS = $(am_test_base64_OBJECTS)
|
||||
test_base64_DEPENDENCIES = ../base64.o
|
||||
am_test_cmd_OBJECTS = test_cmd-test_cmd.$(OBJEXT)
|
||||
test_cmd_OBJECTS = $(am_test_cmd_OBJECTS)
|
||||
test_cmd_DEPENDENCIES = ../utils_cmd.o ../utils_base.o
|
||||
|
@ -128,10 +129,10 @@ LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
|
|||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = $(test_cmd_SOURCES) $(test_disk_SOURCES) $(test_tcp_SOURCES) \
|
||||
$(test_utils_SOURCES)
|
||||
DIST_SOURCES = $(test_cmd_SOURCES) $(test_disk_SOURCES) \
|
||||
$(test_tcp_SOURCES) $(test_utils_SOURCES)
|
||||
SOURCES = $(test_base64_SOURCES) $(test_cmd_SOURCES) \
|
||||
$(test_disk_SOURCES) $(test_tcp_SOURCES) $(test_utils_SOURCES)
|
||||
DIST_SOURCES = $(test_base64_SOURCES) $(test_cmd_SOURCES) \
|
||||
$(test_disk_SOURCES) $(test_tcp_SOURCES) $(test_utils_SOURCES)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
@ -190,6 +191,7 @@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
|
|||
GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
|
||||
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
|
||||
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
|
||||
|
@ -229,7 +231,6 @@ LTLIBINTL = @LTLIBINTL@
|
|||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MATHLIBS = @MATHLIBS@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
|
@ -307,12 +308,9 @@ WCTYPE_H = @WCTYPE_H@
|
|||
WINT_T_SUFFIX = @WINT_T_SUFFIX@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
|
@ -330,6 +328,9 @@ build_os = @build_os@
|
|||
build_vendor = @build_vendor@
|
||||
check_tcp_ssl = @check_tcp_ssl@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
gl_LIBOBJS = @gl_LIBOBJS@
|
||||
gl_LTLIBOBJS = @gl_LTLIBOBJS@
|
||||
|
@ -338,6 +339,7 @@ host_alias = @host_alias@
|
|||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
|
@ -349,8 +351,10 @@ mandir = @mandir@
|
|||
mkdir_p = @mkdir_p@
|
||||
np_mysql_config = @np_mysql_config@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
|
@ -360,7 +364,7 @@ with_trusted_path = @with_trusted_path@
|
|||
# These two lines support "make check", but we use "make test"
|
||||
TESTS = @EXTRA_TEST@
|
||||
INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins
|
||||
EXTRA_DIST = test_utils.t test_disk.t test_tcp.t test_cmd.t
|
||||
EXTRA_DIST = test_utils.t test_disk.t test_tcp.t test_cmd.t test_base64.t
|
||||
test_utils_SOURCES = test_utils.c
|
||||
test_utils_CFLAGS = -g -I..
|
||||
test_utils_LDFLAGS = -L/usr/local/lib -ltap
|
||||
|
@ -377,6 +381,10 @@ test_cmd_SOURCES = test_cmd.c
|
|||
test_cmd_CFLAGS = -g -I..
|
||||
test_cmd_LDFLAGS = -L/usr/local/lib -ltap
|
||||
test_cmd_LDADD = ../utils_cmd.o ../utils_base.o
|
||||
test_base64_SOURCES = test_base64.c
|
||||
test_base64_CFLAGS = -g -I..
|
||||
test_base64_LDFLAGS = -L/usr/local/lib -ltap
|
||||
test_base64_LDADD = ../base64.o
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
|
@ -424,6 +432,9 @@ clean-noinstPROGRAMS:
|
|||
echo " rm -f $$p $$f"; \
|
||||
rm -f $$p $$f ; \
|
||||
done
|
||||
test_base64$(EXEEXT): $(test_base64_OBJECTS) $(test_base64_DEPENDENCIES)
|
||||
@rm -f test_base64$(EXEEXT)
|
||||
$(LINK) $(test_base64_LDFLAGS) $(test_base64_OBJECTS) $(test_base64_LDADD) $(LIBS)
|
||||
test_cmd$(EXEEXT): $(test_cmd_OBJECTS) $(test_cmd_DEPENDENCIES)
|
||||
@rm -f test_cmd$(EXEEXT)
|
||||
$(LINK) $(test_cmd_LDFLAGS) $(test_cmd_OBJECTS) $(test_cmd_LDADD) $(LIBS)
|
||||
|
@ -443,6 +454,7 @@ mostlyclean-compile:
|
|||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_base64-test_base64.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cmd-test_cmd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_disk-test_disk.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_tcp-test_tcp.Po@am__quote@
|
||||
|
@ -469,6 +481,20 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
test_base64-test_base64.o: test_base64.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_base64_CFLAGS) $(CFLAGS) -MT test_base64-test_base64.o -MD -MP -MF "$(DEPDIR)/test_base64-test_base64.Tpo" -c -o test_base64-test_base64.o `test -f 'test_base64.c' || echo '$(srcdir)/'`test_base64.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_base64-test_base64.Tpo" "$(DEPDIR)/test_base64-test_base64.Po"; else rm -f "$(DEPDIR)/test_base64-test_base64.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test_base64.c' object='test_base64-test_base64.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_base64_CFLAGS) $(CFLAGS) -c -o test_base64-test_base64.o `test -f 'test_base64.c' || echo '$(srcdir)/'`test_base64.c
|
||||
|
||||
test_base64-test_base64.obj: test_base64.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_base64_CFLAGS) $(CFLAGS) -MT test_base64-test_base64.obj -MD -MP -MF "$(DEPDIR)/test_base64-test_base64.Tpo" -c -o test_base64-test_base64.obj `if test -f 'test_base64.c'; then $(CYGPATH_W) 'test_base64.c'; else $(CYGPATH_W) '$(srcdir)/test_base64.c'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_base64-test_base64.Tpo" "$(DEPDIR)/test_base64-test_base64.Po"; else rm -f "$(DEPDIR)/test_base64-test_base64.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test_base64.c' object='test_base64-test_base64.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_base64_CFLAGS) $(CFLAGS) -c -o test_base64-test_base64.obj `if test -f 'test_base64.c'; then $(CYGPATH_W) 'test_base64.c'; else $(CYGPATH_W) '$(srcdir)/test_base64.c'; fi`
|
||||
|
||||
test_cmd-test_cmd.o: test_cmd.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmd_CFLAGS) $(CFLAGS) -MT test_cmd-test_cmd.o -MD -MP -MF "$(DEPDIR)/test_cmd-test_cmd.Tpo" -c -o test_cmd-test_cmd.o `test -f 'test_cmd.c' || echo '$(srcdir)/'`test_cmd.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_cmd-test_cmd.Tpo" "$(DEPDIR)/test_cmd-test_cmd.Po"; else rm -f "$(DEPDIR)/test_cmd-test_cmd.Tpo"; exit 1; fi
|
||||
|
@ -779,6 +805,9 @@ uninstall-am: uninstall-info-am
|
|||
|
||||
test: ${noinst_PROGRAMS}
|
||||
perl -MTest::Harness -e '$$Test::Harness::switches=""; runtests(map {$$_ .= ".t"} @ARGV)' $(EXTRA_PROGRAMS)
|
||||
|
||||
test-debug: ${noinst_PROGRAMS}
|
||||
perl -MTest::Harness -e '$$Test::Harness::verbose=1; $$Test::Harness::switches=""; runtests(map {$$_ .= ".t"} @ARGV)' $(EXTRA_PROGRAMS)
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
|
351
lib/tests/test_base64.c
Normal file
351
lib/tests/test_base64.c
Normal file
|
@ -0,0 +1,351 @@
|
|||
/******************************************************************************
|
||||
|
||||
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
|
||||
(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: test_base64.c 1819 2007-11-09 23:24:45Z dermoth $
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
#include "common.h"
|
||||
#include "base64.h"
|
||||
#include "tap.h"
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
#if 0 /* The current base64 function doesn't work on 8bit data */
|
||||
char random[1024] = {
|
||||
0x8b,0xb0,0xc4,0xe2,0xfc,0x22,0x9f,0x0d,0x85,0xe7,0x2c,0xaa,0x39,0xa1,0x46,0x88,
|
||||
0x50,0xe6,0x34,0x37,0x0b,0x45,0x4b,0xb8,0xb2,0x86,0x7a,0x3e,0x7f,0x0c,0x40,0x18,
|
||||
0x6b,0xad,0xe0,0x4c,0x60,0x8c,0xa3,0xc3,0x3b,0x3e,0x9b,0x16,0x84,0xc6,0xd8,0x3f,
|
||||
0x40,0xea,0x91,0x85,0xe3,0x71,0x94,0xb5,0xc7,0xf9,0x13,0xef,0x6b,0xa7,0x18,0x5b,
|
||||
0x48,0xa7,0xbe,0xef,0x95,0xb3,0xcf,0xbe,0x5e,0x51,0xf3,0x68,0x25,0x8f,0x06,0x5b,
|
||||
0xfc,0xf2,0xf5,0x3e,0x3f,0x1b,0x5c,0x6d,0xea,0x39,0xfc,0xe3,0xe3,0xe0,0xec,0xfa,
|
||||
0xb3,0x76,0x52,0x13,0xa5,0x33,0xfd,0x65,0xa3,0xa7,0x91,0x86,0x06,0xc7,0x71,0x9e,
|
||||
0x14,0x74,0x63,0x70,0xad,0x15,0xa7,0x18,0xd1,0x06,0x85,0x33,0x91,0x2c,0x6b,0x80,
|
||||
0x2d,0xf7,0x20,0xc8,0x8d,0xf3,0x51,0x45,0xa5,0x7f,0x7f,0xb5,0xa6,0xae,0x26,0x53,
|
||||
0xa4,0x68,0x1e,0x0e,0xd8,0x3a,0x59,0x50,0xd6,0xb7,0x5f,0xe6,0x01,0x4c,0xda,0xe4,
|
||||
0x32,0xd0,0xfb,0xea,0xa0,0x72,0x2b,0x9d,0x7e,0x43,0xfb,0xe1,0x42,0x0b,0xe1,0x73,
|
||||
0xa4,0xf9,0x3a,0x6b,0x4a,0xf9,0x6e,0x89,0x0f,0xa7,0xad,0x8c,0xde,0x32,0x4b,0x0d,
|
||||
0x79,0xc6,0x39,0xa1,0x0a,0x26,0xdf,0x3a,0x80,0x26,0x3f,0x13,0xae,0xfe,0x50,0x2b,
|
||||
0xe7,0xc6,0xf2,0x3f,0xbb,0x01,0xc6,0x9b,0x0b,0x35,0xc9,0xb9,0x99,0xf0,0x3d,0x82,
|
||||
0x41,0x8e,0x38,0x85,0xf6,0x65,0xcf,0xb1,0x6c,0xde,0x97,0x04,0x15,0x36,0xa6,0x64,
|
||||
0xb4,0x94,0x17,0xfc,0x0e,0x0b,0xdb,0x55,0xd3,0x6b,0x80,0x42,0x41,0xcf,0x82,0x5c,
|
||||
0x13,0x8a,0x2c,0xac,0x3e,0x90,0x94,0xb3,0x45,0xfc,0xfa,0xda,0xb1,0xe1,0xb9,0x88,
|
||||
0xa2,0xea,0x9e,0x0f,0xef,0x9b,0x6c,0x13,0xde,0x79,0xa0,0xf9,0xd0,0xe2,0x06,0xac,
|
||||
0xf6,0x97,0x04,0xab,0xaa,0xf5,0x9f,0x8c,0x37,0xce,0x8f,0xfb,0x2d,0x34,0x75,0xe0,
|
||||
0x31,0xf4,0xae,0x8a,0x4a,0x11,0xec,0xc9,0xa5,0x81,0x3a,0x3d,0xa2,0x9e,0xed,0x18,
|
||||
0x51,0x78,0xad,0xe2,0x31,0xcc,0x50,0x40,0x97,0xcb,0x6f,0xa2,0x80,0x7f,0xe1,0x2a,
|
||||
0x34,0xbe,0x00,0x5f,0x2f,0x5f,0xaf,0x94,0x2a,0xd5,0x27,0x9f,0x46,0x9f,0x92,0x46,
|
||||
0x5e,0x1e,0x0c,0x7c,0xb8,0x81,0xe1,0xe4,0xf6,0x22,0x6e,0x08,0x20,0xb8,0x4f,0x73,
|
||||
0x72,0x55,0x92,0xc2,0x99,0x50,0xe1,0xc3,0xf7,0x7d,0xc1,0xae,0x35,0x4f,0xbd,0xb1,
|
||||
0x28,0xd8,0x67,0x9b,0x03,0xd1,0xa0,0xb2,0x9c,0x88,0xee,0x37,0xf5,0xb7,0x44,0xcf,
|
||||
0x68,0x19,0x87,0x64,0x14,0xa8,0x25,0xab,0x69,0xb5,0x98,0x27,0x26,0x14,0x93,0xf0,
|
||||
0x42,0x19,0x12,0x75,0x3e,0x02,0x5d,0x7c,0x93,0x9f,0x96,0xd3,0xbb,0x74,0xc8,0xbc,
|
||||
0xde,0xb9,0x6c,0x9c,0x9c,0xf4,0xb9,0x9f,0x80,0x9b,0x06,0x8a,0xe8,0xbb,0xd2,0x4f,
|
||||
0x9e,0xee,0xbc,0x35,0x8c,0xb8,0x0e,0x0b,0xbb,0x9a,0xf6,0x23,0xa9,0xd3,0x9e,0xdf,
|
||||
0xc1,0x0c,0x4b,0x0a,0x65,0xa8,0x78,0x67,0x48,0x59,0xa6,0x6d,0xb1,0xf6,0xa3,0x70,
|
||||
0xe1,0x64,0x3b,0xb8,0x79,0x66,0xf4,0xd3,0xac,0x64,0xe4,0x54,0x83,0x54,0x65,0xc4,
|
||||
0x4c,0x98,0xcf,0x48,0x20,0x4f,0xf2,0x90,0xbf,0x8c,0x52,0x2d,0x03,0x14,0x83,0xd1,
|
||||
0x42,0x90,0x77,0xea,0x34,0x06,0x32,0x83,0xf2,0x14,0xfc,0x88,0x5d,0xd2,0x9a,0xe2,
|
||||
0x7c,0x3e,0x30,0xfe,0x5f,0x7f,0xd4,0x0f,0x44,0x49,0x5d,0x5e,0x90,0x6a,0x86,0x2b,
|
||||
0x86,0xd3,0x90,0x39,0xb7,0x32,0x4a,0x4e,0x3d,0x2b,0xe5,0xb8,0x39,0x87,0x72,0xd4,
|
||||
0xe4,0x4d,0xd6,0x6a,0x03,0xa2,0x70,0xfb,0x5f,0xe0,0x8b,0xaa,0x8b,0x6b,0x10,0x64,
|
||||
0x94,0x85,0x22,0x80,0x73,0xc0,0x23,0xdb,0xd1,0x9f,0x2b,0x9a,0xdd,0xe9,0xfa,0xc6,
|
||||
0x0c,0x5f,0xb2,0xcb,0xca,0x28,0xd2,0xf9,0x5b,0x92,0x42,0x98,0x80,0xdd,0x27,0xb1,
|
||||
0xd3,0x3c,0x4c,0xb6,0x4e,0x38,0x3f,0x72,0x83,0x71,0x02,0x5b,0xb6,0xd9,0xff,0x75,
|
||||
0xee,0x88,0xd4,0x8d,0xb4,0x1c,0x34,0xd7,0xdd,0xe9,0x48,0x80,0x3b,0x85,0x07,0xee,
|
||||
0x27,0xe5,0x6e,0xc0,0xbd,0x3a,0xcf,0xf2,0x5d,0xb9,0x16,0x0f,0xe3,0x92,0x92,0x15,
|
||||
0x3a,0x70,0x0d,0x57,0x98,0x8d,0xde,0xbd,0xa2,0x68,0x68,0x7c,0x6d,0x4f,0x8c,0xfb,
|
||||
0x89,0x2d,0x4a,0x73,0xa0,0x47,0x07,0xd7,0x75,0x5d,0x53,0x70,0x34,0x21,0x40,0x57,
|
||||
0x51,0xde,0xc9,0xc4,0x80,0xd4,0x27,0x84,0x68,0xfe,0x59,0x56,0xd8,0xf4,0x14,0xbc,
|
||||
0x96,0xb3,0x41,0x96,0x4b,0xaf,0x49,0x37,0x0a,0x54,0x88,0x08,0x1f,0x39,0x67,0xf6,
|
||||
0xa8,0xa8,0x87,0x9d,0xe1,0xc7,0xd1,0x4d,0x75,0x26,0xd2,0xc7,0xc7,0x8c,0x57,0xd8,
|
||||
0x74,0x3e,0xe2,0xec,0xd8,0xba,0xc4,0x9e,0x96,0xae,0xa1,0x1c,0x73,0xc5,0x67,0x74,
|
||||
0x4f,0x33,0xe6,0x0e,0x74,0xe6,0x26,0x1f,0x2e,0x38,0xc4,0x40,0x7e,0xaa,0xd0,0x52,
|
||||
0xde,0xc3,0x81,0x7a,0xb8,0x49,0xbc,0x55,0x4d,0x5a,0xc4,0x08,0x26,0x59,0xcd,0x45,
|
||||
0x8b,0x48,0x0a,0x33,0xde,0xca,0xcd,0x75,0x16,0x97,0xe3,0xc6,0x81,0x2a,0xd5,0xfb,
|
||||
0x8f,0x82,0xf3,0x6a,0x4b,0xff,0xf5,0x65,0xbc,0x4c,0xb3,0x39,0xec,0xf4,0x85,0x60,
|
||||
0x0f,0xff,0x2d,0x41,0x4d,0x4d,0xc6,0xf1,0x89,0x6f,0x4f,0xe0,0x15,0x0f,0x46,0xf3,
|
||||
0xe3,0xcc,0xde,0x74,0x30,0x8d,0x28,0x43,0x88,0x72,0xb2,0x04,0xae,0x31,0x29,0xa7,
|
||||
0x44,0x6d,0x93,0x97,0xc8,0x8f,0x49,0x52,0x10,0x93,0x7f,0x97,0x96,0xe2,0x79,0x35,
|
||||
0x78,0xbe,0x81,0x7c,0xae,0x0f,0x76,0xbe,0x5e,0x53,0x6c,0x5b,0x5f,0x7c,0x99,0x41,
|
||||
0x82,0xaf,0x97,0x64,0x41,0x75,0x90,0x04,0x47,0xfc,0xbd,0x4b,0xd2,0x80,0x10,0x5d,
|
||||
0x51,0x4e,0x7a,0xa7,0x25,0xd5,0xc0,0x12,0x35,0x60,0x05,0x1b,0x34,0xad,0x84,0x7a,
|
||||
0x6a,0x69,0x82,0x79,0x83,0xba,0x2f,0x06,0x8a,0x79,0x7b,0x12,0x5d,0x7c,0x52,0xa9,
|
||||
0xc7,0xd8,0x12,0x73,0x3f,0x27,0xd6,0x05,0x8c,0x48,0xb2,0x58,0xeb,0x57,0xdc,0x83,
|
||||
0x64,0xd6,0x91,0xd2,0x7a,0xb0,0xb6,0x29,0x17,0x3b,0x68,0xfa,0xfc,0x85,0x6b,0xeb,
|
||||
0x13,0xea,0xa4,0x5c,0x68,0x42,0x98,0xb2,0x83,0xf3,0xee,0x84,0x21,0xae,0x81,0x84,
|
||||
0xe3,0x7d,0x44,0xc1,0x12,0xb1,0x0b,0x95,0x9f,0x70,0x80,0xae,0xe6,0x94,0x3c,0x7f,
|
||||
0xab,0x00,0x9f,0x0c,0xa8,0x59,0x0a,0x96,0xc9,0x5a,0x5c,0xe4,0xe5,0xcb,0x91,0x29,
|
||||
0x15,0xb6,0x5a,0xe5,0x19,0xcf,0x60,0x23,0xba,0x3a,0x93,0x25,0x02,0x78,0xcc,0x54
|
||||
};
|
||||
|
||||
char b64_known[1368] = {
|
||||
0x69,0x37,0x44,0x45,0x34,0x76,0x77,0x69,0x6e,0x77,0x32,0x46,0x35,0x79,0x79,0x71,
|
||||
0x4f,0x61,0x46,0x47,0x69,0x46,0x44,0x6d,0x4e,0x44,0x63,0x4c,0x52,0x55,0x75,0x34,
|
||||
0x73,0x6f,0x5a,0x36,0x50,0x6e,0x38,0x4d,0x51,0x42,0x68,0x72,0x72,0x65,0x42,0x4d,
|
||||
0x59,0x49,0x79,0x6a,0x77,0x7a,0x73,0x2b,0x6d,0x78,0x61,0x45,0x78,0x74,0x67,0x2f,
|
||||
0x51,0x4f,0x71,0x52,0x68,0x65,0x4e,0x78,0x6c,0x4c,0x58,0x48,0x2b,0x52,0x50,0x76,
|
||||
0x61,0x36,0x63,0x59,0x57,0x30,0x69,0x6e,0x76,0x75,0x2b,0x56,0x73,0x38,0x2b,0x2b,
|
||||
0x58,0x6c,0x48,0x7a,0x61,0x43,0x57,0x50,0x42,0x6c,0x76,0x38,0x38,0x76,0x55,0x2b,
|
||||
0x50,0x78,0x74,0x63,0x62,0x65,0x6f,0x35,0x2f,0x4f,0x50,0x6a,0x34,0x4f,0x7a,0x36,
|
||||
0x73,0x33,0x5a,0x53,0x45,0x36,0x55,0x7a,0x2f,0x57,0x57,0x6a,0x70,0x35,0x47,0x47,
|
||||
0x42,0x73,0x64,0x78,0x6e,0x68,0x52,0x30,0x59,0x33,0x43,0x74,0x46,0x61,0x63,0x59,
|
||||
0x30,0x51,0x61,0x46,0x4d,0x35,0x45,0x73,0x61,0x34,0x41,0x74,0x39,0x79,0x44,0x49,
|
||||
0x6a,0x66,0x4e,0x52,0x52,0x61,0x56,0x2f,0x66,0x37,0x57,0x6d,0x72,0x69,0x5a,0x54,
|
||||
0x70,0x47,0x67,0x65,0x44,0x74,0x67,0x36,0x57,0x56,0x44,0x57,0x74,0x31,0x2f,0x6d,
|
||||
0x41,0x55,0x7a,0x61,0x35,0x44,0x4c,0x51,0x2b,0x2b,0x71,0x67,0x63,0x69,0x75,0x64,
|
||||
0x66,0x6b,0x50,0x37,0x34,0x55,0x49,0x4c,0x34,0x58,0x4f,0x6b,0x2b,0x54,0x70,0x72,
|
||||
0x53,0x76,0x6c,0x75,0x69,0x51,0x2b,0x6e,0x72,0x59,0x7a,0x65,0x4d,0x6b,0x73,0x4e,
|
||||
0x65,0x63,0x59,0x35,0x6f,0x51,0x6f,0x6d,0x33,0x7a,0x71,0x41,0x4a,0x6a,0x38,0x54,
|
||||
0x72,0x76,0x35,0x51,0x4b,0x2b,0x66,0x47,0x38,0x6a,0x2b,0x37,0x41,0x63,0x61,0x62,
|
||||
0x43,0x7a,0x58,0x4a,0x75,0x5a,0x6e,0x77,0x50,0x59,0x4a,0x42,0x6a,0x6a,0x69,0x46,
|
||||
0x39,0x6d,0x58,0x50,0x73,0x57,0x7a,0x65,0x6c,0x77,0x51,0x56,0x4e,0x71,0x5a,0x6b,
|
||||
0x74,0x4a,0x51,0x58,0x2f,0x41,0x34,0x4c,0x32,0x31,0x58,0x54,0x61,0x34,0x42,0x43,
|
||||
0x51,0x63,0x2b,0x43,0x58,0x42,0x4f,0x4b,0x4c,0x4b,0x77,0x2b,0x6b,0x4a,0x53,0x7a,
|
||||
0x52,0x66,0x7a,0x36,0x32,0x72,0x48,0x68,0x75,0x59,0x69,0x69,0x36,0x70,0x34,0x50,
|
||||
0x37,0x35,0x74,0x73,0x45,0x39,0x35,0x35,0x6f,0x50,0x6e,0x51,0x34,0x67,0x61,0x73,
|
||||
0x39,0x70,0x63,0x45,0x71,0x36,0x72,0x31,0x6e,0x34,0x77,0x33,0x7a,0x6f,0x2f,0x37,
|
||||
0x4c,0x54,0x52,0x31,0x34,0x44,0x48,0x30,0x72,0x6f,0x70,0x4b,0x45,0x65,0x7a,0x4a,
|
||||
0x70,0x59,0x45,0x36,0x50,0x61,0x4b,0x65,0x37,0x52,0x68,0x52,0x65,0x4b,0x33,0x69,
|
||||
0x4d,0x63,0x78,0x51,0x51,0x4a,0x66,0x4c,0x62,0x36,0x4b,0x41,0x66,0x2b,0x45,0x71,
|
||||
0x4e,0x4c,0x34,0x41,0x58,0x79,0x39,0x66,0x72,0x35,0x51,0x71,0x31,0x53,0x65,0x66,
|
||||
0x52,0x70,0x2b,0x53,0x52,0x6c,0x34,0x65,0x44,0x48,0x79,0x34,0x67,0x65,0x48,0x6b,
|
||||
0x39,0x69,0x4a,0x75,0x43,0x43,0x43,0x34,0x54,0x33,0x4e,0x79,0x56,0x5a,0x4c,0x43,
|
||||
0x6d,0x56,0x44,0x68,0x77,0x2f,0x64,0x39,0x77,0x61,0x34,0x31,0x54,0x37,0x32,0x78,
|
||||
0x4b,0x4e,0x68,0x6e,0x6d,0x77,0x50,0x52,0x6f,0x4c,0x4b,0x63,0x69,0x4f,0x34,0x33,
|
||||
0x39,0x62,0x64,0x45,0x7a,0x32,0x67,0x5a,0x68,0x32,0x51,0x55,0x71,0x43,0x57,0x72,
|
||||
0x61,0x62,0x57,0x59,0x4a,0x79,0x59,0x55,0x6b,0x2f,0x42,0x43,0x47,0x52,0x4a,0x31,
|
||||
0x50,0x67,0x4a,0x64,0x66,0x4a,0x4f,0x66,0x6c,0x74,0x4f,0x37,0x64,0x4d,0x69,0x38,
|
||||
0x33,0x72,0x6c,0x73,0x6e,0x4a,0x7a,0x30,0x75,0x5a,0x2b,0x41,0x6d,0x77,0x61,0x4b,
|
||||
0x36,0x4c,0x76,0x53,0x54,0x35,0x37,0x75,0x76,0x44,0x57,0x4d,0x75,0x41,0x34,0x4c,
|
||||
0x75,0x35,0x72,0x32,0x49,0x36,0x6e,0x54,0x6e,0x74,0x2f,0x42,0x44,0x45,0x73,0x4b,
|
||||
0x5a,0x61,0x68,0x34,0x5a,0x30,0x68,0x5a,0x70,0x6d,0x32,0x78,0x39,0x71,0x4e,0x77,
|
||||
0x34,0x57,0x51,0x37,0x75,0x48,0x6c,0x6d,0x39,0x4e,0x4f,0x73,0x5a,0x4f,0x52,0x55,
|
||||
0x67,0x31,0x52,0x6c,0x78,0x45,0x79,0x59,0x7a,0x30,0x67,0x67,0x54,0x2f,0x4b,0x51,
|
||||
0x76,0x34,0x78,0x53,0x4c,0x51,0x4d,0x55,0x67,0x39,0x46,0x43,0x6b,0x48,0x66,0x71,
|
||||
0x4e,0x41,0x59,0x79,0x67,0x2f,0x49,0x55,0x2f,0x49,0x68,0x64,0x30,0x70,0x72,0x69,
|
||||
0x66,0x44,0x34,0x77,0x2f,0x6c,0x39,0x2f,0x31,0x41,0x39,0x45,0x53,0x56,0x31,0x65,
|
||||
0x6b,0x47,0x71,0x47,0x4b,0x34,0x62,0x54,0x6b,0x44,0x6d,0x33,0x4d,0x6b,0x70,0x4f,
|
||||
0x50,0x53,0x76,0x6c,0x75,0x44,0x6d,0x48,0x63,0x74,0x54,0x6b,0x54,0x64,0x5a,0x71,
|
||||
0x41,0x36,0x4a,0x77,0x2b,0x31,0x2f,0x67,0x69,0x36,0x71,0x4c,0x61,0x78,0x42,0x6b,
|
||||
0x6c,0x49,0x55,0x69,0x67,0x48,0x50,0x41,0x49,0x39,0x76,0x52,0x6e,0x79,0x75,0x61,
|
||||
0x33,0x65,0x6e,0x36,0x78,0x67,0x78,0x66,0x73,0x73,0x76,0x4b,0x4b,0x4e,0x4c,0x35,
|
||||
0x57,0x35,0x4a,0x43,0x6d,0x49,0x44,0x64,0x4a,0x37,0x48,0x54,0x50,0x45,0x79,0x32,
|
||||
0x54,0x6a,0x67,0x2f,0x63,0x6f,0x4e,0x78,0x41,0x6c,0x75,0x32,0x32,0x66,0x39,0x31,
|
||||
0x37,0x6f,0x6a,0x55,0x6a,0x62,0x51,0x63,0x4e,0x4e,0x66,0x64,0x36,0x55,0x69,0x41,
|
||||
0x4f,0x34,0x55,0x48,0x37,0x69,0x66,0x6c,0x62,0x73,0x43,0x39,0x4f,0x73,0x2f,0x79,
|
||||
0x58,0x62,0x6b,0x57,0x44,0x2b,0x4f,0x53,0x6b,0x68,0x55,0x36,0x63,0x41,0x31,0x58,
|
||||
0x6d,0x49,0x33,0x65,0x76,0x61,0x4a,0x6f,0x61,0x48,0x78,0x74,0x54,0x34,0x7a,0x37,
|
||||
0x69,0x53,0x31,0x4b,0x63,0x36,0x42,0x48,0x42,0x39,0x64,0x31,0x58,0x56,0x4e,0x77,
|
||||
0x4e,0x43,0x46,0x41,0x56,0x31,0x48,0x65,0x79,0x63,0x53,0x41,0x31,0x43,0x65,0x45,
|
||||
0x61,0x50,0x35,0x5a,0x56,0x74,0x6a,0x30,0x46,0x4c,0x79,0x57,0x73,0x30,0x47,0x57,
|
||||
0x53,0x36,0x39,0x4a,0x4e,0x77,0x70,0x55,0x69,0x41,0x67,0x66,0x4f,0x57,0x66,0x32,
|
||||
0x71,0x4b,0x69,0x48,0x6e,0x65,0x48,0x48,0x30,0x55,0x31,0x31,0x4a,0x74,0x4c,0x48,
|
||||
0x78,0x34,0x78,0x58,0x32,0x48,0x51,0x2b,0x34,0x75,0x7a,0x59,0x75,0x73,0x53,0x65,
|
||||
0x6c,0x71,0x36,0x68,0x48,0x48,0x50,0x46,0x5a,0x33,0x52,0x50,0x4d,0x2b,0x59,0x4f,
|
||||
0x64,0x4f,0x59,0x6d,0x48,0x79,0x34,0x34,0x78,0x45,0x42,0x2b,0x71,0x74,0x42,0x53,
|
||||
0x33,0x73,0x4f,0x42,0x65,0x72,0x68,0x4a,0x76,0x46,0x56,0x4e,0x57,0x73,0x51,0x49,
|
||||
0x4a,0x6c,0x6e,0x4e,0x52,0x59,0x74,0x49,0x43,0x6a,0x50,0x65,0x79,0x73,0x31,0x31,
|
||||
0x46,0x70,0x66,0x6a,0x78,0x6f,0x45,0x71,0x31,0x66,0x75,0x50,0x67,0x76,0x4e,0x71,
|
||||
0x53,0x2f,0x2f,0x31,0x5a,0x62,0x78,0x4d,0x73,0x7a,0x6e,0x73,0x39,0x49,0x56,0x67,
|
||||
0x44,0x2f,0x38,0x74,0x51,0x55,0x31,0x4e,0x78,0x76,0x47,0x4a,0x62,0x30,0x2f,0x67,
|
||||
0x46,0x51,0x39,0x47,0x38,0x2b,0x50,0x4d,0x33,0x6e,0x51,0x77,0x6a,0x53,0x68,0x44,
|
||||
0x69,0x48,0x4b,0x79,0x42,0x4b,0x34,0x78,0x4b,0x61,0x64,0x45,0x62,0x5a,0x4f,0x58,
|
||||
0x79,0x49,0x39,0x4a,0x55,0x68,0x43,0x54,0x66,0x35,0x65,0x57,0x34,0x6e,0x6b,0x31,
|
||||
0x65,0x4c,0x36,0x42,0x66,0x4b,0x34,0x50,0x64,0x72,0x35,0x65,0x55,0x32,0x78,0x62,
|
||||
0x58,0x33,0x79,0x5a,0x51,0x59,0x4b,0x76,0x6c,0x32,0x52,0x42,0x64,0x5a,0x41,0x45,
|
||||
0x52,0x2f,0x79,0x39,0x53,0x39,0x4b,0x41,0x45,0x46,0x31,0x52,0x54,0x6e,0x71,0x6e,
|
||||
0x4a,0x64,0x58,0x41,0x45,0x6a,0x56,0x67,0x42,0x52,0x73,0x30,0x72,0x59,0x52,0x36,
|
||||
0x61,0x6d,0x6d,0x43,0x65,0x59,0x4f,0x36,0x4c,0x77,0x61,0x4b,0x65,0x58,0x73,0x53,
|
||||
0x58,0x58,0x78,0x53,0x71,0x63,0x66,0x59,0x45,0x6e,0x4d,0x2f,0x4a,0x39,0x59,0x46,
|
||||
0x6a,0x45,0x69,0x79,0x57,0x4f,0x74,0x58,0x33,0x49,0x4e,0x6b,0x31,0x70,0x48,0x53,
|
||||
0x65,0x72,0x43,0x32,0x4b,0x52,0x63,0x37,0x61,0x50,0x72,0x38,0x68,0x57,0x76,0x72,
|
||||
0x45,0x2b,0x71,0x6b,0x58,0x47,0x68,0x43,0x6d,0x4c,0x4b,0x44,0x38,0x2b,0x36,0x45,
|
||||
0x49,0x61,0x36,0x42,0x68,0x4f,0x4e,0x39,0x52,0x4d,0x45,0x53,0x73,0x51,0x75,0x56,
|
||||
0x6e,0x33,0x43,0x41,0x72,0x75,0x61,0x55,0x50,0x48,0x2b,0x72,0x41,0x4a,0x38,0x4d,
|
||||
0x71,0x46,0x6b,0x4b,0x6c,0x73,0x6c,0x61,0x58,0x4f,0x54,0x6c,0x79,0x35,0x45,0x70,
|
||||
0x46,0x62,0x5a,0x61,0x35,0x52,0x6e,0x50,0x59,0x43,0x4f,0x36,0x4f,0x70,0x4d,0x6c,
|
||||
0x41,0x6e,0x6a,0x4d,0x56,0x41,0x3d,0x3d
|
||||
};
|
||||
#endif
|
||||
|
||||
char random[1024] = {
|
||||
0x0b,0x30,0x44,0x62,0x7c,0x22,0x1f,0x0d,0x05,0x67,0x2c,0x2a,0x39,0x21,0x46,0x08,
|
||||
0x50,0x66,0x34,0x37,0x0b,0x45,0x4b,0x38,0x32,0x06,0x7a,0x3e,0x7f,0x0c,0x40,0x18,
|
||||
0x6b,0x2d,0x60,0x4c,0x60,0x0c,0x23,0x43,0x3b,0x3e,0x1b,0x16,0x04,0x46,0x58,0x3f,
|
||||
0x40,0x6a,0x11,0x05,0x63,0x71,0x14,0x35,0x47,0x79,0x13,0x6f,0x6b,0x27,0x18,0x5b,
|
||||
0x48,0x27,0x3e,0x6f,0x15,0x33,0x4f,0x3e,0x5e,0x51,0x73,0x68,0x25,0x0f,0x06,0x5b,
|
||||
0x7c,0x72,0x75,0x3e,0x3f,0x1b,0x5c,0x6d,0x6a,0x39,0x7c,0x63,0x63,0x60,0x6c,0x7a,
|
||||
0x33,0x76,0x52,0x13,0x25,0x33,0x7d,0x65,0x23,0x27,0x11,0x06,0x06,0x47,0x71,0x1e,
|
||||
0x14,0x74,0x63,0x70,0x2d,0x15,0x27,0x18,0x51,0x06,0x05,0x33,0x11,0x2c,0x6b,0x00,
|
||||
0x2d,0x77,0x20,0x48,0x0d,0x73,0x51,0x45,0x25,0x7f,0x7f,0x35,0x26,0x2e,0x26,0x53,
|
||||
0x24,0x68,0x1e,0x0e,0x58,0x3a,0x59,0x50,0x56,0x37,0x5f,0x66,0x01,0x4c,0x5a,0x64,
|
||||
0x32,0x50,0x7b,0x6a,0x20,0x72,0x2b,0x1d,0x7e,0x43,0x7b,0x61,0x42,0x0b,0x61,0x73,
|
||||
0x24,0x79,0x3a,0x6b,0x4a,0x79,0x6e,0x09,0x0f,0x27,0x2d,0x0c,0x5e,0x32,0x4b,0x0d,
|
||||
0x79,0x46,0x39,0x21,0x0a,0x26,0x5f,0x3a,0x00,0x26,0x3f,0x13,0x2e,0x7e,0x50,0x2b,
|
||||
0x67,0x46,0x72,0x3f,0x3b,0x01,0x46,0x1b,0x0b,0x35,0x49,0x39,0x19,0x70,0x3d,0x02,
|
||||
0x41,0x0e,0x38,0x05,0x76,0x65,0x4f,0x31,0x6c,0x5e,0x17,0x04,0x15,0x36,0x26,0x64,
|
||||
0x34,0x14,0x17,0x7c,0x0e,0x0b,0x5b,0x55,0x53,0x6b,0x00,0x42,0x41,0x4f,0x02,0x5c,
|
||||
0x13,0x0a,0x2c,0x2c,0x3e,0x10,0x14,0x33,0x45,0x7c,0x7a,0x5a,0x31,0x61,0x39,0x08,
|
||||
0x22,0x6a,0x1e,0x0f,0x6f,0x1b,0x6c,0x13,0x5e,0x79,0x20,0x79,0x50,0x62,0x06,0x2c,
|
||||
0x76,0x17,0x04,0x2b,0x2a,0x75,0x1f,0x0c,0x37,0x4e,0x0f,0x7b,0x2d,0x34,0x75,0x60,
|
||||
0x31,0x74,0x2e,0x0a,0x4a,0x11,0x6c,0x49,0x25,0x01,0x3a,0x3d,0x22,0x1e,0x6d,0x18,
|
||||
0x51,0x78,0x2d,0x62,0x31,0x4c,0x50,0x40,0x17,0x4b,0x6f,0x22,0x00,0x7f,0x61,0x2a,
|
||||
0x34,0x3e,0x00,0x5f,0x2f,0x5f,0x2f,0x14,0x2a,0x55,0x27,0x1f,0x46,0x1f,0x12,0x46,
|
||||
0x5e,0x1e,0x0c,0x7c,0x38,0x01,0x61,0x64,0x76,0x22,0x6e,0x08,0x20,0x38,0x4f,0x73,
|
||||
0x72,0x55,0x12,0x42,0x19,0x50,0x61,0x43,0x77,0x7d,0x41,0x2e,0x35,0x4f,0x3d,0x31,
|
||||
0x28,0x58,0x67,0x1b,0x03,0x51,0x20,0x32,0x1c,0x08,0x6e,0x37,0x75,0x37,0x44,0x4f,
|
||||
0x68,0x19,0x07,0x64,0x14,0x28,0x25,0x2b,0x69,0x35,0x18,0x27,0x26,0x14,0x13,0x70,
|
||||
0x42,0x19,0x12,0x75,0x3e,0x02,0x5d,0x7c,0x13,0x1f,0x16,0x53,0x3b,0x74,0x48,0x3c,
|
||||
0x5e,0x39,0x6c,0x1c,0x1c,0x74,0x39,0x1f,0x00,0x1b,0x06,0x0a,0x68,0x3b,0x52,0x4f,
|
||||
0x1e,0x6e,0x3c,0x35,0x0c,0x38,0x0e,0x0b,0x3b,0x1a,0x76,0x23,0x29,0x53,0x1e,0x5f,
|
||||
0x41,0x0c,0x4b,0x0a,0x65,0x28,0x78,0x67,0x48,0x59,0x26,0x6d,0x31,0x76,0x23,0x70,
|
||||
0x61,0x64,0x3b,0x38,0x79,0x66,0x74,0x53,0x2c,0x64,0x64,0x54,0x03,0x54,0x65,0x44,
|
||||
0x4c,0x18,0x4f,0x48,0x20,0x4f,0x72,0x10,0x3f,0x0c,0x52,0x2d,0x03,0x14,0x03,0x51,
|
||||
0x42,0x10,0x77,0x6a,0x34,0x06,0x32,0x03,0x72,0x14,0x7c,0x08,0x5d,0x52,0x1a,0x62,
|
||||
0x7c,0x3e,0x30,0x7e,0x5f,0x7f,0x54,0x0f,0x44,0x49,0x5d,0x5e,0x10,0x6a,0x06,0x2b,
|
||||
0x06,0x53,0x10,0x39,0x37,0x32,0x4a,0x4e,0x3d,0x2b,0x65,0x38,0x39,0x07,0x72,0x54,
|
||||
0x64,0x4d,0x56,0x6a,0x03,0x22,0x70,0x7b,0x5f,0x60,0x0b,0x2a,0x0b,0x6b,0x10,0x64,
|
||||
0x14,0x05,0x22,0x00,0x73,0x40,0x23,0x5b,0x51,0x1f,0x2b,0x1a,0x5d,0x69,0x7a,0x46,
|
||||
0x0c,0x5f,0x32,0x4b,0x4a,0x28,0x52,0x79,0x5b,0x12,0x42,0x18,0x00,0x5d,0x27,0x31,
|
||||
0x53,0x3c,0x4c,0x36,0x4e,0x38,0x3f,0x72,0x03,0x71,0x02,0x5b,0x36,0x59,0x7f,0x75,
|
||||
0x6e,0x08,0x54,0x0d,0x34,0x1c,0x34,0x57,0x5d,0x69,0x48,0x00,0x3b,0x05,0x07,0x6e,
|
||||
0x27,0x65,0x6e,0x40,0x3d,0x3a,0x4f,0x72,0x5d,0x39,0x16,0x0f,0x63,0x12,0x12,0x15,
|
||||
0x3a,0x70,0x0d,0x57,0x18,0x0d,0x5e,0x3d,0x22,0x68,0x68,0x7c,0x6d,0x4f,0x0c,0x7b,
|
||||
0x09,0x2d,0x4a,0x73,0x20,0x47,0x07,0x57,0x75,0x5d,0x53,0x70,0x34,0x21,0x40,0x57,
|
||||
0x51,0x5e,0x49,0x44,0x00,0x54,0x27,0x04,0x68,0x7e,0x59,0x56,0x58,0x74,0x14,0x3c,
|
||||
0x16,0x33,0x41,0x16,0x4b,0x2f,0x49,0x37,0x0a,0x54,0x08,0x08,0x1f,0x39,0x67,0x76,
|
||||
0x28,0x28,0x07,0x1d,0x61,0x47,0x51,0x4d,0x75,0x26,0x52,0x47,0x47,0x0c,0x57,0x58,
|
||||
0x74,0x3e,0x62,0x6c,0x58,0x3a,0x44,0x1e,0x16,0x2e,0x21,0x1c,0x73,0x45,0x67,0x74,
|
||||
0x4f,0x33,0x66,0x0e,0x74,0x66,0x26,0x1f,0x2e,0x38,0x44,0x40,0x7e,0x2a,0x50,0x52,
|
||||
0x5e,0x43,0x01,0x7a,0x38,0x49,0x3c,0x55,0x4d,0x5a,0x44,0x08,0x26,0x59,0x4d,0x45,
|
||||
0x0b,0x48,0x0a,0x33,0x5e,0x4a,0x4d,0x75,0x16,0x17,0x63,0x46,0x01,0x2a,0x55,0x7b,
|
||||
0x0f,0x02,0x73,0x6a,0x4b,0x7f,0x75,0x65,0x3c,0x4c,0x33,0x39,0x6c,0x74,0x05,0x60,
|
||||
0x0f,0x7f,0x2d,0x41,0x4d,0x4d,0x46,0x71,0x09,0x6f,0x4f,0x60,0x15,0x0f,0x46,0x73,
|
||||
0x63,0x4c,0x5e,0x74,0x30,0x0d,0x28,0x43,0x08,0x72,0x32,0x04,0x2e,0x31,0x29,0x27,
|
||||
0x44,0x6d,0x13,0x17,0x48,0x0f,0x49,0x52,0x10,0x13,0x7f,0x17,0x16,0x62,0x79,0x35,
|
||||
0x78,0x3e,0x01,0x7c,0x2e,0x0f,0x76,0x3e,0x5e,0x53,0x6c,0x5b,0x5f,0x7c,0x19,0x41,
|
||||
0x02,0x2f,0x17,0x64,0x41,0x75,0x10,0x04,0x47,0x7c,0x3d,0x4b,0x52,0x00,0x10,0x5d,
|
||||
0x51,0x4e,0x7a,0x27,0x25,0x55,0x40,0x12,0x35,0x60,0x05,0x1b,0x34,0x2d,0x04,0x7a,
|
||||
0x6a,0x69,0x02,0x79,0x03,0x3a,0x2f,0x06,0x0a,0x79,0x7b,0x12,0x5d,0x7c,0x52,0x29,
|
||||
0x47,0x58,0x12,0x73,0x3f,0x27,0x56,0x05,0x0c,0x48,0x32,0x58,0x6b,0x57,0x5c,0x03,
|
||||
0x64,0x56,0x11,0x52,0x7a,0x30,0x36,0x29,0x17,0x3b,0x68,0x7a,0x7c,0x05,0x6b,0x6b,
|
||||
0x13,0x6a,0x24,0x5c,0x68,0x42,0x18,0x32,0x03,0x73,0x6e,0x04,0x21,0x2e,0x01,0x04,
|
||||
0x63,0x7d,0x44,0x41,0x12,0x31,0x0b,0x15,0x1f,0x70,0x00,0x2e,0x66,0x14,0x3c,0x7f,
|
||||
0x2b,0x00,0x1f,0x0c,0x28,0x59,0x0a,0x16,0x49,0x5a,0x5c,0x64,0x65,0x4b,0x11,0x29,
|
||||
0x15,0x36,0x5a,0x65,0x19,0x4f,0x60,0x23,0x3a,0x3a,0x13,0x25,0x02,0x78,0x4c,0x54
|
||||
};
|
||||
char b64_known[1368] = {
|
||||
0x43,0x7a,0x42,0x45,0x59,0x6e,0x77,0x69,0x48,0x77,0x30,0x46,0x5a,0x79,0x77,0x71,
|
||||
0x4f,0x53,0x46,0x47,0x43,0x46,0x42,0x6d,0x4e,0x44,0x63,0x4c,0x52,0x55,0x73,0x34,
|
||||
0x4d,0x67,0x5a,0x36,0x50,0x6e,0x38,0x4d,0x51,0x42,0x68,0x72,0x4c,0x57,0x42,0x4d,
|
||||
0x59,0x41,0x77,0x6a,0x51,0x7a,0x73,0x2b,0x47,0x78,0x59,0x45,0x52,0x6c,0x67,0x2f,
|
||||
0x51,0x47,0x6f,0x52,0x42,0x57,0x4e,0x78,0x46,0x44,0x56,0x48,0x65,0x52,0x4e,0x76,
|
||||
0x61,0x79,0x63,0x59,0x57,0x30,0x67,0x6e,0x50,0x6d,0x38,0x56,0x4d,0x30,0x38,0x2b,
|
||||
0x58,0x6c,0x46,0x7a,0x61,0x43,0x55,0x50,0x42,0x6c,0x74,0x38,0x63,0x6e,0x55,0x2b,
|
||||
0x50,0x78,0x74,0x63,0x62,0x57,0x6f,0x35,0x66,0x47,0x4e,0x6a,0x59,0x47,0x78,0x36,
|
||||
0x4d,0x33,0x5a,0x53,0x45,0x79,0x55,0x7a,0x66,0x57,0x55,0x6a,0x4a,0x78,0x45,0x47,
|
||||
0x42,0x6b,0x64,0x78,0x48,0x68,0x52,0x30,0x59,0x33,0x41,0x74,0x46,0x53,0x63,0x59,
|
||||
0x55,0x51,0x59,0x46,0x4d,0x78,0x45,0x73,0x61,0x77,0x41,0x74,0x64,0x79,0x42,0x49,
|
||||
0x44,0x58,0x4e,0x52,0x52,0x53,0x56,0x2f,0x66,0x7a,0x55,0x6d,0x4c,0x69,0x5a,0x54,
|
||||
0x4a,0x47,0x67,0x65,0x44,0x6c,0x67,0x36,0x57,0x56,0x42,0x57,0x4e,0x31,0x39,0x6d,
|
||||
0x41,0x55,0x78,0x61,0x5a,0x44,0x4a,0x51,0x65,0x32,0x6f,0x67,0x63,0x69,0x73,0x64,
|
||||
0x66,0x6b,0x4e,0x37,0x59,0x55,0x49,0x4c,0x59,0x58,0x4d,0x6b,0x65,0x54,0x70,0x72,
|
||||
0x53,0x6e,0x6c,0x75,0x43,0x51,0x38,0x6e,0x4c,0x51,0x78,0x65,0x4d,0x6b,0x73,0x4e,
|
||||
0x65,0x55,0x59,0x35,0x49,0x51,0x6f,0x6d,0x58,0x7a,0x6f,0x41,0x4a,0x6a,0x38,0x54,
|
||||
0x4c,0x6e,0x35,0x51,0x4b,0x32,0x64,0x47,0x63,0x6a,0x38,0x37,0x41,0x55,0x59,0x62,
|
||||
0x43,0x7a,0x56,0x4a,0x4f,0x52,0x6c,0x77,0x50,0x51,0x4a,0x42,0x44,0x6a,0x67,0x46,
|
||||
0x64,0x6d,0x56,0x50,0x4d,0x57,0x78,0x65,0x46,0x77,0x51,0x56,0x4e,0x69,0x5a,0x6b,
|
||||
0x4e,0x42,0x51,0x58,0x66,0x41,0x34,0x4c,0x57,0x31,0x56,0x54,0x61,0x77,0x42,0x43,
|
||||
0x51,0x55,0x38,0x43,0x58,0x42,0x4d,0x4b,0x4c,0x43,0x77,0x2b,0x45,0x42,0x51,0x7a,
|
||||
0x52,0x58,0x78,0x36,0x57,0x6a,0x46,0x68,0x4f,0x51,0x67,0x69,0x61,0x68,0x34,0x50,
|
||||
0x62,0x78,0x74,0x73,0x45,0x31,0x35,0x35,0x49,0x48,0x6c,0x51,0x59,0x67,0x59,0x73,
|
||||
0x64,0x68,0x63,0x45,0x4b,0x79,0x70,0x31,0x48,0x77,0x77,0x33,0x54,0x67,0x39,0x37,
|
||||
0x4c,0x54,0x52,0x31,0x59,0x44,0x46,0x30,0x4c,0x67,0x70,0x4b,0x45,0x57,0x78,0x4a,
|
||||
0x4a,0x51,0x45,0x36,0x50,0x53,0x49,0x65,0x62,0x52,0x68,0x52,0x65,0x43,0x31,0x69,
|
||||
0x4d,0x55,0x78,0x51,0x51,0x42,0x64,0x4c,0x62,0x79,0x49,0x41,0x66,0x32,0x45,0x71,
|
||||
0x4e,0x44,0x34,0x41,0x58,0x79,0x39,0x66,0x4c,0x78,0x51,0x71,0x56,0x53,0x63,0x66,
|
||||
0x52,0x68,0x38,0x53,0x52,0x6c,0x34,0x65,0x44,0x48,0x77,0x34,0x41,0x57,0x46,0x6b,
|
||||
0x64,0x69,0x4a,0x75,0x43,0x43,0x41,0x34,0x54,0x33,0x4e,0x79,0x56,0x52,0x4a,0x43,
|
||||
0x47,0x56,0x42,0x68,0x51,0x33,0x64,0x39,0x51,0x53,0x34,0x31,0x54,0x7a,0x30,0x78,
|
||||
0x4b,0x46,0x68,0x6e,0x47,0x77,0x4e,0x52,0x49,0x44,0x49,0x63,0x43,0x47,0x34,0x33,
|
||||
0x64,0x54,0x64,0x45,0x54,0x32,0x67,0x5a,0x42,0x32,0x51,0x55,0x4b,0x43,0x55,0x72,
|
||||
0x61,0x54,0x55,0x59,0x4a,0x79,0x59,0x55,0x45,0x33,0x42,0x43,0x47,0x52,0x4a,0x31,
|
||||
0x50,0x67,0x4a,0x64,0x66,0x42,0x4d,0x66,0x46,0x6c,0x4d,0x37,0x64,0x45,0x67,0x38,
|
||||
0x58,0x6a,0x6c,0x73,0x48,0x42,0x78,0x30,0x4f,0x52,0x38,0x41,0x47,0x77,0x59,0x4b,
|
||||
0x61,0x44,0x74,0x53,0x54,0x78,0x35,0x75,0x50,0x44,0x55,0x4d,0x4f,0x41,0x34,0x4c,
|
||||
0x4f,0x78,0x70,0x32,0x49,0x79,0x6c,0x54,0x48,0x6c,0x39,0x42,0x44,0x45,0x73,0x4b,
|
||||
0x5a,0x53,0x68,0x34,0x5a,0x30,0x68,0x5a,0x4a,0x6d,0x30,0x78,0x64,0x69,0x4e,0x77,
|
||||
0x59,0x57,0x51,0x37,0x4f,0x48,0x6c,0x6d,0x64,0x46,0x4d,0x73,0x5a,0x47,0x52,0x55,
|
||||
0x41,0x31,0x52,0x6c,0x52,0x45,0x77,0x59,0x54,0x30,0x67,0x67,0x54,0x33,0x49,0x51,
|
||||
0x50,0x77,0x78,0x53,0x4c,0x51,0x4d,0x55,0x41,0x31,0x46,0x43,0x45,0x48,0x64,0x71,
|
||||
0x4e,0x41,0x59,0x79,0x41,0x33,0x49,0x55,0x66,0x41,0x68,0x64,0x55,0x68,0x70,0x69,
|
||||
0x66,0x44,0x34,0x77,0x66,0x6c,0x39,0x2f,0x56,0x41,0x39,0x45,0x53,0x56,0x31,0x65,
|
||||
0x45,0x47,0x6f,0x47,0x4b,0x77,0x5a,0x54,0x45,0x44,0x6b,0x33,0x4d,0x6b,0x70,0x4f,
|
||||
0x50,0x53,0x74,0x6c,0x4f,0x44,0x6b,0x48,0x63,0x6c,0x52,0x6b,0x54,0x56,0x5a,0x71,
|
||||
0x41,0x79,0x4a,0x77,0x65,0x31,0x39,0x67,0x43,0x79,0x6f,0x4c,0x61,0x78,0x42,0x6b,
|
||||
0x46,0x41,0x55,0x69,0x41,0x48,0x4e,0x41,0x49,0x31,0x74,0x52,0x48,0x79,0x73,0x61,
|
||||
0x58,0x57,0x6c,0x36,0x52,0x67,0x78,0x66,0x4d,0x6b,0x74,0x4b,0x4b,0x46,0x4a,0x35,
|
||||
0x57,0x78,0x4a,0x43,0x47,0x41,0x42,0x64,0x4a,0x7a,0x46,0x54,0x50,0x45,0x77,0x32,
|
||||
0x54,0x6a,0x67,0x2f,0x63,0x67,0x4e,0x78,0x41,0x6c,0x73,0x32,0x57,0x58,0x39,0x31,
|
||||
0x62,0x67,0x68,0x55,0x44,0x54,0x51,0x63,0x4e,0x46,0x64,0x64,0x61,0x55,0x67,0x41,
|
||||
0x4f,0x77,0x55,0x48,0x62,0x69,0x64,0x6c,0x62,0x6b,0x41,0x39,0x4f,0x6b,0x39,0x79,
|
||||
0x58,0x54,0x6b,0x57,0x44,0x32,0x4d,0x53,0x45,0x68,0x55,0x36,0x63,0x41,0x31,0x58,
|
||||
0x47,0x41,0x31,0x65,0x50,0x53,0x4a,0x6f,0x61,0x48,0x78,0x74,0x54,0x77,0x78,0x37,
|
||||
0x43,0x53,0x31,0x4b,0x63,0x79,0x42,0x48,0x42,0x31,0x64,0x31,0x58,0x56,0x4e,0x77,
|
||||
0x4e,0x43,0x46,0x41,0x56,0x31,0x46,0x65,0x53,0x55,0x51,0x41,0x56,0x43,0x63,0x45,
|
||||
0x61,0x48,0x35,0x5a,0x56,0x6c,0x68,0x30,0x46,0x44,0x77,0x57,0x4d,0x30,0x45,0x57,
|
||||
0x53,0x79,0x39,0x4a,0x4e,0x77,0x70,0x55,0x43,0x41,0x67,0x66,0x4f,0x57,0x64,0x32,
|
||||
0x4b,0x43,0x67,0x48,0x48,0x57,0x46,0x48,0x55,0x55,0x31,0x31,0x4a,0x6c,0x4a,0x48,
|
||||
0x52,0x77,0x78,0x58,0x57,0x48,0x51,0x2b,0x59,0x6d,0x78,0x59,0x4f,0x6b,0x51,0x65,
|
||||
0x46,0x69,0x34,0x68,0x48,0x48,0x4e,0x46,0x5a,0x33,0x52,0x50,0x4d,0x32,0x59,0x4f,
|
||||
0x64,0x47,0x59,0x6d,0x48,0x79,0x34,0x34,0x52,0x45,0x42,0x2b,0x4b,0x6c,0x42,0x53,
|
||||
0x58,0x6b,0x4d,0x42,0x65,0x6a,0x68,0x4a,0x50,0x46,0x56,0x4e,0x57,0x6b,0x51,0x49,
|
||||
0x4a,0x6c,0x6c,0x4e,0x52,0x51,0x74,0x49,0x43,0x6a,0x4e,0x65,0x53,0x6b,0x31,0x31,
|
||||
0x46,0x68,0x64,0x6a,0x52,0x67,0x45,0x71,0x56,0x58,0x73,0x50,0x41,0x6e,0x4e,0x71,
|
||||
0x53,0x33,0x39,0x31,0x5a,0x54,0x78,0x4d,0x4d,0x7a,0x6c,0x73,0x64,0x41,0x56,0x67,
|
||||
0x44,0x33,0x38,0x74,0x51,0x55,0x31,0x4e,0x52,0x6e,0x45,0x4a,0x62,0x30,0x39,0x67,
|
||||
0x46,0x51,0x39,0x47,0x63,0x32,0x4e,0x4d,0x58,0x6e,0x51,0x77,0x44,0x53,0x68,0x44,
|
||||
0x43,0x48,0x49,0x79,0x42,0x43,0x34,0x78,0x4b,0x53,0x64,0x45,0x62,0x52,0x4d,0x58,
|
||||
0x53,0x41,0x39,0x4a,0x55,0x68,0x41,0x54,0x66,0x78,0x63,0x57,0x59,0x6e,0x6b,0x31,
|
||||
0x65,0x44,0x34,0x42,0x66,0x43,0x34,0x50,0x64,0x6a,0x35,0x65,0x55,0x32,0x78,0x62,
|
||||
0x58,0x33,0x77,0x5a,0x51,0x51,0x49,0x76,0x46,0x32,0x52,0x42,0x64,0x52,0x41,0x45,
|
||||
0x52,0x33,0x77,0x39,0x53,0x31,0x49,0x41,0x45,0x46,0x31,0x52,0x54,0x6e,0x6f,0x6e,
|
||||
0x4a,0x56,0x56,0x41,0x45,0x6a,0x56,0x67,0x42,0x52,0x73,0x30,0x4c,0x51,0x52,0x36,
|
||||
0x61,0x6d,0x6b,0x43,0x65,0x51,0x4d,0x36,0x4c,0x77,0x59,0x4b,0x65,0x58,0x73,0x53,
|
||||
0x58,0x58,0x78,0x53,0x4b,0x55,0x64,0x59,0x45,0x6e,0x4d,0x2f,0x4a,0x31,0x59,0x46,
|
||||
0x44,0x45,0x67,0x79,0x57,0x47,0x74,0x58,0x58,0x41,0x4e,0x6b,0x56,0x68,0x46,0x53,
|
||||
0x65,0x6a,0x41,0x32,0x4b,0x52,0x63,0x37,0x61,0x48,0x70,0x38,0x42,0x57,0x74,0x72,
|
||||
0x45,0x32,0x6f,0x6b,0x58,0x47,0x68,0x43,0x47,0x44,0x49,0x44,0x63,0x32,0x34,0x45,
|
||||
0x49,0x53,0x34,0x42,0x42,0x47,0x4e,0x39,0x52,0x45,0x45,0x53,0x4d,0x51,0x73,0x56,
|
||||
0x48,0x33,0x41,0x41,0x4c,0x6d,0x59,0x55,0x50,0x48,0x38,0x72,0x41,0x42,0x38,0x4d,
|
||||
0x4b,0x46,0x6b,0x4b,0x46,0x6b,0x6c,0x61,0x58,0x47,0x52,0x6c,0x53,0x78,0x45,0x70,
|
||||
0x46,0x54,0x5a,0x61,0x5a,0x52,0x6c,0x50,0x59,0x43,0x4d,0x36,0x4f,0x68,0x4d,0x6c,
|
||||
0x41,0x6e,0x68,0x4d,0x56,0x41,0x3d,0x3d
|
||||
};
|
||||
char *b64_test;
|
||||
|
||||
plan_tests(1);
|
||||
|
||||
b64_test = base64 (random, 1024);
|
||||
|
||||
ok(strcmp(b64_known, b64_test) == 0,
|
||||
"Test matching a base64 encoded 1024 bytes random string");
|
||||
|
||||
return exit_status();
|
||||
}
|
||||
|
6
lib/tests/test_base64.t
Executable file
6
lib/tests/test_base64.t
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
use Test::More;
|
||||
if (! -e "./test_base64") {
|
||||
plan skip_all => "./test_base64 not compiled - please install tap library to test";
|
||||
}
|
||||
exec "./test_base64";
|
|
@ -51,7 +51,7 @@ main (int argc, char **argv)
|
|||
int c;
|
||||
int result = UNSET;
|
||||
|
||||
plan_tests(47);
|
||||
plan_tests(50);
|
||||
|
||||
diag ("Running plain echo command, set one");
|
||||
|
||||
|
@ -194,17 +194,32 @@ main (int argc, char **argv)
|
|||
result = UNSET;
|
||||
|
||||
command = (char *)malloc(COMMAND_LINE);
|
||||
strcpy(command, "/bin/grep pattern non-existant-file");
|
||||
strcpy(command, "/bin/sh non-existant-file");
|
||||
result = cmd_run (command, &chld_out, &chld_err, 0);
|
||||
|
||||
ok (chld_out.lines == 0,
|
||||
"Grep returns no stdout when file is missing...");
|
||||
"/bin/sh returns no stdout when file is missing...");
|
||||
ok (chld_err.lines == 1,
|
||||
"...but does give an error line");
|
||||
ok (strstr(chld_err.line[0],"non-existant-file") != NULL, "And missing filename is in error message");
|
||||
ok (result == 2, "Get return code 2 from grep");
|
||||
ok (result == 127, "Get return code 127 from /bin/sh");
|
||||
|
||||
|
||||
/* ensure everything is empty again */
|
||||
memset (&chld_out, 0, sizeof (output));
|
||||
memset (&chld_err, 0, sizeof (output));
|
||||
result = UNSET;
|
||||
|
||||
command = (char *)malloc(COMMAND_LINE);
|
||||
strcpy(command, "/bin/non-existant-command");
|
||||
result = cmd_run (command, &chld_out, &chld_err, 0);
|
||||
|
||||
ok (chld_out.lines == 0,
|
||||
"/bin/non-existant-command returns no stdout...");
|
||||
ok (chld_err.lines == 0,
|
||||
"...and no stderr output either");
|
||||
ok (result == 3, "Get return code 3 = UNKNOWN when command does not exist");
|
||||
|
||||
|
||||
return exit_status ();
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Header file for utils_disk */
|
||||
/* Header file for utils_tcp */
|
||||
|
||||
int np_expect_match(char* status, char** server_expect, int server_expect_count,
|
||||
int all, int exact_match, int verbose);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Name: nagios-plugins
|
||||
Version: 1.4.10
|
||||
Version: 1.4.11
|
||||
Release: 1
|
||||
Summary: Host/service/network monitoring program plugins for Nagios
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# perlmods/Makefile. Generated from Makefile.in by configure.
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
|
@ -140,10 +140,10 @@ ECHO = echo
|
|||
ECHO_C =
|
||||
ECHO_N = -n
|
||||
ECHO_T =
|
||||
EGREP = grep -E
|
||||
EGREP = /bin/grep -E
|
||||
EOVERFLOW =
|
||||
EXEEXT =
|
||||
EXTRAS = check_ldap check_ide_smart check_mysql check_mysql_query check_procs check_nagios check_dns check_by_ssh check_swap check_dig check_apt check_nt
|
||||
EXTRAS = check_ldap check_ide_smart check_procs check_nagios check_dns check_by_ssh check_swap check_dig check_apt check_nt
|
||||
EXTRAS_ROOT =
|
||||
EXTRA_NETOBJS =
|
||||
EXTRA_TEST =
|
||||
|
@ -154,7 +154,8 @@ GETOPT_H =
|
|||
GL_COND_LIBTOOL_FALSE =
|
||||
GL_COND_LIBTOOL_TRUE = #
|
||||
GMSGFMT = /usr/bin/msgfmt
|
||||
GMSGFMT_015 = :
|
||||
GMSGFMT_015 = /usr/bin/msgfmt
|
||||
GREP = /bin/grep
|
||||
HAVE_INTTYPES_H = 1
|
||||
HAVE_LONG_LONG_INT = 1
|
||||
HAVE_SIGNED_SIG_ATOMIC_T = 1
|
||||
|
@ -194,22 +195,21 @@ LTLIBINTL =
|
|||
LTLIBOBJS =
|
||||
MAKEINFO = ${SHELL} /tmp/nagiosplug/build-aux/missing --run makeinfo
|
||||
MATHLIBS = -lm
|
||||
MKDIR_P = $(mkdir_p)
|
||||
MSGFMT = /usr/bin/msgfmt
|
||||
MSGFMT_015 = :
|
||||
MSGFMT_015 = /usr/bin/msgfmt
|
||||
MSGMERGE = /usr/bin/msgmerge
|
||||
MYSQLCFLAGS = -I/usr/include/mysql -DBIG_JOINS=1
|
||||
MYSQLINCLUDE = -I/usr/include/mysql
|
||||
MYSQLLIBS = -L/usr/lib -lmysqlclient -lz -lcrypt -lnsl -lm
|
||||
MYSQLCFLAGS =
|
||||
MYSQLINCLUDE =
|
||||
MYSQLLIBS =
|
||||
NEED_SETGID = false
|
||||
NETINET_IN_H =
|
||||
OBJEXT = o
|
||||
PACKAGE = nagios-plugins
|
||||
PACKAGE_BUGREPORT =
|
||||
PACKAGE_NAME = nagios-plugins
|
||||
PACKAGE_STRING = nagios-plugins 1.4.10
|
||||
PACKAGE_STRING = nagios-plugins 1.4.11
|
||||
PACKAGE_TARNAME = nagios-plugins
|
||||
PACKAGE_VERSION = 1.4.10
|
||||
PACKAGE_VERSION = 1.4.11
|
||||
PATH_SEPARATOR = :
|
||||
PATH_TO_APTGET = /usr/bin/apt-get
|
||||
PATH_TO_DIG = /usr/bin/dig
|
||||
|
@ -237,7 +237,7 @@ PERL = /usr/bin/perl
|
|||
PERLMODS_DIR =
|
||||
PGINCLUDE =
|
||||
PGLIBS =
|
||||
PKG_ARCH =
|
||||
PKG_ARCH = unknown
|
||||
PLUGIN_TEST = t/check_cluster.t t/check_disk.t t/check_dns.t t/check_dummy.t t/check_fping.t t/check_ftp.t t/check_hpjd.t t/check_http.t t/check_imap.t t/check_jabber.t t/check_load.t t/check_mysql.t t/check_mysql_query.t t/check_nagios.t t/check_ntp.t t/check_ping.t t/check_pop.t t/check_procs.t t/check_smtp.t t/check_snmp.t t/check_swap.t t/check_tcp.t t/check_time.t t/check_udp.t t/check_users.t t/negate.t
|
||||
POSUB = po
|
||||
POW_LIB =
|
||||
|
@ -246,8 +246,8 @@ PYTHON = /usr/bin/python
|
|||
RADIUSLIBS =
|
||||
RANLIB = ranlib
|
||||
RELEASE = 1
|
||||
REV_DATESTAMP = 2007.09.29.02.03
|
||||
REV_TIMESTAMP = 20070929020318
|
||||
REV_DATESTAMP = 2007.12.13.22.42
|
||||
REV_TIMESTAMP = 20071213224256
|
||||
SCRIPT_TEST = t/check_file_age.t t/check_rpc.t t/utils.t
|
||||
SET_MAKE =
|
||||
SH = /bin/sh
|
||||
|
@ -264,20 +264,17 @@ SUPPORT = Send email to nagios-users@lists.sourceforge.net if you have questions
|
|||
SYS_SOCKET_H =
|
||||
UNISTD_H =
|
||||
USE_NLS = yes
|
||||
VERSION = 1.4.10
|
||||
VERSION = 1.4.11
|
||||
WARRANTY = The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute\ncopies of the plugins under the terms of the GNU General Public License.\nFor more information about these matters, see the file named COPYING.\n
|
||||
WCHAR_H =
|
||||
WCHAR_T_SUFFIX = l
|
||||
WCHAR_T_SUFFIX =
|
||||
WCTYPE_H =
|
||||
WINT_T_SUFFIX = u
|
||||
XGETTEXT = /usr/bin/xgettext
|
||||
XGETTEXT_015 = :
|
||||
ac_ct_AR = ar
|
||||
XGETTEXT_015 = /usr/bin/xgettext
|
||||
ac_ct_CC = gcc
|
||||
ac_ct_CXX = g++
|
||||
ac_ct_F77 =
|
||||
ac_ct_RANLIB = ranlib
|
||||
ac_ct_STRIP = strip
|
||||
am__fastdepCC_FALSE = #
|
||||
am__fastdepCC_TRUE =
|
||||
am__fastdepCXX_FALSE = #
|
||||
|
@ -294,28 +291,34 @@ build_cpu = i686
|
|||
build_os = linux-gnu
|
||||
build_vendor = pc
|
||||
check_tcp_ssl = check_simap check_spop check_jabber check_nntps check_ssmtp
|
||||
datadir = ${prefix}/share
|
||||
datadir = ${datarootdir}
|
||||
datarootdir = ${prefix}/share
|
||||
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
|
||||
dvidir = ${docdir}
|
||||
exec_prefix = ${prefix}
|
||||
gl_LIBOBJS = asnprintf.o basename.o c-strtod.o cloexec.o creat-safer.o dirname.o dup-safer.o exitfail.o fd-safer.o fsusage.o mbchar.o mountlist.o open-safer.o pipe-safer.o printf-args.o printf-parse.o regex.o safe-read.o safe-write.o strcasecmp.o stripslash.o vasnprintf.o xmalloc.o
|
||||
gl_LTLIBOBJS = asnprintf.lo basename.lo c-strtod.lo cloexec.lo creat-safer.lo dirname.lo dup-safer.lo exitfail.lo fd-safer.lo fsusage.lo mbchar.lo mountlist.lo open-safer.lo pipe-safer.lo printf-args.lo printf-parse.lo regex.lo safe-read.lo safe-write.lo strcasecmp.lo stripslash.lo vasnprintf.lo xmalloc.lo
|
||||
gl_LIBOBJS = asnprintf.o basename.o c-strtod.o cloexec.o creat-safer.o dirname.o dup-safer.o exitfail.o fd-safer.o fsusage.o mbchar.o mountlist.o open-safer.o pipe-safer.o printf-args.o printf-parse.o safe-read.o safe-write.o strcasecmp.o stripslash.o vasnprintf.o xmalloc.o
|
||||
gl_LTLIBOBJS = asnprintf.lo basename.lo c-strtod.lo cloexec.lo creat-safer.lo dirname.lo dup-safer.lo exitfail.lo fd-safer.lo fsusage.lo mbchar.lo mountlist.lo open-safer.lo pipe-safer.lo printf-args.lo printf-parse.lo safe-read.lo safe-write.lo strcasecmp.lo stripslash.lo vasnprintf.lo xmalloc.lo
|
||||
host = i686-pc-linux-gnu
|
||||
host_alias =
|
||||
host_cpu = i686
|
||||
host_os = linux-gnu
|
||||
host_vendor = pc
|
||||
htmldir = ${docdir}
|
||||
includedir = ${prefix}/include
|
||||
infodir = ${prefix}/info
|
||||
infodir = ${datarootdir}/info
|
||||
install_sh = /tmp/nagiosplug/build-aux/install-sh
|
||||
libdir = ${exec_prefix}/lib
|
||||
libexecdir = ${exec_prefix}/libexec
|
||||
localedir = ${datadir}/locale
|
||||
localedir = ${datarootdir}/locale
|
||||
localstatedir = ${prefix}/var
|
||||
mandir = ${prefix}/man
|
||||
mandir = ${datarootdir}/man
|
||||
mkdir_p = mkdir -p --
|
||||
np_mysql_config = /usr/bin/mysql_config
|
||||
np_mysql_config =
|
||||
oldincludedir = /usr/include
|
||||
pdfdir = ${docdir}
|
||||
prefix = /usr/local/nagios
|
||||
program_transform_name = s,x,x,
|
||||
psdir = ${docdir}
|
||||
sbindir = ${exec_prefix}/sbin
|
||||
sharedstatedir = ${prefix}/com
|
||||
sysconfdir = ${prefix}/etc
|
||||
|
@ -490,7 +493,8 @@ all-local:
|
|||
install-exec-local:
|
||||
$(top_srcdir)/tools/build_perl_modules -d $(perlmoduledir) -i .
|
||||
|
||||
test:
|
||||
# Don't run test-debug differently here yet
|
||||
test test-debug:
|
||||
$(top_srcdir)/tools/build_perl_modules -d $(perlmoduledir) -t .
|
||||
|
||||
clean-local:
|
||||
|
|
|
@ -6,7 +6,8 @@ all-local:
|
|||
install-exec-local:
|
||||
$(top_srcdir)/tools/build_perl_modules -d $(perlmoduledir) -i .
|
||||
|
||||
test:
|
||||
# Don't run test-debug differently here yet
|
||||
test test-debug:
|
||||
$(top_srcdir)/tools/build_perl_modules -d $(perlmoduledir) -t .
|
||||
|
||||
clean-local:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
|
@ -155,6 +155,7 @@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
|
|||
GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
|
||||
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
|
||||
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
|
||||
|
@ -194,7 +195,6 @@ LTLIBINTL = @LTLIBINTL@
|
|||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MATHLIBS = @MATHLIBS@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
|
@ -272,12 +272,9 @@ WCTYPE_H = @WCTYPE_H@
|
|||
WINT_T_SUFFIX = @WINT_T_SUFFIX@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
|
@ -295,6 +292,9 @@ build_os = @build_os@
|
|||
build_vendor = @build_vendor@
|
||||
check_tcp_ssl = @check_tcp_ssl@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
gl_LIBOBJS = @gl_LIBOBJS@
|
||||
gl_LTLIBOBJS = @gl_LTLIBOBJS@
|
||||
|
@ -303,6 +303,7 @@ host_alias = @host_alias@
|
|||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
|
@ -314,8 +315,10 @@ mandir = @mandir@
|
|||
mkdir_p = @mkdir_p@
|
||||
np_mysql_config = @np_mysql_config@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
|
@ -490,7 +493,8 @@ all-local:
|
|||
install-exec-local:
|
||||
$(top_srcdir)/tools/build_perl_modules -d $(perlmoduledir) -i .
|
||||
|
||||
test:
|
||||
# Don't run test-debug differently here yet
|
||||
test test-debug:
|
||||
$(top_srcdir)/tools/build_perl_modules -d $(perlmoduledir) -t .
|
||||
|
||||
clean-local:
|
||||
|
|
Binary file not shown.
BIN
perlmods/Nagios-Plugin-0.22.tar.gz
Normal file
BIN
perlmods/Nagios-Plugin-0.22.tar.gz
Normal file
Binary file not shown.
|
@ -1,12 +1,12 @@
|
|||
PKG="NAGplugin"
|
||||
NAME="nagios-plugins"
|
||||
DESC="Nagios network monitoring plugins"
|
||||
ARCH=""
|
||||
VERSION="1.4.10,REV=2007.09.29.02.03"
|
||||
ARCH="unknown"
|
||||
VERSION="1.4.11,REV=2007.12.13.22.42"
|
||||
CATEGORY="application"
|
||||
VENDOR="Nagios Plugin Development Team"
|
||||
EMAIL="nagiosplug-devel@lists.sourceforge.net"
|
||||
PSTAMP="nag20070929020318"
|
||||
PSTAMP="nag20071213224256"
|
||||
BASEDIR="/"
|
||||
CLASSES="none"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t
|
||||
VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t $(srcdir)
|
||||
|
||||
INCLUDES = -I.. -I$(top_srcdir)/lib -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins @SSLINCLUDE@
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
|
@ -14,8 +14,6 @@
|
|||
|
||||
@SET_MAKE@
|
||||
|
||||
SOURCES = check_dhcp.c check_icmp.c pst3.c
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
|
@ -132,7 +130,7 @@ DIST_SOURCES = check_dhcp.c check_icmp.c pst3.c
|
|||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t
|
||||
VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t $(srcdir)
|
||||
INSTALL = @INSTALL@
|
||||
ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
|
||||
ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
|
||||
|
@ -188,6 +186,7 @@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
|
|||
GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
|
||||
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
|
||||
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
|
||||
|
@ -227,7 +226,6 @@ LTLIBINTL = @LTLIBINTL@
|
|||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MATHLIBS = @MATHLIBS@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
|
@ -305,12 +303,9 @@ WCTYPE_H = @WCTYPE_H@
|
|||
WINT_T_SUFFIX = @WINT_T_SUFFIX@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
|
@ -328,6 +323,9 @@ build_os = @build_os@
|
|||
build_vendor = @build_vendor@
|
||||
check_tcp_ssl = @check_tcp_ssl@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
gl_LIBOBJS = @gl_LIBOBJS@
|
||||
gl_LTLIBOBJS = @gl_LTLIBOBJS@
|
||||
|
@ -336,6 +334,7 @@ host_alias = @host_alias@
|
|||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
|
@ -347,8 +346,10 @@ mandir = @mandir@
|
|||
mkdir_p = @mkdir_p@
|
||||
np_mysql_config = @np_mysql_config@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* Copyright (c) 2001-2004 Ethan Galstad (nagios@nagios.org)
|
||||
* Copyright (c) 2001-2006 Nagios Plugin Development Team
|
||||
*
|
||||
* Last Modified: $Date: 2007-07-26 18:32:37 +0100 (Thu, 26 Jul 2007) $
|
||||
* Last Modified: $Date: 2007-10-25 21:43:04 +0100 (Thu, 25 Oct 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -31,7 +31,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: check_dhcp.c 1766 2007-07-26 17:32:37Z hweiss $
|
||||
* $Id: check_dhcp.c 1810 2007-10-25 20:43:04Z tonvoon $
|
||||
*
|
||||
* ------------------------------------------------------------------------
|
||||
* Unicast mode was originally implemented by Heiti of Boras Kommun with
|
||||
|
@ -42,7 +42,7 @@
|
|||
*****************************************************************************/
|
||||
|
||||
const char *progname = "check_dhcp";
|
||||
const char *revision = "$Revision: 1766 $";
|
||||
const char *revision = "$Revision: 1810 $";
|
||||
const char *copyright = "2001-2006";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -269,9 +269,6 @@ int main(int argc, char **argv){
|
|||
int dhcp_socket;
|
||||
int result = STATE_UNKNOWN;
|
||||
|
||||
/* this plugin almost certainly needs root permissions. */
|
||||
np_warn_if_not_root();
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
textdomain (PACKAGE);
|
||||
|
@ -280,6 +277,9 @@ int main(int argc, char **argv){
|
|||
usage4 (_("Could not parse arguments"));
|
||||
}
|
||||
|
||||
/* this plugin almost certainly needs root permissions. */
|
||||
np_warn_if_not_root();
|
||||
|
||||
/* create socket for DHCP communications */
|
||||
dhcp_socket=create_dhcp_socket();
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*
|
||||
* Original Author : Andreas Ericsson <ae@op5.se>
|
||||
*
|
||||
* Last Modified: $Date: 2007-09-15 12:55:12 +0100 (Sat, 15 Sep 2007) $
|
||||
* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -38,14 +38,14 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: check_icmp.c 1779 2007-09-15 11:55:12Z hweiss $
|
||||
* $Id: check_icmp.c 1861 2007-12-11 05:57:35Z dermoth $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/* progname may change */
|
||||
/* char *progname = "check_icmp"; */
|
||||
char *progname;
|
||||
const char *revision = "$Revision: 1779 $";
|
||||
const char *revision = "$Revision: 1861 $";
|
||||
const char *copyright = "2005-2007";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -372,6 +372,10 @@ main(int argc, char **argv)
|
|||
int result;
|
||||
struct rta_host *host;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
textdomain (PACKAGE);
|
||||
|
||||
/* print a helpful error message if geteuid != 0 */
|
||||
np_warn_if_not_root();
|
||||
|
||||
|
|
|
@ -22,6 +22,10 @@ test:
|
|||
perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
|
||||
perl -I $(top_builddir) -I $(top_srcdir) ../test.pl t/utils.t # utils.t is excluded from above, so manually ask to test
|
||||
|
||||
test-debug:
|
||||
NPTEST_DEBUG=1 HARNESS_VERBOSE=1 perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
|
||||
NPTEST_DEBUG=1 HARNESS_VERBOSE=1 perl -I $(top_builddir) -I $(top_srcdir) ../test.pl t/utils.t # utils.t is excluded from above, so manually ask to test
|
||||
|
||||
CLEANFILES=$(libexec_SCRIPTS)
|
||||
|
||||
.pl :
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
|
@ -160,6 +160,7 @@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
|
|||
GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
|
||||
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
|
||||
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
|
||||
|
@ -199,7 +200,6 @@ LTLIBINTL = @LTLIBINTL@
|
|||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MATHLIBS = @MATHLIBS@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
|
@ -277,12 +277,9 @@ WCTYPE_H = @WCTYPE_H@
|
|||
WINT_T_SUFFIX = @WINT_T_SUFFIX@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
|
@ -300,6 +297,9 @@ build_os = @build_os@
|
|||
build_vendor = @build_vendor@
|
||||
check_tcp_ssl = @check_tcp_ssl@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
gl_LIBOBJS = @gl_LIBOBJS@
|
||||
gl_LTLIBOBJS = @gl_LTLIBOBJS@
|
||||
|
@ -308,6 +308,7 @@ host_alias = @host_alias@
|
|||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
|
@ -319,8 +320,10 @@ mandir = @mandir@
|
|||
mkdir_p = @mkdir_p@
|
||||
np_mysql_config = @np_mysql_config@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
|
@ -610,6 +613,10 @@ test:
|
|||
perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
|
||||
perl -I $(top_builddir) -I $(top_srcdir) ../test.pl t/utils.t # utils.t is excluded from above, so manually ask to test
|
||||
|
||||
test-debug:
|
||||
NPTEST_DEBUG=1 HARNESS_VERBOSE=1 perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
|
||||
NPTEST_DEBUG=1 HARNESS_VERBOSE=1 perl -I $(top_builddir) -I $(top_srcdir) ../test.pl t/utils.t # utils.t is excluded from above, so manually ask to test
|
||||
|
||||
.pl :
|
||||
$(AWK) -f ./subst $< > $@
|
||||
chmod +x $@
|
||||
|
|
|
@ -14,8 +14,8 @@ MATHLIBS = @MATHLIBS@
|
|||
#AM_CFLAGS = -Wall
|
||||
|
||||
libexec_PROGRAMS = check_apt check_cluster check_disk check_dummy check_http check_load \
|
||||
check_mrtg check_mrtgtraf check_ntp check_nwstat check_overcr check_ping \
|
||||
check_real check_smtp check_ssh check_tcp check_time \
|
||||
check_mrtg check_mrtgtraf check_ntp check_ntp_peer check_nwstat check_overcr check_ping \
|
||||
check_real check_smtp check_ssh check_tcp check_time check_ntp_time \
|
||||
check_ups check_users negate \
|
||||
urlize @EXTRAS@
|
||||
|
||||
|
@ -44,6 +44,9 @@ TESTS = @PLUGIN_TEST@
|
|||
test:
|
||||
perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
|
||||
|
||||
test-debug:
|
||||
NPTEST_DEBUG=1 HARNESS_VERBOSE=1 perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
|
||||
|
||||
##############################################################################
|
||||
# the actual targets
|
||||
|
||||
|
@ -70,6 +73,7 @@ check_mysql_query_LDADD = $(NETLIBS) $(MYSQLLIBS)
|
|||
check_nagios_LDADD = $(BASEOBJS) runcmd.o
|
||||
check_nt_LDADD = $(NETLIBS)
|
||||
check_ntp_LDADD = $(NETLIBS) $(MATHLIBS)
|
||||
check_ntp_peer_LDADD = $(NETLIBS) $(MATHLIBS)
|
||||
check_nwstat_LDADD = $(NETLIBS)
|
||||
check_overcr_LDADD = $(NETLIBS)
|
||||
check_pgsql_LDADD = $(NETLIBS) $(PGLIBS)
|
||||
|
@ -83,6 +87,7 @@ check_ssh_LDADD = $(NETLIBS)
|
|||
check_swap_LDADD = $(MATHLIBS) $(BASEOBJS) popen.o
|
||||
check_tcp_LDADD = $(SSLOBJS) $(NETLIBS) $(SSLLIBS)
|
||||
check_time_LDADD = $(NETLIBS)
|
||||
check_ntp_time_LDADD = $(NETLIBS) $(MATHLIBS)
|
||||
check_ups_LDADD = $(NETLIBS)
|
||||
check_users_LDADD = $(BASEOBJS) popen.o
|
||||
check_by_ssh_LDADD = $(NETLIBS) runcmd.o
|
||||
|
@ -110,6 +115,7 @@ check_mysql_query_DEPENDENCIES = check_mysql_query.c $(NETOBJS) $(DEPLIBS)
|
|||
check_nagios_DEPENDENCIES = check_nagios.c $(BASEOBJS) runcmd.o $(DEPLIBS)
|
||||
check_nt_DEPENDENCIES = check_nt.c $(NETOBJS) $(DEPLIBS)
|
||||
check_ntp_DEPENDENCIES = check_ntp.c $(NETOBJS) $(DEPLIBS)
|
||||
check_ntp_peer_DEPENDENCIES = check_ntp_peer.c $(NETOBJS) $(DEPLIBS)
|
||||
check_nwstat_DEPENDENCIES = check_nwstat.c $(NETOBJS) $(DEPLIBS)
|
||||
check_overcr_DEPENDENCIES = check_overcr.c $(NETOBJS) $(DEPLIBS)
|
||||
check_pgsql_DEPENDENCIES = check_pgsql.c $(NETOBJS) $(DEPLIBS)
|
||||
|
@ -123,6 +129,7 @@ check_ssh_DEPENDENCIES = check_ssh.c $(NETOBJS) $(DEPLIBS)
|
|||
check_swap_DEPENDENCIES = check_swap.c $(BASEOBJS) popen.o $(DEPLIBS)
|
||||
check_tcp_DEPENDENCIES = check_tcp.c $(SSLOBJS) $(NETOBJS) $(DEPLIBS)
|
||||
check_time_DEPENDENCIES = check_time.c $(NETOBJS) $(DEPLIBS)
|
||||
check_ntp_time_DEPENDENCIES = check_ntp_time.c $(NETOBJS) $(DEPLIBS)
|
||||
check_ups_DEPENDENCIES = check_ups.c $(NETOBJS) $(DEPLIBS)
|
||||
check_users_DEPENDENCIES = check_users.c $(BASEOBJS) popen.o $(DEPLIBS)
|
||||
check_by_ssh_DEPENDENCIES = check_by_ssh.c $(NETOBJS) runcmd.o $(DEPLIBS)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
|
@ -14,8 +14,6 @@
|
|||
|
||||
@SET_MAKE@
|
||||
|
||||
SOURCES = check_apt.c check_by_ssh.c check_cluster.c check_dig.c check_disk.c check_dns.c check_dummy.c check_fping.c check_game.c check_hpjd.c check_http.c check_ide_smart.c check_ldap.c check_load.c check_mrtg.c check_mrtgtraf.c check_mysql.c check_mysql_query.c check_nagios.c check_nt.c check_ntp.c check_nwstat.c check_overcr.c check_pgsql.c check_ping.c check_procs.c check_radius.c check_real.c check_smtp.c check_snmp.c check_ssh.c check_swap.c check_tcp.c check_time.c check_ups.c check_users.c negate.c urlize.c
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
|
@ -40,11 +38,11 @@ libexec_PROGRAMS = check_apt$(EXEEXT) check_cluster$(EXEEXT) \
|
|||
check_disk$(EXEEXT) check_dummy$(EXEEXT) check_http$(EXEEXT) \
|
||||
check_load$(EXEEXT) check_mrtg$(EXEEXT) \
|
||||
check_mrtgtraf$(EXEEXT) check_ntp$(EXEEXT) \
|
||||
check_nwstat$(EXEEXT) check_overcr$(EXEEXT) \
|
||||
check_ping$(EXEEXT) check_real$(EXEEXT) check_smtp$(EXEEXT) \
|
||||
check_ssh$(EXEEXT) check_tcp$(EXEEXT) check_time$(EXEEXT) \
|
||||
check_ups$(EXEEXT) check_users$(EXEEXT) negate$(EXEEXT) \
|
||||
urlize$(EXEEXT) @EXTRAS@
|
||||
check_ntp_peer$(EXEEXT) check_nwstat$(EXEEXT) \
|
||||
check_overcr$(EXEEXT) check_ping$(EXEEXT) check_real$(EXEEXT) \
|
||||
check_smtp$(EXEEXT) check_ssh$(EXEEXT) check_tcp$(EXEEXT) \
|
||||
check_time$(EXEEXT) check_ntp_time$(EXEEXT) check_ups$(EXEEXT) \
|
||||
check_users$(EXEEXT) negate$(EXEEXT) urlize$(EXEEXT) @EXTRAS@
|
||||
EXTRA_PROGRAMS = check_mysql$(EXEEXT) check_radius$(EXEEXT) \
|
||||
check_pgsql$(EXEEXT) check_snmp$(EXEEXT) check_hpjd$(EXEEXT) \
|
||||
check_swap$(EXEEXT) check_fping$(EXEEXT) check_ldap$(EXEEXT) \
|
||||
|
@ -167,6 +165,10 @@ check_nt_SOURCES = check_nt.c
|
|||
check_nt_OBJECTS = check_nt.$(OBJEXT)
|
||||
check_ntp_SOURCES = check_ntp.c
|
||||
check_ntp_OBJECTS = check_ntp.$(OBJEXT)
|
||||
check_ntp_peer_SOURCES = check_ntp_peer.c
|
||||
check_ntp_peer_OBJECTS = check_ntp_peer.$(OBJEXT)
|
||||
check_ntp_time_SOURCES = check_ntp_time.c
|
||||
check_ntp_time_OBJECTS = check_ntp_time.$(OBJEXT)
|
||||
check_nwstat_SOURCES = check_nwstat.c
|
||||
check_nwstat_OBJECTS = check_nwstat.$(OBJEXT)
|
||||
check_overcr_SOURCES = check_overcr.c
|
||||
|
@ -217,19 +219,21 @@ SOURCES = check_apt.c check_by_ssh.c check_cluster.c check_dig.c \
|
|||
check_game.c check_hpjd.c check_http.c check_ide_smart.c \
|
||||
check_ldap.c check_load.c check_mrtg.c check_mrtgtraf.c \
|
||||
check_mysql.c check_mysql_query.c check_nagios.c check_nt.c \
|
||||
check_ntp.c check_nwstat.c check_overcr.c check_pgsql.c \
|
||||
check_ping.c check_procs.c check_radius.c check_real.c \
|
||||
check_smtp.c check_snmp.c check_ssh.c check_swap.c check_tcp.c \
|
||||
check_time.c check_ups.c check_users.c negate.c urlize.c
|
||||
check_ntp.c check_ntp_peer.c check_ntp_time.c check_nwstat.c \
|
||||
check_overcr.c check_pgsql.c check_ping.c check_procs.c \
|
||||
check_radius.c check_real.c check_smtp.c check_snmp.c \
|
||||
check_ssh.c check_swap.c check_tcp.c check_time.c check_ups.c \
|
||||
check_users.c negate.c urlize.c
|
||||
DIST_SOURCES = check_apt.c check_by_ssh.c check_cluster.c check_dig.c \
|
||||
check_disk.c check_dns.c check_dummy.c check_fping.c \
|
||||
check_game.c check_hpjd.c check_http.c check_ide_smart.c \
|
||||
check_ldap.c check_load.c check_mrtg.c check_mrtgtraf.c \
|
||||
check_mysql.c check_mysql_query.c check_nagios.c check_nt.c \
|
||||
check_ntp.c check_nwstat.c check_overcr.c check_pgsql.c \
|
||||
check_ping.c check_procs.c check_radius.c check_real.c \
|
||||
check_smtp.c check_snmp.c check_ssh.c check_swap.c check_tcp.c \
|
||||
check_time.c check_ups.c check_users.c negate.c urlize.c
|
||||
check_ntp.c check_ntp_peer.c check_ntp_time.c check_nwstat.c \
|
||||
check_overcr.c check_pgsql.c check_ping.c check_procs.c \
|
||||
check_radius.c check_real.c check_smtp.c check_snmp.c \
|
||||
check_ssh.c check_swap.c check_tcp.c check_time.c check_ups.c \
|
||||
check_users.c negate.c urlize.c
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
@ -289,6 +293,7 @@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@
|
|||
GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GMSGFMT_015 = @GMSGFMT_015@
|
||||
GREP = @GREP@
|
||||
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
|
||||
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
|
||||
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
|
||||
|
@ -328,7 +333,6 @@ LTLIBINTL = @LTLIBINTL@
|
|||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MATHLIBS = @MATHLIBS@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
|
@ -406,12 +410,9 @@ WCTYPE_H = @WCTYPE_H@
|
|||
WINT_T_SUFFIX = @WINT_T_SUFFIX@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
|
@ -429,6 +430,9 @@ build_os = @build_os@
|
|||
build_vendor = @build_vendor@
|
||||
check_tcp_ssl = @check_tcp_ssl@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
gl_LIBOBJS = @gl_LIBOBJS@
|
||||
gl_LTLIBOBJS = @gl_LTLIBOBJS@
|
||||
|
@ -437,6 +441,7 @@ host_alias = @host_alias@
|
|||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
|
@ -448,8 +453,10 @@ mandir = @mandir@
|
|||
mkdir_p = @mkdir_p@
|
||||
np_mysql_config = @np_mysql_config@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
|
@ -495,6 +502,7 @@ check_mysql_query_LDADD = $(NETLIBS) $(MYSQLLIBS)
|
|||
check_nagios_LDADD = $(BASEOBJS) runcmd.o
|
||||
check_nt_LDADD = $(NETLIBS)
|
||||
check_ntp_LDADD = $(NETLIBS) $(MATHLIBS)
|
||||
check_ntp_peer_LDADD = $(NETLIBS) $(MATHLIBS)
|
||||
check_nwstat_LDADD = $(NETLIBS)
|
||||
check_overcr_LDADD = $(NETLIBS)
|
||||
check_pgsql_LDADD = $(NETLIBS) $(PGLIBS)
|
||||
|
@ -508,6 +516,7 @@ check_ssh_LDADD = $(NETLIBS)
|
|||
check_swap_LDADD = $(MATHLIBS) $(BASEOBJS) popen.o
|
||||
check_tcp_LDADD = $(SSLOBJS) $(NETLIBS) $(SSLLIBS)
|
||||
check_time_LDADD = $(NETLIBS)
|
||||
check_ntp_time_LDADD = $(NETLIBS) $(MATHLIBS)
|
||||
check_ups_LDADD = $(NETLIBS)
|
||||
check_users_LDADD = $(BASEOBJS) popen.o
|
||||
check_by_ssh_LDADD = $(NETLIBS) runcmd.o
|
||||
|
@ -534,6 +543,7 @@ check_mysql_query_DEPENDENCIES = check_mysql_query.c $(NETOBJS) $(DEPLIBS)
|
|||
check_nagios_DEPENDENCIES = check_nagios.c $(BASEOBJS) runcmd.o $(DEPLIBS)
|
||||
check_nt_DEPENDENCIES = check_nt.c $(NETOBJS) $(DEPLIBS)
|
||||
check_ntp_DEPENDENCIES = check_ntp.c $(NETOBJS) $(DEPLIBS)
|
||||
check_ntp_peer_DEPENDENCIES = check_ntp_peer.c $(NETOBJS) $(DEPLIBS)
|
||||
check_nwstat_DEPENDENCIES = check_nwstat.c $(NETOBJS) $(DEPLIBS)
|
||||
check_overcr_DEPENDENCIES = check_overcr.c $(NETOBJS) $(DEPLIBS)
|
||||
check_pgsql_DEPENDENCIES = check_pgsql.c $(NETOBJS) $(DEPLIBS)
|
||||
|
@ -547,6 +557,7 @@ check_ssh_DEPENDENCIES = check_ssh.c $(NETOBJS) $(DEPLIBS)
|
|||
check_swap_DEPENDENCIES = check_swap.c $(BASEOBJS) popen.o $(DEPLIBS)
|
||||
check_tcp_DEPENDENCIES = check_tcp.c $(SSLOBJS) $(NETOBJS) $(DEPLIBS)
|
||||
check_time_DEPENDENCIES = check_time.c $(NETOBJS) $(DEPLIBS)
|
||||
check_ntp_time_DEPENDENCIES = check_ntp_time.c $(NETOBJS) $(DEPLIBS)
|
||||
check_ups_DEPENDENCIES = check_ups.c $(NETOBJS) $(DEPLIBS)
|
||||
check_users_DEPENDENCIES = check_users.c $(BASEOBJS) popen.o $(DEPLIBS)
|
||||
check_by_ssh_DEPENDENCIES = check_by_ssh.c $(NETOBJS) runcmd.o $(DEPLIBS)
|
||||
|
@ -676,6 +687,12 @@ check_nt$(EXEEXT): $(check_nt_OBJECTS) $(check_nt_DEPENDENCIES)
|
|||
check_ntp$(EXEEXT): $(check_ntp_OBJECTS) $(check_ntp_DEPENDENCIES)
|
||||
@rm -f check_ntp$(EXEEXT)
|
||||
$(LINK) $(check_ntp_LDFLAGS) $(check_ntp_OBJECTS) $(check_ntp_LDADD) $(LIBS)
|
||||
check_ntp_peer$(EXEEXT): $(check_ntp_peer_OBJECTS) $(check_ntp_peer_DEPENDENCIES)
|
||||
@rm -f check_ntp_peer$(EXEEXT)
|
||||
$(LINK) $(check_ntp_peer_LDFLAGS) $(check_ntp_peer_OBJECTS) $(check_ntp_peer_LDADD) $(LIBS)
|
||||
check_ntp_time$(EXEEXT): $(check_ntp_time_OBJECTS) $(check_ntp_time_DEPENDENCIES)
|
||||
@rm -f check_ntp_time$(EXEEXT)
|
||||
$(LINK) $(check_ntp_time_LDFLAGS) $(check_ntp_time_OBJECTS) $(check_ntp_time_LDADD) $(LIBS)
|
||||
check_nwstat$(EXEEXT): $(check_nwstat_OBJECTS) $(check_nwstat_DEPENDENCIES)
|
||||
@rm -f check_nwstat$(EXEEXT)
|
||||
$(LINK) $(check_nwstat_LDFLAGS) $(check_nwstat_OBJECTS) $(check_nwstat_LDADD) $(LIBS)
|
||||
|
@ -755,6 +772,8 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_nagios.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_nt.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_ntp.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_ntp_peer.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_ntp_time.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_nwstat.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_overcr.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_pgsql.Po@am__quote@
|
||||
|
@ -1084,6 +1103,9 @@ uninstall-am: uninstall-info-am uninstall-libexecPROGRAMS \
|
|||
test:
|
||||
perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
|
||||
|
||||
test-debug:
|
||||
NPTEST_DEBUG=1 HARNESS_VERBOSE=1 perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
|
||||
|
||||
##############################################################################
|
||||
# secondary dependencies
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* Copyright (c) 2000-2004 Ethan Galstad (nagios@nagios.org)
|
||||
* Copyright (c) 2007 nagios-plugins team
|
||||
* License: GPL
|
||||
* Last Modified: $Date: 2007-06-20 10:01:07 +0100 (Wed, 20 Jun 2007) $
|
||||
* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
|
||||
*
|
||||
* License Information:
|
||||
*
|
||||
|
@ -23,12 +23,12 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: check_cluster.c 1745 2007-06-20 09:01:07Z psychotrahe $
|
||||
* $Id: check_cluster.c 1861 2007-12-11 05:57:35Z dermoth $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
const char *progname = "check_cluster";
|
||||
const char *revision = "$Revision: 1745 $";
|
||||
const char *revision = "$Revision: 1861 $";
|
||||
const char *copyright = "2007";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -71,6 +71,10 @@ int main(int argc, char **argv){
|
|||
int return_code=STATE_OK;
|
||||
thresholds *thresholds = NULL;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
textdomain (PACKAGE);
|
||||
|
||||
if(process_arguments(argc,argv)==ERROR)
|
||||
usage(_("Could not parse arguments"));
|
||||
|
||||
|
@ -178,14 +182,10 @@ int process_arguments(int argc, char **argv){
|
|||
break;
|
||||
|
||||
case 'w': /* warning threshold */
|
||||
if (strspn (optarg, "0123456789:,") < strlen (optarg))
|
||||
usage2 (_("Invalid warning threshold: %s\n"), optarg);
|
||||
warn_threshold = strdup(optarg);
|
||||
break;
|
||||
|
||||
case 'c': /* warning threshold */
|
||||
if (strspn (optarg, "0123456789:,") < strlen (optarg))
|
||||
usage2 (_("Invalid critical threshold: %s\n"), optarg);
|
||||
crit_threshold = strdup(optarg);
|
||||
break;
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* License: GPL
|
||||
* Copyright (c) 1999-2006 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-09-23 13:29:36 +0100 (Sun, 23 Sep 2007) $
|
||||
* Last Modified: $Date: 2007-12-08 16:34:05 +0000 (Sat, 08 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -27,13 +27,13 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: check_disk.c 1793 2007-09-23 12:29:36Z psychotrahe $
|
||||
* $Id: check_disk.c 1848 2007-12-08 16:34:05Z dermoth $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
const char *progname = "check_disk";
|
||||
const char *program_name = "check_disk"; /* Required for coreutils libs */
|
||||
const char *revision = "$Revision: 1793 $";
|
||||
const char *revision = "$Revision: 1848 $";
|
||||
const char *copyright = "1999-2006";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -307,10 +307,17 @@ main (int argc, char **argv)
|
|||
|
||||
if (fsp.fsu_blocks && strcmp ("none", me->me_mountdir)) {
|
||||
total = fsp.fsu_blocks;
|
||||
available = fsp.fsu_bavail;
|
||||
/* 2007-12-08 - Workaround for Gnulib reporting insanely high available
|
||||
* space on BSD (the actual value should be negative but fsp.fsu_bavail
|
||||
* is unsigned) */
|
||||
available = fsp.fsu_bavail > fsp.fsu_bfree ? 0 : fsp.fsu_bavail;
|
||||
available_to_root = fsp.fsu_bfree;
|
||||
used = total - available_to_root;
|
||||
|
||||
if (verbose >= 3)
|
||||
printf ("For %s, total=%llu, available=%llu, available_to_root=%llu, used=%llu, fsp.fsu_files=%llu, fsp.fsu_ffree=%llu\n",
|
||||
me->me_mountdir, total, available, available_to_root, used, fsp.fsu_files, fsp.fsu_ffree);
|
||||
|
||||
dused_pct = calculate_percent( used, used + available ); /* used + available can never be > uintmax */
|
||||
|
||||
dfree_pct = 100 - dused_pct;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* License: GPL
|
||||
* Copyright (c) 1999-2006 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-07-21 17:29:01 +0100 (Sat, 21 Jul 2007) $
|
||||
* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -33,13 +33,13 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id: check_http.c 1759 2007-07-21 16:29:01Z hweiss $
|
||||
$Id: check_http.c 1861 2007-12-11 05:57:35Z dermoth $
|
||||
|
||||
******************************************************************************/
|
||||
/* splint -I. -I../../plugins -I../../lib/ -I/usr/kerberos/include/ ../../plugins/check_http.c */
|
||||
|
||||
const char *progname = "check_http";
|
||||
const char *revision = "$Revision: 1759 $";
|
||||
const char *revision = "$Revision: 1861 $";
|
||||
const char *copyright = "1999-2006";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -48,6 +48,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
|||
#include "common.h"
|
||||
#include "netutils.h"
|
||||
#include "utils.h"
|
||||
#include "base64.h"
|
||||
|
||||
#define INPUT_DELIMITER ";"
|
||||
|
||||
|
@ -125,7 +126,6 @@ char *http_content_type;
|
|||
char buffer[MAX_INPUT_BUFFER];
|
||||
|
||||
int process_arguments (int, char **);
|
||||
static char *base64 (const char *bin, size_t len);
|
||||
int check_http (void);
|
||||
void redir (char *pos, char *status_line);
|
||||
int server_type_check(const char *type);
|
||||
|
@ -140,6 +140,10 @@ main (int argc, char **argv)
|
|||
{
|
||||
int result = STATE_UNKNOWN;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
textdomain (PACKAGE);
|
||||
|
||||
/* Set default URL. Must be malloced for subsequent realloc if --onredirect=follow */
|
||||
server_url = strdup(HTTP_URL);
|
||||
server_url_length = strlen(server_url);
|
||||
|
@ -151,7 +155,7 @@ main (int argc, char **argv)
|
|||
|
||||
if (display_html == TRUE)
|
||||
printf ("<A HREF=\"%s://%s:%d%s\" target=\"_blank\">",
|
||||
use_ssl ? "https" : "http", server_address,
|
||||
use_ssl ? "https" : "http", host_name ? host_name : server_address,
|
||||
server_port, server_url);
|
||||
|
||||
/* initialize alarm signal handling, set socket timeout, start timer */
|
||||
|
@ -455,49 +459,6 @@ process_arguments (int argc, char **argv)
|
|||
|
||||
|
||||
|
||||
/* written by lauri alanko */
|
||||
static char *
|
||||
base64 (const char *bin, size_t len)
|
||||
{
|
||||
|
||||
char *buf = (char *) malloc ((len + 2) / 3 * 4 + 1);
|
||||
size_t i = 0, j = 0;
|
||||
|
||||
char BASE64_END = '=';
|
||||
char base64_table[64];
|
||||
strncpy (base64_table, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", 64);
|
||||
|
||||
while (j < len - 2) {
|
||||
buf[i++] = base64_table[bin[j] >> 2];
|
||||
buf[i++] = base64_table[((bin[j] & 3) << 4) | (bin[j + 1] >> 4)];
|
||||
buf[i++] = base64_table[((bin[j + 1] & 15) << 2) | (bin[j + 2] >> 6)];
|
||||
buf[i++] = base64_table[bin[j + 2] & 63];
|
||||
j += 3;
|
||||
}
|
||||
|
||||
switch (len - j) {
|
||||
case 1:
|
||||
buf[i++] = base64_table[bin[j] >> 2];
|
||||
buf[i++] = base64_table[(bin[j] & 3) << 4];
|
||||
buf[i++] = BASE64_END;
|
||||
buf[i++] = BASE64_END;
|
||||
break;
|
||||
case 2:
|
||||
buf[i++] = base64_table[bin[j] >> 2];
|
||||
buf[i++] = base64_table[((bin[j] & 3) << 4) | (bin[j + 1] >> 4)];
|
||||
buf[i++] = base64_table[(bin[j + 1] & 15) << 2];
|
||||
buf[i++] = BASE64_END;
|
||||
break;
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
|
||||
buf[i] = '\0';
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Returns 1 if we're done processing the document body; 0 to keep going */
|
||||
static int
|
||||
document_headers_done (char *full_page)
|
||||
|
@ -982,14 +943,14 @@ check_http (void)
|
|||
microsec = deltime (tv);
|
||||
elapsed_time = (double)microsec / 1.0e6;
|
||||
asprintf (&msg,
|
||||
_("HTTP WARNING: %s - %.3f second response time %s|%s %s\n"),
|
||||
_(" - %s - %.3f second response time %s|%s %s\n"),
|
||||
status_line, elapsed_time,
|
||||
(display_html ? "</A>" : ""),
|
||||
perfd_time (elapsed_time), perfd_size (pagesize));
|
||||
if (check_critical_time == TRUE && elapsed_time > critical_time)
|
||||
die (STATE_CRITICAL, "%s", msg);
|
||||
die (STATE_CRITICAL, "HTTP %s: %s", _("CRITICAL"), msg);
|
||||
if (check_warning_time == TRUE && elapsed_time > warning_time)
|
||||
die (STATE_WARNING, "%s", msg);
|
||||
die (STATE_WARNING, "HTTP %s: %s", _("WARNING"), msg);
|
||||
|
||||
/* Page and Header content checks go here */
|
||||
/* these checks should be last */
|
||||
|
@ -1062,7 +1023,6 @@ check_http (void)
|
|||
|
||||
|
||||
/* per RFC 2396 */
|
||||
#define HDR_LOCATION "%*[Ll]%*[Oo]%*[Cc]%*[Aa]%*[Tt]%*[Ii]%*[Oo]%*[Nn]: "
|
||||
#define URI_HTTP "%5[HTPShtps]"
|
||||
#define URI_HOST "%255[-.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]"
|
||||
#define URI_PORT "%6d" /* MAX_PORT's width is 5 chars, 6 to detect overflow */
|
||||
|
@ -1092,7 +1052,7 @@ redir (char *pos, char *status_line)
|
|||
die (STATE_UNKNOWN, _("HTTP UNKNOWN - Could not allocate url\n"));
|
||||
|
||||
while (pos) {
|
||||
sscanf (pos, "%[Ll]%*[Oo]%*[Cc]%*[Aa]%*[Tt]%*[Ii]%*[Oo]%*[Nn]:%n", xx, &i);
|
||||
sscanf (pos, "%1[Ll]%*1[Oo]%*1[Cc]%*1[Aa]%*1[Tt]%*1[Ii]%*1[Oo]%*1[Nn]:%n", xx, &i);
|
||||
if (i == 0) {
|
||||
pos += (size_t) strcspn (pos, "\r\n");
|
||||
pos += (size_t) strspn (pos, "\r\n");
|
||||
|
@ -1155,7 +1115,7 @@ redir (char *pos, char *status_line)
|
|||
}
|
||||
i = server_port;
|
||||
strcpy (type, server_type);
|
||||
strcpy (addr, server_address);
|
||||
strcpy (addr, host_name ? host_name : server_address);
|
||||
}
|
||||
|
||||
else {
|
||||
|
@ -1204,8 +1164,8 @@ redir (char *pos, char *status_line)
|
|||
display_html ? "</A>" : "");
|
||||
|
||||
if (verbose)
|
||||
printf (_("Redirection to %s://%s:%d%s\n"), server_type, server_address,
|
||||
server_port, server_url);
|
||||
printf (_("Redirection to %s://%s:%d%s\n"), server_type,
|
||||
host_name ? host_name : server_address, server_port, server_url);
|
||||
|
||||
check_http ();
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* License: GPL
|
||||
* Copyright (c) 1999-2006 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-04-25 23:10:13 +0100 (Wed, 25 Apr 2007) $
|
||||
* Last Modified: $Date: 2007-12-10 00:19:27 +0000 (Mon, 10 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -30,12 +30,12 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id: check_load.c 1700 2007-04-25 22:10:13Z tonvoon $
|
||||
$Id: check_load.c 1851 2007-12-10 00:19:27Z psychotrahe $
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
const char *progname = "check_load";
|
||||
const char *revision = "$Revision: 1700 $";
|
||||
const char *revision = "$Revision: 1851 $";
|
||||
const char *copyright = "1999-2006";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -77,6 +77,7 @@ static void
|
|||
get_threshold(char *arg, double *th)
|
||||
{
|
||||
size_t i, n;
|
||||
int valid = 0;
|
||||
char *str = arg, *p;
|
||||
|
||||
n = strlen(arg);
|
||||
|
@ -84,12 +85,13 @@ get_threshold(char *arg, double *th)
|
|||
th[i] = strtod(str, &p);
|
||||
if(p == str) break;
|
||||
|
||||
valid = 1;
|
||||
str = p + 1;
|
||||
if(n <= (size_t)(str - arg)) break;
|
||||
}
|
||||
|
||||
/* empty argument or non-floatish, so warn about it and die */
|
||||
if(!i) usage (_("Warning threshold must be float or float triplet!\n"));
|
||||
if(!i && !valid) usage (_("Warning threshold must be float or float triplet!\n"));
|
||||
|
||||
if(i != 2) {
|
||||
/* one or more numbers were given, so fill array with last
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* License: GPL
|
||||
* Copyright (c) 1999-2007 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-03-02 01:38:04 +0000 (Fri, 02 Mar 2007) $
|
||||
* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -31,7 +31,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id: check_mrtgtraf.c 1624 2007-03-02 01:38:04Z egalstad $
|
||||
$Id: check_mrtgtraf.c 1861 2007-12-11 05:57:35Z dermoth $
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
|
@ -39,7 +39,7 @@
|
|||
#include "utils.h"
|
||||
|
||||
const char *progname = "check_mrtgtraf";
|
||||
const char *revision = "$Revision: 1624 $";
|
||||
const char *revision = "$Revision: 1861 $";
|
||||
const char *copyright = "1999-2007";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -79,6 +79,10 @@ main (int argc, char **argv)
|
|||
char incoming_speed_rating[8];
|
||||
char outgoing_speed_rating[8];
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
textdomain (PACKAGE);
|
||||
|
||||
if (process_arguments (argc, argv) == ERROR)
|
||||
usage4 (_("Could not parse arguments"));
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* Copyright (c) 1999-2006 nagios-plugins team
|
||||
* Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net)
|
||||
*
|
||||
* Last Modified: $Date: 2007-03-29 18:58:28 +0100 (Thu, 29 Mar 2007) $
|
||||
* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -32,12 +32,12 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: check_mysql.c 1655 2007-03-29 17:58:28Z hweiss $
|
||||
* $Id: check_mysql.c 1859 2007-12-10 07:52:00Z dermoth $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
const char *progname = "check_mysql";
|
||||
const char *revision = "$Revision: 1655 $";
|
||||
const char *revision = "$Revision: 1859 $";
|
||||
const char *copyright = "1999-2006";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -391,7 +391,7 @@ print_help (void)
|
|||
printf (" %s\n", "-S, --check-slave");
|
||||
printf (" %s\n", _("Check if the slave thread is running properly."));
|
||||
printf (" %s\n", "-w, --warning");
|
||||
printf (" %s\n", _("Exit with WARNING status if slave server is more then INTEGER seconds behind master"));
|
||||
printf (" %s\n", _("Exit with WARNING status if slave server is more than INTEGER seconds behind master"));
|
||||
printf (" %s\n", "-c, --critical");
|
||||
printf (" %s\n", _("Exit with CRITICAL status if slave server is more then INTEGER seconds behind master"));
|
||||
printf (" %s\n", _("There are no required arguments. By default, the local database with"));
|
||||
|
|
|
@ -4,9 +4,9 @@
|
|||
*
|
||||
* License: GPL
|
||||
* Copyright (c) 2006 sean finney <seanius@seanius.net>
|
||||
* Copyright (c) 2006 nagios-plugins team
|
||||
* Copyright (c) 2007 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-09-26 05:16:21 +0100 (Wed, 26 Sep 2007) $
|
||||
* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -32,13 +32,13 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id: check_ntp.c 1799 2007-09-26 04:16:21Z dermoth $
|
||||
$Id: check_ntp.c 1861 2007-12-11 05:57:35Z dermoth $
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
const char *progname = "check_ntp";
|
||||
const char *revision = "$Revision: 1799 $";
|
||||
const char *copyright = "2006";
|
||||
const char *revision = "$Revision: 1861 $";
|
||||
const char *copyright = "2007";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
#include "common.h"
|
||||
|
@ -47,13 +47,16 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
|||
|
||||
static char *server_address=NULL;
|
||||
static int verbose=0;
|
||||
static double owarn=60;
|
||||
static double ocrit=120;
|
||||
static short do_offset=0;
|
||||
static char *owarn="60";
|
||||
static char *ocrit="120";
|
||||
static short do_jitter=0;
|
||||
static double jwarn=5000;
|
||||
static double jcrit=10000;
|
||||
static char *jwarn="5000";
|
||||
static char *jcrit="10000";
|
||||
|
||||
int process_arguments (int, char **);
|
||||
thresholds *offset_thresholds = NULL;
|
||||
thresholds *jitter_thresholds = NULL;
|
||||
void print_help (void);
|
||||
void print_usage (void);
|
||||
|
||||
|
@ -473,7 +476,7 @@ double offset_request(const char *host, int *status){
|
|||
/* now, pick the best server from the list */
|
||||
best_index=best_offset_server(servers, num_hosts);
|
||||
if(best_index < 0){
|
||||
*status=STATE_CRITICAL;
|
||||
*status=STATE_UNKNOWN;
|
||||
} else {
|
||||
/* finally, calculate the average offset */
|
||||
for(i=0; i<servers[best_index].num_responses;i++){
|
||||
|
@ -575,7 +578,7 @@ double jitter_request(const char *host, int *status){
|
|||
if(verbose) printf("%d candiate peers available\n", num_candidates);
|
||||
if(verbose && syncsource_found) printf("synchronization source found\n");
|
||||
if(! syncsource_found){
|
||||
*status = STATE_WARNING;
|
||||
*status = STATE_UNKNOWN;
|
||||
if(verbose) printf("warning: no synchronization source found\n");
|
||||
}
|
||||
|
||||
|
@ -625,7 +628,7 @@ double jitter_request(const char *host, int *status){
|
|||
}
|
||||
if(startofvalue == NULL || startofvalue==nptr){
|
||||
printf("warning: unable to read server jitter response.\n");
|
||||
*status = STATE_WARNING;
|
||||
*status = STATE_UNKNOWN;
|
||||
} else {
|
||||
if(verbose) printf("%g\n", jitter);
|
||||
num_valid++;
|
||||
|
@ -686,18 +689,20 @@ int process_arguments(int argc, char **argv){
|
|||
verbose++;
|
||||
break;
|
||||
case 'w':
|
||||
owarn = atof(optarg);
|
||||
do_offset=1;
|
||||
owarn = optarg;
|
||||
break;
|
||||
case 'c':
|
||||
ocrit = atof(optarg);
|
||||
do_offset=1;
|
||||
ocrit = optarg;
|
||||
break;
|
||||
case 'j':
|
||||
do_jitter=1;
|
||||
jwarn = atof(optarg);
|
||||
jwarn = optarg;
|
||||
break;
|
||||
case 'k':
|
||||
do_jitter=1;
|
||||
jcrit = atof(optarg);
|
||||
jcrit = optarg;
|
||||
break;
|
||||
case 'H':
|
||||
if(is_host(optarg) == FALSE)
|
||||
|
@ -724,14 +729,6 @@ int process_arguments(int argc, char **argv){
|
|||
}
|
||||
}
|
||||
|
||||
if (ocrit < owarn){
|
||||
usage4(_("Critical offset should be larger than warning offset"));
|
||||
}
|
||||
|
||||
if (jcrit < jwarn){
|
||||
usage4(_("Critical jitter should be larger than warning jitter"));
|
||||
}
|
||||
|
||||
if(server_address == NULL){
|
||||
usage4(_("Hostname was not supplied"));
|
||||
}
|
||||
|
@ -742,16 +739,16 @@ int process_arguments(int argc, char **argv){
|
|||
char *perfd_offset (double offset)
|
||||
{
|
||||
return fperfdata ("offset", offset, "s",
|
||||
TRUE, owarn,
|
||||
TRUE, ocrit,
|
||||
TRUE, offset_thresholds->warning->end,
|
||||
TRUE, offset_thresholds->critical->end,
|
||||
FALSE, 0, FALSE, 0);
|
||||
}
|
||||
|
||||
char *perfd_jitter (double jitter)
|
||||
{
|
||||
return fperfdata ("jitter", jitter, "s",
|
||||
do_jitter, jwarn,
|
||||
do_jitter, jcrit,
|
||||
do_jitter, jitter_thresholds->warning->end,
|
||||
do_jitter, jitter_thresholds->critical->end,
|
||||
TRUE, 0, FALSE, 0);
|
||||
}
|
||||
|
||||
|
@ -760,11 +757,18 @@ int main(int argc, char *argv[]){
|
|||
double offset=0, jitter=0;
|
||||
char *result_line, *perfdata_line;
|
||||
|
||||
result=offset_result=jitter_result=STATE_UNKNOWN;
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
textdomain (PACKAGE);
|
||||
|
||||
result = offset_result = jitter_result = STATE_OK;
|
||||
|
||||
if (process_arguments (argc, argv) == ERROR)
|
||||
usage4 (_("Could not parse arguments"));
|
||||
|
||||
set_thresholds(&offset_thresholds, owarn, ocrit);
|
||||
set_thresholds(&jitter_thresholds, jwarn, jcrit);
|
||||
|
||||
/* initialize alarm signal handling */
|
||||
signal (SIGALRM, socket_timeout_alarm_handler);
|
||||
|
||||
|
@ -772,14 +776,13 @@ int main(int argc, char *argv[]){
|
|||
alarm (socket_timeout);
|
||||
|
||||
offset = offset_request(server_address, &offset_result);
|
||||
if(fabs(offset) > ocrit){
|
||||
/* check_ntp used to always return CRITICAL if offset_result == STATE_UNKNOWN.
|
||||
* Now we'll only do that is the offset thresholds were set */
|
||||
if (do_offset && offset_result == STATE_UNKNOWN) {
|
||||
result = STATE_CRITICAL;
|
||||
} else if(fabs(offset) > owarn) {
|
||||
result = STATE_WARNING;
|
||||
} else {
|
||||
result = STATE_OK;
|
||||
result = get_status(fabs(offset), offset_thresholds);
|
||||
}
|
||||
result=max_state(result, offset_result);
|
||||
|
||||
/* If not told to check the jitter, we don't even send packets.
|
||||
* jitter is checked using NTP control packets, which not all
|
||||
|
@ -788,40 +791,33 @@ int main(int argc, char *argv[]){
|
|||
*/
|
||||
if(do_jitter){
|
||||
jitter=jitter_request(server_address, &jitter_result);
|
||||
if(jitter > jcrit){
|
||||
result = max_state(result, STATE_CRITICAL);
|
||||
} else if(jitter > jwarn) {
|
||||
result = max_state(result, STATE_WARNING);
|
||||
} else if(jitter == -1.0 && result == STATE_OK){
|
||||
result = max_state_alt(result, get_status(jitter, jitter_thresholds));
|
||||
/* -1 indicates that we couldn't calculate the jitter
|
||||
* Only overrides STATE_OK from the offset */
|
||||
if(jitter == -1.0 && result == STATE_OK)
|
||||
result = STATE_UNKNOWN;
|
||||
}
|
||||
}
|
||||
result=max_state(result, jitter_result);
|
||||
result = max_state_alt(result, jitter_result);
|
||||
|
||||
switch (result) {
|
||||
case STATE_CRITICAL :
|
||||
asprintf(&result_line, "NTP CRITICAL:");
|
||||
asprintf(&result_line, _("NTP CRITICAL:"));
|
||||
break;
|
||||
case STATE_WARNING :
|
||||
asprintf(&result_line, "NTP WARNING:");
|
||||
asprintf(&result_line, _("NTP WARNING:"));
|
||||
break;
|
||||
case STATE_OK :
|
||||
asprintf(&result_line, "NTP OK:");
|
||||
asprintf(&result_line, _("NTP OK:"));
|
||||
break;
|
||||
default :
|
||||
asprintf(&result_line, "NTP UNKNOWN:");
|
||||
asprintf(&result_line, _("NTP UNKNOWN:"));
|
||||
break;
|
||||
}
|
||||
if(offset_result==STATE_CRITICAL){
|
||||
if(offset_result == STATE_UNKNOWN){
|
||||
asprintf(&result_line, "%s %s", result_line, _("Offset unknown"));
|
||||
asprintf(&perfdata_line, "");
|
||||
} else {
|
||||
if(offset_result==STATE_WARNING){
|
||||
asprintf(&result_line, "%s %s", result_line, _("Unable to fully sample sync server"));
|
||||
}
|
||||
asprintf(&result_line, "%s Offset %.10g secs", result_line, offset);
|
||||
asprintf(&result_line, "%s %s %.10g secs", result_line, _("Offset"), offset);
|
||||
asprintf(&perfdata_line, "%s", perfd_offset(offset));
|
||||
}
|
||||
if (do_jitter) {
|
||||
|
@ -849,16 +845,31 @@ void print_help(void){
|
|||
print_usage();
|
||||
printf (_(UT_HELP_VRSN));
|
||||
printf (_(UT_HOST_PORT), 'p', "123");
|
||||
printf (" %s\n", "-w, --warning=DOUBLE");
|
||||
printf (" %s\n", "-w, --warning=THRESHOLD");
|
||||
printf (" %s\n", _("Offset to result in warning status (seconds)"));
|
||||
printf (" %s\n", "-c, --critical=DOUBLE");
|
||||
printf (" %s\n", "-c, --critical=THRESHOLD");
|
||||
printf (" %s\n", _("Offset to result in critical status (seconds)"));
|
||||
printf (" %s\n", "-j, --warning=DOUBLE");
|
||||
printf (" %s\n", _("Warning value for jitter"));
|
||||
printf (" %s\n", "-k, --critical=DOUBLE");
|
||||
printf (" %s\n", _("Critical value for jitter"));
|
||||
printf (" %s\n", "-j, --warning=THRESHOLD");
|
||||
printf (" %s\n", _("Warning threshold for jitter"));
|
||||
printf (" %s\n", "-k, --critical=THRESHOLD");
|
||||
printf (" %s\n", _("Critical threshold for jitter"));
|
||||
printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
|
||||
printf (_(UT_VERBOSE));
|
||||
|
||||
printf("\n");
|
||||
printf("%s\n", _("Notes:"));
|
||||
printf(" %s\n", _("See:"));
|
||||
printf(" %s\n", ("http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT"));
|
||||
printf(" %s\n", _("for THRESHOLD format and examples."));
|
||||
|
||||
printf("\n");
|
||||
printf("%s\n", _("Examples:"));
|
||||
printf(" %s\n", _("Normal offset check:"));
|
||||
printf(" %s\n", ("./check_ntp -H ntpserv -w 0.5 -c 1"));
|
||||
printf(" %s\n", _("Check jitter too, avoiding critical notifications if jitter isn't available"));
|
||||
printf(" %s\n", _("(See Notes above for more details on thresholds formats):"));
|
||||
printf(" %s\n", ("./check_ntp -H ntpserv -w 0.5 -c 1 -j -1:100 -k -1:200"));
|
||||
|
||||
printf (_(UT_SUPPORT));
|
||||
}
|
||||
|
||||
|
|
686
plugins/check_ntp_peer.c
Normal file
686
plugins/check_ntp_peer.c
Normal file
|
@ -0,0 +1,686 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Nagios check_ntp_peer plugin
|
||||
*
|
||||
* License: GPL
|
||||
* Copyright (c) 2006 sean finney <seanius@seanius.net>
|
||||
* Copyright (c) 2007 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-12-11 13:31:22 +0000 (Tue, 11 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* This file contains the check_ntp_peer plugin
|
||||
*
|
||||
* This plugin checks an NTP server independent of any commandline
|
||||
* programs or external libraries.
|
||||
*
|
||||
* Use this plugin to check the health of an NTP server. It supports
|
||||
* checking the offset with the sync peer, the jitter and stratum. This
|
||||
* plugin will not check the clock offset between the local host and NTP
|
||||
* server; please use check_ntp_time for that purpose.
|
||||
*
|
||||
*
|
||||
* License 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
|
||||
* (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: check_ntp_peer.c 1864 2007-12-11 13:31:22Z dermoth $
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
const char *progname = "check_ntp_peer";
|
||||
const char *revision = "$Revision: 1864 $";
|
||||
const char *copyright = "2007";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
#include "common.h"
|
||||
#include "netutils.h"
|
||||
#include "utils.h"
|
||||
|
||||
static char *server_address=NULL;
|
||||
static int verbose=0;
|
||||
static int quiet=0;
|
||||
static short do_offset=0;
|
||||
static char *owarn="60";
|
||||
static char *ocrit="120";
|
||||
static short do_stratum=0;
|
||||
static char *swarn="-1:16";
|
||||
static char *scrit="-1:16";
|
||||
static short do_jitter=0;
|
||||
static char *jwarn="-1:5000";
|
||||
static char *jcrit="-1:10000";
|
||||
static int syncsource_found=0;
|
||||
|
||||
int process_arguments (int, char **);
|
||||
thresholds *offset_thresholds = NULL;
|
||||
thresholds *jitter_thresholds = NULL;
|
||||
thresholds *stratum_thresholds = NULL;
|
||||
void print_help (void);
|
||||
void print_usage (void);
|
||||
|
||||
/* max size of control message data */
|
||||
#define MAX_CM_SIZE 468
|
||||
|
||||
/* this structure holds everything in an ntp control message as per rfc1305 */
|
||||
typedef struct {
|
||||
uint8_t flags; /* byte with leapindicator,vers,mode. see macros */
|
||||
uint8_t op; /* R,E,M bits and Opcode */
|
||||
uint16_t seq; /* Packet sequence */
|
||||
uint16_t status; /* Clock status */
|
||||
uint16_t assoc; /* Association */
|
||||
uint16_t offset; /* Similar to TCP sequence # */
|
||||
uint16_t count; /* # bytes of data */
|
||||
char data[MAX_CM_SIZE]; /* ASCII data of the request */
|
||||
/* NB: not necessarily NULL terminated! */
|
||||
} ntp_control_message;
|
||||
|
||||
/* this is an association/status-word pair found in control packet reponses */
|
||||
typedef struct {
|
||||
uint16_t assoc;
|
||||
uint16_t status;
|
||||
} ntp_assoc_status_pair;
|
||||
|
||||
/* bits 1,2 are the leap indicator */
|
||||
#define LI_MASK 0xc0
|
||||
#define LI(x) ((x&LI_MASK)>>6)
|
||||
#define LI_SET(x,y) do{ x |= ((y<<6)&LI_MASK); }while(0)
|
||||
/* and these are the values of the leap indicator */
|
||||
#define LI_NOWARNING 0x00
|
||||
#define LI_EXTRASEC 0x01
|
||||
#define LI_MISSINGSEC 0x02
|
||||
#define LI_ALARM 0x03
|
||||
/* bits 3,4,5 are the ntp version */
|
||||
#define VN_MASK 0x38
|
||||
#define VN(x) ((x&VN_MASK)>>3)
|
||||
#define VN_SET(x,y) do{ x |= ((y<<3)&VN_MASK); }while(0)
|
||||
#define VN_RESERVED 0x02
|
||||
/* bits 6,7,8 are the ntp mode */
|
||||
#define MODE_MASK 0x07
|
||||
#define MODE(x) (x&MODE_MASK)
|
||||
#define MODE_SET(x,y) do{ x |= (y&MODE_MASK); }while(0)
|
||||
/* here are some values */
|
||||
#define MODE_CLIENT 0x03
|
||||
#define MODE_CONTROLMSG 0x06
|
||||
/* In control message, bits 8-10 are R,E,M bits */
|
||||
#define REM_MASK 0xe0
|
||||
#define REM_RESP 0x80
|
||||
#define REM_ERROR 0x40
|
||||
#define REM_MORE 0x20
|
||||
/* In control message, bits 11 - 15 are opcode */
|
||||
#define OP_MASK 0x1f
|
||||
#define OP_SET(x,y) do{ x |= (y&OP_MASK); }while(0)
|
||||
#define OP_READSTAT 0x01
|
||||
#define OP_READVAR 0x02
|
||||
/* In peer status bytes, bits 6,7,8 determine clock selection status */
|
||||
#define PEER_SEL(x) ((ntohs(x)>>8)&0x07)
|
||||
#define PEER_INCLUDED 0x04
|
||||
#define PEER_SYNCSOURCE 0x06
|
||||
|
||||
/* NTP control message header is 12 bytes, plus any data in the data
|
||||
* field, plus null padding to the nearest 32-bit boundary per rfc.
|
||||
*/
|
||||
#define SIZEOF_NTPCM(m) (12+ntohs(m.count)+((m.count)?4-(ntohs(m.count)%4):0))
|
||||
|
||||
/* finally, a little helper or two for debugging: */
|
||||
#define DBG(x) do{if(verbose>1){ x; }}while(0);
|
||||
#define PRINTSOCKADDR(x) \
|
||||
do{ \
|
||||
printf("%u.%u.%u.%u", (x>>24)&0xff, (x>>16)&0xff, (x>>8)&0xff, x&0xff);\
|
||||
}while(0);
|
||||
|
||||
void print_ntp_control_message(const ntp_control_message *p){
|
||||
int i=0, numpeers=0;
|
||||
const ntp_assoc_status_pair *peer=NULL;
|
||||
|
||||
printf("control packet contents:\n");
|
||||
printf("\tflags: 0x%.2x , 0x%.2x\n", p->flags, p->op);
|
||||
printf("\t li=%d (0x%.2x)\n", LI(p->flags), p->flags&LI_MASK);
|
||||
printf("\t vn=%d (0x%.2x)\n", VN(p->flags), p->flags&VN_MASK);
|
||||
printf("\t mode=%d (0x%.2x)\n", MODE(p->flags), p->flags&MODE_MASK);
|
||||
printf("\t response=%d (0x%.2x)\n", (p->op&REM_RESP)>0, p->op&REM_RESP);
|
||||
printf("\t more=%d (0x%.2x)\n", (p->op&REM_MORE)>0, p->op&REM_MORE);
|
||||
printf("\t error=%d (0x%.2x)\n", (p->op&REM_ERROR)>0, p->op&REM_ERROR);
|
||||
printf("\t op=%d (0x%.2x)\n", p->op&OP_MASK, p->op&OP_MASK);
|
||||
printf("\tsequence: %d (0x%.2x)\n", ntohs(p->seq), ntohs(p->seq));
|
||||
printf("\tstatus: %d (0x%.2x)\n", ntohs(p->status), ntohs(p->status));
|
||||
printf("\tassoc: %d (0x%.2x)\n", ntohs(p->assoc), ntohs(p->assoc));
|
||||
printf("\toffset: %d (0x%.2x)\n", ntohs(p->offset), ntohs(p->offset));
|
||||
printf("\tcount: %d (0x%.2x)\n", ntohs(p->count), ntohs(p->count));
|
||||
numpeers=ntohs(p->count)/(sizeof(ntp_assoc_status_pair));
|
||||
if(p->op&REM_RESP && p->op&OP_READSTAT){
|
||||
peer=(ntp_assoc_status_pair*)p->data;
|
||||
for(i=0;i<numpeers;i++){
|
||||
printf("\tpeer id %.2x status %.2x",
|
||||
ntohs(peer[i].assoc), ntohs(peer[i].status));
|
||||
if (PEER_SEL(peer[i].status) >= PEER_INCLUDED){
|
||||
if(PEER_SEL(peer[i].status) >= PEER_SYNCSOURCE){
|
||||
printf(" <-- current sync source");
|
||||
} else {
|
||||
printf(" <-- current sync candidate");
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
char *extract_value(const char *varlist, const char *name){
|
||||
char *tmpvarlist=NULL, *tmpkey=NULL, *value=NULL;
|
||||
int last=0;
|
||||
|
||||
/* The following code require a non-empty varlist */
|
||||
if(strlen(varlist) == 0)
|
||||
return NULL;
|
||||
|
||||
tmpvarlist = strdup(varlist);
|
||||
tmpkey = strtok(tmpvarlist, "=");
|
||||
|
||||
do {
|
||||
if(strstr(tmpkey, name) != NULL) {
|
||||
value = strtok(NULL, ",");
|
||||
last = 1;
|
||||
}
|
||||
} while (last == 0 && (tmpkey = strtok(NULL, "=")));
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
void
|
||||
setup_control_request(ntp_control_message *p, uint8_t opcode, uint16_t seq){
|
||||
memset(p, 0, sizeof(ntp_control_message));
|
||||
LI_SET(p->flags, LI_NOWARNING);
|
||||
VN_SET(p->flags, VN_RESERVED);
|
||||
MODE_SET(p->flags, MODE_CONTROLMSG);
|
||||
OP_SET(p->op, opcode);
|
||||
p->seq = htons(seq);
|
||||
/* Remaining fields are zero for requests */
|
||||
}
|
||||
|
||||
/* This function does all the actual work; roughly here's what it does
|
||||
* beside setting the offest, jitter and stratum passed as argument:
|
||||
* - offset can be negative, so if it cannot get the offset, offset_result
|
||||
* is set to UNKNOWN, otherwise OK.
|
||||
* - jitter and stratum are set to -1 if they cannot be retrieved so any
|
||||
* positive value means a success retrieving the value.
|
||||
* - status is set to WARNING if there's no sync.peer (otherwise OK) and is
|
||||
* the return value of the function.
|
||||
* status is pretty much useless as syncsource_found is a global variable
|
||||
* used later in main to check is the server was synchronized. It works
|
||||
* so I left it alone */
|
||||
int ntp_request(const char *host, double *offset, int *offset_result, double *jitter, int *stratum){
|
||||
int conn=-1, i, npeers=0, num_candidates=0;
|
||||
double tmp_offset = 0;
|
||||
int min_peer_sel=PEER_INCLUDED;
|
||||
int peers_size=0, peer_offset=0;
|
||||
int status;
|
||||
ntp_assoc_status_pair *peers=NULL;
|
||||
ntp_control_message req;
|
||||
const char *getvar = "stratum,offset,jitter";
|
||||
char *data, *value, *nptr;
|
||||
void *tmp;
|
||||
|
||||
status = STATE_OK;
|
||||
*offset_result = STATE_UNKNOWN;
|
||||
*jitter = *stratum = -1;
|
||||
|
||||
/* Long-winded explanation:
|
||||
* Getting the sync peer offset, jitter and stratum requires a number of
|
||||
* steps:
|
||||
* 1) Send a READSTAT request.
|
||||
* 2) Interpret the READSTAT reply
|
||||
* a) The data section contains a list of peer identifiers (16 bits)
|
||||
* and associated status words (16 bits)
|
||||
* b) We want the value of 0x06 in the SEL (peer selection) value,
|
||||
* which means "current synchronizatin source". If that's missing,
|
||||
* we take anything better than 0x04 (see the rfc for details) but
|
||||
* set a minimum of warning.
|
||||
* 3) Send a READVAR request for information on each peer identified
|
||||
* in 2b greater than the minimum selection value.
|
||||
* 4) Extract the offset, jitter and stratum value from the data[]
|
||||
* (it's ASCII)
|
||||
*/
|
||||
my_udp_connect(server_address, 123, &conn);
|
||||
|
||||
/* keep sending requests until the server stops setting the
|
||||
* REM_MORE bit, though usually this is only 1 packet. */
|
||||
do{
|
||||
setup_control_request(&req, OP_READSTAT, 1);
|
||||
DBG(printf("sending READSTAT request"));
|
||||
write(conn, &req, SIZEOF_NTPCM(req));
|
||||
DBG(print_ntp_control_message(&req));
|
||||
/* Attempt to read the largest size packet possible */
|
||||
req.count=htons(MAX_CM_SIZE);
|
||||
DBG(printf("recieving READSTAT response"))
|
||||
if(read(conn, &req, SIZEOF_NTPCM(req)) == -1)
|
||||
die(STATE_CRITICAL, "NTP CRITICAL: No response from NTP server\n");
|
||||
DBG(print_ntp_control_message(&req));
|
||||
/* Each peer identifier is 4 bytes in the data section, which
|
||||
* we represent as a ntp_assoc_status_pair datatype.
|
||||
*/
|
||||
peers_size+=ntohs(req.count);
|
||||
if((tmp=realloc(peers, peers_size)) == NULL)
|
||||
free(peers), die(STATE_UNKNOWN, "can not (re)allocate 'peers' buffer\n");
|
||||
peers=tmp;
|
||||
memcpy((void*)((ptrdiff_t)peers+peer_offset), (void*)req.data, ntohs(req.count));
|
||||
npeers=peers_size/sizeof(ntp_assoc_status_pair);
|
||||
peer_offset+=ntohs(req.count);
|
||||
} while(req.op&REM_MORE);
|
||||
|
||||
/* first, let's find out if we have a sync source, or if there are
|
||||
* at least some candidates. In the latter case we'll issue
|
||||
* a warning but go ahead with the check on them. */
|
||||
for (i = 0; i < npeers; i++){
|
||||
if (PEER_SEL(peers[i].status) >= PEER_INCLUDED){
|
||||
num_candidates++;
|
||||
if(PEER_SEL(peers[i].status) >= PEER_SYNCSOURCE){
|
||||
syncsource_found=1;
|
||||
min_peer_sel=PEER_SYNCSOURCE;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(verbose) printf("%d candiate peers available\n", num_candidates);
|
||||
if(verbose && syncsource_found) printf("synchronization source found\n");
|
||||
if(! syncsource_found){
|
||||
status = STATE_WARNING;
|
||||
if(verbose) printf("warning: no synchronization source found\n");
|
||||
}
|
||||
|
||||
|
||||
for (i = 0; i < npeers; i++){
|
||||
/* Only query this server if it is the current sync source */
|
||||
/* If there's no sync.peer, query all candidates and use the best one */
|
||||
if (PEER_SEL(peers[i].status) >= min_peer_sel){
|
||||
if(verbose) printf("Getting offset, jitter and stratum for peer %.2x\n", ntohs(peers[i].assoc));
|
||||
asprintf(&data, "");
|
||||
do{
|
||||
setup_control_request(&req, OP_READVAR, 2);
|
||||
req.assoc = peers[i].assoc;
|
||||
/* Putting the wanted variable names in the request
|
||||
* cause the server to provide _only_ the requested values.
|
||||
* thus reducing net traffic, guaranteeing us only a single
|
||||
* datagram in reply, and making intepretation much simpler
|
||||
*/
|
||||
/* Older servers doesn't know what jitter is, so if we get an
|
||||
* error on the first pass we redo it with "dispersion" */
|
||||
strncpy(req.data, getvar, MAX_CM_SIZE-1);
|
||||
req.count = htons(strlen(getvar));
|
||||
DBG(printf("sending READVAR request...\n"));
|
||||
write(conn, &req, SIZEOF_NTPCM(req));
|
||||
DBG(print_ntp_control_message(&req));
|
||||
|
||||
req.count = htons(MAX_CM_SIZE);
|
||||
DBG(printf("receiving READVAR response...\n"));
|
||||
read(conn, &req, SIZEOF_NTPCM(req));
|
||||
DBG(print_ntp_control_message(&req));
|
||||
|
||||
if(!(req.op&REM_ERROR))
|
||||
asprintf(&data, "%s%s", data, req.data);
|
||||
} while(req.op&REM_MORE);
|
||||
|
||||
if(req.op&REM_ERROR) {
|
||||
if(strstr(getvar, "jitter")) {
|
||||
if(verbose) printf("The command failed. This is usually caused by servers refusing the 'jitter'\nvariable. Restarting with 'dispersion'...\n");
|
||||
getvar = "stratum,offset,dispersion";
|
||||
i--;
|
||||
continue;
|
||||
} else if(strlen(getvar)) {
|
||||
if(verbose) printf("Server didn't like dispersion either; will retrieve everything\n");
|
||||
getvar = "";
|
||||
i--;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(verbose > 1)
|
||||
printf("Server responded: >>>%s<<<\n", data);
|
||||
|
||||
/* get the offset */
|
||||
if(verbose)
|
||||
printf("parsing offset from peer %.2x: ", ntohs(peers[i].assoc));
|
||||
|
||||
value = extract_value(data, "offset");
|
||||
nptr=NULL;
|
||||
/* Convert the value if we have one */
|
||||
if(value != NULL)
|
||||
tmp_offset = strtod(value, &nptr) / 1000;
|
||||
/* If value is null or no conversion was performed */
|
||||
if(value == NULL || value==nptr) {
|
||||
if(verbose) printf("error: unable to read server offset response.\n");
|
||||
} else {
|
||||
if(verbose) printf("%.10g\n", tmp_offset);
|
||||
if(*offset_result == STATE_UNKNOWN || fabs(tmp_offset) < fabs(*offset)) {
|
||||
*offset = tmp_offset;
|
||||
*offset_result = STATE_OK;
|
||||
} else {
|
||||
/* Skip this one; move to the next */
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(do_jitter) {
|
||||
/* get the jitter */
|
||||
if(verbose) {
|
||||
printf("parsing %s from peer %.2x: ", strstr(getvar, "dispersion") != NULL ? "dispersion" : "jitter", ntohs(peers[i].assoc));
|
||||
}
|
||||
value = extract_value(data, strstr(getvar, "dispersion") != NULL ? "dispersion" : "jitter");
|
||||
nptr=NULL;
|
||||
/* Convert the value if we have one */
|
||||
if(value != NULL)
|
||||
*jitter = strtod(value, &nptr);
|
||||
/* If value is null or no conversion was performed */
|
||||
if(value == NULL || value==nptr) {
|
||||
if(verbose) printf("error: unable to read server jitter/dispersion response.\n");
|
||||
*jitter = -1;
|
||||
} else if(verbose) {
|
||||
printf("%.10g\n", *jitter);
|
||||
}
|
||||
}
|
||||
|
||||
if(do_stratum) {
|
||||
/* get the stratum */
|
||||
if(verbose) {
|
||||
printf("parsing stratum from peer %.2x: ", ntohs(peers[i].assoc));
|
||||
}
|
||||
value = extract_value(data, "stratum");
|
||||
nptr=NULL;
|
||||
/* Convert the value if we have one */
|
||||
if(value != NULL)
|
||||
*stratum = strtol(value, &nptr, 10);
|
||||
if(value == NULL || value==nptr) {
|
||||
if(verbose) printf("error: unable to read server stratum response.\n");
|
||||
*stratum = -1;
|
||||
} else {
|
||||
if(verbose) printf("%i\n", *stratum);
|
||||
}
|
||||
}
|
||||
} /* if (PEER_SEL(peers[i].status) >= min_peer_sel) */
|
||||
} /* for (i = 0; i < npeers; i++) */
|
||||
|
||||
close(conn);
|
||||
if(peers!=NULL) free(peers);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
int process_arguments(int argc, char **argv){
|
||||
int c;
|
||||
int option=0;
|
||||
static struct option longopts[] = {
|
||||
{"version", no_argument, 0, 'V'},
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"verbose", no_argument, 0, 'v'},
|
||||
{"use-ipv4", no_argument, 0, '4'},
|
||||
{"use-ipv6", no_argument, 0, '6'},
|
||||
{"quiet", no_argument, 0, 'q'},
|
||||
{"warning", required_argument, 0, 'w'},
|
||||
{"critical", required_argument, 0, 'c'},
|
||||
{"swarn", required_argument, 0, 'W'},
|
||||
{"scrit", required_argument, 0, 'C'},
|
||||
{"jwarn", required_argument, 0, 'j'},
|
||||
{"jcrit", required_argument, 0, 'k'},
|
||||
{"timeout", required_argument, 0, 't'},
|
||||
{"hostname", required_argument, 0, 'H'},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
|
||||
if (argc < 2)
|
||||
usage ("\n");
|
||||
|
||||
while (1) {
|
||||
c = getopt_long (argc, argv, "Vhv46qw:c:W:C:j:k:t:H:", longopts, &option);
|
||||
if (c == -1 || c == EOF || c == 1)
|
||||
break;
|
||||
|
||||
switch (c) {
|
||||
case 'h':
|
||||
print_help();
|
||||
exit(STATE_OK);
|
||||
break;
|
||||
case 'V':
|
||||
print_revision(progname, revision);
|
||||
exit(STATE_OK);
|
||||
break;
|
||||
case 'v':
|
||||
verbose++;
|
||||
break;
|
||||
case 'q':
|
||||
quiet = 1;
|
||||
break;
|
||||
case 'w':
|
||||
do_offset=1;
|
||||
owarn = optarg;
|
||||
break;
|
||||
case 'c':
|
||||
do_offset=1;
|
||||
ocrit = optarg;
|
||||
break;
|
||||
case 'W':
|
||||
do_stratum=1;
|
||||
swarn = optarg;
|
||||
break;
|
||||
case 'C':
|
||||
do_stratum=1;
|
||||
scrit = optarg;
|
||||
break;
|
||||
case 'j':
|
||||
do_jitter=1;
|
||||
jwarn = optarg;
|
||||
break;
|
||||
case 'k':
|
||||
do_jitter=1;
|
||||
jcrit = optarg;
|
||||
break;
|
||||
case 'H':
|
||||
if(is_host(optarg) == FALSE)
|
||||
usage2(_("Invalid hostname/address"), optarg);
|
||||
server_address = strdup(optarg);
|
||||
break;
|
||||
case 't':
|
||||
socket_timeout=atoi(optarg);
|
||||
break;
|
||||
case '4':
|
||||
address_family = AF_INET;
|
||||
break;
|
||||
case '6':
|
||||
#ifdef USE_IPV6
|
||||
address_family = AF_INET6;
|
||||
#else
|
||||
usage4 (_("IPv6 support not available"));
|
||||
#endif
|
||||
break;
|
||||
case '?':
|
||||
/* print short usage statement if args not parsable */
|
||||
usage5 ();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(server_address == NULL){
|
||||
usage4(_("Hostname was not supplied"));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *perfd_offset (double offset)
|
||||
{
|
||||
return fperfdata ("offset", offset, "s",
|
||||
TRUE, offset_thresholds->warning->end,
|
||||
TRUE, offset_thresholds->critical->end,
|
||||
FALSE, 0, FALSE, 0);
|
||||
}
|
||||
|
||||
char *perfd_jitter (double jitter)
|
||||
{
|
||||
return fperfdata ("jitter", jitter, "",
|
||||
do_jitter, jitter_thresholds->warning->end,
|
||||
do_jitter, jitter_thresholds->critical->end,
|
||||
TRUE, 0, FALSE, 0);
|
||||
}
|
||||
|
||||
char *perfd_stratum (int stratum)
|
||||
{
|
||||
return perfdata ("stratum", stratum, "",
|
||||
do_stratum, (int)stratum_thresholds->warning->end,
|
||||
do_stratum, (int)stratum_thresholds->critical->end,
|
||||
TRUE, 0, TRUE, 16);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]){
|
||||
int result, offset_result, stratum;
|
||||
double offset=0, jitter=0;
|
||||
char *result_line, *perfdata_line;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
textdomain (PACKAGE);
|
||||
|
||||
if (process_arguments (argc, argv) == ERROR)
|
||||
usage4 (_("Could not parse arguments"));
|
||||
|
||||
set_thresholds(&offset_thresholds, owarn, ocrit);
|
||||
set_thresholds(&jitter_thresholds, jwarn, jcrit);
|
||||
set_thresholds(&stratum_thresholds, swarn, scrit);
|
||||
|
||||
/* initialize alarm signal handling */
|
||||
signal (SIGALRM, socket_timeout_alarm_handler);
|
||||
|
||||
/* set socket timeout */
|
||||
alarm (socket_timeout);
|
||||
|
||||
/* This returns either OK or WARNING (See comment preceeding ntp_request) */
|
||||
result = ntp_request(server_address, &offset, &offset_result, &jitter, &stratum);
|
||||
|
||||
if(offset_result == STATE_UNKNOWN) {
|
||||
/* if there's no sync peer (this overrides ntp_request output): */
|
||||
result = (quiet == 1 ? STATE_UNKNOWN : STATE_CRITICAL);
|
||||
} else {
|
||||
/* Be quiet if there's no candidates either */
|
||||
if (quiet == 1 && result == STATE_WARNING)
|
||||
result = STATE_UNKNOWN;
|
||||
result = max_state_alt(result, get_status(fabs(offset), offset_thresholds));
|
||||
}
|
||||
|
||||
if(do_stratum)
|
||||
result = max_state_alt(result, get_status(stratum, stratum_thresholds));
|
||||
|
||||
if(do_jitter)
|
||||
result = max_state_alt(result, get_status(jitter, jitter_thresholds));
|
||||
|
||||
switch (result) {
|
||||
case STATE_CRITICAL :
|
||||
asprintf(&result_line, _("NTP CRITICAL:"));
|
||||
break;
|
||||
case STATE_WARNING :
|
||||
asprintf(&result_line, _("NTP WARNING:"));
|
||||
break;
|
||||
case STATE_OK :
|
||||
asprintf(&result_line, _("NTP OK:"));
|
||||
break;
|
||||
default :
|
||||
asprintf(&result_line, _("NTP UNKNOWN:"));
|
||||
break;
|
||||
}
|
||||
if(!syncsource_found)
|
||||
asprintf(&result_line, "%s %s,", result_line, _("Server not synchronized"));
|
||||
|
||||
if(offset_result == STATE_UNKNOWN){
|
||||
asprintf(&result_line, "%s %s", result_line, _("Offset unknown"));
|
||||
asprintf(&perfdata_line, "");
|
||||
} else {
|
||||
asprintf(&result_line, "%s %s %.10g secs", result_line, _("Offset"), offset);
|
||||
asprintf(&perfdata_line, "%s", perfd_offset(offset));
|
||||
}
|
||||
if (do_jitter) {
|
||||
asprintf(&result_line, "%s, jitter=%f", result_line, jitter);
|
||||
asprintf(&perfdata_line, "%s %s", perfdata_line, perfd_jitter(jitter));
|
||||
}
|
||||
if (do_stratum) {
|
||||
asprintf(&result_line, "%s, stratum=%i", result_line, stratum);
|
||||
asprintf(&perfdata_line, "%s %s", perfdata_line, perfd_stratum(stratum));
|
||||
}
|
||||
printf("%s|%s\n", result_line, perfdata_line);
|
||||
|
||||
if(server_address!=NULL) free(server_address);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void print_help(void){
|
||||
print_revision(progname, revision);
|
||||
|
||||
printf ("Copyright (c) 2006 Sean Finney\n");
|
||||
printf (COPYRIGHT, copyright, email);
|
||||
|
||||
printf ("%s\n", _("This plugin checks the selected ntp server"));
|
||||
|
||||
printf ("\n\n");
|
||||
|
||||
print_usage();
|
||||
printf (_(UT_HELP_VRSN));
|
||||
printf (_(UT_HOST_PORT), 'p', "123");
|
||||
printf (" %s\n", "-q, --quiet");
|
||||
printf (" %s\n", _("Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized"));
|
||||
printf (" %s\n", "-w, --warning=THRESHOLD");
|
||||
printf (" %s\n", _("Offset to result in warning status (seconds)"));
|
||||
printf (" %s\n", "-c, --critical=THRESHOLD");
|
||||
printf (" %s\n", _("Offset to result in critical status (seconds)"));
|
||||
printf (" %s\n", "-W, --warning=THRESHOLD");
|
||||
printf (" %s\n", _("Warning threshold for stratum"));
|
||||
printf (" %s\n", "-W, --critical=THRESHOLD");
|
||||
printf (" %s\n", _("Critical threshold for stratum"));
|
||||
printf (" %s\n", "-j, --warning=THRESHOLD");
|
||||
printf (" %s\n", _("Warning threshold for jitter"));
|
||||
printf (" %s\n", "-k, --critical=THRESHOLD");
|
||||
printf (" %s\n", _("Critical threshold for jitter"));
|
||||
printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
|
||||
printf (_(UT_VERBOSE));
|
||||
|
||||
printf("\n");
|
||||
printf("%s\n", _("Notes:"));
|
||||
printf(" %s\n", _("This plugin checks an NTP server independent of any commandline"));
|
||||
printf(" %s\n\n", _("programs or external libraries."));
|
||||
printf(" %s\n", _("Use this plugin to check the health of an NTP server. It supports"));
|
||||
printf(" %s\n", _("checking the offset with the sync peer, the jitter and stratum. This"));
|
||||
printf(" %s\n", _("plugin will not check the clock offset between the local host and NTP"));
|
||||
printf(" %s\n\n", _("server; please use check_ntp_time for that purpose."));
|
||||
|
||||
printf(" %s\n", _("See:"));
|
||||
printf(" %s\n", ("http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT"));
|
||||
printf(" %s\n", _("for THRESHOLD format and examples."));
|
||||
|
||||
printf("\n");
|
||||
printf("%s\n", _("Examples:"));
|
||||
printf(" %s\n", _("Simple NTP server check:"));
|
||||
printf(" %s\n", ("./check_ntp_peer -H ntpserv -w 0.5 -c 1"));
|
||||
printf(" %s\n", _("Check jitter too, avoiding critical notifications if jitter isn't available"));
|
||||
printf(" %s\n", _("(See Notes above for more details on thresholds formats):"));
|
||||
printf(" %s\n", ("./check_ntp_peer -H ntpserv -w 0.5 -c 1 -j -1:100 -k -1:200"));
|
||||
printf(" %s\n", _("Check only stratum:"));
|
||||
printf(" %s\n", ("./check_ntp_peer -H ntpserv -W 4 -C 6"));
|
||||
|
||||
printf (_(UT_SUPPORT));
|
||||
}
|
||||
|
||||
void
|
||||
print_usage(void)
|
||||
{
|
||||
printf (_("Usage:"));
|
||||
printf(" %s -H <host> [-w <warn>] [-c <crit>] [-W <warn>] [-C <crit>]\n", progname);
|
||||
printf(" [-j <warn>] [-k <crit>] [-v verbose]\n");
|
||||
}
|
636
plugins/check_ntp_time.c
Normal file
636
plugins/check_ntp_time.c
Normal file
|
@ -0,0 +1,636 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Nagios check_ntp_time plugin
|
||||
*
|
||||
* License: GPL
|
||||
* Copyright (c) 2006 sean finney <seanius@seanius.net>
|
||||
* Copyright (c) 2007 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* This file contains the check_ntp_time plugin
|
||||
*
|
||||
* This plugin checks the clock offset between the local host and a
|
||||
* remote NTP server. It is independent of any commandline programs or
|
||||
* external libraries.
|
||||
*
|
||||
* If you'd rather want to monitor an NTP server, please use
|
||||
* check_ntp_peer.
|
||||
*
|
||||
*
|
||||
* License 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
|
||||
* (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: check_ntp_time.c 1861 2007-12-11 05:57:35Z dermoth $
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
const char *progname = "check_ntp_time";
|
||||
const char *revision = "$Revision: 1861 $";
|
||||
const char *copyright = "2007";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
#include "common.h"
|
||||
#include "netutils.h"
|
||||
#include "utils.h"
|
||||
|
||||
static char *server_address=NULL;
|
||||
static int verbose=0;
|
||||
static int quiet=0;
|
||||
static char *owarn="60";
|
||||
static char *ocrit="120";
|
||||
|
||||
int process_arguments (int, char **);
|
||||
thresholds *offset_thresholds = NULL;
|
||||
void print_help (void);
|
||||
void print_usage (void);
|
||||
|
||||
/* number of times to perform each request to get a good average. */
|
||||
#define AVG_NUM 4
|
||||
|
||||
/* max size of control message data */
|
||||
#define MAX_CM_SIZE 468
|
||||
|
||||
/* this structure holds everything in an ntp request/response as per rfc1305 */
|
||||
typedef struct {
|
||||
uint8_t flags; /* byte with leapindicator,vers,mode. see macros */
|
||||
uint8_t stratum; /* clock stratum */
|
||||
int8_t poll; /* polling interval */
|
||||
int8_t precision; /* precision of the local clock */
|
||||
int32_t rtdelay; /* total rt delay, as a fixed point num. see macros */
|
||||
uint32_t rtdisp; /* like above, but for max err to primary src */
|
||||
uint32_t refid; /* ref clock identifier */
|
||||
uint64_t refts; /* reference timestamp. local time local clock */
|
||||
uint64_t origts; /* time at which request departed client */
|
||||
uint64_t rxts; /* time at which request arrived at server */
|
||||
uint64_t txts; /* time at which request departed server */
|
||||
} ntp_message;
|
||||
|
||||
/* this structure holds data about results from querying offset from a peer */
|
||||
typedef struct {
|
||||
time_t waiting; /* ts set when we started waiting for a response */
|
||||
int num_responses; /* number of successfully recieved responses */
|
||||
uint8_t stratum; /* copied verbatim from the ntp_message */
|
||||
double rtdelay; /* converted from the ntp_message */
|
||||
double rtdisp; /* converted from the ntp_message */
|
||||
double offset[AVG_NUM]; /* offsets from each response */
|
||||
uint8_t flags; /* byte with leapindicator,vers,mode. see macros */
|
||||
} ntp_server_results;
|
||||
|
||||
/* bits 1,2 are the leap indicator */
|
||||
#define LI_MASK 0xc0
|
||||
#define LI(x) ((x&LI_MASK)>>6)
|
||||
#define LI_SET(x,y) do{ x |= ((y<<6)&LI_MASK); }while(0)
|
||||
/* and these are the values of the leap indicator */
|
||||
#define LI_NOWARNING 0x00
|
||||
#define LI_EXTRASEC 0x01
|
||||
#define LI_MISSINGSEC 0x02
|
||||
#define LI_ALARM 0x03
|
||||
/* bits 3,4,5 are the ntp version */
|
||||
#define VN_MASK 0x38
|
||||
#define VN(x) ((x&VN_MASK)>>3)
|
||||
#define VN_SET(x,y) do{ x |= ((y<<3)&VN_MASK); }while(0)
|
||||
#define VN_RESERVED 0x02
|
||||
/* bits 6,7,8 are the ntp mode */
|
||||
#define MODE_MASK 0x07
|
||||
#define MODE(x) (x&MODE_MASK)
|
||||
#define MODE_SET(x,y) do{ x |= (y&MODE_MASK); }while(0)
|
||||
/* here are some values */
|
||||
#define MODE_CLIENT 0x03
|
||||
#define MODE_CONTROLMSG 0x06
|
||||
/* In control message, bits 8-10 are R,E,M bits */
|
||||
#define REM_MASK 0xe0
|
||||
#define REM_RESP 0x80
|
||||
#define REM_ERROR 0x40
|
||||
#define REM_MORE 0x20
|
||||
/* In control message, bits 11 - 15 are opcode */
|
||||
#define OP_MASK 0x1f
|
||||
#define OP_SET(x,y) do{ x |= (y&OP_MASK); }while(0)
|
||||
#define OP_READSTAT 0x01
|
||||
#define OP_READVAR 0x02
|
||||
/* In peer status bytes, bits 6,7,8 determine clock selection status */
|
||||
#define PEER_SEL(x) ((ntohs(x)>>8)&0x07)
|
||||
#define PEER_INCLUDED 0x04
|
||||
#define PEER_SYNCSOURCE 0x06
|
||||
|
||||
/**
|
||||
** a note about the 32-bit "fixed point" numbers:
|
||||
**
|
||||
they are divided into halves, each being a 16-bit int in network byte order:
|
||||
- the first 16 bits are an int on the left side of a decimal point.
|
||||
- the second 16 bits represent a fraction n/(2^16)
|
||||
likewise for the 64-bit "fixed point" numbers with everything doubled :)
|
||||
**/
|
||||
|
||||
/* macros to access the left/right 16 bits of a 32-bit ntp "fixed point"
|
||||
number. note that these can be used as lvalues too */
|
||||
#define L16(x) (((uint16_t*)&x)[0])
|
||||
#define R16(x) (((uint16_t*)&x)[1])
|
||||
/* macros to access the left/right 32 bits of a 64-bit ntp "fixed point"
|
||||
number. these too can be used as lvalues */
|
||||
#define L32(x) (((uint32_t*)&x)[0])
|
||||
#define R32(x) (((uint32_t*)&x)[1])
|
||||
|
||||
/* ntp wants seconds since 1/1/00, epoch is 1/1/70. this is the difference */
|
||||
#define EPOCHDIFF 0x83aa7e80UL
|
||||
|
||||
/* extract a 32-bit ntp fixed point number into a double */
|
||||
#define NTP32asDOUBLE(x) (ntohs(L16(x)) + (double)ntohs(R16(x))/65536.0)
|
||||
|
||||
/* likewise for a 64-bit ntp fp number */
|
||||
#define NTP64asDOUBLE(n) (double)(((uint64_t)n)?\
|
||||
(ntohl(L32(n))-EPOCHDIFF) + \
|
||||
(.00000001*(0.5+(double)(ntohl(R32(n))/42.94967296))):\
|
||||
0)
|
||||
|
||||
/* convert a struct timeval to a double */
|
||||
#define TVasDOUBLE(x) (double)(x.tv_sec+(0.000001*x.tv_usec))
|
||||
|
||||
/* convert an ntp 64-bit fp number to a struct timeval */
|
||||
#define NTP64toTV(n,t) \
|
||||
do{ if(!n) t.tv_sec = t.tv_usec = 0; \
|
||||
else { \
|
||||
t.tv_sec=ntohl(L32(n))-EPOCHDIFF; \
|
||||
t.tv_usec=(int)(0.5+(double)(ntohl(R32(n))/4294.967296)); \
|
||||
} \
|
||||
}while(0)
|
||||
|
||||
/* convert a struct timeval to an ntp 64-bit fp number */
|
||||
#define TVtoNTP64(t,n) \
|
||||
do{ if(!t.tv_usec && !t.tv_sec) n=0x0UL; \
|
||||
else { \
|
||||
L32(n)=htonl(t.tv_sec + EPOCHDIFF); \
|
||||
R32(n)=htonl((uint64_t)((4294.967296*t.tv_usec)+.5)); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
/* NTP control message header is 12 bytes, plus any data in the data
|
||||
* field, plus null padding to the nearest 32-bit boundary per rfc.
|
||||
*/
|
||||
#define SIZEOF_NTPCM(m) (12+ntohs(m.count)+((m.count)?4-(ntohs(m.count)%4):0))
|
||||
|
||||
/* finally, a little helper or two for debugging: */
|
||||
#define DBG(x) do{if(verbose>1){ x; }}while(0);
|
||||
#define PRINTSOCKADDR(x) \
|
||||
do{ \
|
||||
printf("%u.%u.%u.%u", (x>>24)&0xff, (x>>16)&0xff, (x>>8)&0xff, x&0xff);\
|
||||
}while(0);
|
||||
|
||||
/* calculate the offset of the local clock */
|
||||
static inline double calc_offset(const ntp_message *m, const struct timeval *t){
|
||||
double client_tx, peer_rx, peer_tx, client_rx;
|
||||
client_tx = NTP64asDOUBLE(m->origts);
|
||||
peer_rx = NTP64asDOUBLE(m->rxts);
|
||||
peer_tx = NTP64asDOUBLE(m->txts);
|
||||
client_rx=TVasDOUBLE((*t));
|
||||
return (.5*((peer_tx-client_rx)+(peer_rx-client_tx)));
|
||||
}
|
||||
|
||||
/* print out a ntp packet in human readable/debuggable format */
|
||||
void print_ntp_message(const ntp_message *p){
|
||||
struct timeval ref, orig, rx, tx;
|
||||
|
||||
NTP64toTV(p->refts,ref);
|
||||
NTP64toTV(p->origts,orig);
|
||||
NTP64toTV(p->rxts,rx);
|
||||
NTP64toTV(p->txts,tx);
|
||||
|
||||
printf("packet contents:\n");
|
||||
printf("\tflags: 0x%.2x\n", p->flags);
|
||||
printf("\t li=%d (0x%.2x)\n", LI(p->flags), p->flags&LI_MASK);
|
||||
printf("\t vn=%d (0x%.2x)\n", VN(p->flags), p->flags&VN_MASK);
|
||||
printf("\t mode=%d (0x%.2x)\n", MODE(p->flags), p->flags&MODE_MASK);
|
||||
printf("\tstratum = %d\n", p->stratum);
|
||||
printf("\tpoll = %g\n", pow(2, p->poll));
|
||||
printf("\tprecision = %g\n", pow(2, p->precision));
|
||||
printf("\trtdelay = %-.16g\n", NTP32asDOUBLE(p->rtdelay));
|
||||
printf("\trtdisp = %-.16g\n", NTP32asDOUBLE(p->rtdisp));
|
||||
printf("\trefid = %x\n", p->refid);
|
||||
printf("\trefts = %-.16g\n", NTP64asDOUBLE(p->refts));
|
||||
printf("\torigts = %-.16g\n", NTP64asDOUBLE(p->origts));
|
||||
printf("\trxts = %-.16g\n", NTP64asDOUBLE(p->rxts));
|
||||
printf("\ttxts = %-.16g\n", NTP64asDOUBLE(p->txts));
|
||||
}
|
||||
|
||||
void setup_request(ntp_message *p){
|
||||
struct timeval t;
|
||||
|
||||
memset(p, 0, sizeof(ntp_message));
|
||||
LI_SET(p->flags, LI_ALARM);
|
||||
VN_SET(p->flags, 4);
|
||||
MODE_SET(p->flags, MODE_CLIENT);
|
||||
p->poll=4;
|
||||
p->precision=(int8_t)0xfa;
|
||||
L16(p->rtdelay)=htons(1);
|
||||
L16(p->rtdisp)=htons(1);
|
||||
|
||||
gettimeofday(&t, NULL);
|
||||
TVtoNTP64(t,p->txts);
|
||||
}
|
||||
|
||||
/* select the "best" server from a list of servers, and return its index.
|
||||
* this is done by filtering servers based on stratum, dispersion, and
|
||||
* finally round-trip delay. */
|
||||
int best_offset_server(const ntp_server_results *slist, int nservers){
|
||||
int i=0, j=0, cserver=0, candidates[5], csize=0;
|
||||
|
||||
/* for each server */
|
||||
for(cserver=0; cserver<nservers; cserver++){
|
||||
/* sort out servers with error flags */
|
||||
if ( LI(slist[cserver].flags) != LI_NOWARNING ){
|
||||
if (verbose) printf("discarding peer id %d: flags=%d\n", cserver, LI(slist[cserver].flags));
|
||||
break;
|
||||
}
|
||||
|
||||
/* compare it to each of the servers already in the candidate list */
|
||||
for(i=0; i<csize; i++){
|
||||
/* does it have an equal or better stratum? */
|
||||
if(slist[cserver].stratum <= slist[i].stratum){
|
||||
/* does it have an equal or better dispersion? */
|
||||
if(slist[cserver].rtdisp <= slist[i].rtdisp){
|
||||
/* does it have a better rtdelay? */
|
||||
if(slist[cserver].rtdelay < slist[i].rtdelay){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* if we haven't reached the current list's end, move everyone
|
||||
* over one to the right, and insert the new candidate */
|
||||
if(i<csize){
|
||||
for(j=5; j>i; j--){
|
||||
candidates[j]=candidates[j-1];
|
||||
}
|
||||
}
|
||||
/* regardless, if they should be on the list... */
|
||||
if(i<5) {
|
||||
candidates[i]=cserver;
|
||||
if(csize<5) csize++;
|
||||
/* otherwise discard the server */
|
||||
} else {
|
||||
DBG(printf("discarding peer id %d\n", cserver));
|
||||
}
|
||||
}
|
||||
|
||||
if(csize>0) {
|
||||
DBG(printf("best server selected: peer %d\n", candidates[0]));
|
||||
return candidates[0];
|
||||
} else {
|
||||
DBG(printf("no peers meeting synchronization criteria :(\n"));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* do everything we need to get the total average offset
|
||||
* - we use a certain amount of parallelization with poll() to ensure
|
||||
* we don't waste time sitting around waiting for single packets.
|
||||
* - we also "manually" handle resolving host names and connecting, because
|
||||
* we have to do it in a way that our lazy macros don't handle currently :( */
|
||||
double offset_request(const char *host, int *status){
|
||||
int i=0, j=0, ga_result=0, num_hosts=0, *socklist=NULL, respnum=0;
|
||||
int servers_completed=0, one_written=0, one_read=0, servers_readable=0, best_index=-1;
|
||||
time_t now_time=0, start_ts=0;
|
||||
ntp_message *req=NULL;
|
||||
double avg_offset=0.;
|
||||
struct timeval recv_time;
|
||||
struct addrinfo *ai=NULL, *ai_tmp=NULL, hints;
|
||||
struct pollfd *ufds=NULL;
|
||||
ntp_server_results *servers=NULL;
|
||||
|
||||
/* setup hints to only return results from getaddrinfo that we'd like */
|
||||
memset(&hints, 0, sizeof(struct addrinfo));
|
||||
hints.ai_family = address_family;
|
||||
hints.ai_protocol = IPPROTO_UDP;
|
||||
hints.ai_socktype = SOCK_DGRAM;
|
||||
|
||||
/* fill in ai with the list of hosts resolved by the host name */
|
||||
ga_result = getaddrinfo(host, "123", &hints, &ai);
|
||||
if(ga_result!=0){
|
||||
die(STATE_UNKNOWN, "error getting address for %s: %s\n",
|
||||
host, gai_strerror(ga_result));
|
||||
}
|
||||
|
||||
/* count the number of returned hosts, and allocate stuff accordingly */
|
||||
for(ai_tmp=ai; ai_tmp!=NULL; ai_tmp=ai_tmp->ai_next){ num_hosts++; }
|
||||
req=(ntp_message*)malloc(sizeof(ntp_message)*num_hosts);
|
||||
if(req==NULL) die(STATE_UNKNOWN, "can not allocate ntp message array");
|
||||
socklist=(int*)malloc(sizeof(int)*num_hosts);
|
||||
if(socklist==NULL) die(STATE_UNKNOWN, "can not allocate socket array");
|
||||
ufds=(struct pollfd*)malloc(sizeof(struct pollfd)*num_hosts);
|
||||
if(ufds==NULL) die(STATE_UNKNOWN, "can not allocate socket array");
|
||||
servers=(ntp_server_results*)malloc(sizeof(ntp_server_results)*num_hosts);
|
||||
if(servers==NULL) die(STATE_UNKNOWN, "can not allocate server array");
|
||||
memset(servers, 0, sizeof(ntp_server_results)*num_hosts);
|
||||
|
||||
/* setup each socket for writing, and the corresponding struct pollfd */
|
||||
ai_tmp=ai;
|
||||
for(i=0;ai_tmp;i++){
|
||||
socklist[i]=socket(ai_tmp->ai_family, SOCK_DGRAM, IPPROTO_UDP);
|
||||
if(socklist[i] == -1) {
|
||||
perror(NULL);
|
||||
die(STATE_UNKNOWN, "can not create new socket");
|
||||
}
|
||||
if(connect(socklist[i], ai_tmp->ai_addr, ai_tmp->ai_addrlen)){
|
||||
die(STATE_UNKNOWN, "can't create socket connection");
|
||||
} else {
|
||||
ufds[i].fd=socklist[i];
|
||||
ufds[i].events=POLLIN;
|
||||
ufds[i].revents=0;
|
||||
}
|
||||
ai_tmp = ai_tmp->ai_next;
|
||||
}
|
||||
|
||||
/* now do AVG_NUM checks to each host. We stop before timeout/2 seconds
|
||||
* have passed in order to ensure post-processing and jitter time. */
|
||||
now_time=start_ts=time(NULL);
|
||||
while(servers_completed<num_hosts && now_time-start_ts <= socket_timeout/2){
|
||||
/* loop through each server and find each one which hasn't
|
||||
* been touched in the past second or so and is still lacking
|
||||
* some responses. For each of these servers, send a new request,
|
||||
* and update the "waiting" timestamp with the current time. */
|
||||
one_written=0;
|
||||
now_time=time(NULL);
|
||||
|
||||
for(i=0; i<num_hosts; i++){
|
||||
if(servers[i].waiting<now_time && servers[i].num_responses<AVG_NUM){
|
||||
if(verbose && servers[i].waiting != 0) printf("re-");
|
||||
if(verbose) printf("sending request to peer %d\n", i);
|
||||
setup_request(&req[i]);
|
||||
write(socklist[i], &req[i], sizeof(ntp_message));
|
||||
servers[i].waiting=now_time;
|
||||
one_written=1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* quickly poll for any sockets with pending data */
|
||||
servers_readable=poll(ufds, num_hosts, 100);
|
||||
if(servers_readable==-1){
|
||||
perror("polling ntp sockets");
|
||||
die(STATE_UNKNOWN, "communication errors");
|
||||
}
|
||||
|
||||
/* read from any sockets with pending data */
|
||||
for(i=0; servers_readable && i<num_hosts; i++){
|
||||
if(ufds[i].revents&POLLIN && servers[i].num_responses < AVG_NUM){
|
||||
if(verbose) {
|
||||
printf("response from peer %d: ", i);
|
||||
}
|
||||
|
||||
read(ufds[i].fd, &req[i], sizeof(ntp_message));
|
||||
gettimeofday(&recv_time, NULL);
|
||||
DBG(print_ntp_message(&req[i]));
|
||||
respnum=servers[i].num_responses++;
|
||||
servers[i].offset[respnum]=calc_offset(&req[i], &recv_time);
|
||||
if(verbose) {
|
||||
printf("offset %.10g\n", servers[i].offset[respnum]);
|
||||
}
|
||||
servers[i].stratum=req[i].stratum;
|
||||
servers[i].rtdisp=NTP32asDOUBLE(req[i].rtdisp);
|
||||
servers[i].rtdelay=NTP32asDOUBLE(req[i].rtdelay);
|
||||
servers[i].waiting=0;
|
||||
servers[i].flags=req[i].flags;
|
||||
servers_readable--;
|
||||
one_read = 1;
|
||||
if(servers[i].num_responses==AVG_NUM) servers_completed++;
|
||||
}
|
||||
}
|
||||
/* lather, rinse, repeat. */
|
||||
}
|
||||
|
||||
if (one_read == 0) {
|
||||
die(STATE_CRITICAL, "NTP CRITICAL: No response from NTP server\n");
|
||||
}
|
||||
|
||||
/* now, pick the best server from the list */
|
||||
best_index=best_offset_server(servers, num_hosts);
|
||||
if(best_index < 0){
|
||||
*status=STATE_UNKNOWN;
|
||||
} else {
|
||||
/* finally, calculate the average offset */
|
||||
for(i=0; i<servers[best_index].num_responses;i++){
|
||||
avg_offset+=servers[best_index].offset[j];
|
||||
}
|
||||
avg_offset/=servers[best_index].num_responses;
|
||||
}
|
||||
|
||||
/* cleanup */
|
||||
for(j=0; j<num_hosts; j++){ close(socklist[j]); }
|
||||
free(socklist);
|
||||
free(ufds);
|
||||
free(servers);
|
||||
free(req);
|
||||
freeaddrinfo(ai);
|
||||
|
||||
if(verbose) printf("overall average offset: %.10g\n", avg_offset);
|
||||
return avg_offset;
|
||||
}
|
||||
|
||||
int process_arguments(int argc, char **argv){
|
||||
int c;
|
||||
int option=0;
|
||||
static struct option longopts[] = {
|
||||
{"version", no_argument, 0, 'V'},
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"verbose", no_argument, 0, 'v'},
|
||||
{"use-ipv4", no_argument, 0, '4'},
|
||||
{"use-ipv6", no_argument, 0, '6'},
|
||||
{"quiet", no_argument, 0, 'q'},
|
||||
{"warning", required_argument, 0, 'w'},
|
||||
{"critical", required_argument, 0, 'c'},
|
||||
{"timeout", required_argument, 0, 't'},
|
||||
{"hostname", required_argument, 0, 'H'},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
|
||||
if (argc < 2)
|
||||
usage ("\n");
|
||||
|
||||
while (1) {
|
||||
c = getopt_long (argc, argv, "Vhv46qw:c:t:H:", longopts, &option);
|
||||
if (c == -1 || c == EOF || c == 1)
|
||||
break;
|
||||
|
||||
switch (c) {
|
||||
case 'h':
|
||||
print_help();
|
||||
exit(STATE_OK);
|
||||
break;
|
||||
case 'V':
|
||||
print_revision(progname, revision);
|
||||
exit(STATE_OK);
|
||||
break;
|
||||
case 'v':
|
||||
verbose++;
|
||||
break;
|
||||
case 'q':
|
||||
quiet = 1;
|
||||
break;
|
||||
case 'w':
|
||||
owarn = optarg;
|
||||
break;
|
||||
case 'c':
|
||||
ocrit = optarg;
|
||||
break;
|
||||
case 'H':
|
||||
if(is_host(optarg) == FALSE)
|
||||
usage2(_("Invalid hostname/address"), optarg);
|
||||
server_address = strdup(optarg);
|
||||
break;
|
||||
case 't':
|
||||
socket_timeout=atoi(optarg);
|
||||
break;
|
||||
case '4':
|
||||
address_family = AF_INET;
|
||||
break;
|
||||
case '6':
|
||||
#ifdef USE_IPV6
|
||||
address_family = AF_INET6;
|
||||
#else
|
||||
usage4 (_("IPv6 support not available"));
|
||||
#endif
|
||||
break;
|
||||
case '?':
|
||||
/* print short usage statement if args not parsable */
|
||||
usage5 ();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(server_address == NULL){
|
||||
usage4(_("Hostname was not supplied"));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *perfd_offset (double offset)
|
||||
{
|
||||
return fperfdata ("offset", offset, "s",
|
||||
TRUE, offset_thresholds->warning->end,
|
||||
TRUE, offset_thresholds->critical->end,
|
||||
FALSE, 0, FALSE, 0);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]){
|
||||
int result, offset_result;
|
||||
double offset=0;
|
||||
char *result_line, *perfdata_line;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
textdomain (PACKAGE);
|
||||
|
||||
result = offset_result = STATE_OK;
|
||||
|
||||
if (process_arguments (argc, argv) == ERROR)
|
||||
usage4 (_("Could not parse arguments"));
|
||||
|
||||
set_thresholds(&offset_thresholds, owarn, ocrit);
|
||||
|
||||
/* initialize alarm signal handling */
|
||||
signal (SIGALRM, socket_timeout_alarm_handler);
|
||||
|
||||
/* set socket timeout */
|
||||
alarm (socket_timeout);
|
||||
|
||||
offset = offset_request(server_address, &offset_result);
|
||||
if (offset_result == STATE_UNKNOWN) {
|
||||
result = (quiet == 1 ? STATE_UNKNOWN : STATE_CRITICAL);
|
||||
} else {
|
||||
result = get_status(fabs(offset), offset_thresholds);
|
||||
}
|
||||
|
||||
switch (result) {
|
||||
case STATE_CRITICAL :
|
||||
asprintf(&result_line, _("NTP CRITICAL:"));
|
||||
break;
|
||||
case STATE_WARNING :
|
||||
asprintf(&result_line, _("NTP WARNING:"));
|
||||
break;
|
||||
case STATE_OK :
|
||||
asprintf(&result_line, _("NTP OK:"));
|
||||
break;
|
||||
default :
|
||||
asprintf(&result_line, _("NTP UNKNOWN:"));
|
||||
break;
|
||||
}
|
||||
if(offset_result == STATE_UNKNOWN){
|
||||
asprintf(&result_line, "%s %s", result_line, _("Offset unknown"));
|
||||
asprintf(&perfdata_line, "");
|
||||
} else {
|
||||
asprintf(&result_line, "%s %s %.10g secs", result_line, _("Offset"), offset);
|
||||
asprintf(&perfdata_line, "%s", perfd_offset(offset));
|
||||
}
|
||||
printf("%s|%s\n", result_line, perfdata_line);
|
||||
|
||||
if(server_address!=NULL) free(server_address);
|
||||
return result;
|
||||
}
|
||||
|
||||
void print_help(void){
|
||||
print_revision(progname, revision);
|
||||
|
||||
printf ("Copyright (c) 2006 Sean Finney\n");
|
||||
printf (COPYRIGHT, copyright, email);
|
||||
|
||||
printf ("%s\n", _("This plugin checks the clock offset with the ntp server"));
|
||||
|
||||
printf ("\n\n");
|
||||
|
||||
print_usage();
|
||||
printf (_(UT_HELP_VRSN));
|
||||
printf (_(UT_HOST_PORT), 'p', "123");
|
||||
printf (" %s\n", "-q, --quiet");
|
||||
printf (" %s\n", _("Returns UNKNOWN instead of CRITICAL if offset cannot be found"));
|
||||
printf (" %s\n", "-w, --warning=THRESHOLD");
|
||||
printf (" %s\n", _("Offset to result in warning status (seconds)"));
|
||||
printf (" %s\n", "-c, --critical=THRESHOLD");
|
||||
printf (" %s\n", _("Offset to result in critical status (seconds)"));
|
||||
printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
|
||||
printf (_(UT_VERBOSE));
|
||||
|
||||
printf("\n");
|
||||
printf("%s\n", _("Notes:"));
|
||||
printf(" %s\n", _("This plugin checks the clock offset between the local host and a"));
|
||||
printf(" %s\n", _("remote NTP server. It is independent of any commandline programs or"));
|
||||
printf(" %s\n\n", _("external libraries."));
|
||||
printf(" %s\n", _("If you'd rather want to monitor an NTP server, please use"));
|
||||
printf(" %s\n\n", _("check_ntp_peer."));
|
||||
|
||||
printf(" %s\n", _("See:"));
|
||||
printf(" %s\n", ("http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT"));
|
||||
printf(" %s\n", _("for THRESHOLD format and examples."));
|
||||
|
||||
printf("\n");
|
||||
printf("%s\n", _("Examples:"));
|
||||
printf(" %s\n", ("./check_ntp_time -H ntpserv -w 0.5 -c 1"));
|
||||
|
||||
printf (_(UT_SUPPORT));
|
||||
}
|
||||
|
||||
void
|
||||
print_usage(void)
|
||||
{
|
||||
printf (_("Usage:"));
|
||||
printf(" %s -H <host> [-w <warn>] [-c <crit>] [-W <warn>] [-C <crit>]\n", progname);
|
||||
printf(" [-j <warn>] [-k <crit>] [-v verbose]\n");
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
* License: GPL
|
||||
* Copyright (c) 2000-2006 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-04-23 08:30:47 +0100 (Mon, 23 Apr 2007) $
|
||||
* Last Modified: $Date: 2007-10-25 21:43:04 +0100 (Thu, 25 Oct 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -30,12 +30,12 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id: check_ping.c 1699 2007-04-23 07:30:47Z hweiss $
|
||||
$Id: check_ping.c 1810 2007-10-25 20:43:04Z tonvoon $
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
const char *progname = "check_ping";
|
||||
const char *revision = "$Revision: 1699 $";
|
||||
const char *revision = "$Revision: 1810 $";
|
||||
const char *copyright = "2000-2006";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -548,7 +548,7 @@ print_help (void)
|
|||
{
|
||||
print_revision (progname, revision);
|
||||
|
||||
printf ("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>");
|
||||
printf ("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>\n");
|
||||
printf (COPYRIGHT, copyright, email);
|
||||
|
||||
printf (_("Use ping to check connection statistics for a remote host."));
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* License: GPL
|
||||
* Copyright (c) 1999-2006 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-09-26 11:57:44 +0100 (Wed, 26 Sep 2007) $
|
||||
* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -30,12 +30,12 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: check_radius.c 1800 2007-09-26 10:57:44Z hweiss $
|
||||
* $Id: check_radius.c 1859 2007-12-10 07:52:00Z dermoth $
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
const char *progname = "check_radius";
|
||||
const char *revision = "$Revision: 1800 $";
|
||||
const char *revision = "$Revision: 1859 $";
|
||||
const char *copyright = "2000-2006";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -287,7 +287,7 @@ process_arguments (int argc, char **argv)
|
|||
}
|
||||
|
||||
if (server == NULL)
|
||||
usage4 (_("Host not specified"));
|
||||
usage4 (_("Hostname was not supplied"));
|
||||
if (username == NULL)
|
||||
usage4 (_("User not specified"));
|
||||
if (password == NULL)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* License: GPL
|
||||
* Copyright (c) 1999-2006 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-09-15 15:25:56 +0100 (Sat, 15 Sep 2007) $
|
||||
* Last Modified: $Date: 2007-11-09 21:17:03 +0000 (Fri, 09 Nov 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -31,12 +31,12 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*
|
||||
* $Id: check_smtp.c 1780 2007-09-15 14:25:56Z hweiss $
|
||||
* $Id: check_smtp.c 1817 2007-11-09 21:17:03Z dermoth $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
const char *progname = "check_smtp";
|
||||
const char *revision = "$Revision: 1780 $";
|
||||
const char *revision = "$Revision: 1817 $";
|
||||
const char *copyright = "2000-2006";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -45,6 +45,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
|||
#include "common.h"
|
||||
#include "netutils.h"
|
||||
#include "utils.h"
|
||||
#include "base64.h"
|
||||
|
||||
#ifdef HAVE_SSL
|
||||
int check_cert = FALSE;
|
||||
|
@ -122,46 +123,6 @@ enum {
|
|||
UDP_PROTOCOL = 2,
|
||||
};
|
||||
|
||||
/* written by lauri alanko */
|
||||
static char *
|
||||
base64 (const char *bin, size_t len)
|
||||
{
|
||||
|
||||
char *buf = (char *) malloc ((len + 2) / 3 * 4 + 1);
|
||||
size_t i = 0, j = 0;
|
||||
|
||||
char BASE64_END = '=';
|
||||
char base64_table[64];
|
||||
strncpy (base64_table, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", 64);
|
||||
|
||||
while (j < len - 2) {
|
||||
buf[i++] = base64_table[bin[j] >> 2];
|
||||
buf[i++] = base64_table[((bin[j] & 3) << 4) | (bin[j + 1] >> 4)];
|
||||
buf[i++] = base64_table[((bin[j + 1] & 15) << 2) | (bin[j + 2] >> 6)];
|
||||
buf[i++] = base64_table[bin[j + 2] & 63];
|
||||
j += 3;
|
||||
}
|
||||
|
||||
switch (len - j) {
|
||||
case 1:
|
||||
buf[i++] = base64_table[bin[j] >> 2];
|
||||
buf[i++] = base64_table[(bin[j] & 3) << 4];
|
||||
buf[i++] = BASE64_END;
|
||||
buf[i++] = BASE64_END;
|
||||
break;
|
||||
case 2:
|
||||
buf[i++] = base64_table[bin[j] >> 2];
|
||||
buf[i++] = base64_table[((bin[j] & 3) << 4) | (bin[j + 1] >> 4)];
|
||||
buf[i++] = base64_table[(bin[j + 1] & 15) << 2];
|
||||
buf[i++] = BASE64_END;
|
||||
break;
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
|
||||
buf[i] = '\0';
|
||||
return buf;
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
|
@ -567,6 +528,7 @@ process_arguments (int argc, char **argv)
|
|||
break;
|
||||
case 'A':
|
||||
authtype = optarg;
|
||||
use_ehlo = TRUE;
|
||||
break;
|
||||
case 'U':
|
||||
authuser = optarg;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* License: GPL
|
||||
* Copyright (c) 1999-2007 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-05-29 06:22:32 +0100 (Tue, 29 May 2007) $
|
||||
* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -30,12 +30,12 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: check_snmp.c 1721 2007-05-29 05:22:32Z dermoth $
|
||||
* $Id: check_snmp.c 1859 2007-12-10 07:52:00Z dermoth $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
const char *progname = "check_snmp";
|
||||
const char *revision = "$Revision: 1721 $";
|
||||
const char *revision = "$Revision: 1859 $";
|
||||
const char *copyright = "1999-2007";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -148,6 +148,7 @@ main (int argc, char **argv)
|
|||
int result = STATE_DEPENDENT;
|
||||
char input_buffer[MAX_INPUT_BUFFER];
|
||||
char *command_line = NULL;
|
||||
char *cl_hidden_auth = NULL;
|
||||
char *response = NULL;
|
||||
char *outbuff;
|
||||
char *output;
|
||||
|
@ -186,11 +187,17 @@ main (int argc, char **argv)
|
|||
asprintf(&command_line, "%s -t %d -r %d -m %s -v %s %s %s:%s %s",
|
||||
PATH_TO_SNMPGETNEXT, timeout_interval, retries, miblist, proto,
|
||||
authpriv, server_address, port, oid);
|
||||
asprintf(&cl_hidden_auth, "%s -t %d -r %d -m %s -v %s %s %s:%s %s",
|
||||
PATH_TO_SNMPGETNEXT, timeout_interval, retries, miblist, proto,
|
||||
"[authpriv]", server_address, port, oid);
|
||||
}else{
|
||||
|
||||
asprintf (&command_line, "%s -t %d -r %d -m %s -v %s %s %s:%s %s",
|
||||
PATH_TO_SNMPGET, timeout_interval, retries, miblist, proto,
|
||||
authpriv, server_address, port, oid);
|
||||
asprintf(&cl_hidden_auth, "%s -t %d -r %d -m %s -v %s %s %s:%s %s",
|
||||
PATH_TO_SNMPGET, timeout_interval, retries, miblist, proto,
|
||||
"[authpriv]", server_address, port, oid);
|
||||
}
|
||||
|
||||
if (verbose)
|
||||
|
@ -200,14 +207,14 @@ main (int argc, char **argv)
|
|||
/* run the command */
|
||||
child_process = spopen (command_line);
|
||||
if (child_process == NULL) {
|
||||
printf (_("Could not open pipe: %s\n"), command_line);
|
||||
printf (_("Could not open pipe: %s\n"), cl_hidden_auth);
|
||||
exit (STATE_UNKNOWN);
|
||||
}
|
||||
|
||||
#if 0 /* Removed May 29, 2007 */
|
||||
child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r");
|
||||
if (child_stderr == NULL) {
|
||||
printf (_("Could not open stderr for %s\n"), command_line);
|
||||
printf (_("Could not open stderr for %s\n"), cl_hidden_auth);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -219,12 +226,16 @@ main (int argc, char **argv)
|
|||
|
||||
ptr = output;
|
||||
|
||||
strcat(perfstr, "| ");
|
||||
strncat(perfstr, "| ", sizeof(perfstr)-strlen(perfstr)-1);
|
||||
while (ptr) {
|
||||
char *foo;
|
||||
unsigned int copylen;
|
||||
|
||||
foo = strstr (ptr, delimiter);
|
||||
strncat(perfstr, ptr, foo-ptr);
|
||||
copylen = foo-ptr;
|
||||
if (copylen > sizeof(perfstr)-strlen(perfstr)-1)
|
||||
copylen = sizeof(perfstr)-strlen(perfstr)-1;
|
||||
strncat(perfstr, ptr, copylen);
|
||||
ptr = foo;
|
||||
|
||||
if (ptr == NULL)
|
||||
|
@ -357,11 +368,11 @@ main (int argc, char **argv)
|
|||
|
||||
i++;
|
||||
|
||||
strcat(perfstr, "=");
|
||||
strcat(perfstr, show);
|
||||
strncat(perfstr, "=", sizeof(perfstr)-strlen(perfstr)-1);
|
||||
strncat(perfstr, show, sizeof(perfstr)-strlen(perfstr)-1);
|
||||
if (type)
|
||||
strcat(perfstr, type);
|
||||
strcat(perfstr, " ");
|
||||
strncat(perfstr, type, sizeof(perfstr)-strlen(perfstr)-1);
|
||||
strncat(perfstr, " ", sizeof(perfstr)-strlen(perfstr)-1);
|
||||
|
||||
} /* end while (ptr) */
|
||||
|
||||
|
@ -369,7 +380,7 @@ main (int argc, char **argv)
|
|||
die (STATE_UNKNOWN,
|
||||
_("%s problem - No data received from host\nCMD: %s\n"),
|
||||
label,
|
||||
command_line);
|
||||
cl_hidden_auth);
|
||||
|
||||
#if 0 /* Removed May 29, 2007 */
|
||||
/* WARNING if output found on stderr */
|
||||
|
@ -510,7 +521,7 @@ process_arguments (int argc, char **argv)
|
|||
/* Test parameters */
|
||||
case 'c': /* critical time threshold */
|
||||
if (strspn (optarg, "0123456789:,") < strlen (optarg))
|
||||
usage2 (_("Invalid critical threshold: %s\n"), optarg);
|
||||
usage2 (_("Invalid critical threshold"), optarg);
|
||||
for (ptr = optarg; ptr && jj < MAX_OIDS; jj++) {
|
||||
if (llu_getll (&lower_crit_lim[jj], ptr) == 1)
|
||||
eval_method[jj] |= CRIT_LT;
|
||||
|
@ -521,7 +532,7 @@ process_arguments (int argc, char **argv)
|
|||
break;
|
||||
case 'w': /* warning time threshold */
|
||||
if (strspn (optarg, "0123456789:,") < strlen (optarg))
|
||||
usage2 (_("Invalid warning threshold: %s\n"), optarg);
|
||||
usage2 (_("Invalid warning threshold"), optarg);
|
||||
for (ptr = optarg; ptr && ii < MAX_OIDS; ii++) {
|
||||
if (llu_getll (&lower_warn_lim[ii], ptr) == 1)
|
||||
eval_method[ii] |= WARN_LT;
|
||||
|
@ -939,14 +950,14 @@ print_help (void)
|
|||
|
||||
/* Authentication Tokens*/
|
||||
printf (" %s\n", "-C, --community=STRING");
|
||||
printf (" %s\n", _("Optional community string for SNMP communication"));
|
||||
printf (_("(default is \"%s\")"),DEFAULT_COMMUNITY);
|
||||
printf (" %s ", _("Optional community string for SNMP communication"));
|
||||
printf ("(%s \"%s\")\n", _("default is") ,DEFAULT_COMMUNITY);
|
||||
printf (" %s\n", "-U, --secname=USERNAME");
|
||||
printf (" %s\n", _("SNMPv3 username"));
|
||||
printf (" %s\n", "-A, --authpassword=PASSWORD");
|
||||
printf (" %s\n", _("SNMPv3 authentication password"));
|
||||
printf (" %s\n", "-X, --privpasswd=PASSWORD");
|
||||
printf (" %s\n", _("SNMPv3 crypt passwd (DES)"));
|
||||
printf (" %s\n", _("SNMPv3 privacy password"));
|
||||
|
||||
/* OID Stuff */
|
||||
printf (" %s\n", "-o, --oid=OID(s)");
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* License: GPL
|
||||
* Copyright (c) 1999-2006 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $
|
||||
* Last Modified: $Date: 2007-11-09 13:08:43 +0000 (Fri, 09 Nov 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -31,12 +31,12 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: check_ssh.c 1590 2007-01-28 21:46:41Z hweiss $
|
||||
* $Id: check_ssh.c 1813 2007-11-09 13:08:43Z dermoth $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
const char *progname = "check_ssh";
|
||||
const char *revision = "$Revision: 1590 $";
|
||||
const char *revision = "$Revision: 1813 $";
|
||||
const char *copyright = "2000-2006";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -221,7 +221,7 @@ ssh_connect (char *haddr, int hport, char *remote_version)
|
|||
char *ssh_server = NULL;
|
||||
char rev_no[20];
|
||||
|
||||
sscanf ("$Revision: 1590 $", "$Revision: %[0123456789.]", rev_no);
|
||||
sscanf ("$Revision: 1813 $", "$Revision: %[0123456789.]", rev_no);
|
||||
|
||||
result = my_tcp_connect (haddr, hport, &sd);
|
||||
|
||||
|
@ -233,6 +233,7 @@ ssh_connect (char *haddr, int hport, char *remote_version)
|
|||
recv (sd, output, BUFF_SZ, 0);
|
||||
if (strncmp (output, "SSH", 3)) {
|
||||
printf (_("Server answer: %s"), output);
|
||||
close(sd);
|
||||
exit (STATE_CRITICAL);
|
||||
}
|
||||
else {
|
||||
|
@ -252,6 +253,7 @@ ssh_connect (char *haddr, int hport, char *remote_version)
|
|||
printf
|
||||
(_("SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n"),
|
||||
ssh_server, ssh_proto, remote_version);
|
||||
close(sd);
|
||||
exit (STATE_WARNING);
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net)
|
||||
* Copyright (c) 2000-2006 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-02-07 14:06:11 +0000 (Wed, 07 Feb 2007) $
|
||||
* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -28,12 +28,12 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: check_swap.c 1613 2007-02-07 14:06:11Z hweiss $
|
||||
* $Id: check_swap.c 1859 2007-12-10 07:52:00Z dermoth $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
const char *progname = "check_swap";
|
||||
const char *revision = "$Revision: 1613 $";
|
||||
const char *revision = "$Revision: 1859 $";
|
||||
const char *copyright = "2000-2006";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -543,8 +543,7 @@ print_help (void)
|
|||
printf (" %s\n", _("Exit with CRITCAL status if less than PERCENT of swap space is free"));
|
||||
printf (" %s\n", "-a, --allswaps");
|
||||
printf (" %s\n", _("Conduct comparisons for all swap partitions, one by one"));
|
||||
printf (" %s\n", "-v, --verbose");
|
||||
printf (" %s\n", _("Verbose output. Up to 3 levels"));
|
||||
printf (_(UT_VERBOSE));
|
||||
printf ("\n");
|
||||
printf ("%s\n", _("Notes:"));
|
||||
printf (" %s\n", _("On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s.\n"));
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* 2004 Arnaud Quette <arnaud.quette@mgeups.com>
|
||||
* Copyright (c) 2002-2006 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-05-09 10:16:33 +0100 (Wed, 09 May 2007) $
|
||||
* Last Modified: $Date: 2007-10-25 21:43:04 +0100 (Thu, 25 Oct 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -33,12 +33,12 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: check_ups.c 1709 2007-05-09 09:16:33Z psychotrahe $
|
||||
* $Id: check_ups.c 1810 2007-10-25 20:43:04Z tonvoon $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
const char *progname = "check_ups";
|
||||
const char *revision = "$Revision: 1709 $";
|
||||
const char *revision = "$Revision: 1810 $";
|
||||
const char *copyright = "2002-2006";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -598,7 +598,7 @@ print_help (void)
|
|||
|
||||
print_revision (progname, revision);
|
||||
|
||||
printf ("Copyright (c) 2000 Tom Shields");
|
||||
printf ("Copyright (c) 2000 Tom Shields\n");
|
||||
printf ("Copyright (c) 2004 Alain Richard <alain.richard@equation.fr>\n");
|
||||
printf ("Copyright (c) 2004 Arnaud Quette <arnaud.quette@mgeups.com>\n");
|
||||
printf (COPYRIGHT, copyright, email);
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* License: GPL
|
||||
* Copyright (c) 2002-2007 nagios-plugins team
|
||||
*
|
||||
* Last Modified: $Date: 2007-09-23 13:29:36 +0100 (Sun, 23 Sep 2007) $
|
||||
* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
@ -29,7 +29,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: negate.c 1793 2007-09-23 12:29:36Z psychotrahe $
|
||||
* $Id: negate.c 1859 2007-12-10 07:52:00Z dermoth $
|
||||
|
||||
@@-<article>
|
||||
|
||||
|
@ -69,7 +69,7 @@
|
|||
******************************************************************************/
|
||||
|
||||
const char *progname = "negate";
|
||||
const char *revision = "$Revision: 1793 $";
|
||||
const char *revision = "$Revision: 1859 $";
|
||||
const char *copyright = "2002-2007";
|
||||
const char *email = "nagiosplug-devel@lists.sourceforge.net";
|
||||
|
||||
|
@ -206,7 +206,7 @@ process_arguments (int argc, char **argv)
|
|||
break;
|
||||
case 'o': /* replacement for OK */
|
||||
if ((state[STATE_OK] = translate_state(optarg)) == ERROR)
|
||||
usage4 (_("Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-4)."));
|
||||
usage4 (_("Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3)."));
|
||||
permute = FALSE;
|
||||
break;
|
||||
|
||||
|
@ -305,7 +305,7 @@ print_help (void)
|
|||
printf (_(UT_HELP_VRSN));
|
||||
|
||||
printf (_(UT_TIMEOUT), DEFAULT_TIMEOUT);
|
||||
printf (" %s\n", _("Keep timeout lower than the plugin timeout to retain CRITICAL status."));
|
||||
printf (" %s\n", _("Keep timeout longer than the plugin timeout to retain CRITICAL status."));
|
||||
|
||||
printf(" -o,--ok=STATUS\n");
|
||||
printf(" -w,--warning=STATUS\n");
|
||||
|
@ -325,8 +325,8 @@ print_help (void)
|
|||
printf ("%s\n", _("Notes:"));
|
||||
printf ("%s\n", _("This plugin is a wrapper to take the output of another plugin and invert it."));
|
||||
printf ("%s\n", _("The full path of the plugin must be provided."));
|
||||
printf ("%s\n", _("If the wrapped plugin returns STATE_OK, the wrapper will return STATE_CRITICAL."));
|
||||
printf ("%s\n", _("If the wrapped plugin returns STATE_CRITICAL, the wrapper will return STATE_OK."));
|
||||
printf ("%s\n", _("If the wrapped plugin returns OK, the wrapper will return CRITICAL."));
|
||||
printf ("%s\n", _("If the wrapped plugin returns CRITICAL, the wrapper will return OK."));
|
||||
printf ("%s\n", _("Otherwise, the output state of the wrapped plugin is unchanged."));
|
||||
|
||||
printf (_(UT_SUPPORT));
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#
|
||||
# Load Average Tests via check_load
|
||||
#
|
||||
# $Id: check_load.t 1700 2007-04-25 22:10:13Z tonvoon $
|
||||
# $Id: check_load.t 1851 2007-12-10 00:19:27Z psychotrahe $
|
||||
#
|
||||
|
||||
use strict;
|
||||
|
@ -11,10 +11,11 @@ use NPTest;
|
|||
|
||||
my $res;
|
||||
|
||||
my $successOutput = '/^OK - load average: [0-9]+\.?[0-9]+, [0-9]+\.?[0-9]+, [0-9]+\.?[0-9]+/';
|
||||
my $failureOutput = '/^CRITICAL - load average: [0-9]+\.?[0-9]+, [0-9]+\.?[0-9]+, [0-9]+\.?[0-9]+/';
|
||||
my $loadValue = "[0-9]+\.?[0-9]+";
|
||||
my $successOutput = "/^OK - load average: $loadValue, $loadValue, $loadValue/";
|
||||
my $failureOutput = "/^CRITICAL - load average: $loadValue, $loadValue, $loadValue/";
|
||||
|
||||
plan tests => 6;
|
||||
plan tests => 11;
|
||||
|
||||
$res = NPTest->testCmd( "./check_load -w 100,100,100 -c 100,100,100" );
|
||||
cmp_ok( $res->return_code, 'eq', 0, "load not over 100");
|
||||
|
@ -28,3 +29,9 @@ $res = NPTest->testCmd( "./check_load -r -w 0,0,0 -c 0,0,0" );
|
|||
cmp_ok( $res->return_code, 'eq', 2, "Load over 0 with per cpu division");
|
||||
like( $res->output, $failureOutput, "Output OK");
|
||||
|
||||
$res = NPTest->testCmd( "./check_load -w 100 -c 100,110" );
|
||||
cmp_ok( $res->return_code, 'eq', 0, "Plugin can handle non-triplet-arguments");
|
||||
like( $res->output, $successOutput, "Output OK");
|
||||
like( $res->perf_output, "/load1=$loadValue;100.000;100.000/", "Test handling of non triplet thresholds (load1)");
|
||||
like( $res->perf_output, "/load5=$loadValue;100.000;110.000/", "Test handling of non triplet thresholds (load5)");
|
||||
like( $res->perf_output, "/load15=$loadValue;100.000;110.000/", "Test handling of non triplet thresholds (load15)");
|
||||
|
|
|
@ -2,14 +2,17 @@
|
|||
#
|
||||
# Testing NTP
|
||||
#
|
||||
# $Id: check_ntp.t 1468 2006-08-14 08:42:23Z tonvoon $
|
||||
# $Id: check_ntp.t 1865 2007-12-11 13:54:23Z dermoth $
|
||||
#
|
||||
|
||||
use strict;
|
||||
use Test::More;
|
||||
use NPTest;
|
||||
|
||||
plan tests => 4;
|
||||
my @PLUGINS1 = ('check_ntp', 'check_ntp_peer', 'check_ntp_time');
|
||||
my @PLUGINS2 = ('check_ntp_peer');
|
||||
|
||||
plan tests => (12 * scalar(@PLUGINS1)) + (6 * scalar(@PLUGINS2));
|
||||
|
||||
my $res;
|
||||
|
||||
|
@ -29,29 +32,80 @@ my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID",
|
|||
"An invalid (not known to DNS) hostname",
|
||||
"nosuchhost");
|
||||
|
||||
my $ntp_okmatch1 = '/^NTP\sOK:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs/';
|
||||
my $ntp_warnmatch1 = '/^NTP\sWARNING:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs/';
|
||||
my $ntp_critmatch1 = '/^NTP\sCRITICAL:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs/';
|
||||
my $ntp_okmatch2 = '/^NTP\sOK:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs,\sjitter=[0-9]+\.[0-9]+,\sstratum=[0-9]{1,2}/';
|
||||
my $ntp_warnmatch2 = '/^NTP\sWARNING:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs,\sjitter=[0-9]+\.[0-9]+,\sstratum=[0-9]{1,2}/';
|
||||
my $ntp_critmatch2 = '/^NTP\sCRITICAL:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs,\sjitter=[0-9]+\.[0-9]+,\sstratum=[0-9]{1,2}/';
|
||||
my $ntp_noresponse = '/^(CRITICAL - Socket timeout after 3 seconds)|(NTP CRITICAL: No response from NTP server)$/';
|
||||
my $ntp_nosuchhost = '/^check_ntp.*: Invalid hostname/address - ' . $hostname_invalid . '/';
|
||||
|
||||
|
||||
foreach my $plugin (@PLUGINS1) {
|
||||
SKIP: {
|
||||
skip "No NTP server defined", 1 unless $ntp_service;
|
||||
$res = NPTest->testCmd(
|
||||
"./check_ntp -H $ntp_service"
|
||||
"./$plugin -H $ntp_service -w 1000 -c 2000"
|
||||
);
|
||||
cmp_ok( $res->return_code, '==', 0, "Got good NTP result");
|
||||
cmp_ok( $res->return_code, '==', 0, "$plugin: Good NTP result (simple check)" );
|
||||
like( $res->output, $ntp_okmatch1, "$plugin: Output match OK (simple check)" );
|
||||
|
||||
$res = NPTest->testCmd(
|
||||
"./$plugin -H $ntp_service -w 1000: -c 2000"
|
||||
);
|
||||
cmp_ok( $res->return_code, '==', 1, "$plugin: Warning NTP result (simple check)" );
|
||||
like( $res->output, $ntp_warnmatch1, "$plugin: Output match WARNING (simple check)" );
|
||||
|
||||
$res = NPTest->testCmd(
|
||||
"./$plugin -H $ntp_service -w 1000 -c 2000:"
|
||||
);
|
||||
cmp_ok( $res->return_code, '==', 2, "$plugin: Critical NTP result (simple check)" );
|
||||
like( $res->output, $ntp_critmatch1, "$plugin: Output match CRITICAL (simple check)" );
|
||||
}
|
||||
|
||||
SKIP: {
|
||||
skip "No bad NTP server defined", 1 unless $no_ntp_service;
|
||||
$res = NPTest->testCmd(
|
||||
"./check_ntp -H $no_ntp_service"
|
||||
"./$plugin -H $no_ntp_service -t 3"
|
||||
);
|
||||
cmp_ok( $res->return_code, '==', 2, "Got bad NTP result");
|
||||
cmp_ok( $res->return_code, '==', 2, "$plugin: No NTP service" );
|
||||
like( $res->output, $ntp_noresponse, "$plugin: Output match no NTP service" );
|
||||
}
|
||||
|
||||
$res = NPTest->testCmd(
|
||||
"./check_ntp -H $host_nonresponsive"
|
||||
"./$plugin -H $host_nonresponsive -t 3"
|
||||
);
|
||||
cmp_ok( $res->return_code, '==', 2, "Got critical if server not responding");
|
||||
cmp_ok( $res->return_code, '==', 2, "$plugin: Server not responding" );
|
||||
like( $res->output, $ntp_noresponse, "$plugin: Output match non-responsive" );
|
||||
|
||||
$res = NPTest->testCmd(
|
||||
"./check_ntp -H $hostname_invalid"
|
||||
"./$plugin -H $hostname_invalid"
|
||||
);
|
||||
cmp_ok( $res->return_code, '==', 3, "Got critical if server hostname invalid");
|
||||
cmp_ok( $res->return_code, '==', 3, "$plugin: Invalid hostname/address" );
|
||||
like( $res->output, $ntp_nosuchhost, "$plugin: Output match invalid hostname/address" );
|
||||
|
||||
}
|
||||
|
||||
foreach my $plugin (@PLUGINS2) {
|
||||
SKIP: {
|
||||
skip "No NTP server defined", 1 unless $ntp_service;
|
||||
$res = NPTest->testCmd(
|
||||
"./$plugin -H $ntp_service -w 1000 -c 2000 -W 20 -C 21 -j 100000 -k 200000"
|
||||
);
|
||||
cmp_ok( $res->return_code, '==', 0, "$plugin: Good NTP result with jitter and stratum check" );
|
||||
like( $res->output, $ntp_okmatch2, "$plugin: Output match OK with jitter and stratum" );
|
||||
|
||||
$res = NPTest->testCmd(
|
||||
"./$plugin -H $ntp_service -w 1000 -c 2000 -W \\~:-1 -C 21 -j 100000 -k 200000"
|
||||
);
|
||||
cmp_ok( $res->return_code, '==', 1, "$plugin: Warning NTP result with jitter and stratum check" );
|
||||
like( $res->output, $ntp_warnmatch2, "$plugin: Output match WARNING with jitter and stratum" );
|
||||
|
||||
$res = NPTest->testCmd(
|
||||
"./$plugin -H $ntp_service -w 1000 -c 2000 -W 20 -C 21 -j 100000 -k \\~:-1"
|
||||
);
|
||||
cmp_ok( $res->return_code, '==', 2, "$plugin: Critical NTP result with jitter and stratum check" );
|
||||
like( $res->output, $ntp_critmatch2, "$plugin: Output match CRITICAL with jitter and stratum" );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
* Copyright (c) 2006 Nagios Plugin Development Team
|
||||
* License: GPL
|
||||
*
|
||||
* $Revision: 1752 $
|
||||
* $Date: 2007-07-07 13:02:45 +0100 (Sat, 07 Jul 2007) $
|
||||
* $Revision: 1829 $
|
||||
* $Date: 2007-11-23 04:18:16 +0000 (Fri, 23 Nov 2007) $
|
||||
****************************************************************************/
|
||||
|
||||
#define LOCAL_TIMEOUT_ALARM_HANDLER
|
||||
|
@ -53,6 +53,33 @@ max_state (int a, int b)
|
|||
return max (a, b);
|
||||
}
|
||||
|
||||
/* **************************************************************************
|
||||
* max_state_alt(STATE_x, STATE_y)
|
||||
* compares STATE_x to STATE_y and returns result based on the following
|
||||
* STATE_OK < STATE_DEPENDENT < STATE_UNKNOWN < STATE_WARNING < STATE_CRITICAL
|
||||
*
|
||||
* The main difference between max_state_alt and max_state it that it doesn't
|
||||
* allow setting a default to UNKNOWN. It will instead prioritixe any valid
|
||||
* non-OK state.
|
||||
****************************************************************************/
|
||||
|
||||
int
|
||||
max_state_alt (int a, int b)
|
||||
{
|
||||
if (a == STATE_CRITICAL || b == STATE_CRITICAL)
|
||||
return STATE_CRITICAL;
|
||||
else if (a == STATE_WARNING || b == STATE_WARNING)
|
||||
return STATE_WARNING;
|
||||
else if (a == STATE_UNKNOWN || b == STATE_UNKNOWN)
|
||||
return STATE_UNKNOWN;
|
||||
else if (a == STATE_DEPENDENT || b == STATE_DEPENDENT)
|
||||
return STATE_DEPENDENT;
|
||||
else if (a == STATE_OK || b == STATE_OK)
|
||||
return STATE_OK;
|
||||
else
|
||||
return max (a, b);
|
||||
}
|
||||
|
||||
void usage (const char *msg)
|
||||
{
|
||||
printf ("%s\n", msg);
|
||||
|
|
|
@ -18,7 +18,7 @@ suite of plugins. */
|
|||
|
||||
/* Standardize version information, termination */
|
||||
|
||||
/* $Id: utils.h 1590 2007-01-28 21:46:41Z hweiss $ */
|
||||
/* $Id: utils.h 1829 2007-11-23 04:18:16Z dermoth $ */
|
||||
|
||||
void support (void);
|
||||
char *clean_revstring (const char *);
|
||||
|
@ -76,6 +76,7 @@ char *strpcpy (char *, const char *, const char *);
|
|||
char *strpcat (char *, const char *, const char *);
|
||||
|
||||
int max_state (int a, int b);
|
||||
int max_state_alt (int a, int b);
|
||||
|
||||
void usage (const char *) __attribute__((noreturn));
|
||||
void usage2(const char *, const char *) __attribute__((noreturn));
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
plugins/check_by_ssh.c
|
||||
plugins/check_cluster.c
|
||||
plugins/check_dig.c
|
||||
plugins/check_disk.c
|
||||
plugins/check_dns.c
|
||||
|
@ -15,6 +16,8 @@ plugins/check_mysql.c
|
|||
plugins/check_nagios.c
|
||||
plugins/check_nt.c
|
||||
plugins/check_ntp.c
|
||||
plugins/check_ntp_peer.c
|
||||
plugins/check_ntp_time.c
|
||||
plugins/check_nwstat.c
|
||||
plugins/check_overcr.c
|
||||
plugins/check_pgsql.c
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -14,7 +14,7 @@ use Sys::Hostname;
|
|||
use Cwd;
|
||||
use Time::Local;
|
||||
|
||||
my $Version = '$Revision: 1767 $';
|
||||
my $Version = '$Revision: 1866 $';
|
||||
|
||||
my $myhost = hostname;
|
||||
chomp($myhost);
|
||||
|
@ -266,8 +266,8 @@ sub make {
|
|||
|
||||
sub maketest {
|
||||
# Tests
|
||||
print LOG "LANG=C make test 2>&1\n";
|
||||
open( MAKE, "LANG=C make test && make install DESTDIR=$TmpDir/tinderbox_build.$$ && make install-strip DESTDIR=$TmpDir/tinderbox_build2.$$ 2>&1 |");
|
||||
print LOG "LANG=C make test-debug 2>&1\n";
|
||||
open( MAKE, "LANG=C make test-debug && make install DESTDIR=$TmpDir/tinderbox_build.$$ && make install-strip DESTDIR=$TmpDir/tinderbox_build2.$$ 2>&1 |");
|
||||
while ( <MAKE> ) {
|
||||
print $_;
|
||||
print LOG $_;
|
||||
|
|
Loading…
Reference in a new issue