From 61401f65089c483f0856e419578c45c8847a9f7c Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Tue, 2 Dec 2014 05:36:29 +0100 Subject: [PATCH] Imported Upstream version 2.1.1 --- ChangeLog | 55 +++++++++++++++++++++++++++++++++ NEWS | 8 +++++ NP-VERSION-GEN | 2 +- THANKS | 1 + configure | 20 ++++++------ configure.ac | 2 +- pkg/solaris/pkginfo | 4 +-- plugins/check_apt.c | 2 +- plugins/check_ntp.c | 25 +++++++-------- plugins/check_real.c | 2 +- plugins/check_tcp.c | 2 +- po/de.gmo | Bin 7632 -> 7632 bytes po/de.po | 62 +++++++++++++++++-------------------- po/fr.gmo | Bin 91740 -> 91520 bytes po/fr.po | 63 ++++++++++++++++++-------------------- po/monitoring-plugins.pot | 62 +++++++++++++++++-------------------- release | 2 +- 17 files changed, 180 insertions(+), 132 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1dca3bd..b6fd2e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,58 @@ +2014-12-02 Holger Weiss + + * NEWS: Modify list of changes for 2.1.1 release + + Make the list of changes slightly more descriptive. + +2014-12-01 Jan Wagner + + * NP-VERSION-GEN, configure.ac: Prepare release + + * THANKS.in: Add new authors + + * NEWS: Updating all the fixes + +2014-11-30 Sebastian Herbszt + + * plugins/check_tcp.c: check_tcp: fix help description regarding escape + option + + The help description should print '\\' for backslash not just '\'. + +2014-12-01 Holger Weiss + + * plugins/check_ntp.c: check_ntp: Nul-terminate jitter data + + Make sure the jitter response is nul-terminated before parsing the data + using string functions. + +2014-11-30 Holger Weiss + + * plugins/check_ntp.c: Revert "plugins/check_ntp.c - Verify struct from + response" + + This reverts commit a04df3e1b67dc5eab3adc202cc89901f801cdeaa. The "fix" + was bogus in many ways and broke jitter checking. + + Conflicts: + plugins/check_ntp.c + +2014-11-27 Sebastian Herbszt + + * plugins/check_real.c: check_real: fix null termination + + Fix null termination introduced by commit b61f51a ("plugins/check_real.c - recv string null terminate"). + +2014-11-26 Sebastian Herbszt + + * plugins/check_ntp.c: check_ntp: fix null termination + + Fix null termination introduced by commit a04df3e ("plugins/check_ntp.c - Verify struct from response"). + + * plugins/check_apt.c: check_apt: fix memset + + Fix memset introduced by commit 9ce7369 ("plugins/check_apt.c - Print uninitialized ereg"). + 2014-10-15 Holger Weiss * NEWS, NP-VERSION-GEN, configure.ac: Prepare for the 2.1 release diff --git a/NEWS b/NEWS index 16d66e3..c999e51 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,13 @@ This file documents the major additions and syntax changes between releases. +2.1.1 2nd December 2014 + FIXES + Fix check_ntp's jitter checking + Fix check_ntp's handling of invalid server responses + Fix check_apt's handling of invalid regular expressions + Fix check_real's server response processing + Fix backslash escaping in check_tcp's --help output + 2.1 15th October 2014 ENHANCEMENTS New check_hpjd -p option for port specification (abrist) diff --git a/NP-VERSION-GEN b/NP-VERSION-GEN index 1878eb9..12efad7 100755 --- a/NP-VERSION-GEN +++ b/NP-VERSION-GEN @@ -6,7 +6,7 @@ SRC_ROOT=`dirname $0` NPVF=NP-VERSION-FILE -DEF_VER=2.1.git +DEF_VER=2.1.1.git LF=' ' diff --git a/THANKS b/THANKS index ef6b5d8..2b312f7 100644 --- a/THANKS +++ b/THANKS @@ -134,6 +134,7 @@ Sebastian Harl Michael Haro Olli Hauer Gunnar Hellekson +Sebastian Herbszt Johannes Herlitz Ian Holsman Peter Hoogendijk diff --git a/configure b/configure index c3ba8b6..f241c87 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for monitoring-plugins 2.1. +# Generated by GNU Autoconf 2.69 for monitoring-plugins 2.1.1. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='monitoring-plugins' PACKAGE_TARNAME='monitoring-plugins' -PACKAGE_VERSION='2.1' -PACKAGE_STRING='monitoring-plugins 2.1' +PACKAGE_VERSION='2.1.1' +PACKAGE_STRING='monitoring-plugins 2.1.1' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -2400,7 +2400,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures monitoring-plugins 2.1 to adapt to many kinds of systems. +\`configure' configures monitoring-plugins 2.1.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2471,7 +2471,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of monitoring-plugins 2.1:";; + short | recursive ) echo "Configuration of monitoring-plugins 2.1.1:";; esac cat <<\_ACEOF @@ -2637,7 +2637,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -monitoring-plugins configure 2.1 +monitoring-plugins configure 2.1.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -3342,7 +3342,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by monitoring-plugins $as_me 2.1, which was +It was created by monitoring-plugins $as_me 2.1.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4213,7 +4213,7 @@ fi # Define the identity of the package. PACKAGE='monitoring-plugins' - VERSION='2.1' + VERSION='2.1.1' cat >>confdefs.h <<_ACEOF @@ -40937,7 +40937,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by monitoring-plugins $as_me 2.1, which was +This file was extended by monitoring-plugins $as_me 2.1.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -41003,7 +41003,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -monitoring-plugins config.status 2.1 +monitoring-plugins config.status 2.1.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 991c1f8..8514f98 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) -AC_INIT(monitoring-plugins,2.1) +AC_INIT(monitoring-plugins,2.1.1) AC_CONFIG_SRCDIR(NPTest.pm) AC_CONFIG_FILES([gl/Makefile]) AC_CONFIG_AUX_DIR(build-aux) diff --git a/pkg/solaris/pkginfo b/pkg/solaris/pkginfo index 4d43d8c..9e617ef 100644 --- a/pkg/solaris/pkginfo +++ b/pkg/solaris/pkginfo @@ -2,11 +2,11 @@ PKG="NGOSplugin" NAME="monitoring-plugins" DESC="Network Monitoring Plugins for Nagios and compatible" ARCH="unknown" -VERSION="2.1,REV=2014.10.15.14.31" +VERSION="2.1.1,REV=2014.12.02.00.45" CATEGORY="application" VENDOR="Monitoring Plugins Development Team" EMAIL="devel@monitoring-plugins.org" -PSTAMP="nag20141015143143" +PSTAMP="nag20141202004507" BASEDIR="/" CLASSES="none" diff --git a/plugins/check_apt.c b/plugins/check_apt.c index 07622c2..8747f90 100644 --- a/plugins/check_apt.c +++ b/plugins/check_apt.c @@ -224,7 +224,7 @@ int run_upgrade(int *pkgcount, int *secpkgcount){ char *cmdline=NULL, rerrbuf[64]; /* initialize ereg as it is possible it is printed while uninitialized */ - memset(&ereg, "\0", sizeof(ereg.buffer)); + memset(&ereg, '\0', sizeof(ereg.buffer)); if(upgrade==NO_UPGRADE) return STATE_OK; diff --git a/plugins/check_ntp.c b/plugins/check_ntp.c index 09a923e..a7d278d 100644 --- a/plugins/check_ntp.c +++ b/plugins/check_ntp.c @@ -517,14 +517,13 @@ setup_control_request(ntp_control_message *p, uint8_t opcode, uint16_t seq){ double jitter_request(const char *host, int *status){ int conn=-1, i, npeers=0, num_candidates=0, syncsource_found=0; int run=0, min_peer_sel=PEER_INCLUDED, num_selected=0, num_valid=0; - int peers_size=0, peer_offset=0, bytes_read=0; + int peers_size=0, peer_offset=0; ntp_assoc_status_pair *peers=NULL; ntp_control_message req; const char *getvar = "jitter"; double rval = 0.0, jitter = -1.0; char *startofvalue=NULL, *nptr=NULL; void *tmp; - int ntp_cm_ints = sizeof(uint16_t) * 5 + sizeof(uint8_t) * 2; /* Long-winded explanation: * Getting the jitter requires a number of steps: @@ -591,6 +590,9 @@ double jitter_request(const char *host, int *status){ for (i = 0; i < npeers; i++){ /* Only query this server if it is the current sync source */ if (PEER_SEL(peers[i].status) >= min_peer_sel){ + char jitter_data[MAX_CM_SIZE+1]; + size_t jitter_data_count; + num_selected++; setup_control_request(&req, OP_READVAR, 2); req.assoc = peers[i].assoc; @@ -609,15 +611,7 @@ double jitter_request(const char *host, int *status){ req.count = htons(MAX_CM_SIZE); DBG(printf("recieving READVAR response...\n")); - - /* cov-66524 - req.data not null terminated before usage. Also covers verifying struct was returned correctly*/ - if ((bytes_read = read(conn, &req, SIZEOF_NTPCM(req))) == -1) - die(STATE_UNKNOWN, _("Cannot read from socket: %s"), strerror(errno)); - if (bytes_read != ntp_cm_ints + req.count) - die(STATE_UNKNOWN, _("Invalid NTP response: %d bytes read does not equal %d plus %d data segment"), bytes_read, ntp_cm_ints, req.count); - /* else null terminate */ - strncpy(req.data[req.count], "\0", 1); - + read(conn, &req, SIZEOF_NTPCM(req)); DBG(print_ntp_control_message(&req)); if(req.op&REM_ERROR && strstr(getvar, "jitter")) { @@ -632,7 +626,14 @@ double jitter_request(const char *host, int *status){ if(verbose) { printf("parsing jitter from peer %.2x: ", ntohs(peers[i].assoc)); } - startofvalue = strchr(req.data, '='); + if((jitter_data_count = ntohs(req.count)) >= sizeof(jitter_data)){ + die(STATE_UNKNOWN, + _("jitter response too large (%lu bytes)\n"), + (unsigned long)jitter_data_count); + } + memcpy(jitter_data, req.data, jitter_data_count); + jitter_data[jitter_data_count] = '\0'; + startofvalue = strchr(jitter_data, '='); if(startofvalue != NULL) { startofvalue++; jitter = strtod(startofvalue, &nptr); diff --git a/plugins/check_real.c b/plugins/check_real.c index 36f6413..1816bf5 100644 --- a/plugins/check_real.c +++ b/plugins/check_real.c @@ -178,7 +178,7 @@ main (int argc, char **argv) /* watch for the REAL connection string */ result = recv (sd, buffer, MAX_INPUT_BUFFER - 1, 0); - buffer[result] = "\0"; /* null terminate recieved buffer */ + buffer[result] = '\0'; /* null terminate recieved buffer */ /* return a CRITICAL status if we couldn't read any data */ if (result == -1) { diff --git a/plugins/check_tcp.c b/plugins/check_tcp.c index fc0adba..63f9fd9 100644 --- a/plugins/check_tcp.c +++ b/plugins/check_tcp.c @@ -643,7 +643,7 @@ print_help (void) printf (UT_IPv46); printf (" %s\n", "-E, --escape"); - printf (" %s\n", _("Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or quit option")); + printf (" %s\n", _("Can use \\n, \\r, \\t or \\\\ in send or quit string. Must come before send or quit option")); printf (" %s\n", _("Default: nothing added to send, \\r\\n added to end of quit")); printf (" %s\n", "-s, --send=STRING"); printf (" %s\n", _("String to send to the server")); diff --git a/po/de.gmo b/po/de.gmo index ef84e02610dd73a98b145791558df784c059195e..676a78d49cb01a41527cac56a5039ef00e6cb33f 100644 GIT binary patch delta 26 hcmca$eZhJ|vmmdLu7Qz)fq|8YnYMx9<_UrhJOFcx2YCPh delta 26 hcmca$eZhJ|vmmd5uA!-dp^25Tk+y-+<_UrhJOFdK2Ydhk diff --git a/po/de.po b/po/de.po index 441163d..9ebe538 100644 --- a/po/de.po +++ b/po/de.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: nagiosplug\n" "Report-Msgid-Bugs-To: devel@monitoring-plugins.org\n" -"POT-Creation-Date: 2014-10-15 14:32+0200\n" +"POT-Creation-Date: 2014-12-02 00:46+0100\n" "PO-Revision-Date: 2004-12-23 17:46+0100\n" "Last-Translator: <>\n" "Language-Team: English \n" @@ -24,7 +24,7 @@ msgstr "" #: plugins/check_fping.c:93 plugins/check_game.c:82 plugins/check_hpjd.c:104 #: plugins/check_http.c:167 plugins/check_ldap.c:109 plugins/check_load.c:122 #: plugins/check_mrtgtraf.c:83 plugins/check_mysql.c:124 -#: plugins/check_nagios.c:91 plugins/check_nt.c:127 plugins/check_ntp.c:781 +#: plugins/check_nagios.c:91 plugins/check_nt.c:127 plugins/check_ntp.c:782 #: plugins/check_ntp_peer.c:575 plugins/check_ntp_time.c:559 #: plugins/check_nwstat.c:173 plugins/check_overcr.c:102 #: plugins/check_pgsql.c:172 plugins/check_ping.c:95 plugins/check_procs.c:172 @@ -226,7 +226,7 @@ msgstr "" #: plugins/check_by_ssh.c:446 plugins/check_cluster.c:261 #: plugins/check_dig.c:364 plugins/check_disk.c:945 plugins/check_http.c:1562 -#: plugins/check_nagios.c:312 plugins/check_ntp.c:880 +#: plugins/check_nagios.c:312 plugins/check_ntp.c:881 #: plugins/check_ntp_peer.c:733 plugins/check_ntp_time.c:644 #: plugins/check_procs.c:763 plugins/negate.c:251 plugins/urlize.c:179 msgid "Examples:" @@ -238,7 +238,7 @@ msgstr "" #: plugins/check_game.c:331 plugins/check_hpjd.c:432 plugins/check_http.c:1592 #: plugins/check_ldap.c:451 plugins/check_load.c:334 plugins/check_mrtg.c:382 #: plugins/check_mysql.c:581 plugins/check_nagios.c:323 plugins/check_nt.c:774 -#: plugins/check_ntp.c:899 plugins/check_ntp_peer.c:753 +#: plugins/check_ntp.c:900 plugins/check_ntp_peer.c:753 #: plugins/check_ntp_time.c:653 plugins/check_nwstat.c:1685 #: plugins/check_overcr.c:467 plugins/check_pgsql.c:578 #: plugins/check_ping.c:610 plugins/check_procs.c:781 @@ -295,7 +295,7 @@ msgstr "" #: plugins/check_cluster.c:257 plugins/check_game.c:318 #: plugins/check_http.c:1544 plugins/check_ldap.c:438 plugins/check_mrtg.c:363 #: plugins/check_mrtgtraf.c:361 plugins/check_mysql.c:570 -#: plugins/check_nt.c:758 plugins/check_ntp.c:876 plugins/check_ntp_peer.c:724 +#: plugins/check_nt.c:758 plugins/check_ntp.c:877 plugins/check_ntp_peer.c:724 #: plugins/check_ntp_time.c:635 plugins/check_nwstat.c:1670 #: plugins/check_overcr.c:456 plugins/check_snmp.c:1180 #: plugins/check_swap.c:558 plugins/check_ups.c:642 @@ -908,7 +908,7 @@ msgstr "FPING %s - %s (verloren=%.0f%% )|%s\n" #: plugins/check_fping.c:326 plugins/check_fping.c:332 #: plugins/check_hpjd.c:339 plugins/check_hpjd.c:368 plugins/check_mysql.c:383 -#: plugins/check_mysql.c:470 plugins/check_ntp.c:720 +#: plugins/check_mysql.c:470 plugins/check_ntp.c:721 #: plugins/check_ntp_peer.c:497 plugins/check_ntp_time.c:500 #: plugins/check_pgsql.c:335 plugins/check_ping.c:295 plugins/check_ping.c:418 #: plugins/check_radius.c:271 plugins/check_real.c:315 @@ -940,7 +940,7 @@ msgstr "Warnung time muss ein positiver Integer sein" msgid "Interval must be a positive integer" msgstr "Timeout interval muss ein positiver Integer sein" -#: plugins/check_fping.c:402 plugins/check_ntp.c:744 +#: plugins/check_fping.c:402 plugins/check_ntp.c:745 #: plugins/check_ntp_peer.c:524 plugins/check_ntp_time.c:530 #: plugins/check_radius.c:321 plugins/check_time.c:319 msgid "Hostname was not supplied" @@ -1209,7 +1209,7 @@ msgstr "Ung msgid "Could Not Compile Regular Expression: %s" msgstr "" -#: plugins/check_http.c:464 plugins/check_ntp.c:733 +#: plugins/check_http.c:464 plugins/check_ntp.c:734 #: plugins/check_ntp_peer.c:513 plugins/check_ntp_time.c:519 #: plugins/check_smtp.c:621 plugins/check_ssh.c:151 plugins/check_tcp.c:481 msgid "IPv6 support not available" @@ -2729,93 +2729,87 @@ msgstr "" msgid "and on the client service it's connecting to." msgstr "" -#: plugins/check_ntp.c:615 +#: plugins/check_ntp.c:631 #, c-format -msgid "Cannot read from socket: %s" +msgid "jitter response too large (%lu bytes)\n" msgstr "" -#: plugins/check_ntp.c:617 -#, c-format -msgid "" -"Invalid NTP response: %d bytes read does not equal %d plus %d data segment" -msgstr "" - -#: plugins/check_ntp.c:818 plugins/check_ntp_peer.c:619 +#: plugins/check_ntp.c:819 plugins/check_ntp_peer.c:619 #: plugins/check_ntp_time.c:578 msgid "NTP CRITICAL:" msgstr "NTP CRITICAL:" -#: plugins/check_ntp.c:821 plugins/check_ntp_peer.c:622 +#: plugins/check_ntp.c:822 plugins/check_ntp_peer.c:622 #: plugins/check_ntp_time.c:581 msgid "NTP WARNING:" msgstr "NTP WARNING:" -#: plugins/check_ntp.c:824 plugins/check_ntp_peer.c:625 +#: plugins/check_ntp.c:825 plugins/check_ntp_peer.c:625 #: plugins/check_ntp_time.c:584 msgid "NTP OK:" msgstr "NTP OK:" -#: plugins/check_ntp.c:827 plugins/check_ntp_peer.c:628 +#: plugins/check_ntp.c:828 plugins/check_ntp_peer.c:628 #: plugins/check_ntp_time.c:587 msgid "NTP UNKNOWN:" msgstr "NTP UNKNOWN:" -#: plugins/check_ntp.c:831 plugins/check_ntp_peer.c:637 +#: plugins/check_ntp.c:832 plugins/check_ntp_peer.c:637 #: plugins/check_ntp_time.c:591 msgid "Offset unknown" msgstr "" -#: plugins/check_ntp.c:834 plugins/check_ntp_peer.c:640 +#: plugins/check_ntp.c:835 plugins/check_ntp_peer.c:640 #: plugins/check_ntp_peer.c:642 plugins/check_ntp_peer.c:644 #: plugins/check_ntp_time.c:594 msgid "Offset" msgstr "" -#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:690 +#: plugins/check_ntp.c:856 plugins/check_ntp_peer.c:690 #, fuzzy msgid "This plugin checks the selected ntp server" msgstr "" "Testet den DNS Dienst auf dem angegebenen Host mit dig\n" "\n" -#: plugins/check_ntp.c:865 plugins/check_ntp_peer.c:702 +#: plugins/check_ntp.c:866 plugins/check_ntp_peer.c:702 #: plugins/check_ntp_time.c:621 msgid "Offset to result in warning status (seconds)" msgstr "" -#: plugins/check_ntp.c:867 plugins/check_ntp_peer.c:704 +#: plugins/check_ntp.c:868 plugins/check_ntp_peer.c:704 #: plugins/check_ntp_time.c:623 msgid "Offset to result in critical status (seconds)" msgstr "" -#: plugins/check_ntp.c:869 plugins/check_ntp_peer.c:710 +#: plugins/check_ntp.c:870 plugins/check_ntp_peer.c:710 #, fuzzy msgid "Warning threshold for jitter" msgstr "Warning threshold Integer sein" -#: plugins/check_ntp.c:871 plugins/check_ntp_peer.c:712 +#: plugins/check_ntp.c:872 plugins/check_ntp_peer.c:712 #, fuzzy msgid "Critical threshold for jitter" msgstr "Critical threshold muss ein Integer sein" -#: plugins/check_ntp.c:881 +#: plugins/check_ntp.c:882 msgid "Normal offset check:" msgstr "" -#: plugins/check_ntp.c:884 plugins/check_ntp_peer.c:737 +#: plugins/check_ntp.c:885 plugins/check_ntp_peer.c:737 msgid "" "Check jitter too, avoiding critical notifications if jitter isn't available" msgstr "" -#: plugins/check_ntp.c:885 plugins/check_ntp_peer.c:738 +#: plugins/check_ntp.c:886 plugins/check_ntp_peer.c:738 msgid "(See Notes above for more details on thresholds formats):" msgstr "" -#: plugins/check_ntp.c:890 plugins/check_ntp.c:897 +#: plugins/check_ntp.c:891 plugins/check_ntp.c:898 msgid "WARNING: check_ntp is deprecated. Please use check_ntp_peer or" msgstr "" -#: plugins/check_ntp.c:891 plugins/check_ntp.c:898 +#: plugins/check_ntp.c:892 plugins/check_ntp.c:899 msgid "check_ntp_time instead." msgstr "" @@ -5081,8 +5075,8 @@ msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." #: plugins/check_tcp.c:646 msgid "" -"Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or " -"quit option" +"Can use \\n, \\r, \\t or \\\\ in send or quit string. Must come before send " +"or quit option" msgstr "" #: plugins/check_tcp.c:647 diff --git a/po/fr.gmo b/po/fr.gmo index 368fd5048c0b389133dfe646a7c156e18e15dfb3..74d25f7946020fa264e90c505ad610c323d62edc 100644 GIT binary patch delta 16902 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 delta 17113 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\n" "Language-Team: Nagios Plugin Development Mailing List \n" "Language-Team: LANGUAGE \n" @@ -23,7 +23,7 @@ msgstr "" #: plugins/check_fping.c:93 plugins/check_game.c:82 plugins/check_hpjd.c:104 #: plugins/check_http.c:167 plugins/check_ldap.c:109 plugins/check_load.c:122 #: plugins/check_mrtgtraf.c:83 plugins/check_mysql.c:124 -#: plugins/check_nagios.c:91 plugins/check_nt.c:127 plugins/check_ntp.c:781 +#: plugins/check_nagios.c:91 plugins/check_nt.c:127 plugins/check_ntp.c:782 #: plugins/check_ntp_peer.c:575 plugins/check_ntp_time.c:559 #: plugins/check_nwstat.c:173 plugins/check_overcr.c:102 #: plugins/check_pgsql.c:172 plugins/check_ping.c:95 plugins/check_procs.c:172 @@ -217,7 +217,7 @@ msgstr "" #: plugins/check_by_ssh.c:446 plugins/check_cluster.c:261 #: plugins/check_dig.c:364 plugins/check_disk.c:945 plugins/check_http.c:1562 -#: plugins/check_nagios.c:312 plugins/check_ntp.c:880 +#: plugins/check_nagios.c:312 plugins/check_ntp.c:881 #: plugins/check_ntp_peer.c:733 plugins/check_ntp_time.c:644 #: plugins/check_procs.c:763 plugins/negate.c:251 plugins/urlize.c:179 msgid "Examples:" @@ -229,7 +229,7 @@ msgstr "" #: plugins/check_game.c:331 plugins/check_hpjd.c:432 plugins/check_http.c:1592 #: plugins/check_ldap.c:451 plugins/check_load.c:334 plugins/check_mrtg.c:382 #: plugins/check_mysql.c:581 plugins/check_nagios.c:323 plugins/check_nt.c:774 -#: plugins/check_ntp.c:899 plugins/check_ntp_peer.c:753 +#: plugins/check_ntp.c:900 plugins/check_ntp_peer.c:753 #: plugins/check_ntp_time.c:653 plugins/check_nwstat.c:1685 #: plugins/check_overcr.c:467 plugins/check_pgsql.c:578 #: plugins/check_ping.c:610 plugins/check_procs.c:781 @@ -286,7 +286,7 @@ msgstr "" #: plugins/check_cluster.c:257 plugins/check_game.c:318 #: plugins/check_http.c:1544 plugins/check_ldap.c:438 plugins/check_mrtg.c:363 #: plugins/check_mrtgtraf.c:361 plugins/check_mysql.c:570 -#: plugins/check_nt.c:758 plugins/check_ntp.c:876 plugins/check_ntp_peer.c:724 +#: plugins/check_nt.c:758 plugins/check_ntp.c:877 plugins/check_ntp_peer.c:724 #: plugins/check_ntp_time.c:635 plugins/check_nwstat.c:1670 #: plugins/check_overcr.c:456 plugins/check_snmp.c:1180 #: plugins/check_swap.c:558 plugins/check_ups.c:642 @@ -884,7 +884,7 @@ msgstr "" #: plugins/check_fping.c:326 plugins/check_fping.c:332 #: plugins/check_hpjd.c:339 plugins/check_hpjd.c:368 plugins/check_mysql.c:383 -#: plugins/check_mysql.c:470 plugins/check_ntp.c:720 +#: plugins/check_mysql.c:470 plugins/check_ntp.c:721 #: plugins/check_ntp_peer.c:497 plugins/check_ntp_time.c:500 #: plugins/check_pgsql.c:335 plugins/check_ping.c:295 plugins/check_ping.c:418 #: plugins/check_radius.c:271 plugins/check_real.c:315 @@ -914,7 +914,7 @@ msgstr "" msgid "Interval must be a positive integer" msgstr "" -#: plugins/check_fping.c:402 plugins/check_ntp.c:744 +#: plugins/check_fping.c:402 plugins/check_ntp.c:745 #: plugins/check_ntp_peer.c:524 plugins/check_ntp_time.c:530 #: plugins/check_radius.c:321 plugins/check_time.c:319 msgid "Hostname was not supplied" @@ -1168,7 +1168,7 @@ msgstr "" msgid "Could Not Compile Regular Expression: %s" msgstr "" -#: plugins/check_http.c:464 plugins/check_ntp.c:733 +#: plugins/check_http.c:464 plugins/check_ntp.c:734 #: plugins/check_ntp_peer.c:513 plugins/check_ntp_time.c:519 #: plugins/check_smtp.c:621 plugins/check_ssh.c:151 plugins/check_tcp.c:481 msgid "IPv6 support not available" @@ -2660,88 +2660,82 @@ msgstr "" msgid "and on the client service it's connecting to." msgstr "" -#: plugins/check_ntp.c:615 +#: plugins/check_ntp.c:631 #, c-format -msgid "Cannot read from socket: %s" +msgid "jitter response too large (%lu bytes)\n" msgstr "" -#: plugins/check_ntp.c:617 -#, c-format -msgid "" -"Invalid NTP response: %d bytes read does not equal %d plus %d data segment" -msgstr "" - -#: plugins/check_ntp.c:818 plugins/check_ntp_peer.c:619 +#: plugins/check_ntp.c:819 plugins/check_ntp_peer.c:619 #: plugins/check_ntp_time.c:578 msgid "NTP CRITICAL:" msgstr "" -#: plugins/check_ntp.c:821 plugins/check_ntp_peer.c:622 +#: plugins/check_ntp.c:822 plugins/check_ntp_peer.c:622 #: plugins/check_ntp_time.c:581 msgid "NTP WARNING:" msgstr "" -#: plugins/check_ntp.c:824 plugins/check_ntp_peer.c:625 +#: plugins/check_ntp.c:825 plugins/check_ntp_peer.c:625 #: plugins/check_ntp_time.c:584 msgid "NTP OK:" msgstr "" -#: plugins/check_ntp.c:827 plugins/check_ntp_peer.c:628 +#: plugins/check_ntp.c:828 plugins/check_ntp_peer.c:628 #: plugins/check_ntp_time.c:587 msgid "NTP UNKNOWN:" msgstr "" -#: plugins/check_ntp.c:831 plugins/check_ntp_peer.c:637 +#: plugins/check_ntp.c:832 plugins/check_ntp_peer.c:637 #: plugins/check_ntp_time.c:591 msgid "Offset unknown" msgstr "" -#: plugins/check_ntp.c:834 plugins/check_ntp_peer.c:640 +#: plugins/check_ntp.c:835 plugins/check_ntp_peer.c:640 #: plugins/check_ntp_peer.c:642 plugins/check_ntp_peer.c:644 #: plugins/check_ntp_time.c:594 msgid "Offset" msgstr "" -#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:690 +#: plugins/check_ntp.c:856 plugins/check_ntp_peer.c:690 msgid "This plugin checks the selected ntp server" msgstr "" -#: plugins/check_ntp.c:865 plugins/check_ntp_peer.c:702 +#: plugins/check_ntp.c:866 plugins/check_ntp_peer.c:702 #: plugins/check_ntp_time.c:621 msgid "Offset to result in warning status (seconds)" msgstr "" -#: plugins/check_ntp.c:867 plugins/check_ntp_peer.c:704 +#: plugins/check_ntp.c:868 plugins/check_ntp_peer.c:704 #: plugins/check_ntp_time.c:623 msgid "Offset to result in critical status (seconds)" msgstr "" -#: plugins/check_ntp.c:869 plugins/check_ntp_peer.c:710 +#: plugins/check_ntp.c:870 plugins/check_ntp_peer.c:710 msgid "Warning threshold for jitter" msgstr "" -#: plugins/check_ntp.c:871 plugins/check_ntp_peer.c:712 +#: plugins/check_ntp.c:872 plugins/check_ntp_peer.c:712 msgid "Critical threshold for jitter" msgstr "" -#: plugins/check_ntp.c:881 +#: plugins/check_ntp.c:882 msgid "Normal offset check:" msgstr "" -#: plugins/check_ntp.c:884 plugins/check_ntp_peer.c:737 +#: plugins/check_ntp.c:885 plugins/check_ntp_peer.c:737 msgid "" "Check jitter too, avoiding critical notifications if jitter isn't available" msgstr "" -#: plugins/check_ntp.c:885 plugins/check_ntp_peer.c:738 +#: plugins/check_ntp.c:886 plugins/check_ntp_peer.c:738 msgid "(See Notes above for more details on thresholds formats):" msgstr "" -#: plugins/check_ntp.c:890 plugins/check_ntp.c:897 +#: plugins/check_ntp.c:891 plugins/check_ntp.c:898 msgid "WARNING: check_ntp is deprecated. Please use check_ntp_peer or" msgstr "" -#: plugins/check_ntp.c:891 plugins/check_ntp.c:898 +#: plugins/check_ntp.c:892 plugins/check_ntp.c:899 msgid "check_ntp_time instead." msgstr "" @@ -4949,8 +4943,8 @@ msgstr "" #: plugins/check_tcp.c:646 msgid "" -"Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or " -"quit option" +"Can use \\n, \\r, \\t or \\\\ in send or quit string. Must come before send " +"or quit option" msgstr "" #: plugins/check_tcp.c:647 diff --git a/release b/release index 879b416..3e3c2f1 100644 --- a/release +++ b/release @@ -1 +1 @@ -2.1 +2.1.1