diff --git a/BUGS b/BUGS index 5c87697..0c36803 100644 --- a/BUGS +++ b/BUGS @@ -4,13 +4,19 @@ necessarily verified as errors. For the 1.4.11 release: -1724055 - check_dns: does not sort address data +1939578 - check_jabber: Always returns WARNING with Openfire server +1939529 - check_tcp: Expiring SSL certs produce confusing messages +1928399 - check_porcs METRIC_CPU should ignore kernel processes on FreeBSD +1922579 - check_ldap: ldap_init implicitly converted +1904965 - check_apt: SECURITY_RE is not correct +1894850 - check_ping: incorrectly parses ping6 output +1868822 - check_http link fails with openssl installed +1867716 - check_snmp invalid performance data +1864404 - check_smtp/check_http miscalculate timezones in cert expiry 1681516 - output too verbose for various checks 1670261 - check_snmp might require snmpget with LD_LIBRARY_PATH 1569488 - check_ifoperstatus.pl: -n option does't work (help required!) 1523748 - check_disk should error if warn range is subset of critical -1498923 - check_ldap build error on Solaris 9 -1480574 - check_disk missing -lm on Solaris 1478287 - check_dns fails with CNAMEs 1469468 - signal handler in popen.c is broken 1381604 - Perlsec breaks any perl plugin with perl 5.8.x diff --git a/ChangeLog b/ChangeLog index 73d9723..3939972 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,799 @@ +2008-05-27 21:52 tonvoon + + * [r2003] THANKS.in, configure.in: + Not picking up solaris systems correctly for check_dhcp. Only + affected SunStudio compiles of check_dhcp (1890260 - Rob Windsor) + +2008-05-27 21:31 tonvoon + + * [r2002] plugins/check_by_ssh.c: + Addition to help to state that -f will always return OK if ssh + command is executed (Alain Dewit - 1852198) + +2008-05-27 13:35 tonvoon + + * [r2001] plugins-root/pst3.c: + Add additional PID column heading + +2008-05-26 09:43 dermoth + + * [r2000] NEWS: + correct typo in NEWS + +2008-05-23 09:09 dermoth + + * [r1999] REQUIREMENTS: + Add a note about radiusclient + +2008-05-22 08:25 dermoth + + * [r1998] NEWS, configure.in: + Fix linking against OpenSSL where libdl is required + +2008-05-21 08:57 dermoth + + * [r1997] NEWS, plugins/check_by_ssh.c, plugins/t/check_by_ssh.t: + Fixed passive option in check_by_ssh Also: - On non-skipped + stderr, check_by_ssh now returns UNKNOWN or worse (result from + command) instead of always UNKNOWN. - Fixed passive tests and + make is always run the specified number of tests (using fail if + there's nothing to test). + +2008-05-20 11:37 dermoth + + * [r1996] plugins/t/check_by_ssh.t: + Oops - forgot to remove the SKIP block (which didn't seem to work + fine) + +2008-05-20 11:32 dermoth + + * [r1995] plugins/t/check_by_ssh.t: + Add check_by_ssh tests (passive checks are broken - should be + fixed before next release!) + +2008-05-20 07:57 dermoth + + * [r1994] NEWS, plugins/check_radius.c: + Clobber password in check_radius process list aguments + +2008-05-13 09:14 dermoth + + * [r1992] plugins/check_dns.c: + Typo + +2008-05-07 10:02 dermoth + + * [r1991] plugins-root/check_dhcp.c, plugins-root/check_icmp.c, + plugins/check_apt.c, plugins/check_by_ssh.c, + plugins/check_cluster.c, plugins/check_dig.c, + plugins/check_disk.c, plugins/check_dns.c, plugins/check_fping.c, + plugins/check_game.c, plugins/check_hpjd.c, plugins/check_http.c, + plugins/check_ide_smart.c, plugins/check_ldap.c, + plugins/check_load.c, plugins/check_mrtg.c, + plugins/check_mrtgtraf.c, plugins/check_mysql.c, + plugins/check_mysql_query.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, plugins/check_ping.c, + plugins/check_procs.c, plugins/check_radius.c, + plugins/check_real.c, plugins/check_smtp.c, plugins/check_snmp.c, + plugins/check_ssh.c, plugins/check_swap.c, plugins/check_tcp.c, + plugins/check_time.c, plugins/check_ups.c, plugins/check_users.c, + plugins/utils.h: + Added support for --extra-opts in all C plugins (disabled by + default, see configure --help) + +2008-05-07 10:01 dermoth + + * [r1990] NEWS, THANKS.in, plugins/check_ping.c: + Added performance data to check_ping (Christian Schneemann) + +2008-05-02 09:28 dermoth + + * [r1989] NEWS, plugins/negate.c: + negate now has the ability to replace the status text as well + (-s, --substitute) Also changed: - default timeout to 11 instead + of 9 (since it's recommended to have a higher timeout, and many + plugins default to 10 seconds) - If there's no STDOUT lines + returned, still returns the returned result if it's NON-ok + instead of forcing it to UNKNOWN + +2008-04-30 12:50 dermoth + + * [r1988] NEWS, plugins/check_mysql.c, plugins/check_mysql_query.c, + plugins/t/check_mysql.t: + Add socket support to check_mysql* Also clears the password from + check_mysql command-line options + +2008-04-29 14:54 hweiss + + * [r1987] configure.in: + Support "--without-pgsql" (reported by Alex Songe via IRC). + +2008-04-29 09:01 dermoth + + * [r1986] plugins/check_ntp.c, plugins/check_ntp_peer.c, + plugins/check_ntp_time.c: + Use UT_THRESHOLDS_NOTES in all plugins + +2008-04-29 09:01 dermoth + + * [r1985] plugins-root/check_dhcp.c, plugins-root/check_icmp.c: + --help output cleanup (plus removal of spaces on blank lines) + +2008-04-27 14:35 dermoth + + * [r1984] plugins/check_apt.c, plugins/check_by_ssh.c, + plugins/check_cluster.c, plugins/check_dig.c, + plugins/check_disk.c, plugins/check_dns.c, plugins/check_dummy.c, + plugins/check_fping.c, plugins/check_game.c, + plugins/check_hpjd.c, plugins/check_http.c, + plugins/check_ide_smart.c, plugins/check_ldap.c, + plugins/check_load.c, plugins/check_mrtg.c, + plugins/check_mrtgtraf.c, plugins/check_mysql.c, + plugins/check_mysql_query.c, plugins/check_nagios.c, + plugins/check_nt.c, plugins/check_ntp.c, + plugins/check_ntp_peer.c, plugins/check_nwstat.c, + plugins/check_overcr.c, plugins/check_pgsql.c, + plugins/check_ping.c, plugins/check_procs.c, + plugins/check_radius.c, plugins/check_real.c, + plugins/check_snmp.c, plugins/check_swap.c, plugins/check_ups.c, + plugins/utils.h: + --help output cleanup (plus removal of spaces on blank lines) + +2008-04-23 08:19 dermoth + + * [r1983] plugins/check_radius.c: + Correct typo and make the --help notes a bit simpler. + +2008-04-17 10:46 dermoth + + * [r1979] plugins/check_dns.c: + Correct the help text + +2008-04-17 10:37 dermoth + + * [r1978] NEWS, plugins/check_dns.c: + Allow to repeat -a to set multiple possible addresses + +2008-04-05 08:02 dermoth + + * [r1977] NEWS, plugins/check_ntp.c, plugins/check_ntp_peer.c: + check_ntp and check_ntp_peer now show proper jitter/stratum + thresholds longopts in --help + +2008-04-04 10:11 dermoth + + * [r1976] lib/extra_opts.c, lib/parse_ini.c, lib/tests/test_ini.c, + lib/tests/test_opts.c: + make parse_ini die like in N::P if section isn't found + +2008-04-02 09:19 dermoth + + * [r1974] lib/Makefile.config-opts, lib/tests/Makefile.config-opts: + Delete obsolete files + +2008-04-02 09:11 dermoth + + * [r1973] configure.in, lib/Makefile.am, lib/parse_ini.c, + lib/tests/Makefile.am, lib/tests/test_ini.t, + lib/tests/test_opts.t, po/de.po, po/fr.po, po/nagios-plugins.pot: + - Add --enable-extra-opts configure option for compiling + extra-opts support - Auto-update po/pot files + +2008-04-01 09:38 dermoth + + * [r1972] lib/parse_ini.c: + fix the obvious... + +2008-04-01 09:31 dermoth + + * [r1971] lib/extra_opts.c, lib/extra_opts.h: + np_extra_opts now retain pointers from argv so that plugins can + still overwrite sensitive options + +2008-03-31 07:07 dermoth + + * [r1970] gl: + update svn:ignore property (last gnulib update added many + auto-generated files) + +2008-03-31 07:04 dermoth + + * [r1969] lib/extra_opts.c, lib/tests/test_opts.c: + Fix bug with --extra-opts as last argument with no value Fix + problem with duplicate function name (function should eventually + move to /lib) + +2008-03-31 05:31 dermoth + + * [r1968] lib/extra_opts.c, lib/extra_opts.h, lib/parse_ini.c, + lib/parse_ini.h, lib/tests/test_ini.c, lib/tests/test_opts.c: + Fix for last commit - I accidentaly broke my local Makefile and + tests weren't being re-compiled. + +2008-03-30 14:02 dermoth + + * [r1967] lib/extra_opts.c, lib/extra_opts.h, + lib/tests/test_opts.c: + - Remove the last argument of np_extra_opts - Code cleanups and + comments + +2008-03-29 15:35 dermoth + + * [r1966] lib/tests: + Update svn:ignore property + +2008-03-26 09:46 dermoth + + * [r1962] lib/parse_ini.c, lib/parse_ini.h, lib/tests/plugins.ini, + lib/tests/test_opts.c: + write ini-file lookup function + tests + +2008-03-24 07:02 dermoth + + * [r1961] lib/extra_opts.c, lib/extra_opts.h, + lib/tests/config-opts.ini, lib/tests/test_opts.c, + lib/tests/test_opts.t: + Add extra-opts argument parsing with tests + +2008-03-24 06:28 dermoth + + * [r1960] lib/parse_ini.c, lib/parse_ini.h: + Replace broken usage of NAGIOS_CONFIG_PATH with a stub function + (that will try to find a config file in the future...) Allow NULL + locator (default file/section) + +2008-03-20 11:53 dermoth + + * [r1959] plugins/check_dig.c: + - Fix bug #1920671 - Make --help output looks nice + +2008-03-18 10:59 tonvoon + + * [r1955] plugins/tests/check_procs.t: + Include test for check_procs, using input file + +2008-03-18 01:21 tonvoon + + * [r1954] plugins/check_procs.c, plugins/tests/var, + plugins/tests/var/ps-axwo.darwin, + plugins/tests/var/ps_axwo.debian: + Updated check_procs with a hidden --input-file option. Include + some sample outputs for testing + +2008-03-17 23:08 tonvoon + + * [r1953] plugins/t/check_nagios.t: + Don't run check_nagios tests on Solaris, because of pst3 + requirement + +2008-03-16 18:10 dermoth + + * [r1951] lib/tests/config-dos.ini, lib/tests/plugin.ini, + lib/tests/test_ini.c: + Add tests: - DOS-newline ini file - section defined twice + +2008-03-15 22:42 dermoth + + * [r1950] lib/parse_ini.c: + parse_ini now reads the default section if the request one can't + be found. All tests should return ok now. + +2008-03-15 21:51 dermoth + + * [r1949] lib/parse_ini.c: + Oops - this line shouldn't have been here (doesn't even work + anyways) ;) + +2008-03-15 20:47 dermoth + + * [r1948] lib/parse_ini.c, lib/tests/plugin.ini, + lib/tests/test_ini.c: + - Make equal-less parameters illegal - parameters without + argument after '=' are now assumed to be argument-less - Add a + testcase for space in stanza and various argument-less parameters + +2008-03-15 20:34 dermoth + + * [r1947] lib/parse_ini.c: + Fix handling of leading and trailing spaces in stanza + +2008-03-15 16:17 dermoth + + * [r1946] lib/parse_ini.c, lib/tests/test_ini.c: + Fix segfault in test_ini.c and uncomment the affected tests Fix + bug in stanza parsing where full section could be skipped Fix + single-argument options + +2008-03-15 04:51 dermoth + + * [r1945] lib/parse_ini.c, lib/parse_ini.h, lib/tests/test_ini.c, + lib/tests/test_ini.t: + This commit consist of two changes: 1. Make np_get_defaults + return a linked list instead of a string. It will then be easy to + convert the linked list back to an argument array. 2. Fix tests + 3-4 of test_ini.c. + + A test_ini.t was added too. parse_ini and test_ini aren't + included yet in the build makefiles. + +2008-03-15 00:14 psychotrahe + + * [r1944] plugins/check_http.c: + Add port to Host Header to prevent problems with non default + ports (Christophe Dupre #1881898) + +2008-03-14 23:47 psychotrahe + + * [r1943] NEWS, plugins/check_dig.c: + Added -A/--dig-arguments to check_dig (#1889453/#1874041) + +2008-03-14 22:35 psychotrahe + + * [r1942] plugins/check_smtp.c: + Enhanced check_smtp to actually print invalid response text + (#1911239) + +2008-03-14 15:44 tonvoon + + * [r1941] NEWS, plugins-root/Makefile.am, plugins/Makefile.am: + Fixed 64 bit pst3 when tries to link to gettext. Gettext linked + dynamically, if necessary + +2008-03-14 10:17 dermoth + + * [r1940] gl/charset.alias, gl/configmake.h, gl/math.h, + gl/ref-add.sed, gl/ref-del.sed, gl/stdio.h, gl/stdlib.h, + gl/string.h, gl/unistd.h: + These files are generated automatically during the make process, + and removed by make clean. + +2008-03-11 00:37 tonvoon + + * [r1939] configure.in, gl/m4/mbstate_t.m4: + Possible fix for HP-UX compile problems of regex_internal.c + +2008-03-11 00:10 tonvoon + + * [r1938] configure.in, lib/utils_base.c, plugins-root/Makefile.am, + plugins/check_http.c, plugins/check_smtp.c, plugins/common.h: + Fixed link -m64 problems on pst3 for solaris. Fixed + _FILE_OFFSET_BITS redefinition warnings. Fixed helper ar error in + ./configure + +2008-02-28 16:21 tonvoon + + * [r1937] NEWS, configure.in, plugins-root/Makefile.am, + plugins-root/pst3.c, plugins/check_procs.c, + plugins/t/check_procs.t: + Reverted check_procs for solaris back to using pst3 due to + truncation for argument fields using other methods + +2008-02-28 12:54 tonvoon + + * [r1936] tools/build_perl_modules: + Fix where PERL5LIB is blank + +2008-02-18 11:23 tonvoon + + * [r1935] NEWS: + Added CVE MITRE tracking number + +2008-02-13 20:36 psychotrahe + + * [r1934] NEWS, plugins/check_pgsql.c: + check_pgsql now builds with postgres lib v8.3 (Jan Wagner + #1878972) + +2008-02-13 19:14 psychotrahe + + * [r1933] plugins/check_disk.c: + Fix --local argument handling (Jan Wagner #1878971) + +2008-02-13 15:10 dermoth + + * [r1932] plugins/check_disk.c: + Fix broken intending (The whole file use spaces only except my + last patch and 1-3 other places). + +2008-02-13 11:37 dermoth + + * [r1931] gl: + Add two files to svn:ignore + +2008-02-13 11:05 dermoth + + * [r1930] lib/utils_base.c, plugins/check_disk.c: + set_thresholds now let the user free the thresolds. (P.S.: When + you set twice the thresholds for a path in check disk (like using + -C followed by -p ) it overrides them. All new elements are + created with np_add_parameter which initialises the thresholds to + NULL.) + +2008-02-13 04:18 dermoth + + * [r1929] NEWS: + News, nothing else. + +2008-02-13 04:16 dermoth + + * [r1928] plugins/common.h: + This floorf workaround is Nnot needed anymore since floorf is + part of Gnulib + +2008-02-13 04:07 dermoth + + * [r1927] lib/tests/test_base64.c: + Reverting patch to test 8-bit data: Still broken on Solaris + (7-bit works as before) + +2008-02-12 12:03 dermoth + + * [r1926] gl/Makefile.am, gl/base64.c, gl/base64.h, + gl/charset.alias, gl/configmake.h, gl/floor.c, gl/floorf.c, + gl/m4/base64.m4, gl/m4/floorf.m4, gl/m4/gnulib-cache.m4, + gl/m4/gnulib-comp.m4, gl/m4/math_h.m4, gl/math.h, gl/math.in.h, + gl/ref-add.sed, gl/ref-del.sed, gl/stdio.h, gl/stdlib.h, + gl/string.h, gl/unistd.h, lib/Makefile.am, lib/base64.c, + lib/base64.h, lib/tests/Makefile.am, lib/tests/test_base64.c, + plugins/check_http.c, plugins/check_smtp.c: + Import Gnulib floorf and base64 and removed our old base64 + library. + +2008-02-12 11:07 dermoth + + * [r1925] build-aux/config.rpath, build-aux/link-warning.h, + gl/Makefile.am, gl/alloca.c, gl/alloca.in.h, gl/alloca_.h, + gl/asnprintf.c, gl/asprintf.c, gl/basename.c, gl/c-strtod.c, + gl/cloexec.c, gl/config.charset, gl/creat-safer.c, gl/dirname.c, + gl/dirname.h, gl/dup-safer.c, gl/error.c, gl/error.h, gl/exit.h, + gl/exitfail.c, gl/exitfail.h, gl/fcntl--.h, gl/fcntl-safer.h, + gl/fd-safer.c, gl/float+.h, gl/float.in.h, gl/fsusage.c, + gl/fsusage.h, gl/full-read.c, gl/full-read.h, gl/full-write.c, + gl/full-write.h, gl/gai_strerror.c, gl/getaddrinfo.c, + gl/getaddrinfo.h, gl/gethostname.c, gl/getloadavg.c, gl/getopt.c, + gl/getopt.in.h, gl/getopt1.c, gl/getopt_.h, gl/getopt_int.h, + gl/gettext.h, gl/inet_ntop.c, gl/inet_ntop.h, gl/intprops.h, + gl/localcharset.c, gl/localcharset.h, gl/m4/absolute-header.m4, + gl/m4/alloca.m4, gl/m4/extensions.m4, gl/m4/float_h.m4, + gl/m4/fsusage.m4, gl/m4/getaddrinfo.m4, gl/m4/getloadavg.m4, + gl/m4/gettext.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4, + gl/m4/gnulib-comp.m4, gl/m4/iconv.m4, gl/m4/include_next.m4, + gl/m4/intdiv0.m4, gl/m4/intl.m4, gl/m4/intlmacosx.m4, + gl/m4/intmax_t.m4, gl/m4/lib-link.m4, gl/m4/localcharset.m4, + gl/m4/lock.m4, gl/m4/longdouble.m4, gl/m4/longlong.m4, + gl/m4/malloc.m4, gl/m4/mbchar.m4, gl/m4/mbiter.m4, + gl/m4/mbrtowc.m4, gl/m4/memchr.m4, gl/m4/minmax.m4, + gl/m4/netinet_in_h.m4, gl/m4/po.m4, gl/m4/printf-posix.m4, + gl/m4/regex.m4, gl/m4/snprintf.m4, gl/m4/socklen.m4, + gl/m4/stdint.m4, gl/m4/stdio_h.m4, gl/m4/stdlib_h.m4, + gl/m4/strcase.m4, gl/m4/strdup.m4, gl/m4/strerror.m4, + gl/m4/string_h.m4, gl/m4/strndup.m4, gl/m4/strnlen.m4, + gl/m4/sys_socket_h.m4, gl/m4/uintmax_t.m4, gl/m4/ulonglong.m4, + gl/m4/unistd_h.m4, gl/m4/vasnprintf.m4, gl/m4/vasprintf.m4, + gl/m4/vsnprintf.m4, gl/m4/wchar.m4, gl/m4/wctype.m4, + gl/m4/wcwidth.m4, gl/m4/wint_t.m4, gl/malloc.c, gl/mbchar.c, + gl/mbchar.h, gl/mbuiter.h, gl/memchr.c, gl/minmax.h, + gl/mountlist.c, gl/mountlist.h, gl/netinet_in.in.h, + gl/open-safer.c, gl/pipe-safer.c, gl/printf-args.c, + gl/printf-args.h, gl/printf-parse.c, gl/printf-parse.h, + gl/ref-add.sin, gl/ref-del.sin, gl/regcomp.c, gl/regex.c, + gl/regex.h, gl/regex_internal.c, gl/regex_internal.h, + gl/regexec.c, gl/safe-read.c, gl/safe-read.h, gl/safe-write.c, + gl/safe-write.h, gl/size_max.h, gl/snprintf.c, gl/snprintf.h, + gl/socket_.h, gl/stdbool.in.h, gl/stdbool_.h, gl/stdint.in.h, + gl/stdint_.h, gl/stdio.in.h, gl/stdlib.in.h, gl/strcase.h, + gl/strcasecmp.c, gl/strdup.c, gl/strdup.h, gl/strerror.c, + gl/string.in.h, gl/stripslash.c, gl/strncasecmp.c, gl/strndup.c, + gl/strndup.h, gl/strnlen.c, gl/strnlen.h, gl/strnlen1.c, + gl/strnlen1.h, gl/sys_socket.in.h, gl/unistd--.h, + gl/unistd-safer.h, gl/unistd.in.h, gl/unistd_.h, gl/vasnprintf.c, + gl/vasnprintf.h, gl/vasprintf.c, gl/vasprintf.h, gl/vsnprintf.c, + gl/vsnprintf.h, gl/wchar.in.h, gl/wchar_.h, gl/wctype.in.h, + gl/wctype_.h, gl/wcwidth.h, gl/xalloc-die.c, gl/xalloc.h, + gl/xmalloc.c, gl/xsize.h, gl/xstrndup.c, gl/xstrndup.h, + plugins/common.h, po/Makevars: + Sync to latest Gnulib + +2008-02-11 21:36 tonvoon + + * [r1924] REQUIREMENTS: + Hints re: SSL features + +2008-02-11 21:23 tonvoon + + * [r1923] configure.in: + Added link to FAQ for redhat spopen problem + +2008-01-31 11:52 dermoth + + * [r1920] plugins-root/check_dhcp.c, plugins-root/check_icmp.c, + plugins-root/pst3.c: + Bump plugins-root/ to GPLv3 + +2008-01-31 11:45 dermoth + + * [r1919] plugins/common.h, plugins/netutils.h, plugins/popen.h, + plugins/runcmd.h: + Bump plugins/ to GPLv3 (header files) + +2008-01-31 11:27 dermoth + + * [r1918] plugins/negate.c, plugins/netutils.c, plugins/popen.c, + plugins/runcmd.c, plugins/sslutils.c, plugins/urlize.c, + plugins/utils.c: + Bump plugins/ to GPLv3 (non-plugind files) + +2008-01-31 10:44 dermoth + + * [r1917] plugins/check_overcr.c, plugins/check_pgsql.c, + plugins/check_ping.c, plugins/check_procs.c, + plugins/check_radius.c, plugins/check_real.c, + plugins/check_smtp.c, plugins/check_snmp.c, plugins/check_ssh.c, + plugins/check_swap.c, plugins/check_tcp.c, plugins/check_time.c, + plugins/check_ups.c, plugins/check_users.c: + Bump plugin/ to GPLv3 (check_overcr to check_users) + +2008-01-30 10:53 dermoth + + * [r1916] plugins/check_apt.c, plugins/check_by_ssh.c, + plugins/check_cluster.c, plugins/check_dig.c, + plugins/check_disk.c, plugins/check_dns.c, plugins/check_dummy.c, + plugins/check_fping.c, plugins/check_game.c, + plugins/check_hpjd.c, plugins/check_http.c, + plugins/check_ide_smart.c, plugins/check_ldap.c, + plugins/check_load.c, plugins/check_mrtg.c, + plugins/check_mrtgtraf.c, plugins/check_mysql.c, + plugins/check_mysql_query.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: + Bump plugins/ to GPLv3 (check_apt to check_nwstat) + +2008-01-30 09:46 dermoth + + * [r1915] lib/utils_disk.c, lib/utils_tcp.c: + details... + +2008-01-30 09:38 dermoth + + * [r1914] lib/tests/test_base64.c, lib/tests/test_cmd.c, + lib/tests/test_disk.c, lib/tests/test_ini.c, + lib/tests/test_tcp.c, lib/tests/test_utils.c: + Bump lib/tests to GPLv3 + +2008-01-30 09:33 dermoth + + * [r1913] lib/parse_ini.c, lib/utils_base.c, lib/utils_cmd.c, + lib/utils_disk.c, lib/utils_tcp.c: + Bump /lib to GPLv3 + +2008-01-30 09:03 dermoth + + * [r1912] lib/parse_ini.c: + new standardized GPLv3 header (will be applied to all C files) + +2008-01-29 10:27 dermoth + + * [r1911] NEWS, plugins/check_ntp_peer.c: + check_ntp_peer now checks for the LI_ALARM flag + +2008-01-29 08:55 dermoth + + * [r1910] NEWS: + typo + +2008-01-29 08:54 dermoth + + * [r1909] NEWS, plugins/check_ntp.c, plugins/check_ntp_time.c: + Fix bugs and flaws in best offset server selection of + check_ntp_time and (deprecated) check_ntp + +2008-01-26 15:55 dermoth + + * [r1908] NEWS, THANKS.in, plugins/check_ntp_peer.c, + plugins/check_ntp_time.c: + Fix help text of check_ntp_* (Bug #1880095) + +2008-01-15 11:34 dermoth + + * [r1907] NEWS, plugins/check_disk.c: + Fix check_disk disk usage calculation when using --group=NAME + (related to bug #1348746) + +2008-01-15 09:40 dermoth + + * [r1906] NEWS, configure.in: + Add AC_SYS_LARGEFILE to configure.in (check_disk should now work + with large file systems (2TB+) on all archs that supports it) + +2008-01-10 07:49 dermoth + + * [r1905] lib/tests/test_cmd.c: + Add a return-code check (also test cmd_run without out/err + buffers) + +2008-01-09 04:27 dermoth + + * [r1904] tools/tinderbox_build: + make test-debug generate lots of false errors in tinderbox. + Turning off until we find a solution (so al least we can watch + the tinderbox for breakages again) + +2008-01-08 23:08 psychotrahe + + * [r1903] plugins/check_dns.c: + Fixed reverse lookup damaged by previous commit + +2008-01-08 16:05 tonvoon + + * [r1902] plugins/t/check_dns.t: + Changed default test values for check_dns (using nagios.com) + +2008-01-08 11:57 tonvoon + + * [r1901] plugins/t/check_ftp.t, plugins/t/check_imap.t, + plugins/t/check_jabber.t, plugins/t/check_pop.t, + plugins/t/check_tcp.t: + Reverted commits 1898 and 1899 due to reversion of 1879 + +2008-01-08 11:51 tonvoon + + * [r1900] NEWS, plugins/check_tcp.c: + Reverted commit 1879 where an invalid hostname returns UNKNOWN - + back to CRITICAL + +2008-01-08 11:35 dermoth + + * [r1899] plugins/t/check_imap.t, plugins/t/check_jabber.t, + plugins/t/check_pop.t: + more r1879 fixes + +2008-01-08 11:27 dermoth + + * [r1898] plugins/t/check_ftp.t, plugins/t/check_tcp.t: + Fix test breakages for commit r1879: check_tcp now returns + UNKNOWN with an invalid hostname on command line + +2008-01-08 02:06 hweiss + + * [r1897] plugins-root/check_icmp.c: + Hide some debug output which was printed even without "-v" (under + certain circumstances). + +2008-01-08 01:51 hweiss + + * [r1896] plugins-root/check_icmp.c: + Fix the handling of ICMP packets which are not echo replies (such + as destination unreachable messages) or which are not directed at + us. + +2008-01-08 01:43 hweiss + + * [r1895] plugins-root/check_icmp.c: + Get rid of a cast which increases the required alignment. + +2008-01-08 01:40 hweiss + + * [r1894] plugins-root/check_icmp.c: + Mark some constant strings "const". + +2008-01-07 02:04 hweiss + + * [r1893] plugins/netutils.c: + Support "[IPv6]" address syntax. + +2008-01-07 01:59 hweiss + + * [r1892] plugins/check_http.c: + My assumption that "-H example.com:80" didn't work (see my + previous commit) was wrong, it worked if used together with "-I". + So, here's support for "-H [IPv6]:port", "-H [IPv6]", "-H IPv6", + "-H IPv4:port", "-H IPv4", and "-H host:port". + +2008-01-06 19:45 hweiss + + * [r1891] plugins/check_http.c: + Remove support for specifying the port number using "-H + example.com:80". Since this didn't work anyway (because ":80" + wasn't stripped from the "host_name" after extracting the + "server_port"), nobody can be using this syntax, and it prevents + "-H" from accepting IPv6 addresses (neufeind - 1865082). IMO, + fixing it to recognize both ":80" and IPv6 addresses isn't worth + it, as the ":80" syntax doesn't seem very useful for Nagios + plugins (given the way how they are usually called in Nagios + command definitions). + +2008-01-06 15:44 dermoth + + * [r1890] lib/tests/test_base64.c: + Fix base64 test (known string wasn't null-terminated) + +2008-01-06 07:04 dermoth + + * [r1889] lib/tests/test_cmd.c: + Fix tinderbox breakage + +2008-01-06 00:10 psychotrahe + + * [r1888] plugins/check_ldap.c: + If unspecified set LDAP_OPT_SUCCESS to LDAP_SUCCESS (Sergei + Haramundanis - #1498923) + +2008-01-05 14:09 dermoth + + * [r1887] NEWS, plugins/check_ntp.c, plugins/check_ntp_time.c: + Fix Bug #1862300: check_ntp_time segfault in 1.4.11 (Also apply + to check_ntp) + +2008-01-05 01:06 psychotrahe + + * [r1886] NEWS, THANKS.in, plugins/check_dns.c: + check_dns now sorts addresses for -a support with multiple + address replies (Matthias Urlichs #1724052) + +2008-01-04 22:10 psychotrahe + + * [r1885] plugins/check_procs.c: + Cleaned check_procs usage output (Ferenc Wagner #1862218) + +2007-12-21 14:19 hweiss + + * [r1884] plugins-root/check_icmp.c: + Fix INADDR_NONE value (for systems which don't define it). + +2007-12-21 14:17 hweiss + + * [r1883] plugins-root/check_icmp.c: + Include (if available) to get SIOCGIFADDR defined + on Solaris. + +2007-12-21 13:25 hweiss + + * [r1882] NEWS, THANKS.in, plugins-root/check_icmp.c: + New "-s" option to specify the source IP address (thanks to + Harald Jenny for providing the patch and to Patrick Cervicek for + looking into it!) + +2007-12-21 04:23 dermoth + + * [r1881] plugins/check_ldap.c: + Remove c formating from translated strings (makes translation + easier) + +2007-12-19 18:41 hweiss + + * [r1880] plugins/check_ldap.c: + Fix the "--help" output. + +2007-12-19 10:08 tonvoon + + * [r1879] NEWS, plugins/check_tcp.c: + check_tcp now returns UNKNOWN with an invalid hostname on command + line + +2007-12-17 11:47 tonvoon + + * [r1877] NEWS, THANKS.in, plugins/check_nt.c: + Add check_nt -v INSTANCES (Alessandro Ren) + +2007-12-13 23:17 tonvoon + + * [r1876] plugins/check_nwstat.c: + Fixed help output (Christian Mies) + +2007-12-13 23:12 tonvoon + + * [r1875] NEWS: + NEWS edited for consistent grammar + +2007-12-13 22:39 tonvoon + + * [r1873] BUGS, ChangeLog, NEWS, configure.in, package.def: + Preparation for 1.4.11 + 2007-12-13 22:22 tonvoon * [r1872] NEWS, THANKS.in, plugins-root/Makefile.am: @@ -599,7 +1395,7 @@ 2007-07-07 11:54 psychotrahe * [r1750] plugins-scripts/check_file_age.pl: - substituted $ID$ through $Revision: 1873 $ in print_revision call + substituted $ID$ through $Revision: 2004 $ in print_revision call 2007-07-07 11:40 psychotrahe diff --git a/Makefile.in b/Makefile.in index 1946347..d229bf7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -46,36 +46,40 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \ - $(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \ - $(top_srcdir)/gl/m4/dos.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \ + $(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/exitfail.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/fcntl-safer.m4 \ + $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ $(top_srcdir)/gl/m4/fstypename.m4 \ $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \ - $(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \ + $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/include_next.m4 \ + $(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ + $(top_srcdir)/gl/m4/intmax_t.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ - $(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/longdouble.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/longlong.m4 \ $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ - $(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \ - $(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \ - $(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \ + $(top_srcdir)/gl/m4/mbstate_t.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \ $(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \ @@ -85,21 +89,21 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \ - $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ - $(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \ + $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ + $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \ + $(top_srcdir)/gl/m4/strerror.m4 \ + $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \ $(top_srcdir)/gl/m4/strnlen.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/ulonglong.m4 \ $(top_srcdir)/gl/m4/unistd-safer.m4 \ $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \ $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \ - $(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ - $(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \ - $(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -130,10 +134,6 @@ GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print INSTALL = @INSTALL@ -ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@ -ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@ -ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@ -ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -178,27 +178,177 @@ EXTRA_NETOBJS = @EXTRA_NETOBJS@ EXTRA_TEST = @EXTRA_TEST@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLOAT_H = @FLOAT_H@ +FLOORF_LIBM = @FLOORF_LIBM@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLIBC21 = @GLIBC21@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@ GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MATHL = @GNULIB_MATHL@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GREP = @GREP@ +HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ +HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ +HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ +HAVE_DECL_COSL = @HAVE_DECL_COSL@ +HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ +HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ +HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_SINL = @HAVE_DECL_SINL@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TANL = @HAVE_DECL_TANL@ +HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ +HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ +HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DUP2 = @HAVE_DUP2@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ +HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRNDUP = @HAVE_STRNDUP@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRSEP = @HAVE_STRSEP@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE__BOOL = @HAVE__BOOL@ HOSTNAME = @HOSTNAME@ +INCLUDE_NEXT = @INCLUDE_NEXT@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -219,6 +369,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ @@ -232,6 +383,17 @@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NEED_SETGID = @NEED_SETGID@ NETINET_IN_H = @NETINET_IN_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_MATH_H = @NEXT_MATH_H@ +NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -270,11 +432,56 @@ PKG_ARCH = @PKG_ARCH@ PLUGIN_TEST = @PLUGIN_TEST@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +PST3CFLAGS = @PST3CFLAGS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON = @PYTHON@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ +REPLACE_CEILF = @REPLACE_CEILF@ +REPLACE_CEILL = @REPLACE_CEILL@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FLOORF = @REPLACE_FLOORF@ +REPLACE_FLOORL = @REPLACE_FLOORL@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FREXP = @REPLACE_FREXP@ +REPLACE_FREXPL = @REPLACE_FREXPL@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_ISFINITE = @REPLACE_ISFINITE@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LDEXPL = @REPLACE_LDEXPL@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_ROUND = @REPLACE_ROUND@ +REPLACE_ROUNDF = @REPLACE_ROUNDF@ +REPLACE_ROUNDL = @REPLACE_ROUNDL@ +REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REV_DATESTAMP = @REV_DATESTAMP@ REV_TIMESTAMP = @REV_TIMESTAMP@ SCRIPT_TEST = @SCRIPT_TEST@ @@ -291,9 +498,11 @@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ SYS_SOCKET_H = @SYS_SOCKET_H@ -UNISTD_H = @UNISTD_H@ USE_NLS = @USE_NLS@ +USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@ +USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@ VERSION = @VERSION@ +VOID_UNSETENV = @VOID_UNSETENV@ WARRANTY = @WARRANTY@ WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ @@ -301,6 +510,7 @@ WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ @@ -327,6 +537,8 @@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ diff --git a/NEWS b/NEWS index dac7a8f..3f1fece 100644 --- a/NEWS +++ b/NEWS @@ -1,27 +1,55 @@ This file documents the major additions and syntax changes between releases. +1.4.12 27th May 2008 + Added ./check_nt -v INSTANCES to count number of instances (Alessandro Ren) + New check_icmp -s option to specify the source IP address + check_dns now sorts addresses for testing results for more than one returned IP (Matthias Urlichs) + Fix segfault in check_ntp_time and (deprecated) check_ntp (Bug #1862300) + check_disk should now work with large file systems (2TB+) on all archs that supports it + Fixed check_disk disk usage calculation when using --group=NAME (related to bug #1348746) + Fix help text of check_ntp* (Bug #1880095) + Fix bugs and flaws in best offset server selection of check_ntp_time and (deprecated) check_ntp + check_ntp_peer now checks for the LI_ALARM flag + Sync to latest Gnulib (includes new floorf function) + check_pgsql now successfully builds with postgres lib v8.3 (Bug #1878972) + check_procs now accepts --ereg-argument-array for a regular expression match to the argument array + Reverted back to using pst3 for Solaris systems. Fixed issues re: -m64 needed to compile on 64bit systems + If applicable, Gettext linked dynamically instead of statically + check_dig can now pass arguments to dig by using -A/--dig-arguments (#1874041/#1889453) + check_ntp and check_ntp_peer now show proper jitter/stratum thresholds longopts in --help + check_dns now allow to repeat -a to match multiple possibly returned address (common with load balancers) + check_mysql and check_radius now try clearing password in processlist just like check_mysql_query + check_mysql and check_mysql_query now support sockets explicitely (-s, --socket) + negate now has the ability to replace the status text as well (-s, --substitute) + Added performance data to check_ping (Christian Schneemann) + Added support for --extra-opts in all C plugins (disabled by default, see configure --help) + Fixed passive option in check_by_ssh + On non-skipped stderr, check_by_ssh now returns UNKNOWN or worse (result from command) instead of always UNKNOWN. + Fix linking against OpenSSL where libdl is required + 1.4.11 13th December 2007 - Fix check_http regression in 1.4.10 where following redirects to + Fixed 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 + Merged 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). + check_ntp now returns UNKNOWN instead of WARNING if jitter is unavailable (jitter=-1.000000) + as long as the thresholds range include -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). + Fixed broken usage2 in check_snmp and check_cluster + check_cluster now accepts all valid characters in its thresholds ("-", "@", "~") + Fixed 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 + Fixed check_load argument handling when not passing triplets (bug #1831890) + Fixed buffer overflow in check_snmp (CVE-2007-5623) + Tinderbox builds now runs tests in a verbose mode + Updated Nagios::Plugin to 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 + Fix check_http buffer overflow vulnerability when following HTTP redirects (CVE-2007-5198) check_http now explicitly asks HTTP/1.1 servers to close the connection after completion of the response Check_ldaps' guessing which secure method to use (starttls vs. ssl on connect) diff --git a/REQUIREMENTS b/REQUIREMENTS index 9fdf408..fd41ded 100644 --- a/REQUIREMENTS +++ b/REQUIREMENTS @@ -7,6 +7,10 @@ that are dependent on other programs/libraries that are missing are usually not compiled. Requirements for various plugins are listed below... +check_ldaps, check_http --ssl, check_tcp --ssl, check_smtp --starttls + - Requires openssl or gnutls libraries for SSL connections + http://www.openssl.org, http://www.gnu.org/software/gnutls + check_fping: - Requires the fping utility distributed with SATAN. Either download and install SATAN or grab the fping program from @@ -43,11 +47,14 @@ check_pqsql: http://www.postgresql.org/ check_radius: - - Requires the radiusclient library available from + - Requires the radiusclient-ng library available from: + http://developer.berlios.de/projects/radiusclient-ng/ + - This plugin also works with the original radiusclient library from ftp://ftp.cityline.net/pub/radiusclient/ RPM (rpmfind): radiusclient 0.3.2, radiusclient-devel-0.3.2 - - Alternatively radiusclient-ng can be used: - http://developer.berlios.de/projects/radiusclient-ng/ + Unless you're using a distro-maintained version of this library you + probably want to use radiusclient-ng. The original radiusclient library is + unmaintained and has many known issues, particularly with 64bit systems. check_snmp: - Requires the NET-SNMP package available from diff --git a/THANKS b/THANKS index 31be415..9d3e18b 100644 --- a/THANKS +++ b/THANKS @@ -107,6 +107,7 @@ Chester Hosey Bob Ingraham Cire Iriarte Valdimir Ivaschenko +Harald Jenny Mark Jewiss Frank Kannemann Roy Sigurd Karlsbakk @@ -172,6 +173,7 @@ Darian Rackham Phil Randal Abid Rasheed Jeremy Reed +Alessandro Ren Joe Rhett Cliff Rice Alain Richard @@ -190,6 +192,7 @@ Christoph Schell Thomas Schimpke Benjamin Schmid Henning Schmiedehausen +Christian Schneemann Cove Schneider Enrico Scholz Sebastian Schubert @@ -212,6 +215,7 @@ Ibere Tizio Julien Touche Kyle Tucker Jerome Tytgat +Matthias Urlichs Matteo HCE Valsasna Jon Vandegrift Laurent Vaslin @@ -220,6 +224,7 @@ Ludse Verhoeven Robert August Vincent Dave Viner Nathan Vonnahme +Jan Wagner John Warburton Christian G Warden Stuart Webster @@ -231,5 +236,6 @@ Sebastian Wiesinger Paul Wiggins Howard Wilkinson Shawn Wills +Rob Windsor Mario Witte Jamie Zawinski diff --git a/aclocal.m4 b/aclocal.m4 index 8edca65..0e7d641 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -7258,9 +7258,9 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/np_mysqlclient.m4]) -m4_include([gl/m4/absolute-header.m4]) m4_include([gl/m4/alloca.m4]) m4_include([gl/m4/arpa_inet_h.m4]) +m4_include([gl/m4/base64.m4]) m4_include([gl/m4/c-strtod.m4]) m4_include([gl/m4/cloexec.m4]) m4_include([gl/m4/codeset.m4]) @@ -7272,6 +7272,8 @@ m4_include([gl/m4/error.m4]) m4_include([gl/m4/exitfail.m4]) m4_include([gl/m4/extensions.m4]) m4_include([gl/m4/fcntl-safer.m4]) +m4_include([gl/m4/float_h.m4]) +m4_include([gl/m4/floorf.m4]) m4_include([gl/m4/fstypename.m4]) m4_include([gl/m4/fsusage.m4]) m4_include([gl/m4/getaddrinfo.m4]) @@ -7279,25 +7281,25 @@ m4_include([gl/m4/gethostname.m4]) m4_include([gl/m4/getloadavg.m4]) m4_include([gl/m4/getopt.m4]) m4_include([gl/m4/gettext.m4]) +m4_include([gl/m4/glibc21.m4]) m4_include([gl/m4/gnulib-common.m4]) m4_include([gl/m4/gnulib-comp.m4]) m4_include([gl/m4/iconv.m4]) +m4_include([gl/m4/include_next.m4]) m4_include([gl/m4/inet_ntop.m4]) m4_include([gl/m4/inline.m4]) +m4_include([gl/m4/intlmacosx.m4]) m4_include([gl/m4/intmax_t.m4]) m4_include([gl/m4/inttypes_h.m4]) m4_include([gl/m4/lib-ld.m4]) m4_include([gl/m4/lib-link.m4]) m4_include([gl/m4/lib-prefix.m4]) -m4_include([gl/m4/lock.m4]) -m4_include([gl/m4/longdouble.m4]) +m4_include([gl/m4/localcharset.m4]) m4_include([gl/m4/longlong.m4]) m4_include([gl/m4/ls-mntd-fs.m4]) -m4_include([gl/m4/mbchar.m4]) -m4_include([gl/m4/mbiter.m4]) -m4_include([gl/m4/mbrtowc.m4]) -m4_include([gl/m4/memchr.m4]) -m4_include([gl/m4/minmax.m4]) +m4_include([gl/m4/malloc.m4]) +m4_include([gl/m4/math_h.m4]) +m4_include([gl/m4/mbstate_t.m4]) m4_include([gl/m4/mountlist.m4]) m4_include([gl/m4/netinet_in_h.m4]) m4_include([gl/m4/nls.m4]) @@ -7315,12 +7317,14 @@ m4_include([gl/m4/ssize_t.m4]) m4_include([gl/m4/stdbool.m4]) m4_include([gl/m4/stdint.m4]) m4_include([gl/m4/stdint_h.m4]) -m4_include([gl/m4/strcase.m4]) +m4_include([gl/m4/stdio_h.m4]) +m4_include([gl/m4/stdlib_h.m4]) m4_include([gl/m4/strdup.m4]) +m4_include([gl/m4/strerror.m4]) +m4_include([gl/m4/string_h.m4]) m4_include([gl/m4/strndup.m4]) m4_include([gl/m4/strnlen.m4]) m4_include([gl/m4/sys_socket_h.m4]) -m4_include([gl/m4/ulonglong.m4]) m4_include([gl/m4/unistd-safer.m4]) m4_include([gl/m4/unistd_h.m4]) m4_include([gl/m4/vasnprintf.m4]) @@ -7329,7 +7333,6 @@ m4_include([gl/m4/vsnprintf.m4]) m4_include([gl/m4/wchar.m4]) m4_include([gl/m4/wchar_t.m4]) m4_include([gl/m4/wctype.m4]) -m4_include([gl/m4/wcwidth.m4]) m4_include([gl/m4/wint_t.m4]) m4_include([gl/m4/xalloc.m4]) m4_include([gl/m4/xsize.m4]) diff --git a/build-aux/config.rpath b/build-aux/config.rpath index e082db6..35f959b 100755 --- a/build-aux/config.rpath +++ b/build-aux/config.rpath @@ -2,7 +2,7 @@ # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # -# Copyright 1996-2006 Free Software Foundation, Inc. +# Copyright 1996-2008 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # @@ -64,7 +64,7 @@ else ;; esac ;; - mingw* | pw32* | os2*) + mingw* | cygwin* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' @@ -74,7 +74,7 @@ else ;; newsos6) ;; - linux*) + linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) wl='-Wl,' @@ -100,7 +100,7 @@ else osf3* | osf4* | osf5*) wl='-Wl,' ;; - sco3.2v5*) + rdos*) ;; solaris*) wl='-Wl,' @@ -108,11 +108,14 @@ else sunos4*) wl='-Qoption ld ' ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; unicos*) wl='-Wl,' ;; @@ -155,7 +158,7 @@ if test "$with_gnu_ld" = yes; then # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in - aix3* | aix4* | aix5*) + aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no @@ -189,11 +192,11 @@ if test "$with_gnu_ld" = yes; then ld_shlibs=no fi ;; - interix3*) + interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; - linux*) + gnu* | linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else @@ -251,7 +254,7 @@ else hardcode_direct=unsupported fi ;; - aix4* | aix5*) + aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. @@ -261,7 +264,7 @@ else # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes @@ -280,7 +283,7 @@ else strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 - hardcode_direct=yes + : else # We have old collect2 hardcode_direct=unsupported @@ -359,7 +362,7 @@ else hardcode_direct=yes hardcode_minus_L=yes ;; - freebsd* | kfreebsd*-gnu | dragonfly*) + freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; @@ -412,18 +415,22 @@ else hardcode_libdir_separator=: ;; openbsd*) - hardcode_direct=yes - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi else - case "$host_os" in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac + ld_shlibs=no fi ;; os2*) @@ -471,7 +478,7 @@ else ld_shlibs=yes fi ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' @@ -498,7 +505,7 @@ case "$host_os" in aix3*) library_names_spec='$libname.a' ;; - aix4* | aix5*) + aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) @@ -523,9 +530,6 @@ case "$host_os" in ;; freebsd1*) ;; - kfreebsd*-gnu) - library_names_spec='$libname$shrext' - ;; freebsd* | dragonfly*) case "$host_os" in freebsd[123]*) @@ -551,7 +555,7 @@ case "$host_os" in esac library_names_spec='$libname$shrext' ;; - interix3*) + interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) @@ -572,7 +576,7 @@ case "$host_os" in ;; linux*oldld* | linux*aout* | linux*coff*) ;; - linux*) + linux* | k*bsd*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) @@ -598,6 +602,8 @@ case "$host_os" in osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; + rdos*) + ;; solaris*) library_names_spec='$libname$shrext' ;; diff --git a/build-aux/link-warning.h b/build-aux/link-warning.h new file mode 100644 index 0000000..fda0194 --- /dev/null +++ b/build-aux/link-warning.h @@ -0,0 +1,28 @@ +/* GL_LINK_WARNING("literal string") arranges to emit the literal string as + a linker warning on most glibc systems. + We use a linker warning rather than a preprocessor warning, because + #warning cannot be used inside macros. */ +#ifndef GL_LINK_WARNING + /* This works on platforms with GNU ld and ELF object format. + Testing __GLIBC__ is sufficient for asserting that GNU ld is in use. + Testing __ELF__ guarantees the ELF object format. + Testing __GNUC__ is necessary for the compound expression syntax. */ +# if defined __GLIBC__ && defined __ELF__ && defined __GNUC__ +# define GL_LINK_WARNING(message) \ + GL_LINK_WARNING1 (__FILE__, __LINE__, message) +# define GL_LINK_WARNING1(file, line, message) \ + GL_LINK_WARNING2 (file, line, message) /* macroexpand file and line */ +# define GL_LINK_WARNING2(file, line, message) \ + GL_LINK_WARNING3 (file ":" #line ": warning: " message) +# define GL_LINK_WARNING3(message) \ + ({ static const char warning[sizeof (message)] \ + __attribute__ ((__unused__, \ + __section__ (".gnu.warning"), \ + __aligned__ (1))) \ + = message "\n"; \ + (void)0; \ + }) +# else +# define GL_LINK_WARNING(message) ((void) 0) +# endif +#endif diff --git a/config.h.in b/config.h.in index dea389d..032d0c2 100644 --- a/config.h.in +++ b/config.h.in @@ -1,17 +1,5 @@ /* config.h.in. Generated from configure.in by autoheader. */ -/* Define this to an absolute name of . */ -#undef ABSOLUTE_STDINT_H - -/* Define this to an absolute name of . */ -#undef ABSOLUTE_UNISTD_H - -/* Define this to an absolute name of . */ -#undef ABSOLUTE_WCHAR_H - -/* Define this to an absolute name of . */ -#undef ABSOLUTE_WCTYPE_H - /* Define to the number of bits in type 'ptrdiff_t'. */ #undef BITSIZEOF_PTRDIFF_T @@ -80,20 +68,20 @@ /* Define to 1 when using the gnulib module fcntl-safer. */ #undef GNULIB_FCNTL_SAFER +/* Define to indicate the 'malloc' module. */ +#undef GNULIB_MALLOC_GNU + /* Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution. */ #undef HAVE_ALLOCA -/* Define HAVE_ALLOCA_H for backward compatibility with older code that - includes only if HAVE_ALLOCA_H is defined. */ +/* Define to 1 if you have and it should be used (not on Ultrix). + */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the header file. */ #undef HAVE_ARPA_INET_H -/* Define to 1 if you have the header file. */ -#undef HAVE_BP_SYM_H - /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT @@ -112,6 +100,10 @@ */ #undef HAVE_DCGETTEXT +/* Define to 1 if you have the declaration of `floorf', and to 0 if you don't. + */ +#undef HAVE_DECL_FLOORF + /* Define to 1 if you have the declaration of `freeaddrinfo', and to 0 if you don't. */ #undef HAVE_DECL_FREEADDRINFO @@ -124,6 +116,10 @@ don't. */ #undef HAVE_DECL_GETADDRINFO +/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you + don't. */ +#undef HAVE_DECL_GETC_UNLOCKED + /* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. */ #undef HAVE_DECL_GETENV @@ -148,14 +144,14 @@ */ #undef HAVE_DECL_STRDUP +/* Define to 1 if you have the declaration of `strerror', and to 0 if you + don't. */ +#undef HAVE_DECL_STRERROR + /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R -/* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you - don't. */ -#undef HAVE_DECL_STRNCASECMP - /* Define to 1 if you have the declaration of `strndup', and to 0 if you don't. */ #undef HAVE_DECL_STRNDUP @@ -176,9 +172,9 @@ don't. */ #undef HAVE_DECL_VSNPRINTF -/* Define to 1 if you have the declaration of `wcwidth', and to 0 if you +/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you don't. */ -#undef HAVE_DECL_WCWIDTH +#undef HAVE_DECL__SNPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H @@ -195,6 +191,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_FEATURES_H +/* Define to 1 if you have the header file. */ +#undef HAVE_FLOAT_H + /* Define to 1 if you have the `floor' function. */ #undef HAVE_FLOOR @@ -204,12 +203,6 @@ /* Define to 1 if you have the `fs_stat_dev' function. */ #undef HAVE_FS_STAT_DEV -/* Define to 1 if you have the `gai_strerror' function. */ -#undef HAVE_GAI_STRERROR - -/* Define to 1 if you have the `getaddrinfo' function. */ -#undef HAVE_GETADDRINFO - /* Define to 1 if you have the `gethostbyname' function. */ #undef HAVE_GETHOSTBYNAME @@ -243,9 +236,12 @@ /* Define to 1 if you have the `hasmntopt' function. */ #undef HAVE_HASMNTOPT -/* Define if you have the iconv() function. */ +/* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV +/* Define if your compiler supports the #include_next directive. */ +#undef HAVE_INCLUDE_NEXT + /* Define to 1 if you have the `inet_ntop' function. */ #undef HAVE_INET_NTOP @@ -270,6 +266,9 @@ /* Define to 1 if defines AF_INET6. */ #undef HAVE_IPV6 +/* Define to 1 if you have the `isblank' function. */ +#undef HAVE_ISBLANK + /* Define to 1 if you have the `iswcntrl' function. */ #undef HAVE_ISWCNTRL @@ -303,12 +302,18 @@ /* Define to 1 if you have the `dgc' library (-ldgc). */ #undef HAVE_LIBDGC +/* Define to 1 if you have the `dl' library (-ldl). */ +#undef HAVE_LIBDL + /* Define to 1 if you have the `kstat' library (-lkstat). */ #undef HAVE_LIBKSTAT /* Define to 1 if you have the `ldap' library (-lldap). */ #undef HAVE_LIBLDAP +/* Define to 1 if you have the `perfstat' library (-lperfstat). */ +#undef HAVE_LIBPERFSTAT + /* Define to 1 if you have the `pq' library (-lpq). */ #undef HAVE_LIBPQ @@ -328,12 +333,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H -/* Define if you have the 'long double' type. */ -#undef HAVE_LONG_DOUBLE - -/* Define if you have the 'long long' type. */ -#undef HAVE_LONG_LONG - /* Define to 1 if the system has the type `long long int'. */ #undef HAVE_LONG_LONG_INT @@ -344,6 +343,9 @@ to 0 otherwise. */ #undef HAVE_MALLOC +/* Define if the 'malloc' function is POSIX compliant. */ +#undef HAVE_MALLOC_POSIX + /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H @@ -353,24 +355,12 @@ /* Define to 1 if declares mbstate_t. */ #undef HAVE_MBSTATE_T -/* Define to 1 if you have the `memchr' function. */ -#undef HAVE_MEMCHR - /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H -/* Define to 1 if you have the `mempcpy' function. */ -#undef HAVE_MEMPCPY - -/* Define to 1 if defines the MIN and MAX macros. */ -#undef HAVE_MINMAX_IN_LIMITS_H - -/* Define to 1 if defines the MIN and MAX macros. */ -#undef HAVE_MINMAX_IN_SYS_PARAM_H - /* Define to 1 if you have the header file. */ #undef HAVE_MNTENT_H @@ -428,9 +418,6 @@ /* Define to 1 if you have the `pstat_getdynamic' function. */ #undef HAVE_PSTAT_GETDYNAMIC -/* Define to 1 if the system has the type `ptrdiff_t'. */ -#undef HAVE_PTRDIFF_T - /* Define to 1 if you have the header file. */ #undef HAVE_RSA_H @@ -474,6 +461,9 @@ uintmax_t. */ #undef HAVE_STDINT_H_WITH_UINTMAX +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H @@ -489,9 +479,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H -/* Define to 1 if you have the `strncasecmp' function. */ -#undef HAVE_STRNCASECMP - /* Define if you have the strndup() function and it works. */ #undef HAVE_STRNDUP @@ -645,9 +632,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_WCTYPE_H -/* Define to 1 if you have the `wcwidth' function. */ -#undef HAVE_WCWIDTH - /* Define to 1 if you have the header file. */ #undef HAVE_WINSOCK2_H @@ -731,6 +715,9 @@ /* Define to 1 if your C compiler doesn't accept -c and -o together. */ #undef NO_MINUS_C_MINUS_O +/* Enable INI file parsing. */ +#undef NP_EXTRA_OPTS + /* path and args for nslookup */ #undef NSLOOKUP_COMMAND @@ -825,6 +812,12 @@ /* Forced workaround on redhat in spopen */ #undef REDHAT_SPOPEN_ERROR +/* Define this to 1 if strerror is broken. */ +#undef REPLACE_STRERROR + +/* Define if vasnprintf exists but is overridden by gnulib. */ +#undef REPLACE_VASNPRINTF + /* Define as the return type of signal handlers (`int' or `void'). */ #undef RETSIGTYPE @@ -939,18 +932,17 @@ 'wint_t'. */ #undef WINT_T_SUFFIX -/* Define to 1 if on AIX 3. - System headers sometimes define this. - We just want to avoid a redefinition error message. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + /* Define to 1 if on MINIX. */ #undef _MINIX @@ -964,16 +956,27 @@ /* Define if you want regoff_t to be at least as wide POSIX requires. */ #undef _REGEX_LARGE_OFFSETS -/* Enable extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE #endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif +/* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + /* Define to rpl_ if the getopt replacement functions and variables should be used. */ @@ -985,7 +988,7 @@ /* hpux specific code in check_dhcp.c */ #undef __hpux__ -/* sun specific code in check_dhcp.c */ +/* linux specific code in check_dhcp.c */ #undef __linux__ /* sun specific code in check_dhcp.c */ @@ -1012,6 +1015,10 @@ /* Define to `int' if does not define. */ #undef pid_t +/* Define as the type of the result of subtracting two pointers, if the system + doesn't define it. */ +#undef ptrdiff_t + /* Define to rpl_re_comp if the replacement should be used. */ #undef re_comp @@ -1057,9 +1064,18 @@ /* Define to rpl_regfree if the replacement should be used. */ #undef regfree -/* Define to equivalent of C99 restrict keyword, or to nothing if this is not - supported. Do not define if restrict is supported directly. */ +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ #undef restrict +/* Work around a bug in Sun C++: it does not support _Restrict, even + though the corresponding Sun C compiler does, which causes + "#define restrict _Restrict" in the previous line. Perhaps some future + version of Sun C++ will work with _Restrict; if so, it'll probably + define __RESTRICT, just as Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +#endif /* Define to `unsigned int' if does not define. */ #undef size_t diff --git a/configure b/configure index 9373771..b1188cf 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.in . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for nagios-plugins 1.4.11. +# Generated by GNU Autoconf 2.61 for nagios-plugins 1.4.12. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. @@ -727,8 +727,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='nagios-plugins' PACKAGE_TARNAME='nagios-plugins' -PACKAGE_VERSION='1.4.11' -PACKAGE_STRING='nagios-plugins 1.4.11' +PACKAGE_VERSION='1.4.12' +PACKAGE_STRING='nagios-plugins 1.4.12' PACKAGE_BUGREPORT='' ac_unique_file="NPTest.pm" @@ -893,6 +893,8 @@ BASENAME SOCKETLIBS MATHLIBS EXTRA_TEST +USE_PARSE_INI_TRUE +USE_PARSE_INI_FALSE PGLIBS PGINCLUDE RADIUSLIBS @@ -907,6 +909,7 @@ SSLINCLUDE check_tcp_ssl SSLLIBS PATH_TO_PS +PST3CFLAGS PATH_TO_PING PATH_TO_PING6 PATH_TO_NSLOOKUP @@ -933,6 +936,7 @@ EXTRAS_ROOT EXTRA_NETOBJS DEPLIBS USE_NLS +GETTEXT_MACRO_VERSION MSGFMT GMSGFMT MSGFMT_015 @@ -940,6 +944,7 @@ GMSGFMT_015 XGETTEXT XGETTEXT_015 MSGMERGE +XGETTEXT_EXTRA_OPTIONS INTL_MACOSX_LIBS LIBICONV LTLIBICONV @@ -953,19 +958,136 @@ GL_COND_LIBTOOL_FALSE ALLOCA ALLOCA_H ARPA_INET_H +INCLUDE_NEXT +NEXT_FLOAT_H +FLOAT_H +GNULIB_CEILF +GNULIB_CEILL +GNULIB_FLOORF +GNULIB_FLOORL +GNULIB_FREXP +GNULIB_FREXPL +GNULIB_ISFINITE +GNULIB_LDEXPL +GNULIB_MATHL +GNULIB_ROUND +GNULIB_ROUNDF +GNULIB_ROUNDL +GNULIB_SIGNBIT +GNULIB_TRUNC +GNULIB_TRUNCF +GNULIB_TRUNCL +HAVE_DECL_ACOSL +HAVE_DECL_ASINL +HAVE_DECL_ATANL +HAVE_DECL_COSL +HAVE_DECL_EXPL +HAVE_DECL_FREXPL +HAVE_DECL_LDEXPL +HAVE_DECL_LOGL +HAVE_DECL_SINL +HAVE_DECL_SQRTL +HAVE_DECL_TANL +HAVE_DECL_TRUNC +HAVE_DECL_TRUNCF +HAVE_DECL_TRUNCL +REPLACE_CEILF +REPLACE_CEILL +REPLACE_FLOORF +REPLACE_FLOORL +REPLACE_FREXP +REPLACE_FREXPL +REPLACE_ISFINITE +REPLACE_LDEXPL +REPLACE_ROUND +REPLACE_ROUNDF +REPLACE_ROUNDL +REPLACE_SIGNBIT +REPLACE_SIGNBIT_USING_GCC +FLOORF_LIBM +NEXT_SYS_SOCKET_H +HAVE_SYS_SOCKET_H +HAVE_WINSOCK2_H +HAVE_WS2TCPIP_H SYS_SOCKET_H NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS GETOPT_H +GLIBC21 +LOCALCHARSET_TESTS_ENVIRONMENT +HAVE_MALLOC_POSIX +GNULIB_MALLOC_POSIX +GNULIB_REALLOC_POSIX +GNULIB_CALLOC_POSIX +GNULIB_GETSUBOPT +GNULIB_MKDTEMP +GNULIB_MKSTEMP +GNULIB_PUTENV +GNULIB_SETENV +GNULIB_UNSETENV +HAVE_CALLOC_POSIX +HAVE_GETSUBOPT +HAVE_MKDTEMP +HAVE_REALLOC_POSIX +HAVE_SETENV +HAVE_UNSETENV +REPLACE_MKSTEMP +REPLACE_PUTENV +VOID_UNSETENV +NEXT_MATH_H +NEXT_NETINET_IN_H +HAVE_NETINET_IN_H NETINET_IN_H +GNULIB_FPRINTF_POSIX +GNULIB_PRINTF_POSIX +GNULIB_SNPRINTF +GNULIB_SPRINTF_POSIX +GNULIB_VFPRINTF_POSIX +GNULIB_VPRINTF_POSIX +GNULIB_VSNPRINTF +GNULIB_VSPRINTF_POSIX +GNULIB_VASPRINTF +GNULIB_FOPEN +GNULIB_FREOPEN +GNULIB_FSEEK +GNULIB_FSEEKO +GNULIB_FTELL +GNULIB_FTELLO +GNULIB_FFLUSH +GNULIB_GETDELIM +GNULIB_GETLINE +REPLACE_FPRINTF +REPLACE_VFPRINTF +REPLACE_PRINTF +REPLACE_VPRINTF +REPLACE_SNPRINTF +HAVE_DECL_SNPRINTF +REPLACE_VSNPRINTF +HAVE_DECL_VSNPRINTF +REPLACE_SPRINTF +REPLACE_VSPRINTF +HAVE_VASPRINTF +REPLACE_VASPRINTF +REPLACE_FOPEN +REPLACE_FREOPEN +HAVE_FSEEKO +REPLACE_FSEEKO +REPLACE_FSEEK +HAVE_FTELLO +REPLACE_FTELLO +REPLACE_FTELL +REPLACE_FFLUSH +HAVE_DECL_GETDELIM +HAVE_DECL_GETLINE +REPLACE_GETLINE STDBOOL_H HAVE__BOOL HAVE_LONG_LONG_INT HAVE_UNSIGNED_LONG_LONG_INT HAVE_INTTYPES_H HAVE_SYS_TYPES_H -ABSOLUTE_STDINT_H +NEXT_STDINT_H HAVE_STDINT_H HAVE_SYS_INTTYPES_H HAVE_SYS_BITYPES_H @@ -983,20 +1105,106 @@ SIZE_T_SUFFIX WCHAR_T_SUFFIX WINT_T_SUFFIX STDINT_H -UNISTD_H -ABSOLUTE_UNISTD_H +NEXT_STDIO_H +NEXT_STDLIB_H +GNULIB_MEMMEM +GNULIB_MEMPCPY +GNULIB_MEMRCHR +GNULIB_STPCPY +GNULIB_STPNCPY +GNULIB_STRCHRNUL +GNULIB_STRDUP +GNULIB_STRNDUP +GNULIB_STRNLEN +GNULIB_STRPBRK +GNULIB_STRSEP +GNULIB_STRSTR +GNULIB_STRCASESTR +GNULIB_STRTOK_R +GNULIB_MBSLEN +GNULIB_MBSNLEN +GNULIB_MBSCHR +GNULIB_MBSRCHR +GNULIB_MBSSTR +GNULIB_MBSCASECMP +GNULIB_MBSNCASECMP +GNULIB_MBSPCASECMP +GNULIB_MBSCASESTR +GNULIB_MBSCSPN +GNULIB_MBSPBRK +GNULIB_MBSSPN +GNULIB_MBSSEP +GNULIB_MBSTOK_R +GNULIB_STRERROR +GNULIB_STRSIGNAL +HAVE_DECL_MEMMEM +HAVE_MEMPCPY +HAVE_DECL_MEMRCHR +HAVE_STPCPY +HAVE_STPNCPY +HAVE_STRCHRNUL +HAVE_DECL_STRDUP +HAVE_STRNDUP +HAVE_DECL_STRNDUP +HAVE_DECL_STRNLEN +HAVE_STRPBRK +HAVE_STRSEP +HAVE_STRCASESTR +HAVE_DECL_STRTOK_R +HAVE_DECL_STRERROR +HAVE_DECL_STRSIGNAL +REPLACE_STRERROR +REPLACE_STRSIGNAL +REPLACE_MEMMEM +REPLACE_STRCASESTR +REPLACE_STRSTR +NEXT_STRING_H +GNULIB_CHOWN +GNULIB_DUP2 +GNULIB_FCHDIR +GNULIB_FTRUNCATE +GNULIB_GETCWD +GNULIB_GETLOGIN_R +GNULIB_GETPAGESIZE +GNULIB_LCHOWN +GNULIB_LSEEK +GNULIB_READLINK +GNULIB_SLEEP +HAVE_DUP2 +HAVE_FTRUNCATE +HAVE_GETPAGESIZE +HAVE_READLINK +HAVE_SLEEP +HAVE_DECL_GETLOGIN_R +HAVE_OS_H +HAVE_SYS_PARAM_H +REPLACE_CHOWN +REPLACE_FCHDIR +REPLACE_GETCWD +REPLACE_GETPAGESIZE +REPLACE_LCHOWN +REPLACE_LSEEK +NEXT_UNISTD_H +HAVE_UNISTD_H EOVERFLOW -ABSOLUTE_WCHAR_H +GNULIB_WCWIDTH +HAVE_DECL_WCWIDTH +REPLACE_WCWIDTH WCHAR_H +HAVE_WCHAR_H +NEXT_WCHAR_H +HAVE_ISWCNTRL HAVE_WINT_T -ABSOLUTE_WCTYPE_H +NEXT_WCTYPE_H HAVE_WCTYPE_H WCTYPE_H LIBGNU_LIBDEPS LIBGNU_LTLIBDEPS LTLIBOBJS gl_LIBOBJS -gl_LTLIBOBJS' +gl_LTLIBOBJS +gltests_LIBOBJS +gltests_LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias @@ -1515,7 +1723,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 nagios-plugins 1.4.11 to adapt to many kinds of systems. +\`configure' configures nagios-plugins 1.4.12 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1585,7 +1793,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of nagios-plugins 1.4.11:";; + short | recursive ) echo "Configuration of nagios-plugins 1.4.12:";; esac cat <<\_ACEOF @@ -1594,14 +1802,14 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors - --enable-threads={posix|solaris|pth|win32} - specify multithreading API - --disable-threads build without multithread safety --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) + --disable-largefile omit support for large files + --enable-extra-opts Enables parsing of plugins ini config files for + extra options (default: no) --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths --enable-redhat-pthread-workaround @@ -1655,9 +1863,12 @@ Optional Packages: --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --without-included-regex - don't compile regex; this is the default on systems - with recent-enough versions of the GNU C Library - (use with caution on other systems) + don't compile regex; this is the default on 32-bit + systems with recent-enough versions of the GNU C + Library (use with caution on other systems). On + systems with 64-bit ptrdiff_t and 32-bit int, + --with-included-regex is the default, in case regex + functions operate on very long strings (>2GB) Some influential environment variables: CC C compiler command @@ -1737,7 +1948,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -nagios-plugins configure 1.4.11 +nagios-plugins configure 1.4.12 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1751,7 +1962,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 nagios-plugins $as_me 1.4.11, which was +It was created by nagios-plugins $as_me 1.4.12, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2026,26 +2237,31 @@ fi gt_needs="$gt_needs need-ngettext" gl_header_list="$gl_header_list arpa/inet.h" +gl_header_list="$gl_header_list float.h" gl_header_list="$gl_header_list sys/param.h" gl_header_list="$gl_header_list sys/vfs.h" gl_header_list="$gl_header_list sys/fs_types.h" gl_header_list="$gl_header_list sys/socket.h" -gl_header_list="$gl_header_list netinet/in.h" gl_header_list="$gl_header_list netdb.h" +gl_header_list="$gl_header_list netinet/in.h" +gl_header_list="$gl_header_list math.h" gl_header_list="$gl_header_list sys/statvfs.h" gl_header_list="$gl_header_list locale.h" +gl_func_list="$gl_func_list isblank" gl_func_list="$gl_func_list iswctype" gl_func_list="$gl_func_list mbrtowc" -gl_func_list="$gl_func_list mempcpy" gl_func_list="$gl_func_list wcrtomb" gl_func_list="$gl_func_list wcscoll" gl_header_list="$gl_header_list stdint.h" +gl_header_list="$gl_header_list wchar.h" +gl_header_list="$gl_header_list stdio.h" +gl_header_list="$gl_header_list stdlib.h" +gl_header_list="$gl_header_list string.h" gl_header_list="$gl_header_list unistd.h" gl_func_list="$gl_func_list pipe" -gl_header_list="$gl_header_list wchar.h" +gl_func_list="$gl_func_list vasnprintf" gl_func_list="$gl_func_list iswcntrl" gl_header_list="$gl_header_list wctype.h" -gl_func_list="$gl_func_list wcwidth" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false @@ -2446,7 +2662,7 @@ fi # Define the identity of the package. PACKAGE='nagios-plugins' - VERSION='1.4.11' + VERSION='1.4.12' cat >>confdefs.h <<_ACEOF @@ -4302,35 +4518,6 @@ echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" - -{ echo "$as_me:$LINENO: checking for AIX" >&5 -echo $ECHO_N "checking for AIX... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef _AIX - yes -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define _ALL_SOURCE 1 -_ACEOF - -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi -rm -f conftest* - - { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then @@ -4574,7 +4761,8 @@ fi done -if test "${ac_cv_header_minix_config_h+set}" = set; then + + if test "${ac_cv_header_minix_config_h+set}" = set; then { echo "$as_me:$LINENO: checking for minix/config.h" >&5 echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; } if test "${ac_cv_header_minix_config_h+set}" = set; then @@ -4706,7 +4894,7 @@ else fi -if test "$MINIX" = yes; then + if test "$MINIX" = yes; then cat >>confdefs.h <<\_ACEOF #define _POSIX_SOURCE 1 @@ -4722,15 +4910,7 @@ cat >>confdefs.h <<\_ACEOF #define _MINIX 1 _ACEOF -fi - - - - - - - - + fi @@ -4788,6 +4968,14 @@ echo "${ECHO_T}$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && cat >>confdefs.h <<\_ACEOF #define __EXTENSIONS__ 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define _ALL_SOURCE 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define _GNU_SOURCE 1 _ACEOF cat >>confdefs.h <<\_ACEOF @@ -4803,46 +4991,6 @@ _ACEOF - # Check whether --enable-threads was given. -if test "${enable_threads+set}" = set; then - enableval=$enable_threads; gl_use_threads=$enableval -else - case "$host_os" in - osf*) gl_use_threads=no ;; - *) gl_use_threads=yes ;; - esac - -fi - - if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then - # For using : - case "$host_os" in - osf*) - # On OSF/1, the compiler needs the flag -D_REENTRANT so that it - # groks . cc also understands the flag -pthread, but - # we don't use it because 1. gcc-2.95 doesn't understand -pthread, - # 2. putting a flag into CPPFLAGS that has an effect on the linker - # causes the AC_TRY_LINK test below to succeed unexpectedly, - # leading to wrong values of LIBTHREAD and LTLIBTHREAD. - CPPFLAGS="$CPPFLAGS -D_REENTRANT" - ;; - esac - # Some systems optimize for single-threaded programs by default, and - # need special flags to disable these optimizations. For example, the - # definition of 'errno' in . - case "$host_os" in - aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; - solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; - esac - fi - - - - - - - - if test $ac_cv_c_compiler_gnu = yes; then @@ -5445,7 +5593,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5448 "configure"' > conftest.$ac_ext + echo '#line 5596 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7698,11 +7846,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7701: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7849: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7705: \$? = $ac_status" >&5 + echo "$as_me:7853: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7966,11 +8114,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7969: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8117: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7973: \$? = $ac_status" >&5 + echo "$as_me:8121: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -8070,11 +8218,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8073: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8221: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8077: \$? = $ac_status" >&5 + echo "$as_me:8225: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -10367,7 +10515,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5) + (eval echo "\"\$as_me:12954: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:12810: \$? = $ac_status" >&5 + echo "$as_me:12958: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -12907,11 +13055,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12910: $lt_compile\"" >&5) + (eval echo "\"\$as_me:13058: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:12914: \$? = $ac_status" >&5 + echo "$as_me:13062: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -14468,11 +14616,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14471: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14619: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:14475: \$? = $ac_status" >&5 + echo "$as_me:14623: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -14572,11 +14720,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14575: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14723: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14579: \$? = $ac_status" >&5 + echo "$as_me:14727: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -16759,11 +16907,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16762: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16910: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16766: \$? = $ac_status" >&5 + echo "$as_me:16914: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -17027,11 +17175,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17030: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17178: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:17034: \$? = $ac_status" >&5 + echo "$as_me:17182: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -17131,11 +17279,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17134: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17282: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:17138: \$? = $ac_status" >&5 + echo "$as_me:17286: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -19969,6 +20117,356 @@ esac fi +# Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 +echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_largefile_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_largefile_CC=' -n32'; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_file_offset_bits+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_file_offset_bits=no; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_file_offset_bits=64; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 +echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -f conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 +echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_large_files+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_large_files=no; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_large_files=1; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 +echo "${ECHO_T}$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF +;; +esac +rm -f conftest* + fi +fi + { echo "$as_me:$LINENO: checking for working strtod" >&5 echo $ECHO_N "checking for working strtod... $ECHO_C" >&6; } @@ -21064,6 +21562,33 @@ if test $ac_cv_lib_tap_plan_tests = yes; then fi +# Check whether --enable-extra-opts was given. +if test "${enable_extra_opts+set}" = set; then + enableval=$enable_extra_opts; enable_extra_opts=$enableval +else + enable_extra_opts=no +fi + + + +if test "$enable_extra_opts" = "yes"; then + USE_PARSE_INI_TRUE= + USE_PARSE_INI_FALSE='#' +else + USE_PARSE_INI_TRUE='#' + USE_PARSE_INI_FALSE= +fi + +if test "$enable_extra_opts" = "yes" ; then + EXTRA_TEST="$EXTRA_TEST test_ini test_opts" + + +cat >>confdefs.h <<\_ACEOF +#define NP_EXTRA_OPTS 1 +_ACEOF + +fi + _SAVEDLIBS="$LIBS" _SAVEDCPPFLAGS="$CPPFLAGS" @@ -21137,7 +21662,7 @@ _ACEOF fi -if test "$ac_cv_lib_crypt_main" = "yes"; then +if test "$ac_cv_lib_crypt_main" = "yes" -a "x$PGSQL" != "xno"; then if test -n "$PGSQL"; then LDFLAGS="$LDFLAGS -L$PGSQL/lib" CPPFLAGS="$CPPFLAGS -I$PGSQL/include" @@ -22931,6 +23456,148 @@ if test "$FOUNDINCLUDE" = "no"; then fi +{ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDL 1 +_ACEOF + + LIBS="-ldl $LIBS" + +fi + + +{ echo "$as_me:$LINENO: checking for shl_load in -ldl" >&5 +echo $ECHO_N "checking for shl_load in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_shl_load" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_shl_load" >&6; } +if test $ac_cv_lib_dl_shl_load = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDL 1 +_ACEOF + + LIBS="-ldl $LIBS" + +fi + + if ! test x"$with_openssl" = x"no"; then if ! test -d "$with_openssl"; then for d in $OPENSSL_DIRS; do @@ -24410,6 +25077,69 @@ cat >>confdefs.h <<_ACEOF _ACEOF +{ echo "$as_me:$LINENO: checking for mbstate_t" >&5 +echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6; } +if test "${ac_cv_type_mbstate_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +# include +int +main () +{ +mbstate_t x; return sizeof x; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_mbstate_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_mbstate_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5 +echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6; } + if test $ac_cv_type_mbstate_t = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MBSTATE_T 1 +_ACEOF + + else + +cat >>confdefs.h <<\_ACEOF +#define mbstate_t int +_ACEOF + + fi { echo "$as_me:$LINENO: checking for va_copy" >&5 echo $ECHO_N "checking for va_copy... $ECHO_C" >&6; } @@ -24961,15 +25691,40 @@ if test -n "$PS_COMMAND" && test -n "$PS_FORMAT" && test -n "$PS_COLS" && test - { echo "$as_me:$LINENO: result: (command-line) $ac_cv_ps_command" >&5 echo "${ECHO_T}(command-line) $ac_cv_ps_command" >&6; } -elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \ - egrep -i "^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND" > /dev/null -then - ac_cv_ps_varlist="&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos" - ac_cv_ps_command="/usr/ucb/ps -alxwwn" - ac_cv_ps_format="%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n" - ac_cv_ps_cols=8 - { echo "$as_me:$LINENO: result: $ac_cv_ps_command" >&5 -echo "${ECHO_T}$ac_cv_ps_command" >&6; } +elif test "$ac_cv_uname_s" = "SunOS"; then + # + # this is a very, very ugly hack, to hardcode the location for plugins + # + if test "$libexecdir" = '${exec_prefix}/libexec'; then + if test "$exec_prefix" = "NONE"; then + if test "$prefix" = "NONE"; then + pst3="$ac_default_prefix/libexec/pst3" + else + pst3="$prefix/libexec/pst3" + fi + else + pst3="$exec_prefix/libexec/pst3" + fi + else + pst3="$libexecdir/pst3" + fi + ac_cv_ps_command="$pst3" + ac_cv_ps_format="%s %d %d %d %d %d %f %s %n" + ac_cv_ps_varlist="procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos" + ac_cv_ps_cols=9 + { echo "$as_me:$LINENO: result: using nagios-plugins internal ps command (pst3) for solaris" >&5 +echo "${ECHO_T}using nagios-plugins internal ps command (pst3) for solaris" >&6; } + if test `isainfo -b` = 64 ; then + PST3CFLAGS="-m64" + + { echo "$as_me:$LINENO: using 64bit pst3" >&5 +echo "$as_me: using 64bit pst3" >&6;} + else + { echo "$as_me:$LINENO: using 32bit pst3" >&5 +echo "$as_me: using 32bit pst3" >&6;} + fi + EXTRAS_ROOT="$EXTRAS_ROOT pst3" + elif ps axwo 'stat comm vsz rss user uid pid ppid args' 2>/dev/null | \ egrep -i "^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PID +PPID +COMMAND" > /dev/null @@ -27696,7 +28451,7 @@ cat >>confdefs.h <<\_ACEOF _ACEOF ;; - *sun* | solaris*) + *sun* | *solaris*) cat >>confdefs.h <<\_ACEOF #define __sun__ 1 @@ -27733,6 +28488,9 @@ echo "${ECHO_T}$USE_NLS" >&6; } + GETTEXT_MACRO_VERSION=0.17 + + # Prepare PATH_SEPARATOR. @@ -28008,6 +28766,9 @@ fi test -n "$localedir" || localedir='${datadir}/locale' + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + + ac_config_commands="$ac_config_commands po-directories" @@ -29021,6 +29782,132 @@ fi { echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 echo "${ECHO_T}$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then + { echo "$as_me:$LINENO: checking for working iconv" >&5 +echo $ECHO_N "checking for working iconv... $ECHO_C" >&6; } +if test "${am_cv_func_iconv_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + if test "$cross_compiling" = yes; then + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +int main () +{ + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + return 1; + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + return 1; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_func_iconv_works=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +am_cv_func_iconv_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + LIBS="$am_save_LIBS" + +fi +{ echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5 +echo "${ECHO_T}$am_cv_func_iconv_works" >&6; } + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_ICONV 1 @@ -29722,6 +30609,8 @@ fi if test "$ac_cv_enable_redhat_pthread_workaround" = "test" ; then if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then + { echo "$as_me:$LINENO: See http://nagiosplugins.org/faq/compile/configure_appears_to_hang if this next part takes a long time" >&5 +echo "$as_me: See http://nagiosplugins.org/faq/compile/configure_appears_to_hang if this next part takes a long time" >&6;} { echo "$as_me:$LINENO: checking for redhat spopen problem" >&5 echo $ECHO_N "checking for redhat spopen problem... $ECHO_C" >&6; } ( cd config_test && make && make test ) > /dev/null 2>&1 @@ -29905,6 +30794,10 @@ else # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. + + + + ALLOCA=\${LIBOBJDIR}alloca.$ac_objext cat >>confdefs.h <<\_ACEOF @@ -30266,6 +31159,150 @@ done +{ echo "$as_me:$LINENO: checking for inline" >&5 +echo $ECHO_N "checking for inline... $ECHO_C" >&6; } +if test "${ac_cv_c_inline+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_inline=$ac_kw +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 +echo "${ECHO_T}$ac_cv_c_inline" >&6; } + + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + +{ echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5 +echo $ECHO_N "checking for C/C++ restrict keyword... $ECHO_C" >&6; } +if test "${ac_cv_c_restrict+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_c_restrict=no + # The order here caters to the fact that C++ does not require restrict. + for ac_kw in __restrict __restrict__ _Restrict restrict; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +typedef int * int_ptr; + int foo (int_ptr $ac_kw ip) { + return ip[0]; + } +int +main () +{ +int s[1]; + int * $ac_kw t = s; + t[0] = 0; + return foo(t) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_restrict=$ac_kw +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_restrict" != no && break + done + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5 +echo "${ECHO_T}$ac_cv_c_restrict" >&6; } + + + case $ac_cv_c_restrict in + restrict) ;; + no) cat >>confdefs.h <<\_ACEOF +#define restrict +_ACEOF + ;; + *) cat >>confdefs.h <<_ACEOF +#define restrict $ac_cv_c_restrict +_ACEOF + ;; + esac + { echo "$as_me:$LINENO: checking whether system is Windows or MSDOS" >&5 echo $ECHO_N "checking whether system is Windows or MSDOS... $ECHO_C" >&6; } @@ -30739,49 +31776,176 @@ _ACEOF fi + XGETTEXT_EXTRA_OPTIONS= - - - - - - - - - - - - - - -{ echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5 -echo $ECHO_N "checking for C/C++ restrict keyword... $ECHO_C" >&6; } -if test "${ac_cv_c_restrict+set}" = set; then + { echo "$as_me:$LINENO: checking whether the preprocessor supports include_next" >&5 +echo $ECHO_N "checking whether the preprocessor supports include_next... $ECHO_C" >&6; } +if test "${gl_cv_have_include_next+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_c_restrict=no - # Try the official restrict keyword, then gcc's __restrict, and - # the less common variants. - for ac_kw in restrict __restrict __restrict__ _Restrict; do + rm -rf conftestd1 conftestd2 + mkdir conftestd1 conftestd2 + cat < conftestd1/conftest.h +#define DEFINED_IN_CONFTESTD1 +#include_next +#ifdef DEFINED_IN_CONFTESTD2 +int foo; +#else +#error "include_next doesn't work" +#endif +EOF + cat < conftestd2/conftest.h +#ifndef DEFINED_IN_CONFTESTD1 +#error "include_next test doesn't work" +#endif +#define DEFINED_IN_CONFTESTD2 +EOF + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -Iconftestd1 -Iconftestd2" cat >conftest.$ac_ext <<_ACEOF +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_have_include_next=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_have_include_next=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$save_CPPFLAGS" + rm -rf conftestd1 conftestd2 + +fi +{ echo "$as_me:$LINENO: result: $gl_cv_have_include_next" >&5 +echo "${ECHO_T}$gl_cv_have_include_next" >&6; } + if test $gl_cv_have_include_next = yes; then + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_INCLUDE_NEXT 1 +_ACEOF + + + INCLUDE_NEXT=include_next + else + INCLUDE_NEXT=include + fi + + + + + + + + + + GNULIB_CEILF=0; + GNULIB_CEILL=0; + GNULIB_FLOORF=0; + GNULIB_FLOORL=0; + GNULIB_FREXP=0; + GNULIB_FREXPL=0; + GNULIB_ISFINITE=0; + GNULIB_LDEXPL=0; + GNULIB_MATHL=0; + GNULIB_ROUND=0; + GNULIB_ROUNDF=0; + GNULIB_ROUNDL=0; + GNULIB_SIGNBIT=0; + GNULIB_TRUNC=0; + GNULIB_TRUNCF=0; + GNULIB_TRUNCL=0; + HAVE_DECL_ACOSL=1; + HAVE_DECL_ASINL=1; + HAVE_DECL_ATANL=1; + HAVE_DECL_COSL=1; + HAVE_DECL_EXPL=1; + HAVE_DECL_FREXPL=1; + HAVE_DECL_LDEXPL=1; + HAVE_DECL_LOGL=1; + HAVE_DECL_SINL=1; + HAVE_DECL_SQRTL=1; + HAVE_DECL_TANL=1; + HAVE_DECL_TRUNC=1; + HAVE_DECL_TRUNCF=1; + HAVE_DECL_TRUNCL=1; + REPLACE_CEILF=0; + REPLACE_CEILL=0; + REPLACE_FLOORF=0; + REPLACE_FLOORL=0; + REPLACE_FREXP=0; + REPLACE_FREXPL=0; + REPLACE_ISFINITE=0; + REPLACE_LDEXPL=0; + REPLACE_ROUND=0; + REPLACE_ROUNDF=0; + REPLACE_ROUNDL=0; + REPLACE_SIGNBIT=0; + REPLACE_SIGNBIT_USING_GCC=0; + + + + + + + + + + + + + + + + + + + + + + + + + + + { echo "$as_me:$LINENO: checking whether is self-contained" >&5 +echo $ECHO_N "checking whether is self-contained... $ECHO_C" >&6; } +if test "${gl_cv_header_sys_socket_h_selfcontained+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -typedef int * int_ptr; - int foo (int_ptr $ac_kw ip) { - return ip[0]; - } +#include int main () { -int s[1]; - int * $ac_kw t = s; - t[0] = 0; - return foo(t) + ; return 0; } @@ -30803,38 +31967,23 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_c_restrict=$ac_kw + gl_cv_header_sys_socket_h_selfcontained=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - + gl_cv_header_sys_socket_h_selfcontained=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_restrict" != no && break - done fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5 -echo "${ECHO_T}$ac_cv_c_restrict" >&6; } - case $ac_cv_c_restrict in - restrict) ;; - no) -cat >>confdefs.h <<\_ACEOF -#define restrict -_ACEOF - ;; - *) cat >>confdefs.h <<_ACEOF -#define restrict $ac_cv_c_restrict -_ACEOF - ;; - esac - - - - - +{ echo "$as_me:$LINENO: result: $gl_cv_header_sys_socket_h_selfcontained" >&5 +echo "${ECHO_T}$gl_cv_header_sys_socket_h_selfcontained" >&6; } + if test $gl_cv_header_sys_socket_h_selfcontained = yes; then + SYS_SOCKET_H='' + else + SYS_SOCKET_H='sys/socket.h' @@ -30845,9 +31994,52 @@ _ACEOF - if test $ac_cv_header_sys_socket_h = yes; then - SYS_SOCKET_H='' - else + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_socket_h='<'sys/socket.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_sys_socket_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test $ac_cv_header_sys_socket_h = yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF + gl_cv_next_sys_socket_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/sys/socket.h#{ + s#.*"\(.*/sys/socket.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_sys_socket_h='<'sys/socket.h'>' + fi + +fi +{ echo "$as_me:$LINENO: result: $gl_cv_next_sys_socket_h" >&5 +echo "${ECHO_T}$gl_cv_next_sys_socket_h" >&6; } + fi + NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h + + + + if test $ac_cv_header_sys_socket_h = yes; then + HAVE_SYS_SOCKET_H=1 + HAVE_WINSOCK2_H=0 + HAVE_WS2TCPIP_H=0 + else + HAVE_SYS_SOCKET_H=0 for ac_header in winsock2.h ws2tcpip.h @@ -30989,7 +32181,20 @@ fi done - SYS_SOCKET_H='sys/socket.h' + if test $ac_cv_header_winsock2_h = yes; then + HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + if test $ac_cv_header_ws2tcpip_h = yes; then + HAVE_WS2TCPIP_H=1 + else + HAVE_WS2TCPIP_H=0 + fi + fi + + + fi @@ -31002,6 +32207,12 @@ done + + + + + + : @@ -31145,81 +32356,6 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for inline" >&5 -echo $ECHO_N "checking for inline... $ECHO_C" >&6; } -if test "${ac_cv_c_inline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_c_inline=$ac_kw -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 -echo "${ECHO_T}$ac_cv_c_inline" >&6; } - - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - - - - - - - if test -z "$GETOPT_H"; then @@ -31724,273 +32860,6 @@ fi -{ echo "$as_me:$LINENO: checking for mbstate_t" >&5 -echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6; } -if test "${ac_cv_type_mbstate_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -# include -int -main () -{ -mbstate_t x; return sizeof x; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type_mbstate_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type_mbstate_t=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5 -echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6; } - if test $ac_cv_type_mbstate_t = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MBSTATE_T 1 -_ACEOF - - else - -cat >>confdefs.h <<\_ACEOF -#define mbstate_t int -_ACEOF - - fi - - { echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5 -echo $ECHO_N "checking whether mbrtowc and mbstate_t are properly declared... $ECHO_C" >&6; } -if test "${gl_cv_func_mbrtowc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -wchar_t wc; - char const s[] = ""; - size_t n = 1; - mbstate_t state; - return ! (sizeof state && (mbrtowc) (&wc, s, n, &state)); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - gl_cv_func_mbrtowc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - gl_cv_func_mbrtowc=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc" >&5 -echo "${ECHO_T}$gl_cv_func_mbrtowc" >&6; } - if test $gl_cv_func_mbrtowc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MBRTOWC 1 -_ACEOF - - fi - - - - - - { echo "$as_me:$LINENO: checking whether defines MIN and MAX" >&5 -echo $ECHO_N "checking whether defines MIN and MAX... $ECHO_C" >&6; } -if test "${gl_cv_minmax_in_limits_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int x = MIN (42, 17); -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - gl_cv_minmax_in_limits_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - gl_cv_minmax_in_limits_h=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $gl_cv_minmax_in_limits_h" >&5 -echo "${ECHO_T}$gl_cv_minmax_in_limits_h" >&6; } - if test $gl_cv_minmax_in_limits_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MINMAX_IN_LIMITS_H 1 -_ACEOF - - fi - - - - - - - { echo "$as_me:$LINENO: checking whether defines MIN and MAX" >&5 -echo $ECHO_N "checking whether defines MIN and MAX... $ECHO_C" >&6; } -if test "${gl_cv_minmax_in_sys_param_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int x = MIN (42, 17); -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - gl_cv_minmax_in_sys_param_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - gl_cv_minmax_in_sys_param_h=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $gl_cv_minmax_in_sys_param_h" >&5 -echo "${ECHO_T}$gl_cv_minmax_in_sys_param_h" >&6; } - if test $gl_cv_minmax_in_sys_param_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MINMAX_IN_SYS_PARAM_H 1 -_ACEOF - - fi - - - - - - - - - - - - - - - - { echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6; } @@ -32053,6 +32922,209 @@ _ACEOF fi + { echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5 +echo $ECHO_N "checking whether getc_unlocked is declared... $ECHO_C" >&6; } +if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +#ifndef getc_unlocked + (void) getc_unlocked; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_getc_unlocked=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl_getc_unlocked=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5 +echo "${ECHO_T}$ac_cv_have_decl_getc_unlocked" >&6; } +if test $ac_cv_have_decl_getc_unlocked = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETC_UNLOCKED 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETC_UNLOCKED 0 +_ACEOF + + +fi + + + + + { echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5 +echo $ECHO_N "checking whether we are using the GNU C Library 2.1 or newer... $ECHO_C" >&6; } +if test "${ac_cv_gnu_library_2_1+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) + Lucky GNU user + #endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky GNU user" >/dev/null 2>&1; then + ac_cv_gnu_library_2_1=yes +else + ac_cv_gnu_library_2_1=no +fi +rm -f conftest* + + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5 +echo "${ECHO_T}$ac_cv_gnu_library_2_1" >&6; } + + GLIBC21="$ac_cv_gnu_library_2_1" + + + + { echo "$as_me:$LINENO: checking whether malloc, realloc, calloc are POSIX compliant" >&5 +echo $ECHO_N "checking whether malloc, realloc, calloc are POSIX compliant... $ECHO_C" >&6; } +if test "${gl_cv_func_malloc_posix+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + choke me + #endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_func_malloc_posix=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_func_malloc_posix=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ echo "$as_me:$LINENO: result: $gl_cv_func_malloc_posix" >&5 +echo "${ECHO_T}$gl_cv_func_malloc_posix" >&6; } + + + GNULIB_MALLOC_POSIX=0; + GNULIB_REALLOC_POSIX=0; + GNULIB_CALLOC_POSIX=0; + GNULIB_GETSUBOPT=0; + GNULIB_MKDTEMP=0; + GNULIB_MKSTEMP=0; + GNULIB_PUTENV=0; + GNULIB_SETENV=0; + GNULIB_UNSETENV=0; + HAVE_CALLOC_POSIX=1; + HAVE_GETSUBOPT=1; + HAVE_MALLOC_POSIX=1; + HAVE_MKDTEMP=1; + HAVE_REALLOC_POSIX=1; + HAVE_SETENV=1; + HAVE_UNSETENV=1; + REPLACE_MKSTEMP=0; + REPLACE_PUTENV=0; + VOID_UNSETENV=0; + + + + + + + + + + + + + + + + + + + + @@ -32239,6 +33311,50 @@ _ACEOF fi + GNULIB_FPRINTF_POSIX=0; + GNULIB_PRINTF_POSIX=0; + GNULIB_SNPRINTF=0; + GNULIB_SPRINTF_POSIX=0; + GNULIB_VFPRINTF_POSIX=0; + GNULIB_VPRINTF_POSIX=0; + GNULIB_VSNPRINTF=0; + GNULIB_VSPRINTF_POSIX=0; + GNULIB_VASPRINTF=0; + GNULIB_FOPEN=0; + GNULIB_FREOPEN=0; + GNULIB_FSEEK=0; + GNULIB_FSEEKO=0; + GNULIB_FTELL=0; + GNULIB_FTELLO=0; + GNULIB_FFLUSH=0; + GNULIB_GETDELIM=0; + GNULIB_GETLINE=0; + REPLACE_FPRINTF=0; + REPLACE_VFPRINTF=0; + REPLACE_PRINTF=0; + REPLACE_VPRINTF=0; + REPLACE_SNPRINTF=0; + HAVE_DECL_SNPRINTF=1; + REPLACE_VSNPRINTF=0; + HAVE_DECL_VSNPRINTF=1; + REPLACE_SPRINTF=0; + REPLACE_VSPRINTF=0; + HAVE_VASPRINTF=1; + REPLACE_VASPRINTF=0; + REPLACE_FOPEN=0; + REPLACE_FREOPEN=0; + HAVE_FSEEKO=1; + REPLACE_FSEEKO=0; + REPLACE_FSEEK=0; + HAVE_FTELLO=1; + REPLACE_FTELLO=0; + REPLACE_FTELL=0; + REPLACE_FFLUSH=0; + HAVE_DECL_GETDELIM=1; + HAVE_DECL_GETLINE=1; + REPLACE_GETLINE=0; + + { echo "$as_me:$LINENO: checking whether snprintf is declared" >&5 echo $ECHO_N "checking whether snprintf is declared... $ECHO_C" >&6; } if test "${ac_cv_have_decl_snprintf+set}" = set; then @@ -32500,26 +33616,40 @@ if test "${ac_cv_type_long_long_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ + + /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -long long int ll = 9223372036854775807ll; - long long int nll = -9223372036854775807LL; - typedef int a[((-9223372036854775807LL < 0 - && 0 < 9223372036854775807ll) - ? 1 : -1)]; - int i = 63; +/* For now, do not test the preprocessor; as of 2007 there are too many + implementations with broken preprocessors. Perhaps this can + be revisited in 2012. In the meantime, code should not expect + #if to work with literals wider than 32 bits. */ + /* Test literals. */ + long long int ll = 9223372036854775807ll; + long long int nll = -9223372036854775807LL; + unsigned long long int ull = 18446744073709551615ULL; + /* Test constant expressions. */ + typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) + ? 1 : -1)]; + typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 + ? 1 : -1)]; + int i = 63; int main () { -long long int llmax = 9223372036854775807ll; - return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll)); +/* Test availability of runtime routines for shift and division. */ + long long int llmax = 9223372036854775807ll; + unsigned long long int ullmax = 18446744073709551615ull; + return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) + | (llmax / ll) | (llmax % ll) + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull)); ; return 0; } + _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" @@ -32539,7 +33669,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then ac_cv_type_long_long_int=yes else cat >conftest.$ac_ext <<_ACEOF @@ -32632,24 +33762,40 @@ if test "${ac_cv_type_unsigned_long_long_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ + + /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -unsigned long long int ull = 18446744073709551615ULL; - typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; - int i = 63; +/* For now, do not test the preprocessor; as of 2007 there are too many + implementations with broken preprocessors. Perhaps this can + be revisited in 2012. In the meantime, code should not expect + #if to work with literals wider than 32 bits. */ + /* Test literals. */ + long long int ll = 9223372036854775807ll; + long long int nll = -9223372036854775807LL; + unsigned long long int ull = 18446744073709551615ULL; + /* Test constant expressions. */ + typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) + ? 1 : -1)]; + typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 + ? 1 : -1)]; + int i = 63; int main () { -unsigned long long int ullmax = 18446744073709551615ull; - return (ull << 63 | ull >> 63 | ull << i | ull >> i - | ullmax / ull | ullmax % ull); +/* Test availability of runtime routines for shift and division. */ + long long int llmax = 9223372036854775807ll; + unsigned long long int ullmax = 18446744073709551615ull; + return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) + | (llmax / ll) | (llmax % ll) + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull)); ; return 0; } + _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" @@ -32697,6 +33843,77 @@ _ACEOF + + + + + + + + + + + + + + + + + + + GNULIB_MEMMEM=0; + GNULIB_MEMPCPY=0; + GNULIB_MEMRCHR=0; + GNULIB_STPCPY=0; + GNULIB_STPNCPY=0; + GNULIB_STRCHRNUL=0; + GNULIB_STRDUP=0; + GNULIB_STRNDUP=0; + GNULIB_STRNLEN=0; + GNULIB_STRPBRK=0; + GNULIB_STRSEP=0; + GNULIB_STRSTR=0; + GNULIB_STRCASESTR=0; + GNULIB_STRTOK_R=0; + GNULIB_MBSLEN=0; + GNULIB_MBSNLEN=0; + GNULIB_MBSCHR=0; + GNULIB_MBSRCHR=0; + GNULIB_MBSSTR=0; + GNULIB_MBSCASECMP=0; + GNULIB_MBSNCASECMP=0; + GNULIB_MBSPCASECMP=0; + GNULIB_MBSCASESTR=0; + GNULIB_MBSCSPN=0; + GNULIB_MBSPBRK=0; + GNULIB_MBSSPN=0; + GNULIB_MBSSEP=0; + GNULIB_MBSTOK_R=0; + GNULIB_STRERROR=0; + GNULIB_STRSIGNAL=0; + HAVE_DECL_MEMMEM=1; + HAVE_MEMPCPY=1; + HAVE_DECL_MEMRCHR=1; + HAVE_STPCPY=1; + HAVE_STPNCPY=1; + HAVE_STRCHRNUL=1; + HAVE_DECL_STRDUP=1; + HAVE_STRNDUP=1; + HAVE_DECL_STRNDUP=1; + HAVE_DECL_STRNLEN=1; + HAVE_STRPBRK=1; + HAVE_STRSEP=1; + HAVE_STRCASESTR=1; + HAVE_DECL_STRTOK_R=1; + HAVE_DECL_STRERROR=1; + HAVE_DECL_STRSIGNAL=1; + REPLACE_STRERROR=0; + REPLACE_STRSIGNAL=0; + REPLACE_MEMMEM=0; + REPLACE_STRCASESTR=0; + REPLACE_STRSTR=0; + + { echo "$as_me:$LINENO: checking whether strdup is declared" >&5 echo $ECHO_N "checking whether strdup is declared... $ECHO_C" >&6; } if test "${ac_cv_have_decl_strdup+set}" = set; then @@ -32767,6 +33984,242 @@ fi + + { echo "$as_me:$LINENO: checking for working strerror function" >&5 +echo $ECHO_N "checking for working strerror function... $ECHO_C" >&6; } +if test "${gl_cv_func_working_strerror+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +return !*strerror (-2); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_func_working_strerror=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_func_working_strerror=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +return !*strerror (-2); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_working_strerror=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_working_strerror=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ echo "$as_me:$LINENO: result: $gl_cv_func_working_strerror" >&5 +echo "${ECHO_T}$gl_cv_func_working_strerror" >&6; } + if test $gl_cv_func_working_strerror = no ; then + REPLACE_STRERROR=1 + + { echo "$as_me:$LINENO: checking whether strerror is declared" >&5 +echo $ECHO_N "checking whether strerror is declared... $ECHO_C" >&6; } +if test "${ac_cv_have_decl_strerror+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +#ifndef strerror + (void) strerror; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_strerror=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl_strerror=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror" >&5 +echo "${ECHO_T}$ac_cv_have_decl_strerror" >&6; } +if test $ac_cv_have_decl_strerror = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STRERROR 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STRERROR 0 +_ACEOF + + +fi + + + + fi + + + + + + + + + + + + + + : + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_string_h='<'string.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_string_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test $ac_cv_header_string_h = yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF + gl_cv_next_string_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/string.h#{ + s#.*"\(.*/string.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_string_h='<'string.h'>' + fi + +fi +{ echo "$as_me:$LINENO: result: $gl_cv_next_string_h" >&5 +echo "${ECHO_T}$gl_cv_next_string_h" >&6; } + fi + NEXT_STRING_H=$gl_cv_next_string_h + + + + + { echo "$as_me:$LINENO: checking whether strndup is declared" >&5 echo $ECHO_N "checking whether strndup is declared... $ECHO_C" >&6; } if test "${ac_cv_have_decl_strndup+set}" = set; then @@ -32907,6 +34360,33 @@ fi + GNULIB_CHOWN=0; + GNULIB_DUP2=0; + GNULIB_FCHDIR=0; + GNULIB_FTRUNCATE=0; + GNULIB_GETCWD=0; + GNULIB_GETLOGIN_R=0; + GNULIB_GETPAGESIZE=0; + GNULIB_LCHOWN=0; + GNULIB_LSEEK=0; + GNULIB_READLINK=0; + GNULIB_SLEEP=0; + HAVE_DUP2=1; + HAVE_FTRUNCATE=1; + HAVE_GETPAGESIZE=1; + HAVE_READLINK=1; + HAVE_SLEEP=1; + HAVE_DECL_GETLOGIN_R=1; + HAVE_OS_H=0; + HAVE_SYS_PARAM_H=0; + REPLACE_CHOWN=0; + REPLACE_FCHDIR=0; + REPLACE_GETCWD=0; + REPLACE_GETPAGESIZE=0; + REPLACE_LCHOWN=0; + REPLACE_LSEEK=0; + + @@ -33331,71 +34811,10 @@ _ACEOF fi - { echo "$as_me:$LINENO: checking for long double" >&5 -echo $ECHO_N "checking for long double... $ECHO_C" >&6; } -if test "${gt_cv_c_long_double+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$GCC" = yes; then - gt_cv_c_long_double=yes - else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - /* The Stardent Vistra knows sizeof(long double), but does not support it. */ - long double foo = 0.0; - /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ - int array [2*(sizeof(long double) >= sizeof(double)) - 1]; -int -main () -{ - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - gt_cv_c_long_double=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - gt_cv_c_long_double=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi -fi -{ echo "$as_me:$LINENO: result: $gt_cv_c_long_double" >&5 -echo "${ECHO_T}$gt_cv_c_long_double" >&6; } - if test $gt_cv_c_long_double = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_LONG_DOUBLE 1 -_ACEOF - - fi { echo "$as_me:$LINENO: checking for wchar_t" >&5 @@ -33643,17 +35062,6 @@ _ACEOF - ac_cv_type_long_long=$ac_cv_type_long_long_int - if test $ac_cv_type_long_long = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_LONG_LONG 1 -_ACEOF - - fi - - - { echo "$as_me:$LINENO: checking for intmax_t" >&5 echo $ECHO_N "checking for intmax_t... $ECHO_C" >&6; } @@ -33721,7 +35129,7 @@ _ACEOF else - test $ac_cv_type_long_long = yes \ + test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' @@ -33802,18 +35210,10 @@ fi - - - - - - - - - - - - + GNULIB_WCWIDTH=0; + HAVE_DECL_WCWIDTH=1; + REPLACE_WCWIDTH=0; + WCHAR_H= @@ -33842,6 +35242,9 @@ fi gl_cond_libtool=false gl_libdeps= gl_ltlibdeps= + + + gl_source_base='gl' @@ -33900,12 +35303,6 @@ _ACEOF -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA_H 1 -_ACEOF - - - : @@ -33920,18 +35317,105 @@ _ACEOF fi + { echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done +done +IFS=$as_save_IFS + +fi + + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" + fi +fi +{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +echo "${ECHO_T}$MKDIR_P" >&6; } + + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS c-strtod.$ac_objext" + : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS cloexec.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS basename.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS dirname.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS stripslash.$ac_objext" @@ -33940,6 +35424,7 @@ _ACEOF + { echo "$as_me:$LINENO: checking whether // is distinct from /" >&5 echo $ECHO_N "checking whether // is distinct from /... $ECHO_C" >&6; } if test "${gl_cv_double_slash_root+set}" = set; then @@ -33980,7 +35465,17 @@ _ACEOF fi - { echo "$as_me:$LINENO: checking for error_at_line" >&5 + + + + + + + + + + +{ echo "$as_me:$LINENO: checking for error_at_line" >&5 echo $ECHO_N "checking for error_at_line... $ECHO_C" >&6; } if test "${ac_cv_lib_error_at_line+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -34032,7 +35527,15 @@ fi { echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5 echo "${ECHO_T}$ac_cv_lib_error_at_line" >&6; } if test $ac_cv_lib_error_at_line = no; then + + + + + + + gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext" + fi @@ -34041,16 +35544,48 @@ fi + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format" + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format" + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS exitfail.$ac_objext" + : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS open-safer.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS creat-safer.$ac_objext" + cat >>confdefs.h <<\_ACEOF #define GNULIB_FCNTL_SAFER 1 _ACEOF @@ -34058,6 +35593,276 @@ _ACEOF + + FLOAT_H= + case "$host_os" in + beos* | openbsd*) + FLOAT_H=float.h + + + + : + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_float_h='<'float.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_float_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test $ac_cv_header_float_h = yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF + gl_cv_next_float_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/float.h#{ + s#.*"\(.*/float.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_float_h='<'float.h'>' + fi + +fi +{ echo "$as_me:$LINENO: result: $gl_cv_next_float_h" >&5 +echo "${ECHO_T}$gl_cv_next_float_h" >&6; } + fi + NEXT_FLOAT_H=$gl_cv_next_float_h + + + + ;; + esac + + + + + + { echo "$as_me:$LINENO: checking whether floorf is declared" >&5 +echo $ECHO_N "checking whether floorf is declared... $ECHO_C" >&6; } +if test "${ac_cv_have_decl_floorf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef floorf + (void) floorf; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_floorf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl_floorf=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_floorf" >&5 +echo "${ECHO_T}$ac_cv_have_decl_floorf" >&6; } +if test $ac_cv_have_decl_floorf = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_FLOORF 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_FLOORF 0 +_ACEOF + + +fi + + + if test "$ac_cv_have_decl_floorf" = yes; then + + if test "${gl_cv_func_floorf_libm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + gl_cv_func_floorf_libm=? + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #ifndef __NO_MATH_INLINES + # define __NO_MATH_INLINES 1 /* for glibc */ + #endif + #include + float x; +int +main () +{ +x = floorf(x); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + gl_cv_func_floorf_libm= +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + if test "$gl_cv_func_floorf_libm" = "?"; then + save_LIBS="$LIBS" + LIBS="$LIBS -lm" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #ifndef __NO_MATH_INLINES + # define __NO_MATH_INLINES 1 /* for glibc */ + #endif + #include + float x; +int +main () +{ +x = floorf(x); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + gl_cv_func_floorf_libm="-lm" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$save_LIBS" + fi + +fi + + FLOORF_LIBM="$gl_cv_func_floorf_libm" + + if test "$FLOORF_LIBM" = "?"; then + REPLACE_FLOORF=1 + fi + else + REPLACE_FLOORF=1 + fi + if test $REPLACE_FLOORF = 1; then + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS floorf.$ac_objext" + + FLOORF_LIBM= + fi + + + + + + GNULIB_FLOORF=1 + + + : @@ -34168,6 +35973,11 @@ one of the corresponding file systems is hard-mounted, but not available. statvfs in GNU libc on BeOS operates differently: it only makes a system call. #endif + +#ifdef __osf__ +"Do not use Tru64's statvfs implementation" +#endif + #include int main () @@ -34658,7 +36468,15 @@ fi if test $gl_cv_fs_space = yes; then - gl_LIBOBJS="$gl_LIBOBJS fsusage.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fsusage.$ac_objext" + @@ -34872,9 +36690,17 @@ echo "${ECHO_T}$fu_cv_sys_truncating_statfs" >&6; } fi - { echo "$as_me:$LINENO: checking how to do getaddrinfo, freeaddrinfo and getnameinfo" >&5 + { echo "$as_me:$LINENO: checking how to do getaddrinfo, freeaddrinfo and getnameinfo" >&5 echo "$as_me: checking how to do getaddrinfo, freeaddrinfo and getnameinfo" >&6;} + + : + + + + + + { echo "$as_me:$LINENO: checking for library containing getaddrinfo" >&5 echo $ECHO_N "checking for library containing getaddrinfo... $ECHO_C" >&6; } if test "${ac_cv_search_getaddrinfo+set}" = set; then @@ -34958,56 +36784,32 @@ if test "$ac_res" != no; then fi - -for ac_func in getaddrinfo -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for getaddrinfo" >&5 +echo $ECHO_N "checking for getaddrinfo... $ECHO_C" >&6; } +if test "${gl_cv_func_getaddrinfo+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include +#include +#ifdef HAVE_SYS_SOCKET_H +#include #endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me +#ifdef HAVE_NETDB_H +#include #endif +#include int main () { -return $ac_func (); +getaddrinfo("", "", NULL, NULL); ; return 0; } @@ -35030,27 +36832,20 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" + gl_cv_func_getaddrinfo=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - eval "$as_ac_var=no" + gl_cv_func_getaddrinfo=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - +{ echo "$as_me:$LINENO: result: $gl_cv_func_getaddrinfo" >&5 +echo "${ECHO_T}$gl_cv_func_getaddrinfo" >&6; } + if test $gl_cv_func_getaddrinfo = no; then { echo "$as_me:$LINENO: checking for getaddrinfo in ws2tcpip.h and -lws2_32" >&5 echo $ECHO_N "checking for getaddrinfo in ws2tcpip.h and -lws2_32... $ECHO_C" >&6; } if test "${gl_cv_w32_getaddrinfo+set}" = set; then @@ -35070,11 +36865,12 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef HAVE_WS2TCPIP_H #include #endif +#include int main () { -getaddrinfo(0, 0, 0, 0); +getaddrinfo(NULL, NULL, NULL, NULL); ; return 0; } @@ -35114,63 +36910,50 @@ echo "${ECHO_T}$gl_cv_w32_getaddrinfo" >&6; } if test "$gl_cv_w32_getaddrinfo" = "yes"; then LIBS="$LIBS -lws2_32" else - gl_LIBOBJS="$gl_LIBOBJS getaddrinfo.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getaddrinfo.$ac_objext" + fi + fi -fi -done - - - -for ac_func in gai_strerror -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + # We can't use AC_REPLACE_FUNCS here because gai_strerror may be an + # inline function declared in ws2tcpip.h, so we need to get that + # header included somehow. + { echo "$as_me:$LINENO: checking for gai_strerror (possibly via ws2tcpip.h)" >&5 +echo $ECHO_N "checking for gai_strerror (possibly via ws2tcpip.h)... $ECHO_C" >&6; } +if test "${gl_cv_func_gai_strerror+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include +#include +#ifdef HAVE_SYS_SOCKET_H +#include #endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" +#ifdef HAVE_NETDB_H +#include #endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me +#ifdef HAVE_WS2TCPIP_H +#include #endif +#include int main () { -return $ac_func (); +gai_strerror (NULL); ; return 0; } @@ -35193,32 +36976,33 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" + gl_cv_func_gai_strerror=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - eval "$as_ac_var=no" + gl_cv_func_gai_strerror=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" -fi -done +{ echo "$as_me:$LINENO: result: $gl_cv_func_gai_strerror" >&5 +echo "${ECHO_T}$gl_cv_func_gai_strerror" >&6; } + if test $gl_cv_func_gai_strerror = no; then - { echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5 + + + + + + gl_LIBOBJS="$gl_LIBOBJS gai_strerror.$ac_objext" + + fi + + + { echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5 echo $ECHO_N "checking for library containing gethostbyname... $ECHO_C" >&6; } if test "${ac_cv_search_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -35496,11 +37280,12 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef HAVE_WINSOCK2_H #include #endif +#include int main () { -gethostbyname(0); +gethostbyname(NULL); ; return 0; } @@ -35963,6 +37748,13 @@ fi + + + + + + + for ac_func in gethostname do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -36054,10 +37846,13 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then _ACEOF else - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + + gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + fi done + if test $ac_cv_func_gethostname = no; then @@ -36426,6 +38221,80 @@ fi test $ac_cv_lib_kstat_kstat_open = yes && gl_have_func=yes +# AIX has libperfstat which does not require root + +{ echo "$as_me:$LINENO: checking for perfstat_cpu_total in -lperfstat" >&5 +echo $ECHO_N "checking for perfstat_cpu_total in -lperfstat... $ECHO_C" >&6; } +if test "${ac_cv_lib_perfstat_perfstat_cpu_total+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lperfstat $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char perfstat_cpu_total (); +int +main () +{ +return perfstat_cpu_total (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_perfstat_perfstat_cpu_total=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_perfstat_perfstat_cpu_total=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_perfstat_perfstat_cpu_total" >&5 +echo "${ECHO_T}$ac_cv_lib_perfstat_perfstat_cpu_total" >&6; } +if test $ac_cv_lib_perfstat_perfstat_cpu_total = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPERFSTAT 1 +_ACEOF + + LIBS="-lperfstat $LIBS" + +fi + +test $ac_cv_lib_perfstat_perfstat_cpu_total = yes && gl_have_func=yes + # Some systems with -lutil have (and need) -lkvm as well, some do not. # On Solaris, -lkvm requires nlist from -lelf, so check that first # to get the right answer into the cache. @@ -36799,8 +38668,16 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then _ACEOF else + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getloadavg.$ac_objext" + cat >>confdefs.h <<\_ACEOF #define C_GETLOADAVG 1 _ACEOF @@ -37773,9 +39650,25 @@ LIBS=$gl_save_LIBS if test -n "$GETOPT_H"; then + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" + GETOPT_H=getopt.h cat >>confdefs.h <<\_ACEOF @@ -37800,6 +39693,15 @@ fi + + + + + + + + + for ac_func in inet_ntop do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -37891,12 +39793,15 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then _ACEOF else - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + + gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + fi done + : @@ -38046,6 +39951,21 @@ _ACEOF fi + + + : + + + + + + + + + + LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\"" + + for ac_header in stdlib.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -38260,7 +40180,15 @@ else #define HAVE_MALLOC 0 _ACEOF - gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" + cat >>confdefs.h <<\_ACEOF #define malloc rpl_malloc @@ -38271,8 +40199,38 @@ fi +cat >>confdefs.h <<\_ACEOF +#define GNULIB_MALLOC_GNU 1 +_ACEOF + + + + if test $gl_cv_func_malloc_posix = yes; then + HAVE_MALLOC_POSIX=1 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MALLOC_POSIX 1 +_ACEOF + + else + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" + + HAVE_MALLOC_POSIX=0 + fi + + + + + GNULIB_MALLOC_POSIX=1 + - gl_LIBOBJS="$gl_LIBOBJS mbchar.$ac_objext" @@ -38281,245 +40239,45 @@ fi -for ac_func in memchr -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_math_h='<'math.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_math_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + + if test $ac_cv_header_math_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func +#include -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" -fi -done - - if test $ac_cv_func_memchr = no; then - - -for ac_header in bp-sym.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -else - # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } - -# Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } + gl_cv_next_math_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/math.h#{ + s#.*"\(.*/math.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_math_h='<'math.h'>' + fi fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - fi +{ echo "$as_me:$LINENO: result: $gl_cv_next_math_h" >&5 +echo "${ECHO_T}$gl_cv_next_math_h" >&6; } + fi + NEXT_MATH_H=$gl_cv_next_math_h @@ -40144,7 +41902,15 @@ fi if test $gl_cv_list_mounted_fs = yes; then - gl_LIBOBJS="$gl_LIBOBJS mountlist.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mountlist.$ac_objext" + for ac_header in sys/mntent.h @@ -40404,6 +42170,203 @@ fi fi + { echo "$as_me:$LINENO: checking whether is self-contained" >&5 +echo $ECHO_N "checking whether is self-contained... $ECHO_C" >&6; } +if test "${gl_cv_header_netinet_in_h_selfcontained+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_header_netinet_in_h_selfcontained=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_header_netinet_in_h_selfcontained=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ echo "$as_me:$LINENO: result: $gl_cv_header_netinet_in_h_selfcontained" >&5 +echo "${ECHO_T}$gl_cv_header_netinet_in_h_selfcontained" >&6; } + if test $gl_cv_header_netinet_in_h_selfcontained = yes; then + NETINET_IN_H='' + else + NETINET_IN_H='netinet/in.h' + +for ac_header in netinet/in.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + : @@ -40411,13 +42374,97 @@ fi - if test $ac_cv_header_netinet_in_h = yes; then - NETINET_IN_H='' - else - NETINET_IN_H='netinet/in.h' + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_netinet_in_h='<'netinet/in.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_netinet_in_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test $ac_cv_header_netinet_in_h = yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF + gl_cv_next_netinet_in_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/netinet/in.h#{ + s#.*"\(.*/netinet/in.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_netinet_in_h='<'netinet/in.h'>' + fi + +fi +{ echo "$as_me:$LINENO: result: $gl_cv_next_netinet_in_h" >&5 +echo "${ECHO_T}$gl_cv_next_netinet_in_h" >&6; } + fi + NEXT_NETINET_IN_H=$gl_cv_next_netinet_in_h + + + + if test $ac_cv_header_netinet_in_h = yes; then + HAVE_NETINET_IN_H=1 + else + HAVE_NETINET_IN_H=0 + fi + fi + { echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done +done +IFS=$as_save_IFS + +fi + + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" + fi +fi +{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +echo "${ECHO_T}$MKDIR_P" >&6; } + : @@ -40441,8 +42488,7 @@ fi # If the system regex support is good enough that it passes the # following run test, then default to *not* using the included regex.c. # If cross compiling, assume the test would fail and use the included - # regex.c. The first failing regular expression is from `Spencer ere - # test #75' in grep-2.3. + # regex.c. { echo "$as_me:$LINENO: checking for working re_compile_pattern" >&5 echo $ECHO_N "checking for working re_compile_pattern... $ECHO_C" >&6; } if test "${gl_cv_func_re_compile_pattern_working+set}" = set; then @@ -40499,68 +42545,91 @@ static struct re_pattern_buffer regex; } #endif + /* This test is from glibc bug 3957, reported by Andrew Mackey. */ + re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("a[^x]b", 6, ®ex); + if (s) + return 1; + + /* This should fail, but succeeds for glibc-2.5. */ + if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) + return 1; + + /* This regular expression is from Spencer ere test number 75 + in grep-2.3. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP); - memset (®ex, 0, sizeof (regex)); + memset (®ex, 0, sizeof regex); for (i = 0; i <= UCHAR_MAX; i++) folded_chars[i] = i; regex.translate = folded_chars; s = re_compile_pattern ("a[[:]:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) - exit (1); + return 1; - /* This should succeed, but does not for e.g. glibc-2.1.3. */ - memset (®ex, 0, sizeof (regex)); + /* This should succeed, but does not for glibc-2.1.3. */ + memset (®ex, 0, sizeof regex); s = re_compile_pattern ("{1", 2, ®ex); if (s) - exit (1); + return 1; /* The following example is derived from a problem report against gawk from Jorge Stolfi . */ - memset (®ex, 0, sizeof (regex)); + memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[an\371]*n", 7, ®ex); if (s) - exit (1); + return 1; - /* This should match, but does not for e.g. glibc-2.2.1. */ + /* This should match, but does not for glibc-2.2.1. */ if (re_match (®ex, "an", 2, 0, ®s) != 2) - exit (1); + return 1; - memset (®ex, 0, sizeof (regex)); + memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) - exit (1); + return 1; - /* The version of regex.c in e.g. GNU libc-2.2.93 did not - work with a negative RANGE argument. */ + /* glibc-2.2.93 does not work with a negative RANGE argument. */ if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) - exit (1); + return 1; /* The version of regex.c in older versions of gnulib ignored RE_ICASE. Detect that problem too. */ - memset (®ex, 0, sizeof (regex)); re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); + memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) - exit (1); + return 1; if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) - exit (1); + return 1; + + /* Catch a bug reported by Vin Shelton in + http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html + */ + re_set_syntax (RE_SYNTAX_POSIX_BASIC + & ~RE_CONTEXT_INVALID_DUP + & ~RE_NO_EMPTY_RANGES); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); + if (s) + return 1; /* REG_STARTEND was added to glibc on 2004-01-15. Reject older versions. */ if (! REG_STARTEND) - exit (1); + return 1; /* Reject hosts whose regoff_t values are too narrow. These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t and 32-bit int. */ if (sizeof (regoff_t) < sizeof (ptrdiff_t) || sizeof (regoff_t) < sizeof (ssize_t)) - exit (1); + return 1; - exit (0); + return 0; ; return 0; } @@ -40693,7 +42762,14 @@ cat >>confdefs.h <<\_ACEOF #define regfree rpl_regfree _ACEOF - gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext" @@ -40790,6 +42866,13 @@ fi fi + + + + + + + gl_LIBOBJS="$gl_LIBOBJS safe-read.$ac_objext" @@ -40797,6 +42880,14 @@ fi + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS safe-write.$ac_objext" @@ -40807,6 +42898,7 @@ fi + for ac_header in stdint.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -41671,6 +43763,7 @@ _ACEOF + for ac_func in snprintf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -41761,11 +43854,27 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -else - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" fi done + if test $ac_cv_func_snprintf = no; then + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS snprintf.$ac_objext" + + if test $ac_cv_func_snprintf = yes; then + REPLACE_SNPRINTF=1 + fi + : + + fi : @@ -41773,7 +43882,13 @@ done - : + if test $ac_cv_have_decl_snprintf = no; then + HAVE_DECL_SNPRINTF=0 + fi + + + + GNULIB_SNPRINTF=1 { echo "$as_me:$LINENO: checking for socklen_t" >&5 echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6; } @@ -41839,7 +43954,7 @@ if test $ac_cv_type_socklen_t = yes; then else { echo "$as_me:$LINENO: checking for socklen_t equivalent" >&5 echo $ECHO_N "checking for socklen_t equivalent... $ECHO_C" >&6; } - if test "${gl_cv_gl_cv_socklen_t_equiv+set}" = set; then + if test "${gl_cv_socklen_t_equiv+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Systems have either "struct sockaddr *" or @@ -42022,49 +44137,63 @@ _ACEOF fi - if test $ac_cv_header_stdint_h = yes; then - { echo "$as_me:$LINENO: checking absolute name of " >&5 -echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } -if test "${gl_cv_absolute_stdint_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + + : - if test $ac_cv_header_stdint_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdint_h='<'stdint.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_stdint_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test $ac_cv_header_stdint_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include + _ACEOF - gl_cv_absolute_stdint_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | -sed -n '\#/stdint.h#{s#.*"\(.*/stdint.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'` - fi + gl_cv_next_stdint_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/stdint.h#{ + s#.*"\(.*/stdint.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_stdint_h='<'stdint.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_absolute_stdint_h" >&5 -echo "${ECHO_T}$gl_cv_absolute_stdint_h" >&6; } -cat >>confdefs.h <<_ACEOF -#define ABSOLUTE_STDINT_H "$gl_cv_absolute_stdint_h" -_ACEOF +{ echo "$as_me:$LINENO: result: $gl_cv_next_stdint_h" >&5 +echo "${ECHO_T}$gl_cv_next_stdint_h" >&6; } + fi + NEXT_STDINT_H=$gl_cv_next_stdint_h - ABSOLUTE_STDINT_H=\"$gl_cv_absolute_stdint_h\" + + if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else - ABSOLUTE_STDINT_H=\"no/such/file/stdint.h\" HAVE_STDINT_H=0 fi - - if test $ac_cv_header_stdint_h = yes; then + if test $ac_cv_header_stdint_h = yes; then { echo "$as_me:$LINENO: checking whether stdint.h conforms to C99" >&5 echo $ECHO_N "checking whether stdint.h conforms to C99... $ECHO_C" >&6; } if test "${gl_cv_header_working_stdint_h+set}" = set; then @@ -42079,10 +44208,27 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ -#include ABSOLUTE_STDINT_H +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#include +/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ +#if !(defined WCHAR_MIN && defined WCHAR_MAX) +#error "WCHAR_MIN, WCHAR_MAX not defined in " +#endif + + + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #include + #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif + + #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; @@ -42154,12 +44300,32 @@ uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; + +#include /* for CHAR_BIT */ +#define TYPE_MINIMUM(t) \ + ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) +#define TYPE_MAXIMUM(t) \ + ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) struct s { - int check_PTRDIFF: PTRDIFF_MIN < 0 && 0 < PTRDIFF_MAX ? 1 : -1; - int check_SIG_ATOMIC: SIG_ATOMIC_MIN <= 0 && 0 < SIG_ATOMIC_MAX ? 1 : -1; - int check_SIZE: 0 < SIZE_MAX ? 1 : -1; - int check_WCHAR: WCHAR_MIN <= 0 && 0 < WCHAR_MAX ? 1 : -1; - int check_WINT: WINT_MIN <= 0 && 0 < WINT_MAX ? 1 : -1; + int check_PTRDIFF: + PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) + && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) + ? 1 : -1; + /* Detect bug in FreeBSD 6.0 / ia64. */ + int check_SIG_ATOMIC: + SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) + && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) + ? 1 : -1; + int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; + int check_WCHAR: + WCHAR_MIN == TYPE_MINIMUM (wchar_t) + && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) + ? 1 : -1; + /* Detect bug in mingw. */ + int check_WINT: + WINT_MIN == TYPE_MINIMUM (wint_t) + && WINT_MAX == TYPE_MAXIMUM (wint_t) + ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: @@ -42389,6 +44555,14 @@ done + : + + + + + + + @@ -42415,9 +44589,11 @@ cat >>conftest.$ac_ext <<_ACEOF included before . */ #include #include - #include - #include - #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif #include int @@ -42460,9 +44636,11 @@ cat >>conftest.$ac_ext <<_ACEOF included before . */ #include #include - #include - #include - #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif #include int @@ -42522,9 +44700,11 @@ cat >>conftest.$ac_ext <<_ACEOF included before . */ #include #include - #include - #include - #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif #include int @@ -42567,9 +44747,11 @@ cat >>conftest.$ac_ext <<_ACEOF included before . */ #include #include - #include - #include - #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif #include int @@ -42639,9 +44821,11 @@ cat >>conftest.$ac_ext <<_ACEOF included before . */ #include #include - #include - #include - #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif #include int @@ -42697,9 +44881,11 @@ cat >>conftest.$ac_ext <<_ACEOF included before . */ #include #include - #include - #include - #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif #include static long int longval () { return sizeof ($gltype) * CHAR_BIT; } @@ -42806,9 +44992,11 @@ cat >>conftest.$ac_ext <<_ACEOF included before . */ #include #include - #include - #include - #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; int @@ -42909,9 +45097,11 @@ cat >>conftest.$ac_ext <<_ACEOF included before . */ #include #include - #include - #include - #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif extern $gltype foo; extern $gltype1 foo; @@ -42974,7 +45164,7 @@ _ACEOF - gl_LIBOBJS="$gl_LIBOBJS strcasecmp.$ac_objext" + : @@ -42982,174 +45172,106 @@ _ACEOF -for ac_func in strncasecmp -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdio_h='<'stdio.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_stdio_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + + if test $ac_cv_header_stdio_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func +#include -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" -fi -done - - { echo "$as_me:$LINENO: checking whether strncasecmp is declared" >&5 -echo $ECHO_N "checking whether strncasecmp is declared... $ECHO_C" >&6; } -if test "${ac_cv_have_decl_strncasecmp+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef strncasecmp - (void) strncasecmp; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl_strncasecmp=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl_strncasecmp=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strncasecmp" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strncasecmp" >&6; } -if test $ac_cv_have_decl_strncasecmp = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRNCASECMP 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRNCASECMP 0 -_ACEOF - + gl_cv_next_stdio_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/stdio.h#{ + s#.*"\(.*/stdio.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_stdio_h='<'stdio.h'>' + fi fi +{ echo "$as_me:$LINENO: result: $gl_cv_next_stdio_h" >&5 +echo "${ECHO_T}$gl_cv_next_stdio_h" >&6; } + fi + NEXT_STDIO_H=$gl_cv_next_stdio_h + + + + + + - if test $ac_cv_func_strncasecmp = no; then : - fi + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdlib_h='<'stdlib.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_stdlib_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test $ac_cv_header_stdlib_h = yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF + gl_cv_next_stdlib_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/stdlib.h#{ + s#.*"\(.*/stdlib.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_stdlib_h='<'stdlib.h'>' + fi + +fi +{ echo "$as_me:$LINENO: result: $gl_cv_next_stdlib_h" >&5 +echo "${ECHO_T}$gl_cv_next_stdlib_h" >&6; } + fi + NEXT_STDLIB_H=$gl_cv_next_stdlib_h + + + + + + + + + + @@ -43245,29 +45367,69 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then _ACEOF else - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + + gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + fi done + : + if test $ac_cv_have_decl_strdup = no; then + HAVE_DECL_STRDUP=0 + fi + : + + + + GNULIB_STRDUP=1 + + + + if test $gl_cv_func_working_strerror = no; then + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext" + + +cat >>confdefs.h <<_ACEOF +#define REPLACE_STRERROR $REPLACE_STRERROR +_ACEOF + + fi + + + + GNULIB_STRERROR=1 + + + + + + + + + : - : - - - - - + if test $ac_cv_have_decl_strndup = no; then + HAVE_DECL_STRNDUP=0 + fi # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. { echo "$as_me:$LINENO: checking for working strndup" >&5 @@ -43391,7 +45553,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include - #include + #include int main () { @@ -43451,12 +45613,37 @@ cat >>confdefs.h <<\_ACEOF _ACEOF else - gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext" + HAVE_STRNDUP=0 + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext" + : fi + GNULIB_STRNDUP=1 + + + + + + + : + + + + + + if test $ac_cv_have_decl_strnlen = no; then + HAVE_DECL_STRNLEN=0 + fi { echo "$as_me:$LINENO: checking for working strnlen" >&5 echo $ECHO_N "checking for working strnlen... $ECHO_C" >&6; } @@ -43532,10 +45719,18 @@ fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_strnlen_working" >&5 echo "${ECHO_T}$ac_cv_func_strnlen_working" >&6; } -test $ac_cv_func_strnlen_working = no && gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext" +test $ac_cv_func_strnlen_working = no && + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext" + if test $ac_cv_func_strnlen_working = no; then - # This is necessary because automake-1.6.1 doens't understand + # This is necessary because automake-1.6.1 doesn't understand # that the above use of AC_FUNC_STRNLEN means we may have to use # lib/strnlen.c. #AC_LIBOBJ(strnlen) @@ -43544,28 +45739,125 @@ cat >>confdefs.h <<\_ACEOF #define strnlen rpl_strnlen _ACEOF - - - : - - - - - - + : fi + GNULIB_STRNLEN=1 + + + { echo "$as_me:$LINENO: checking whether is self-contained" >&5 +echo $ECHO_N "checking whether is self-contained... $ECHO_C" >&6; } +if test "${gl_cv_header_sys_socket_h_selfcontained+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_header_sys_socket_h_selfcontained=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_header_sys_socket_h_selfcontained=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ echo "$as_me:$LINENO: result: $gl_cv_header_sys_socket_h_selfcontained" >&5 +echo "${ECHO_T}$gl_cv_header_sys_socket_h_selfcontained" >&6; } + if test $gl_cv_header_sys_socket_h_selfcontained = yes; then + SYS_SOCKET_H='' + else + SYS_SOCKET_H='sys/socket.h' + + + + : - if test $ac_cv_header_sys_socket_h = yes; then - SYS_SOCKET_H='' - else + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_socket_h='<'sys/socket.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_sys_socket_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test $ac_cv_header_sys_socket_h = yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF + gl_cv_next_sys_socket_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/sys/socket.h#{ + s#.*"\(.*/sys/socket.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_sys_socket_h='<'sys/socket.h'>' + fi + +fi +{ echo "$as_me:$LINENO: result: $gl_cv_next_sys_socket_h" >&5 +echo "${ECHO_T}$gl_cv_next_sys_socket_h" >&6; } + fi + NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h + + + + if test $ac_cv_header_sys_socket_h = yes; then + HAVE_SYS_SOCKET_H=1 + HAVE_WINSOCK2_H=0 + HAVE_WS2TCPIP_H=0 + else + HAVE_SYS_SOCKET_H=0 for ac_header in winsock2.h ws2tcpip.h @@ -43707,7 +45999,20 @@ fi done - SYS_SOCKET_H='sys/socket.h' + if test $ac_cv_header_winsock2_h = yes; then + HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + if test $ac_cv_header_ws2tcpip_h = yes; then + HAVE_WS2TCPIP_H=1 + else + HAVE_WS2TCPIP_H=0 + fi + fi + + + fi @@ -43755,150 +46060,54 @@ echo "${ECHO_T}$MKDIR_P" >&6; } -for ac_header in unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + + + + + : + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_unistd_h='<'unistd.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_unistd_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } else - # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF + + if test $ac_cv_header_unistd_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> +#include + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } - -# Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } + gl_cv_next_unistd_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/unistd.h#{ + s#.*"\(.*/unistd.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_unistd_h='<'unistd.h'>' + fi fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +{ echo "$as_me:$LINENO: result: $gl_cv_next_unistd_h" >&5 +echo "${ECHO_T}$gl_cv_next_unistd_h" >&6; } + fi + NEXT_UNISTD_H=$gl_cv_next_unistd_h - UNISTD_H='' - -else - - UNISTD_H='unistd.h' - -fi - -done @@ -43910,159 +46119,109 @@ done if test $ac_cv_header_unistd_h = yes; then - { echo "$as_me:$LINENO: checking absolute name of " >&5 -echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } -if test "${gl_cv_absolute_unistd_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - : - - - - - if test $ac_cv_header_unistd_h = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF - gl_cv_absolute_unistd_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | -sed -n '\#/unistd.h#{s#.*"\(.*/unistd.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'` - fi - -fi -{ echo "$as_me:$LINENO: result: $gl_cv_absolute_unistd_h" >&5 -echo "${ECHO_T}$gl_cv_absolute_unistd_h" >&6; } -cat >>confdefs.h <<_ACEOF -#define ABSOLUTE_UNISTD_H "$gl_cv_absolute_unistd_h" -_ACEOF - - - ABSOLUTE_UNISTD_H=\"$gl_cv_absolute_unistd_h\" + HAVE_UNISTD_H=1 + else + HAVE_UNISTD_H=0 fi - : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS dup-safer.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fd-safer.$ac_objext" + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS pipe-safer.$ac_objext" -for ac_func in vasnprintf -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ + : -#ifdef __STDC__ -# include -#else -# include -#endif -#undef $ac_func -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" -fi -done if test $ac_cv_func_vasnprintf = no; then - gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext" - gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext" - gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext" + : + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext" + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext" + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext" + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext" + + if test $ac_cv_func_vasnprintf = yes; then + +cat >>confdefs.h <<\_ACEOF +#define REPLACE_VASNPRINTF 1 +_ACEOF + + fi @@ -44127,9 +46286,11 @@ fi { echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6; } if test $ac_cv_type_ptrdiff_t = yes; then + : +else -cat >>confdefs.h <<_ACEOF -#define HAVE_PTRDIFF_T 1 +cat >>confdefs.h <<\_ACEOF +#define ptrdiff_t long _ACEOF @@ -44144,7 +46305,6 @@ fi - for ac_func in snprintf wcslen do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -44238,6 +46398,76 @@ _ACEOF fi done + { echo "$as_me:$LINENO: checking whether _snprintf is declared" >&5 +echo $ECHO_N "checking whether _snprintf is declared... $ECHO_C" >&6; } +if test "${ac_cv_have_decl__snprintf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _snprintf + (void) _snprintf; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl__snprintf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl__snprintf=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_have_decl__snprintf" >&5 +echo "${ECHO_T}$ac_cv_have_decl__snprintf" >&6; } +if test $ac_cv_have_decl__snprintf = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL__SNPRINTF 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL__SNPRINTF 0 +_ACEOF + + +fi + + + @@ -44335,13 +46565,36 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -else - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" fi done if test $ac_cv_func_vasprintf = no; then - gl_LIBOBJS="$gl_LIBOBJS asprintf.$ac_objext" + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vasprintf.$ac_objext" + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS asprintf.$ac_objext" + + + if test $ac_cv_func_vasprintf = yes; then + REPLACE_VASPRINTF=1 + else + HAVE_VASPRINTF=0 + fi + @@ -44353,6 +46606,19 @@ done + GNULIB_VASPRINTF=1 + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=asprintf:2:c-format" + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=vasprintf:2:c-format" + + + + for ac_func in vsnprintf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -44443,11 +46709,27 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -else - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" fi done + if test $ac_cv_func_vsnprintf = no; then + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vsnprintf.$ac_objext" + + if test $ac_cv_func_vsnprintf = yes; then + REPLACE_VSNPRINTF=1 + fi + : + + fi : @@ -44455,7 +46737,14 @@ done - : + if test $ac_cv_have_decl_vsnprintf = no; then + HAVE_DECL_VSNPRINTF=0 + fi + + + + GNULIB_VSNPRINTF=1 + { echo "$as_me:$LINENO: checking whether is standalone" >&5 @@ -44496,45 +46785,71 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $gl_cv_header_wchar_h_standalone" >&5 echo "${ECHO_T}$gl_cv_header_wchar_h_standalone" >&6; } - if test $gl_cv_header_wchar_h_standalone = yes; then - WCHAR_H= - else - { echo "$as_me:$LINENO: checking absolute name of " >&5 -echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } -if test "${gl_cv_absolute_wchar_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + if test $gl_cv_header_wchar_h_standalone != yes; then + WCHAR_H=wchar.h + fi + : - if test $ac_cv_header_wchar_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + + + + + : + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_wchar_h='<'wchar.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_wchar_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test $ac_cv_header_wchar_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include + _ACEOF - gl_cv_absolute_wchar_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | -sed -n '\#/wchar.h#{s#.*"\(.*/wchar.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'` - fi + gl_cv_next_wchar_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/wchar.h#{ + s#.*"\(.*/wchar.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_wchar_h='<'wchar.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_absolute_wchar_h" >&5 -echo "${ECHO_T}$gl_cv_absolute_wchar_h" >&6; } -cat >>confdefs.h <<_ACEOF -#define ABSOLUTE_WCHAR_H "$gl_cv_absolute_wchar_h" -_ACEOF +{ echo "$as_me:$LINENO: result: $gl_cv_next_wchar_h" >&5 +echo "${ECHO_T}$gl_cv_next_wchar_h" >&6; } + fi + NEXT_WCHAR_H=$gl_cv_next_wchar_h - ABSOLUTE_WCHAR_H=\"$gl_cv_absolute_wchar_h\" - WCHAR_H=wchar.h - fi - @@ -44545,6 +46860,12 @@ _ACEOF + if test $ac_cv_func_iswcntrl = yes; then + HAVE_ISWCNTRL=1 + else + HAVE_ISWCNTRL=0 + fi + : @@ -44564,45 +46885,60 @@ _ACEOF WCTYPE_H=wctype.h if test $ac_cv_header_wctype_h = yes; then - if test "$ac_cv_func_iswcntrl" = yes; then + if test $ac_cv_func_iswcntrl = yes; then WCTYPE_H= fi - { echo "$as_me:$LINENO: checking absolute name of " >&5 -echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } -if test "${gl_cv_absolute_wctype_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + + : - if test $ac_cv_header_wctype_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_wctype_h='<'wctype.h'>' + else + { echo "$as_me:$LINENO: checking absolute name of " >&5 +echo $ECHO_N "checking absolute name of ... $ECHO_C" >&6; } +if test "${gl_cv_next_wctype_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test $ac_cv_header_wctype_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include + _ACEOF - gl_cv_absolute_wctype_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | -sed -n '\#/wctype.h#{s#.*"\(.*/wctype.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'` - fi + gl_cv_next_wctype_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/wctype.h#{ + s#.*"\(.*/wctype.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_wctype_h='<'wctype.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_absolute_wctype_h" >&5 -echo "${ECHO_T}$gl_cv_absolute_wctype_h" >&6; } -cat >>confdefs.h <<_ACEOF -#define ABSOLUTE_WCTYPE_H "$gl_cv_absolute_wctype_h" -_ACEOF +{ echo "$as_me:$LINENO: result: $gl_cv_next_wctype_h" >&5 +echo "${ECHO_T}$gl_cv_next_wctype_h" >&6; } + fi + NEXT_WCTYPE_H=$gl_cv_next_wctype_h + - ABSOLUTE_WCTYPE_H=\"$gl_cv_absolute_wctype_h\" HAVE_WCTYPE_H=1 else - ABSOLUTE_WCTYPE_H=\"no/such/file/wctype.h\" HAVE_WCTYPE_H=0 fi @@ -44616,106 +46952,11 @@ _ACEOF - - : - - - - - - - : - - - - - - - { echo "$as_me:$LINENO: checking whether wcwidth is declared" >&5 -echo $ECHO_N "checking whether wcwidth is declared... $ECHO_C" >&6; } -if test "${ac_cv_have_decl_wcwidth+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* AIX 3.2.5 declares wcwidth in . */ -#include -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.0.1 has a bug: , and must be included - before . */ -#include -#include -#include -#include - - -int -main () -{ -#ifndef wcwidth - (void) wcwidth; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl_wcwidth=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl_wcwidth=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_wcwidth" >&5 -echo "${ECHO_T}$ac_cv_have_decl_wcwidth" >&6; } -if test $ac_cv_have_decl_wcwidth = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_WCWIDTH 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_WCWIDTH 0 -_ACEOF - - -fi - - - gl_LIBOBJS="$gl_LIBOBJS xmalloc.$ac_objext" + : @@ -44871,17 +47112,27 @@ done : + + + + + gltests_libdeps= + gltests_ltlibdeps= + + + + gl_source_base='tests' + + + + LIBGNU_LIBDEPS="$gl_libdeps" LIBGNU_LTLIBDEPS="$gl_ltlibdeps" - - - - -if test "$ac_cv_uname_s" = 'SunOS' -a "$ac_cv_prog_ac_ct_AR" = 'false' ; then +if test "$ac_cv_uname_s" = 'SunOS' -a \( "x$ac_cv_prog_ac_ct_AR" = "x" -o "$ac_cv_prog_ac_ct_AR" = 'false' \) ; then { { echo "$as_me:$LINENO: error: No ar found for Solaris - is /usr/ccs/bin in PATH?" >&5 echo "$as_me: error: No ar found for Solaris - is /usr/ccs/bin in PATH?" >&2;} { (exit 1); exit 1; }; } @@ -45006,6 +47257,13 @@ echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${USE_PARSE_INI_TRUE}" && test -z "${USE_PARSE_INI_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"USE_PARSE_INI\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"USE_PARSE_INI\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -45030,6 +47288,22 @@ fi + gltests_libobjs= + gltests_ltlibobjs= + if test -n "$gltests_LIBOBJS"; then + # Remove the extension. + sed_drop_objext='s/\.o$//;s/\.obj$//' + for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do + gltests_libobjs="$gltests_libobjs $i.$ac_objext" + gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" + done + fi + gltests_LIBOBJS=$gltests_libobjs + + gltests_LTLIBOBJS=$gltests_ltlibobjs + + + : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -45329,7 +47603,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by nagios-plugins $as_me 1.4.11, which was +This file was extended by nagios-plugins $as_me 1.4.12, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -45382,7 +47656,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -nagios-plugins config.status 1.4.11 +nagios-plugins config.status 1.4.12 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" @@ -45745,6 +48019,8 @@ BASENAME!$BASENAME$ac_delim SOCKETLIBS!$SOCKETLIBS$ac_delim MATHLIBS!$MATHLIBS$ac_delim EXTRA_TEST!$EXTRA_TEST$ac_delim +USE_PARSE_INI_TRUE!$USE_PARSE_INI_TRUE$ac_delim +USE_PARSE_INI_FALSE!$USE_PARSE_INI_FALSE$ac_delim PGLIBS!$PGLIBS$ac_delim PGINCLUDE!$PGINCLUDE$ac_delim RADIUSLIBS!$RADIUSLIBS$ac_delim @@ -45759,6 +48035,7 @@ SSLINCLUDE!$SSLINCLUDE$ac_delim check_tcp_ssl!$check_tcp_ssl$ac_delim SSLLIBS!$SSLLIBS$ac_delim PATH_TO_PS!$PATH_TO_PS$ac_delim +PST3CFLAGS!$PST3CFLAGS$ac_delim PATH_TO_PING!$PATH_TO_PING$ac_delim PATH_TO_PING6!$PATH_TO_PING6$ac_delim PATH_TO_NSLOOKUP!$PATH_TO_NSLOOKUP$ac_delim @@ -45785,6 +48062,7 @@ EXTRAS_ROOT!$EXTRAS_ROOT$ac_delim EXTRA_NETOBJS!$EXTRA_NETOBJS$ac_delim DEPLIBS!$DEPLIBS$ac_delim USE_NLS!$USE_NLS$ac_delim +GETTEXT_MACRO_VERSION!$GETTEXT_MACRO_VERSION$ac_delim MSGFMT!$MSGFMT$ac_delim GMSGFMT!$GMSGFMT$ac_delim MSGFMT_015!$MSGFMT_015$ac_delim @@ -45792,6 +48070,7 @@ GMSGFMT_015!$GMSGFMT_015$ac_delim XGETTEXT!$XGETTEXT$ac_delim XGETTEXT_015!$XGETTEXT_015$ac_delim MSGMERGE!$MSGMERGE$ac_delim +XGETTEXT_EXTRA_OPTIONS!$XGETTEXT_EXTRA_OPTIONS$ac_delim INTL_MACOSX_LIBS!$INTL_MACOSX_LIBS$ac_delim LIBICONV!$LIBICONV$ac_delim LTLIBICONV!$LTLIBICONV$ac_delim @@ -45805,19 +48084,14 @@ GL_COND_LIBTOOL_FALSE!$GL_COND_LIBTOOL_FALSE$ac_delim ALLOCA!$ALLOCA$ac_delim ALLOCA_H!$ALLOCA_H$ac_delim ARPA_INET_H!$ARPA_INET_H$ac_delim -SYS_SOCKET_H!$SYS_SOCKET_H$ac_delim -NEED_SETGID!$NEED_SETGID$ac_delim -KMEM_GROUP!$KMEM_GROUP$ac_delim -GETLOADAVG_LIBS!$GETLOADAVG_LIBS$ac_delim -GETOPT_H!$GETOPT_H$ac_delim -NETINET_IN_H!$NETINET_IN_H$ac_delim -STDBOOL_H!$STDBOOL_H$ac_delim -HAVE__BOOL!$HAVE__BOOL$ac_delim -HAVE_LONG_LONG_INT!$HAVE_LONG_LONG_INT$ac_delim -HAVE_UNSIGNED_LONG_LONG_INT!$HAVE_UNSIGNED_LONG_LONG_INT$ac_delim -HAVE_INTTYPES_H!$HAVE_INTTYPES_H$ac_delim -HAVE_SYS_TYPES_H!$HAVE_SYS_TYPES_H$ac_delim -ABSOLUTE_STDINT_H!$ABSOLUTE_STDINT_H$ac_delim +INCLUDE_NEXT!$INCLUDE_NEXT$ac_delim +NEXT_FLOAT_H!$NEXT_FLOAT_H$ac_delim +FLOAT_H!$FLOAT_H$ac_delim +GNULIB_CEILF!$GNULIB_CEILF$ac_delim +GNULIB_CEILL!$GNULIB_CEILL$ac_delim +GNULIB_FLOORF!$GNULIB_FLOORF$ac_delim +GNULIB_FLOORL!$GNULIB_FLOORL$ac_delim +GNULIB_FREXP!$GNULIB_FREXP$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then @@ -45859,40 +48133,106 @@ _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF -HAVE_STDINT_H!$HAVE_STDINT_H$ac_delim -HAVE_SYS_INTTYPES_H!$HAVE_SYS_INTTYPES_H$ac_delim -HAVE_SYS_BITYPES_H!$HAVE_SYS_BITYPES_H$ac_delim -BITSIZEOF_PTRDIFF_T!$BITSIZEOF_PTRDIFF_T$ac_delim -BITSIZEOF_SIG_ATOMIC_T!$BITSIZEOF_SIG_ATOMIC_T$ac_delim -BITSIZEOF_SIZE_T!$BITSIZEOF_SIZE_T$ac_delim -BITSIZEOF_WCHAR_T!$BITSIZEOF_WCHAR_T$ac_delim -BITSIZEOF_WINT_T!$BITSIZEOF_WINT_T$ac_delim -HAVE_SIGNED_SIG_ATOMIC_T!$HAVE_SIGNED_SIG_ATOMIC_T$ac_delim -HAVE_SIGNED_WCHAR_T!$HAVE_SIGNED_WCHAR_T$ac_delim -HAVE_SIGNED_WINT_T!$HAVE_SIGNED_WINT_T$ac_delim -PTRDIFF_T_SUFFIX!$PTRDIFF_T_SUFFIX$ac_delim -SIG_ATOMIC_T_SUFFIX!$SIG_ATOMIC_T_SUFFIX$ac_delim -SIZE_T_SUFFIX!$SIZE_T_SUFFIX$ac_delim -WCHAR_T_SUFFIX!$WCHAR_T_SUFFIX$ac_delim -WINT_T_SUFFIX!$WINT_T_SUFFIX$ac_delim -STDINT_H!$STDINT_H$ac_delim -UNISTD_H!$UNISTD_H$ac_delim -ABSOLUTE_UNISTD_H!$ABSOLUTE_UNISTD_H$ac_delim -EOVERFLOW!$EOVERFLOW$ac_delim -ABSOLUTE_WCHAR_H!$ABSOLUTE_WCHAR_H$ac_delim -WCHAR_H!$WCHAR_H$ac_delim -HAVE_WINT_T!$HAVE_WINT_T$ac_delim -ABSOLUTE_WCTYPE_H!$ABSOLUTE_WCTYPE_H$ac_delim -HAVE_WCTYPE_H!$HAVE_WCTYPE_H$ac_delim -WCTYPE_H!$WCTYPE_H$ac_delim -LIBGNU_LIBDEPS!$LIBGNU_LIBDEPS$ac_delim -LIBGNU_LTLIBDEPS!$LIBGNU_LTLIBDEPS$ac_delim -LTLIBOBJS!$LTLIBOBJS$ac_delim -gl_LIBOBJS!$gl_LIBOBJS$ac_delim -gl_LTLIBOBJS!$gl_LTLIBOBJS$ac_delim +GNULIB_FREXPL!$GNULIB_FREXPL$ac_delim +GNULIB_ISFINITE!$GNULIB_ISFINITE$ac_delim +GNULIB_LDEXPL!$GNULIB_LDEXPL$ac_delim +GNULIB_MATHL!$GNULIB_MATHL$ac_delim +GNULIB_ROUND!$GNULIB_ROUND$ac_delim +GNULIB_ROUNDF!$GNULIB_ROUNDF$ac_delim +GNULIB_ROUNDL!$GNULIB_ROUNDL$ac_delim +GNULIB_SIGNBIT!$GNULIB_SIGNBIT$ac_delim +GNULIB_TRUNC!$GNULIB_TRUNC$ac_delim +GNULIB_TRUNCF!$GNULIB_TRUNCF$ac_delim +GNULIB_TRUNCL!$GNULIB_TRUNCL$ac_delim +HAVE_DECL_ACOSL!$HAVE_DECL_ACOSL$ac_delim +HAVE_DECL_ASINL!$HAVE_DECL_ASINL$ac_delim +HAVE_DECL_ATANL!$HAVE_DECL_ATANL$ac_delim +HAVE_DECL_COSL!$HAVE_DECL_COSL$ac_delim +HAVE_DECL_EXPL!$HAVE_DECL_EXPL$ac_delim +HAVE_DECL_FREXPL!$HAVE_DECL_FREXPL$ac_delim +HAVE_DECL_LDEXPL!$HAVE_DECL_LDEXPL$ac_delim +HAVE_DECL_LOGL!$HAVE_DECL_LOGL$ac_delim +HAVE_DECL_SINL!$HAVE_DECL_SINL$ac_delim +HAVE_DECL_SQRTL!$HAVE_DECL_SQRTL$ac_delim +HAVE_DECL_TANL!$HAVE_DECL_TANL$ac_delim +HAVE_DECL_TRUNC!$HAVE_DECL_TRUNC$ac_delim +HAVE_DECL_TRUNCF!$HAVE_DECL_TRUNCF$ac_delim +HAVE_DECL_TRUNCL!$HAVE_DECL_TRUNCL$ac_delim +REPLACE_CEILF!$REPLACE_CEILF$ac_delim +REPLACE_CEILL!$REPLACE_CEILL$ac_delim +REPLACE_FLOORF!$REPLACE_FLOORF$ac_delim +REPLACE_FLOORL!$REPLACE_FLOORL$ac_delim +REPLACE_FREXP!$REPLACE_FREXP$ac_delim +REPLACE_FREXPL!$REPLACE_FREXPL$ac_delim +REPLACE_ISFINITE!$REPLACE_ISFINITE$ac_delim +REPLACE_LDEXPL!$REPLACE_LDEXPL$ac_delim +REPLACE_ROUND!$REPLACE_ROUND$ac_delim +REPLACE_ROUNDF!$REPLACE_ROUNDF$ac_delim +REPLACE_ROUNDL!$REPLACE_ROUNDL$ac_delim +REPLACE_SIGNBIT!$REPLACE_SIGNBIT$ac_delim +REPLACE_SIGNBIT_USING_GCC!$REPLACE_SIGNBIT_USING_GCC$ac_delim +FLOORF_LIBM!$FLOORF_LIBM$ac_delim +NEXT_SYS_SOCKET_H!$NEXT_SYS_SOCKET_H$ac_delim +HAVE_SYS_SOCKET_H!$HAVE_SYS_SOCKET_H$ac_delim +HAVE_WINSOCK2_H!$HAVE_WINSOCK2_H$ac_delim +HAVE_WS2TCPIP_H!$HAVE_WS2TCPIP_H$ac_delim +SYS_SOCKET_H!$SYS_SOCKET_H$ac_delim +NEED_SETGID!$NEED_SETGID$ac_delim +KMEM_GROUP!$KMEM_GROUP$ac_delim +GETLOADAVG_LIBS!$GETLOADAVG_LIBS$ac_delim +GETOPT_H!$GETOPT_H$ac_delim +GLIBC21!$GLIBC21$ac_delim +LOCALCHARSET_TESTS_ENVIRONMENT!$LOCALCHARSET_TESTS_ENVIRONMENT$ac_delim +HAVE_MALLOC_POSIX!$HAVE_MALLOC_POSIX$ac_delim +GNULIB_MALLOC_POSIX!$GNULIB_MALLOC_POSIX$ac_delim +GNULIB_REALLOC_POSIX!$GNULIB_REALLOC_POSIX$ac_delim +GNULIB_CALLOC_POSIX!$GNULIB_CALLOC_POSIX$ac_delim +GNULIB_GETSUBOPT!$GNULIB_GETSUBOPT$ac_delim +GNULIB_MKDTEMP!$GNULIB_MKDTEMP$ac_delim +GNULIB_MKSTEMP!$GNULIB_MKSTEMP$ac_delim +GNULIB_PUTENV!$GNULIB_PUTENV$ac_delim +GNULIB_SETENV!$GNULIB_SETENV$ac_delim +GNULIB_UNSETENV!$GNULIB_UNSETENV$ac_delim +HAVE_CALLOC_POSIX!$HAVE_CALLOC_POSIX$ac_delim +HAVE_GETSUBOPT!$HAVE_GETSUBOPT$ac_delim +HAVE_MKDTEMP!$HAVE_MKDTEMP$ac_delim +HAVE_REALLOC_POSIX!$HAVE_REALLOC_POSIX$ac_delim +HAVE_SETENV!$HAVE_SETENV$ac_delim +HAVE_UNSETENV!$HAVE_UNSETENV$ac_delim +REPLACE_MKSTEMP!$REPLACE_MKSTEMP$ac_delim +REPLACE_PUTENV!$REPLACE_PUTENV$ac_delim +VOID_UNSETENV!$VOID_UNSETENV$ac_delim +NEXT_MATH_H!$NEXT_MATH_H$ac_delim +NEXT_NETINET_IN_H!$NEXT_NETINET_IN_H$ac_delim +HAVE_NETINET_IN_H!$HAVE_NETINET_IN_H$ac_delim +NETINET_IN_H!$NETINET_IN_H$ac_delim +GNULIB_FPRINTF_POSIX!$GNULIB_FPRINTF_POSIX$ac_delim +GNULIB_PRINTF_POSIX!$GNULIB_PRINTF_POSIX$ac_delim +GNULIB_SNPRINTF!$GNULIB_SNPRINTF$ac_delim +GNULIB_SPRINTF_POSIX!$GNULIB_SPRINTF_POSIX$ac_delim +GNULIB_VFPRINTF_POSIX!$GNULIB_VFPRINTF_POSIX$ac_delim +GNULIB_VPRINTF_POSIX!$GNULIB_VPRINTF_POSIX$ac_delim +GNULIB_VSNPRINTF!$GNULIB_VSNPRINTF$ac_delim +GNULIB_VSPRINTF_POSIX!$GNULIB_VSPRINTF_POSIX$ac_delim +GNULIB_VASPRINTF!$GNULIB_VASPRINTF$ac_delim +GNULIB_FOPEN!$GNULIB_FOPEN$ac_delim +GNULIB_FREOPEN!$GNULIB_FREOPEN$ac_delim +GNULIB_FSEEK!$GNULIB_FSEEK$ac_delim +GNULIB_FSEEKO!$GNULIB_FSEEKO$ac_delim +GNULIB_FTELL!$GNULIB_FTELL$ac_delim +GNULIB_FTELLO!$GNULIB_FTELLO$ac_delim +GNULIB_FFLUSH!$GNULIB_FFLUSH$ac_delim +GNULIB_GETDELIM!$GNULIB_GETDELIM$ac_delim +GNULIB_GETLINE!$GNULIB_GETLINE$ac_delim +REPLACE_FPRINTF!$REPLACE_FPRINTF$ac_delim +REPLACE_VFPRINTF!$REPLACE_VFPRINTF$ac_delim +REPLACE_PRINTF!$REPLACE_PRINTF$ac_delim +REPLACE_VPRINTF!$REPLACE_VPRINTF$ac_delim +REPLACE_SNPRINTF!$REPLACE_SNPRINTF$ac_delim +HAVE_DECL_SNPRINTF!$HAVE_DECL_SNPRINTF$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 31; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 @@ -45911,6 +48251,230 @@ fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-3.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +REPLACE_VSNPRINTF!$REPLACE_VSNPRINTF$ac_delim +HAVE_DECL_VSNPRINTF!$HAVE_DECL_VSNPRINTF$ac_delim +REPLACE_SPRINTF!$REPLACE_SPRINTF$ac_delim +REPLACE_VSPRINTF!$REPLACE_VSPRINTF$ac_delim +HAVE_VASPRINTF!$HAVE_VASPRINTF$ac_delim +REPLACE_VASPRINTF!$REPLACE_VASPRINTF$ac_delim +REPLACE_FOPEN!$REPLACE_FOPEN$ac_delim +REPLACE_FREOPEN!$REPLACE_FREOPEN$ac_delim +HAVE_FSEEKO!$HAVE_FSEEKO$ac_delim +REPLACE_FSEEKO!$REPLACE_FSEEKO$ac_delim +REPLACE_FSEEK!$REPLACE_FSEEK$ac_delim +HAVE_FTELLO!$HAVE_FTELLO$ac_delim +REPLACE_FTELLO!$REPLACE_FTELLO$ac_delim +REPLACE_FTELL!$REPLACE_FTELL$ac_delim +REPLACE_FFLUSH!$REPLACE_FFLUSH$ac_delim +HAVE_DECL_GETDELIM!$HAVE_DECL_GETDELIM$ac_delim +HAVE_DECL_GETLINE!$HAVE_DECL_GETLINE$ac_delim +REPLACE_GETLINE!$REPLACE_GETLINE$ac_delim +STDBOOL_H!$STDBOOL_H$ac_delim +HAVE__BOOL!$HAVE__BOOL$ac_delim +HAVE_LONG_LONG_INT!$HAVE_LONG_LONG_INT$ac_delim +HAVE_UNSIGNED_LONG_LONG_INT!$HAVE_UNSIGNED_LONG_LONG_INT$ac_delim +HAVE_INTTYPES_H!$HAVE_INTTYPES_H$ac_delim +HAVE_SYS_TYPES_H!$HAVE_SYS_TYPES_H$ac_delim +NEXT_STDINT_H!$NEXT_STDINT_H$ac_delim +HAVE_STDINT_H!$HAVE_STDINT_H$ac_delim +HAVE_SYS_INTTYPES_H!$HAVE_SYS_INTTYPES_H$ac_delim +HAVE_SYS_BITYPES_H!$HAVE_SYS_BITYPES_H$ac_delim +BITSIZEOF_PTRDIFF_T!$BITSIZEOF_PTRDIFF_T$ac_delim +BITSIZEOF_SIG_ATOMIC_T!$BITSIZEOF_SIG_ATOMIC_T$ac_delim +BITSIZEOF_SIZE_T!$BITSIZEOF_SIZE_T$ac_delim +BITSIZEOF_WCHAR_T!$BITSIZEOF_WCHAR_T$ac_delim +BITSIZEOF_WINT_T!$BITSIZEOF_WINT_T$ac_delim +HAVE_SIGNED_SIG_ATOMIC_T!$HAVE_SIGNED_SIG_ATOMIC_T$ac_delim +HAVE_SIGNED_WCHAR_T!$HAVE_SIGNED_WCHAR_T$ac_delim +HAVE_SIGNED_WINT_T!$HAVE_SIGNED_WINT_T$ac_delim +PTRDIFF_T_SUFFIX!$PTRDIFF_T_SUFFIX$ac_delim +SIG_ATOMIC_T_SUFFIX!$SIG_ATOMIC_T_SUFFIX$ac_delim +SIZE_T_SUFFIX!$SIZE_T_SUFFIX$ac_delim +WCHAR_T_SUFFIX!$WCHAR_T_SUFFIX$ac_delim +WINT_T_SUFFIX!$WINT_T_SUFFIX$ac_delim +STDINT_H!$STDINT_H$ac_delim +NEXT_STDIO_H!$NEXT_STDIO_H$ac_delim +NEXT_STDLIB_H!$NEXT_STDLIB_H$ac_delim +GNULIB_MEMMEM!$GNULIB_MEMMEM$ac_delim +GNULIB_MEMPCPY!$GNULIB_MEMPCPY$ac_delim +GNULIB_MEMRCHR!$GNULIB_MEMRCHR$ac_delim +GNULIB_STPCPY!$GNULIB_STPCPY$ac_delim +GNULIB_STPNCPY!$GNULIB_STPNCPY$ac_delim +GNULIB_STRCHRNUL!$GNULIB_STRCHRNUL$ac_delim +GNULIB_STRDUP!$GNULIB_STRDUP$ac_delim +GNULIB_STRNDUP!$GNULIB_STRNDUP$ac_delim +GNULIB_STRNLEN!$GNULIB_STRNLEN$ac_delim +GNULIB_STRPBRK!$GNULIB_STRPBRK$ac_delim +GNULIB_STRSEP!$GNULIB_STRSEP$ac_delim +GNULIB_STRSTR!$GNULIB_STRSTR$ac_delim +GNULIB_STRCASESTR!$GNULIB_STRCASESTR$ac_delim +GNULIB_STRTOK_R!$GNULIB_STRTOK_R$ac_delim +GNULIB_MBSLEN!$GNULIB_MBSLEN$ac_delim +GNULIB_MBSNLEN!$GNULIB_MBSNLEN$ac_delim +GNULIB_MBSCHR!$GNULIB_MBSCHR$ac_delim +GNULIB_MBSRCHR!$GNULIB_MBSRCHR$ac_delim +GNULIB_MBSSTR!$GNULIB_MBSSTR$ac_delim +GNULIB_MBSCASECMP!$GNULIB_MBSCASECMP$ac_delim +GNULIB_MBSNCASECMP!$GNULIB_MBSNCASECMP$ac_delim +GNULIB_MBSPCASECMP!$GNULIB_MBSPCASECMP$ac_delim +GNULIB_MBSCASESTR!$GNULIB_MBSCASESTR$ac_delim +GNULIB_MBSCSPN!$GNULIB_MBSCSPN$ac_delim +GNULIB_MBSPBRK!$GNULIB_MBSPBRK$ac_delim +GNULIB_MBSSPN!$GNULIB_MBSSPN$ac_delim +GNULIB_MBSSEP!$GNULIB_MBSSEP$ac_delim +GNULIB_MBSTOK_R!$GNULIB_MBSTOK_R$ac_delim +GNULIB_STRERROR!$GNULIB_STRERROR$ac_delim +GNULIB_STRSIGNAL!$GNULIB_STRSIGNAL$ac_delim +HAVE_DECL_MEMMEM!$HAVE_DECL_MEMMEM$ac_delim +HAVE_MEMPCPY!$HAVE_MEMPCPY$ac_delim +HAVE_DECL_MEMRCHR!$HAVE_DECL_MEMRCHR$ac_delim +HAVE_STPCPY!$HAVE_STPCPY$ac_delim +HAVE_STPNCPY!$HAVE_STPNCPY$ac_delim +HAVE_STRCHRNUL!$HAVE_STRCHRNUL$ac_delim +HAVE_DECL_STRDUP!$HAVE_DECL_STRDUP$ac_delim +HAVE_STRNDUP!$HAVE_STRNDUP$ac_delim +HAVE_DECL_STRNDUP!$HAVE_DECL_STRNDUP$ac_delim +HAVE_DECL_STRNLEN!$HAVE_DECL_STRNLEN$ac_delim +HAVE_STRPBRK!$HAVE_STRPBRK$ac_delim +HAVE_STRSEP!$HAVE_STRSEP$ac_delim +HAVE_STRCASESTR!$HAVE_STRCASESTR$ac_delim +HAVE_DECL_STRTOK_R!$HAVE_DECL_STRTOK_R$ac_delim +HAVE_DECL_STRERROR!$HAVE_DECL_STRERROR$ac_delim +HAVE_DECL_STRSIGNAL!$HAVE_DECL_STRSIGNAL$ac_delim +REPLACE_STRERROR!$REPLACE_STRERROR$ac_delim +REPLACE_STRSIGNAL!$REPLACE_STRSIGNAL$ac_delim +REPLACE_MEMMEM!$REPLACE_MEMMEM$ac_delim +REPLACE_STRCASESTR!$REPLACE_STRCASESTR$ac_delim +REPLACE_STRSTR!$REPLACE_STRSTR$ac_delim +NEXT_STRING_H!$NEXT_STRING_H$ac_delim +GNULIB_CHOWN!$GNULIB_CHOWN$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-4.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +GNULIB_DUP2!$GNULIB_DUP2$ac_delim +GNULIB_FCHDIR!$GNULIB_FCHDIR$ac_delim +GNULIB_FTRUNCATE!$GNULIB_FTRUNCATE$ac_delim +GNULIB_GETCWD!$GNULIB_GETCWD$ac_delim +GNULIB_GETLOGIN_R!$GNULIB_GETLOGIN_R$ac_delim +GNULIB_GETPAGESIZE!$GNULIB_GETPAGESIZE$ac_delim +GNULIB_LCHOWN!$GNULIB_LCHOWN$ac_delim +GNULIB_LSEEK!$GNULIB_LSEEK$ac_delim +GNULIB_READLINK!$GNULIB_READLINK$ac_delim +GNULIB_SLEEP!$GNULIB_SLEEP$ac_delim +HAVE_DUP2!$HAVE_DUP2$ac_delim +HAVE_FTRUNCATE!$HAVE_FTRUNCATE$ac_delim +HAVE_GETPAGESIZE!$HAVE_GETPAGESIZE$ac_delim +HAVE_READLINK!$HAVE_READLINK$ac_delim +HAVE_SLEEP!$HAVE_SLEEP$ac_delim +HAVE_DECL_GETLOGIN_R!$HAVE_DECL_GETLOGIN_R$ac_delim +HAVE_OS_H!$HAVE_OS_H$ac_delim +HAVE_SYS_PARAM_H!$HAVE_SYS_PARAM_H$ac_delim +REPLACE_CHOWN!$REPLACE_CHOWN$ac_delim +REPLACE_FCHDIR!$REPLACE_FCHDIR$ac_delim +REPLACE_GETCWD!$REPLACE_GETCWD$ac_delim +REPLACE_GETPAGESIZE!$REPLACE_GETPAGESIZE$ac_delim +REPLACE_LCHOWN!$REPLACE_LCHOWN$ac_delim +REPLACE_LSEEK!$REPLACE_LSEEK$ac_delim +NEXT_UNISTD_H!$NEXT_UNISTD_H$ac_delim +HAVE_UNISTD_H!$HAVE_UNISTD_H$ac_delim +EOVERFLOW!$EOVERFLOW$ac_delim +GNULIB_WCWIDTH!$GNULIB_WCWIDTH$ac_delim +HAVE_DECL_WCWIDTH!$HAVE_DECL_WCWIDTH$ac_delim +REPLACE_WCWIDTH!$REPLACE_WCWIDTH$ac_delim +WCHAR_H!$WCHAR_H$ac_delim +HAVE_WCHAR_H!$HAVE_WCHAR_H$ac_delim +NEXT_WCHAR_H!$NEXT_WCHAR_H$ac_delim +HAVE_ISWCNTRL!$HAVE_ISWCNTRL$ac_delim +HAVE_WINT_T!$HAVE_WINT_T$ac_delim +NEXT_WCTYPE_H!$NEXT_WCTYPE_H$ac_delim +HAVE_WCTYPE_H!$HAVE_WCTYPE_H$ac_delim +WCTYPE_H!$WCTYPE_H$ac_delim +LIBGNU_LIBDEPS!$LIBGNU_LIBDEPS$ac_delim +LIBGNU_LTLIBDEPS!$LIBGNU_LTLIBDEPS$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +gl_LIBOBJS!$gl_LIBOBJS$ac_delim +gl_LTLIBOBJS!$gl_LTLIBOBJS$ac_delim +gltests_LIBOBJS!$gltests_LIBOBJS$ac_delim +gltests_LTLIBOBJS!$gltests_LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 45; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-5.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' @@ -46179,7 +48743,7 @@ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack -" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" >$tmp/out +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" | sed -f "$tmp/subs-4.sed" | sed -f "$tmp/subs-5.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && @@ -46613,6 +49177,7 @@ echo " --with-ipv6: $with_ipv6" echo " --with-mysql: $with_mysql" echo " --with-openssl: $with_openssl" echo " --with-gnutls: $with_gnutls" +echo " --enable-extra-opts: $enable_extra_opts" echo " --with-perl: $with_perl" echo " --enable-perl-modules: $enable_perl_modules" echo " --with-cgiurl: $with_cgiurl" diff --git a/configure.in b/configure.in index 86caf60..c1548aa 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. -AC_REVISION ($Revision: 1873 $) +AC_REVISION ($Revision: 2004 $) AC_PREREQ(2.59) -AC_INIT(nagios-plugins,1.4.11) +AC_INIT(nagios-plugins,1.4.12) AC_CONFIG_SRCDIR(NPTest.pm) AC_CONFIG_FILES(gl/Makefile) AC_CONFIG_AUX_DIR(build-aux) @@ -48,6 +48,7 @@ AC_PROG_LIBTOOL AM_PROG_CC_C_O AC_FUNC_ERROR_AT_LINE +AC_SYS_LARGEFILE ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD]) @@ -159,6 +160,19 @@ AC_CHECK_LIB(tap, plan_tests, AC_SUBST(EXTRA_TEST) ) +dnl INI Parsing +AC_ARG_ENABLE(extra-opts, + AC_HELP_STRING([--enable-extra-opts], + [Enables parsing of plugins ini config files for extra options (default: no)]), + [enable_extra_opts=$enableval], + [enable_extra_opts=no]) +AM_CONDITIONAL([USE_PARSE_INI],[test "$enable_extra_opts" = "yes"]) +if test "$enable_extra_opts" = "yes" ; then + EXTRA_TEST="$EXTRA_TEST test_ini test_opts" + AC_SUBST(EXTRA_TEST) + AC_DEFINE(NP_EXTRA_OPTS,[1],[Enable INI file parsing.]) +fi + dnl Check for PostgreSQL libraries _SAVEDLIBS="$LIBS" _SAVEDCPPFLAGS="$CPPFLAGS" @@ -167,7 +181,7 @@ AC_ARG_WITH(pgsql, [sets path to pgsql installation]), PGSQL=$withval,) AC_CHECK_LIB(crypt,main) -if test "$ac_cv_lib_crypt_main" = "yes"; then +if test "$ac_cv_lib_crypt_main" = "yes" -a "x$PGSQL" != "xno"; then if test -n "$PGSQL"; then LDFLAGS="$LDFLAGS -L$PGSQL/lib" CPPFLAGS="$CPPFLAGS -I$PGSQL/include" @@ -323,6 +337,14 @@ if test "$FOUNDINCLUDE" = "no"; then CPPFLAGS="$_SAVEDCPPFLAGS" fi +dnl *** The following block comes from wget configure.ac *** +dnl Unfortunately, as of this writing (OpenSSL 0.9.6), the libcrypto +dnl shared library doesn't record its dependency on libdl, so we +dnl need to check for it ourselves so we won't fail to link due to a +dnl lack of -ldl. Most OSes use dlopen(), but HP-UX uses +dnl shl_load(). +AC_CHECK_LIB(dl,dlopen) +AC_CHECK_LIB(dl,shl_load) dnl openssl detection/configuration if ! test x"$with_openssl" = x"no"; then @@ -434,6 +456,7 @@ AC_STRUCT_TM AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_SIGNAL +AC_TYPE_MBSTATE_T AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[ AC_TRY_LINK([#include @@ -511,16 +534,49 @@ if test -n "$PS_COMMAND" && test -n "$PS_FORMAT" && test -n "$PS_COLS" && test - ac_cv_ps_cols="$PS_COLS" AC_MSG_RESULT([(command-line) $ac_cv_ps_command]) +dnl Now using the pst3/kmem hack for solaris systems to avoid truncation +elif test "$ac_cv_uname_s" = "SunOS"; then + # + # this is a very, very ugly hack, to hardcode the location for plugins + # + if test "$libexecdir" = '${exec_prefix}/libexec'; then + if test "$exec_prefix" = "NONE"; then + if test "$prefix" = "NONE"; then + pst3="$ac_default_prefix/libexec/pst3" + else + pst3="$prefix/libexec/pst3" + fi + else + pst3="$exec_prefix/libexec/pst3" + fi + else + pst3="$libexecdir/pst3" + fi + ac_cv_ps_command="$pst3" + ac_cv_ps_format="%s %d %d %d %d %d %f %s %n" + ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]" + ac_cv_ps_cols=9 + AC_MSG_RESULT([using nagios-plugins internal ps command (pst3) for solaris]) + if test `isainfo -b` = 64 ; then + PST3CFLAGS="-m64" + AC_SUBST(PST3CFLAGS) + AC_MSG_NOTICE([using 64bit pst3]) + else + AC_MSG_NOTICE([using 32bit pst3]) + fi + EXTRAS_ROOT="$EXTRAS_ROOT pst3" + +dnl Removing this for the moment - Ton dnl Using /usr/ucb/ps on Solaris systems, to avoid truncation dnl Limitation that command name is not available -elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \ - egrep -i ["^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND"] > /dev/null -then - ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos]" - ac_cv_ps_command="/usr/ucb/ps -alxwwn" - ac_cv_ps_format=["%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n"] - ac_cv_ps_cols=8 - AC_MSG_RESULT([$ac_cv_ps_command]) +dnl elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \ +dnl egrep -i ["^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND"] > /dev/null +dnl then +dnl ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos]" +dnl ac_cv_ps_command="/usr/ucb/ps -alxwwn" +dnl ac_cv_ps_format=["%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n"] +dnl ac_cv_ps_cols=8 +dnl AC_MSG_RESULT([$ac_cv_ps_command]) dnl Some gnu/linux systems (debian for one) don't like -axwo and need axwo. dnl so test for this first... @@ -1475,9 +1531,9 @@ case $host in AC_DEFINE(__bsd__,1,[bsd specific code in check_dhcp.c]) ;; *linux*) - AC_DEFINE(__linux__,1,[sun specific code in check_dhcp.c]) + AC_DEFINE(__linux__,1,[linux specific code in check_dhcp.c]) ;; - *sun* | solaris*) + *sun* | *solaris*) AC_DEFINE(__sun__,1,[sun specific code in check_dhcp.c]) ;; *hpux*) @@ -1507,6 +1563,7 @@ AC_ARG_ENABLE(redhat-pthread-workaround, [ac_cv_enable_redhat_pthread_workaround=test]) if test "$ac_cv_enable_redhat_pthread_workaround" = "test" ; then if echo $ac_cv_uname_r | egrep "\.EL(smp)?$" >/dev/null 2>&1 ; then + AC_MSG_NOTICE([See http://nagiosplugins.org/faq/compile/configure_appears_to_hang if this next part takes a long time]) AC_MSG_CHECKING(for redhat spopen problem) ( cd config_test && make && make test ) > /dev/null 2>&1 if test $? -eq 0 ; then @@ -1534,7 +1591,7 @@ dnl External libraries - see ACKNOWLEDGEMENTS gl_INIT dnl Some helpful common compile errors checked here -if test "$ac_cv_uname_s" = 'SunOS' -a "$ac_cv_prog_ac_ct_AR" = 'false' ; then +if test "$ac_cv_uname_s" = 'SunOS' -a \( "x$ac_cv_prog_ac_ct_AR" = "x" -o "$ac_cv_prog_ac_ct_AR" = 'false' \) ; then AC_MSG_ERROR(No ar found for Solaris - is /usr/ccs/bin in PATH?) fi @@ -1585,6 +1642,7 @@ ACX_FEATURE([with],[ipv6]) ACX_FEATURE([with],[mysql]) ACX_FEATURE([with],[openssl]) ACX_FEATURE([with],[gnutls]) +ACX_FEATURE([enable],[extra-opts]) ACX_FEATURE([with],[perl]) ACX_FEATURE([enable],[perl-modules]) ACX_FEATURE([with],[cgiurl]) diff --git a/gl/Makefile.am b/gl/Makefile.am index 67c9872..1eefee9 100644 --- a/gl/Makefile.am +++ b/gl/Makefile.am @@ -9,7 +9,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --aux-dir=. --no-libtool --macro-prefix=gl dirname fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex vasprintf vsnprintf +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --aux-dir=build-aux --no-libtool --macro-prefix=gl base64 dirname floorf fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex vasprintf vsnprintf AUTOMAKE_OPTIONS = 1.5 gnits @@ -34,6 +34,15 @@ libgnu_a_LIBADD = $(gl_LIBOBJS) libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) EXTRA_libgnu_a_SOURCES = +## begin gnulib module absolute-header + +# Use this preprocessor expression to decide whether #include_next works. +# Do not rely on a 'configure'-time test for this, since the expression +# might appear in an installed header, which is used by some other compiler. +HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER) + +## end gnulib module absolute-header + ## begin gnulib module alloca @@ -51,14 +60,14 @@ BUILT_SOURCES += $(ALLOCA_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. -alloca.h: alloca_.h +alloca.h: alloca.in.h { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - cat $(srcdir)/alloca_.h; \ + cat $(srcdir)/alloca.in.h; \ } > $@-t mv -f $@-t $@ MOSTLYCLEANFILES += alloca.h alloca.h-t -EXTRA_DIST += alloca_.h +EXTRA_DIST += alloca.in.h ## end gnulib module alloca-opt @@ -69,7 +78,7 @@ BUILT_SOURCES += $(ARPA_INET_H) # We need the following in order to create when the system # doesn't have one. arpa/inet.h: - test -d arpa || mkdir arpa + @MKDIR_P@ arpa rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ echo '#include '; \ @@ -80,6 +89,12 @@ MOSTLYCLEANDIRS += arpa ## end gnulib module arpa_inet +## begin gnulib module base64 + +libgnu_a_SOURCES += base64.h base64.c + +## end gnulib module base64 + ## begin gnulib module c-strtod @@ -98,6 +113,62 @@ EXTRA_libgnu_a_SOURCES += cloexec.c ## end gnulib module cloexec +## begin gnulib module configmake + +# Retrieve values of the variables through 'configure' followed by +# 'make', not directly through 'configure', so that a user who +# sets some of these variables consistently on the 'make' command +# line gets correct results. +# +# One advantage of this approach, compared to the classical +# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS, +# is that it protects against the use of undefined variables. +# If, say, $(libdir) is not set in the Makefile, LIBDIR is not +# defined by this module, and code using LIBDIR gives a +# compilation error. +# +# Another advantage is that 'make' output is shorter. +# +# Listed in the same order as the GNU makefile conventions. +# The Automake-defined pkg* macros are appended, in the order +# listed in the Automake 1.10a+ documentation. +configmake.h: Makefile + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + echo '#define PREFIX "$(prefix)"'; \ + echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ + echo '#define BINDIR "$(bindir)"'; \ + echo '#define SBINDIR "$(sbindir)"'; \ + echo '#define LIBEXECDIR "$(libexecdir)"'; \ + echo '#define DATAROOTDIR "$(datarootdir)"'; \ + echo '#define DATADIR "$(datadir)"'; \ + echo '#define SYSCONFDIR "$(sysconfdir)"'; \ + echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ + echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ + echo '#define INCLUDEDIR "$(includedir)"'; \ + echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ + echo '#define DOCDIR "$(docdir)"'; \ + echo '#define INFODIR "$(infodir)"'; \ + echo '#define HTMLDIR "$(htmldir)"'; \ + echo '#define DVIDIR "$(dvidir)"'; \ + echo '#define PDFDIR "$(pdfdir)"'; \ + echo '#define PSDIR "$(psdir)"'; \ + echo '#define LIBDIR "$(libdir)"'; \ + echo '#define LISPDIR "$(lispdir)"'; \ + echo '#define LOCALEDIR "$(localedir)"'; \ + echo '#define MANDIR "$(mandir)"'; \ + echo '#define MANEXT "$(manext)"'; \ + echo '#define PKGDATADIR "$(pkgdatadir)"'; \ + echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ + echo '#define PKGLIBDIR "$(pkglibdir)"'; \ + echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ + } | sed '/""/d' > $@-t + mv $@-t $@ +BUILT_SOURCES += configmake.h +CLEANFILES += configmake.h configmake.h-t + +## end gnulib module configmake + ## begin gnulib module dirname @@ -116,12 +187,6 @@ EXTRA_libgnu_a_SOURCES += error.c ## end gnulib module error -## begin gnulib module exit - -libgnu_a_SOURCES += exit.h - -## end gnulib module exit - ## begin gnulib module exitfail @@ -140,6 +205,35 @@ EXTRA_libgnu_a_SOURCES += creat-safer.c open-safer.c ## end gnulib module fcntl-safer +## begin gnulib module float + +BUILT_SOURCES += $(FLOAT_H) + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +float.h: float.in.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ + < $(srcdir)/float.in.h; \ + } > $@-t + mv $@-t $@ +MOSTLYCLEANFILES += float.h float.h-t + +EXTRA_DIST += float.in.h + +## end gnulib module float + +## begin gnulib module floorf + + +EXTRA_DIST += floor.c floorf.c + +EXTRA_libgnu_a_SOURCES += floor.c floorf.c + +## end gnulib module floorf + ## begin gnulib module fsusage @@ -194,14 +288,14 @@ BUILT_SOURCES += $(GETOPT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. -getopt.h: getopt_.h +getopt.h: getopt.in.h { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - cat $(srcdir)/getopt_.h; \ + cat $(srcdir)/getopt.in.h; \ } > $@-t mv -f $@-t $@ MOSTLYCLEANFILES += getopt.h getopt.h-t -EXTRA_DIST += getopt.c getopt1.c getopt_.h getopt_int.h +EXTRA_DIST += getopt.c getopt.in.h getopt1.c getopt_int.h EXTRA_libgnu_a_SOURCES += getopt.c getopt1.c @@ -219,6 +313,8 @@ EXTRA_libgnu_a_SOURCES += getopt.c getopt1.c # "gettextize --intl". AM_CPPFLAGS += -I$(top_builddir)/intl +EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath + ## end gnulib module gettext ## begin gnulib module gettext-h @@ -227,6 +323,13 @@ libgnu_a_SOURCES += gettext.h ## end gnulib module gettext-h +## begin gnulib module havelib + + +EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath + +## end gnulib module havelib + ## begin gnulib module inet_ntop @@ -243,6 +346,72 @@ EXTRA_DIST += intprops.h ## end gnulib module intprops +## begin gnulib module link-warning + +LINK_WARNING_H=$(top_srcdir)/build-aux/link-warning.h + +EXTRA_DIST += $(top_srcdir)/build-aux/link-warning.h + +## end gnulib module link-warning + +## begin gnulib module localcharset + +libgnu_a_SOURCES += localcharset.h localcharset.c + +# We need the following in order to install a simple file in $(libdir) +# which is shared with other installed packages. We use a list of referencing +# packages so that "make uninstall" will remove the file if and only if it +# is not used by another installed package. +# On systems with glibc-2.1 or newer, the file is redundant, therefore we +# avoid installing it. + +all-local: charset.alias ref-add.sed ref-del.sed + +charset_alias = $(DESTDIR)$(libdir)/charset.alias +charset_tmp = $(DESTDIR)$(libdir)/charset.tmp +install-exec-local: all-local + test $(GLIBC21) != no || $(mkinstalldirs) $(DESTDIR)$(libdir) + if test -f $(charset_alias); then \ + sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + else \ + if test $(GLIBC21) = no; then \ + sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + fi ; \ + fi + +uninstall-local: all-local + if test -f $(charset_alias); then \ + sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ + if grep '^# Packages using this file: $$' $(charset_tmp) \ + > /dev/null; then \ + rm -f $(charset_alias); \ + else \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ + fi; \ + rm -f $(charset_tmp); \ + fi + +charset.alias: config.charset + rm -f t-$@ $@ + $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ + mv t-$@ $@ + +SUFFIXES += .sed .sin +.sin.sed: + rm -f t-$@ $@ + sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ + mv t-$@ $@ + +CLEANFILES += charset.alias ref-add.sed ref-del.sed + +EXTRA_DIST += config.charset ref-add.sin ref-del.sin + +## end gnulib module localcharset + ## begin gnulib module malloc @@ -252,35 +421,78 @@ EXTRA_libgnu_a_SOURCES += malloc.c ## end gnulib module malloc -## begin gnulib module mbchar +## begin gnulib module malloc-posix -EXTRA_DIST += mbchar.c mbchar.h +EXTRA_DIST += malloc.c -EXTRA_libgnu_a_SOURCES += mbchar.c +EXTRA_libgnu_a_SOURCES += malloc.c -## end gnulib module mbchar +## end gnulib module malloc-posix -## begin gnulib module mbuiter +## begin gnulib module math -libgnu_a_SOURCES += mbuiter.h +BUILT_SOURCES += math.h -## end gnulib module mbuiter +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +math.h: math.in.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_MATH_H''@|$(NEXT_MATH_H)|g' \ + -e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \ + -e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \ + -e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \ + -e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \ + -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \ + -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \ + -e 's|@''GNULIB_ISFINITE''@|$(GNULIB_ISFINITE)|g' \ + -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \ + -e 's|@''GNULIB_MATHL''@|$(GNULIB_MATHL)|g' \ + -e 's|@''GNULIB_ROUND''@|$(GNULIB_ROUND)|g' \ + -e 's|@''GNULIB_ROUNDF''@|$(GNULIB_ROUNDF)|g' \ + -e 's|@''GNULIB_ROUNDL''@|$(GNULIB_ROUNDL)|g' \ + -e 's|@''GNULIB_SIGNBIT''@|$(GNULIB_SIGNBIT)|g' \ + -e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \ + -e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \ + -e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \ + -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \ + -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \ + -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \ + -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \ + -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \ + -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \ + -e 's|@''HAVE_DECL_LDEXPL''@|$(HAVE_DECL_LDEXPL)|g' \ + -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \ + -e 's|@''HAVE_DECL_SINL''@|$(HAVE_DECL_SINL)|g' \ + -e 's|@''HAVE_DECL_SQRTL''@|$(HAVE_DECL_SQRTL)|g' \ + -e 's|@''HAVE_DECL_TANL''@|$(HAVE_DECL_TANL)|g' \ + -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \ + -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \ + -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \ + -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \ + -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \ + -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \ + -e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \ + -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \ + -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \ + -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \ + -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \ + -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \ + -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \ + -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \ + -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \ + -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \ + -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + < $(srcdir)/math.in.h; \ + } > $@-t + mv $@-t $@ +MOSTLYCLEANFILES += math.h math.h-t -## begin gnulib module memchr +EXTRA_DIST += math.in.h - -EXTRA_DIST += memchr.c - -EXTRA_libgnu_a_SOURCES += memchr.c - -## end gnulib module memchr - -## begin gnulib module minmax - -libgnu_a_SOURCES += minmax.h - -## end gnulib module minmax +## end gnulib module math ## begin gnulib module mountlist @@ -297,16 +509,21 @@ BUILT_SOURCES += $(NETINET_IN_H) # We need the following in order to create when the system # doesn't have one. -netinet/in.h: - test -d netinet || mkdir netinet +netinet/in.h: netinet_in.in.h + @MKDIR_P@ netinet rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - echo '#include '; \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \ + -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \ + < $(srcdir)/netinet_in.in.h; \ } > $@-t mv $@-t $@ MOSTLYCLEANFILES += netinet/in.h netinet/in.h-t MOSTLYCLEANDIRS += netinet +EXTRA_DIST += netinet_in.in.h + ## end gnulib module netinet_in ## begin gnulib module regex @@ -345,7 +562,7 @@ libgnu_a_SOURCES += size_max.h ## begin gnulib module snprintf -EXTRA_DIST += snprintf.c snprintf.h +EXTRA_DIST += snprintf.c EXTRA_libgnu_a_SOURCES += snprintf.c @@ -357,15 +574,15 @@ BUILT_SOURCES += $(STDBOOL_H) # We need the following in order to create when the system # doesn't have one that works. -stdbool.h: stdbool_.h +stdbool.h: stdbool.in.h rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool_.h; \ + sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ } > $@-t mv $@-t $@ MOSTLYCLEANFILES += stdbool.h stdbool.h-t -EXTRA_DIST += stdbool_.h +EXTRA_DIST += stdbool.in.h ## end gnulib module stdbool @@ -375,11 +592,12 @@ BUILT_SOURCES += $(STDINT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. -stdint.h: stdint_.h +stdint.h: stdint.in.h rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ - -e 's|@''ABSOLUTE_STDINT_H''@|$(ABSOLUTE_STDINT_H)|g' \ + -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ @@ -399,37 +617,210 @@ stdint.h: stdint_.h -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ - < $(srcdir)/stdint_.h; \ + < $(srcdir)/stdint.in.h; \ } > $@-t mv $@-t $@ MOSTLYCLEANFILES += stdint.h stdint.h-t -EXTRA_DIST += stdint_.h +EXTRA_DIST += stdint.in.h ## end gnulib module stdint -## begin gnulib module strcase +## begin gnulib module stdio +BUILT_SOURCES += stdio.h -EXTRA_DIST += strcase.h strcasecmp.c strncasecmp.c +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +stdio.h: stdio.in.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ + -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \ + -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \ + -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \ + -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \ + -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \ + -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \ + -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \ + -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \ + -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \ + -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \ + -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \ + -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \ + -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \ + -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ + -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ + -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ + -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ + -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ + -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ + -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ + -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ + -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ + -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ + -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ + -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ + -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ + -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ + -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ + -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ + -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ + -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ + -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ + -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ + -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ + -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ + -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + < $(srcdir)/stdio.in.h; \ + } > $@-t + mv $@-t $@ +MOSTLYCLEANFILES += stdio.h stdio.h-t -EXTRA_libgnu_a_SOURCES += strcasecmp.c strncasecmp.c +EXTRA_DIST += stdio.in.h -## end gnulib module strcase +## end gnulib module stdio + +## begin gnulib module stdlib + +BUILT_SOURCES += stdlib.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +stdlib.h: stdlib.in.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ + -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \ + -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \ + -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \ + -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \ + -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \ + -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \ + -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \ + -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \ + -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \ + -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \ + -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ + -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \ + -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ + -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \ + -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \ + -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \ + -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ + -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ + -e 's|@''VOID_UNSETENV''@|$(VOID_UNSETENV)|g' \ + -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + < $(srcdir)/stdlib.in.h; \ + } > $@-t + mv $@-t $@ +MOSTLYCLEANFILES += stdlib.h stdlib.h-t + +EXTRA_DIST += stdlib.in.h + +## end gnulib module stdlib ## begin gnulib module strdup -EXTRA_DIST += strdup.c strdup.h +EXTRA_DIST += strdup.c EXTRA_libgnu_a_SOURCES += strdup.c ## end gnulib module strdup +## begin gnulib module strerror + + +EXTRA_DIST += strerror.c + +EXTRA_libgnu_a_SOURCES += strerror.c + +## end gnulib module strerror + +## begin gnulib module string + +BUILT_SOURCES += string.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +string.h: string.in.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ + -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \ + -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \ + -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \ + -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \ + -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \ + -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \ + -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \ + -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \ + -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \ + -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \ + -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \ + -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \ + -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \ + -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \ + -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \ + -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \ + -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \ + -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \ + -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \ + -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \ + -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \ + -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \ + -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \ + -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \ + -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \ + -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \ + -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \ + -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \ + -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \ + -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \ + -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ + -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ + -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ + -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ + -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ + -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ + -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ + -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \ + -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ + -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ + -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ + -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ + -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ + -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ + -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \ + -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ + -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ + -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ + -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ + -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ + -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ + -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + < $(srcdir)/string.in.h; \ + } > $@-t + mv $@-t $@ +MOSTLYCLEANFILES += string.h string.h-t + +EXTRA_DIST += string.in.h + +## end gnulib module string + ## begin gnulib module strndup -EXTRA_DIST += strndup.c strndup.h +EXTRA_DIST += strndup.c EXTRA_libgnu_a_SOURCES += strndup.c @@ -438,53 +829,79 @@ EXTRA_libgnu_a_SOURCES += strndup.c ## begin gnulib module strnlen -EXTRA_DIST += strnlen.c strnlen.h +EXTRA_DIST += strnlen.c EXTRA_libgnu_a_SOURCES += strnlen.c ## end gnulib module strnlen -## begin gnulib module strnlen1 - -libgnu_a_SOURCES += strnlen1.h strnlen1.c - -## end gnulib module strnlen1 - ## begin gnulib module sys_socket BUILT_SOURCES += $(SYS_SOCKET_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. -sys/socket.h: socket_.h +sys/socket.h: sys_socket.in.h @MKDIR_P@ sys { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - cat $(srcdir)/socket_.h; \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ + -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ + -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ + -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ + < $(srcdir)/sys_socket.in.h; \ } > $@-t mv -f $@-t $@ MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t MOSTLYCLEANDIRS += sys -EXTRA_DIST += socket_.h +EXTRA_DIST += sys_socket.in.h ## end gnulib module sys_socket ## begin gnulib module unistd -BUILT_SOURCES += $(UNISTD_H) +BUILT_SOURCES += unistd.h # We need the following in order to create an empty placeholder for # when the system doesn't have one. -unistd.h: unistd_.h +unistd.h: unistd.in.h rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's|@''ABSOLUTE_UNISTD_H''@|$(ABSOLUTE_UNISTD_H)|g' \ - < $(srcdir)/unistd_.h; \ + sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ + -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ + -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \ + -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \ + -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \ + -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \ + -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \ + -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \ + -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \ + -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \ + -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \ + -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \ + -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \ + -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ + -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ + -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ + -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ + -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ + -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ + -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ + -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ + -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ + -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \ + -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ + -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ + -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ + -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ + < $(srcdir)/unistd.in.h; \ } > $@-t mv $@-t $@ MOSTLYCLEANFILES += unistd.h unistd.h-t -EXTRA_DIST += unistd_.h +EXTRA_DIST += unistd.in.h ## end gnulib module unistd @@ -500,7 +917,7 @@ EXTRA_libgnu_a_SOURCES += dup-safer.c fd-safer.c pipe-safer.c ## begin gnulib module vasnprintf -EXTRA_DIST += asnprintf.c printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h +EXTRA_DIST += asnprintf.c float+.h printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h EXTRA_libgnu_a_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c @@ -509,7 +926,7 @@ EXTRA_libgnu_a_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c ## begin gnulib module vasprintf -EXTRA_DIST += asprintf.c vasprintf.c vasprintf.h +EXTRA_DIST += asprintf.c vasprintf.c EXTRA_libgnu_a_SOURCES += asprintf.c vasprintf.c @@ -518,7 +935,7 @@ EXTRA_libgnu_a_SOURCES += asprintf.c vasprintf.c ## begin gnulib module vsnprintf -EXTRA_DIST += vsnprintf.c vsnprintf.h +EXTRA_DIST += vsnprintf.c EXTRA_libgnu_a_SOURCES += vsnprintf.c @@ -530,16 +947,22 @@ BUILT_SOURCES += $(WCHAR_H) # We need the following in order to create when the system # version does not work standalone. -wchar.h: wchar_.h +wchar.h: wchar.in.h rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's|@''ABSOLUTE_WCHAR_H''@|$(ABSOLUTE_WCHAR_H)|g' \ - < $(srcdir)/wchar_.h; \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ + -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ + -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \ + -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ + -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ + -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + < $(srcdir)/wchar.in.h; \ } > $@-t mv $@-t $@ MOSTLYCLEANFILES += wchar.h wchar.h-t -EXTRA_DIST += wchar_.h +EXTRA_DIST += wchar.in.h ## end gnulib module wchar @@ -549,28 +972,23 @@ BUILT_SOURCES += $(WCTYPE_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. -wctype.h: wctype_.h +wctype.h: wctype.in.h rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ - -e 's|@''ABSOLUTE_WCTYPE_H''@|$(ABSOLUTE_WCTYPE_H)|g' \ - -e 's/@''HAVE_WCTYPE_CTMP_BUG''@/$(HAVE_WCTYPE_CTMP_BUG)/g' \ + -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ + -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ - < $(srcdir)/wctype_.h; \ + < $(srcdir)/wctype.in.h; \ } > $@-t mv $@-t $@ MOSTLYCLEANFILES += wctype.h wctype.h-t -EXTRA_DIST += wctype_.h +EXTRA_DIST += wctype.in.h ## end gnulib module wctype -## begin gnulib module wcwidth - -libgnu_a_SOURCES += wcwidth.h - -## end gnulib module wcwidth - ## begin gnulib module xalloc @@ -604,4 +1022,5 @@ mostlyclean-local: mostlyclean-generic if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ - done + done; \ + : diff --git a/gl/Makefile.in b/gl/Makefile.in index e1b4710..baa0a2a 100644 --- a/gl/Makefile.in +++ b/gl/Makefile.in @@ -23,7 +23,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --aux-dir=. --no-libtool --macro-prefix=gl dirname fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex vasprintf vsnprintf +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --aux-dir=build-aux --no-libtool --macro-prefix=gl base64 dirname floorf fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex vasprintf vsnprintf @@ -53,36 +53,40 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in alloca.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \ - $(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \ - $(top_srcdir)/gl/m4/dos.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \ + $(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/exitfail.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/fcntl-safer.m4 \ + $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ $(top_srcdir)/gl/m4/fstypename.m4 \ $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \ - $(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \ + $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/include_next.m4 \ + $(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ + $(top_srcdir)/gl/m4/intmax_t.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ - $(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/longdouble.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/longlong.m4 \ $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ - $(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \ - $(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \ - $(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \ + $(top_srcdir)/gl/m4/mbstate_t.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \ $(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \ @@ -92,21 +96,21 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \ - $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ - $(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \ + $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ + $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \ + $(top_srcdir)/gl/m4/strerror.m4 \ + $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \ $(top_srcdir)/gl/m4/strnlen.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/ulonglong.m4 \ $(top_srcdir)/gl/m4/unistd-safer.m4 \ $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \ $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \ - $(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ - $(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \ - $(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs @@ -116,8 +120,9 @@ LIBRARIES = $(noinst_LIBRARIES) ARFLAGS = cru libgnu_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = -am_libgnu_a_OBJECTS = full-read.$(OBJEXT) full-write.$(OBJEXT) \ - strnlen1.$(OBJEXT) xalloc-die.$(OBJEXT) xstrndup.$(OBJEXT) +am_libgnu_a_OBJECTS = base64.$(OBJEXT) full-read.$(OBJEXT) \ + full-write.$(OBJEXT) localcharset.$(OBJEXT) \ + xalloc-die.$(OBJEXT) xstrndup.$(OBJEXT) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) LTLIBRARIES = $(noinst_LTLIBRARIES) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) @@ -138,10 +143,6 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) INSTALL = @INSTALL@ -ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@ -ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@ -ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@ -ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -186,27 +187,177 @@ EXTRA_NETOBJS = @EXTRA_NETOBJS@ EXTRA_TEST = @EXTRA_TEST@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLOAT_H = @FLOAT_H@ +FLOORF_LIBM = @FLOORF_LIBM@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLIBC21 = @GLIBC21@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@ GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MATHL = @GNULIB_MATHL@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GREP = @GREP@ +HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ +HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ +HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ +HAVE_DECL_COSL = @HAVE_DECL_COSL@ +HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ +HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ +HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_SINL = @HAVE_DECL_SINL@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TANL = @HAVE_DECL_TANL@ +HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ +HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ +HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DUP2 = @HAVE_DUP2@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ +HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRNDUP = @HAVE_STRNDUP@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRSEP = @HAVE_STRSEP@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE__BOOL = @HAVE__BOOL@ HOSTNAME = @HOSTNAME@ +INCLUDE_NEXT = @INCLUDE_NEXT@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -227,6 +378,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ @@ -240,6 +392,17 @@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NEED_SETGID = @NEED_SETGID@ NETINET_IN_H = @NETINET_IN_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_MATH_H = @NEXT_MATH_H@ +NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -278,11 +441,56 @@ PKG_ARCH = @PKG_ARCH@ PLUGIN_TEST = @PLUGIN_TEST@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +PST3CFLAGS = @PST3CFLAGS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON = @PYTHON@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ +REPLACE_CEILF = @REPLACE_CEILF@ +REPLACE_CEILL = @REPLACE_CEILL@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FLOORF = @REPLACE_FLOORF@ +REPLACE_FLOORL = @REPLACE_FLOORL@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FREXP = @REPLACE_FREXP@ +REPLACE_FREXPL = @REPLACE_FREXPL@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_ISFINITE = @REPLACE_ISFINITE@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LDEXPL = @REPLACE_LDEXPL@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_ROUND = @REPLACE_ROUND@ +REPLACE_ROUNDF = @REPLACE_ROUNDF@ +REPLACE_ROUNDL = @REPLACE_ROUNDL@ +REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REV_DATESTAMP = @REV_DATESTAMP@ REV_TIMESTAMP = @REV_TIMESTAMP@ SCRIPT_TEST = @SCRIPT_TEST@ @@ -299,9 +507,11 @@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ SYS_SOCKET_H = @SYS_SOCKET_H@ -UNISTD_H = @UNISTD_H@ USE_NLS = @USE_NLS@ +USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@ +USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@ VERSION = @VERSION@ +VOID_UNSETENV = @VOID_UNSETENV@ WARRANTY = @WARRANTY@ WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ @@ -309,6 +519,7 @@ WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ @@ -335,6 +546,8 @@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -365,34 +578,40 @@ AUTOMAKE_OPTIONS = 1.5 gnits noinst_HEADERS = noinst_LIBRARIES = libgnu.a noinst_LTLIBRARIES = -EXTRA_DIST = alloca.c alloca_.h c-strtod.c c-strtod.h cloexec.c \ +EXTRA_DIST = alloca.c alloca.in.h c-strtod.c c-strtod.h cloexec.c \ cloexec.h basename.c dirname.c dirname.h stripslash.c error.c \ error.h exitfail.c exitfail.h creat-safer.c fcntl--.h \ - fcntl-safer.h open-safer.c fsusage.c fsusage.h gai_strerror.c \ - getaddrinfo.c getaddrinfo.h gethostname.c getloadavg.c \ - getopt.c getopt1.c getopt_.h getopt_int.h inet_ntop.c \ - inet_ntop.h intprops.h malloc.c mbchar.c mbchar.h memchr.c \ - mountlist.c mountlist.h regcomp.c regex.c regex.h \ - regex_internal.c regex_internal.h regexec.c safe-read.c \ - safe-read.h safe-write.c safe-write.h snprintf.c snprintf.h \ - stdbool_.h stdint_.h strcase.h strcasecmp.c strncasecmp.c \ - strdup.c strdup.h strndup.c strndup.h strnlen.c strnlen.h \ - socket_.h unistd_.h dup-safer.c fd-safer.c pipe-safer.c \ - unistd--.h unistd-safer.h asnprintf.c printf-args.c \ + fcntl-safer.h open-safer.c float.in.h floor.c floorf.c \ + fsusage.c fsusage.h gai_strerror.c getaddrinfo.c getaddrinfo.h \ + gethostname.c getloadavg.c getopt.c getopt.in.h getopt1.c \ + getopt_int.h $(top_srcdir)/build-aux/config.rpath \ + $(top_srcdir)/build-aux/config.rpath inet_ntop.c inet_ntop.h \ + intprops.h $(top_srcdir)/build-aux/link-warning.h \ + config.charset ref-add.sin ref-del.sin malloc.c malloc.c \ + math.in.h mountlist.c mountlist.h netinet_in.in.h regcomp.c \ + regex.c regex.h regex_internal.c regex_internal.h regexec.c \ + safe-read.c safe-read.h safe-write.c safe-write.h snprintf.c \ + stdbool.in.h stdint.in.h stdio.in.h stdlib.in.h strdup.c \ + strerror.c string.in.h strndup.c strnlen.c sys_socket.in.h \ + unistd.in.h dup-safer.c fd-safer.c pipe-safer.c unistd--.h \ + unistd-safer.h asnprintf.c float+.h printf-args.c \ printf-args.h printf-parse.c printf-parse.h vasnprintf.c \ - vasnprintf.h asprintf.c vasprintf.c vasprintf.h vsnprintf.c \ - vsnprintf.h wchar_.h wctype_.h xalloc.h xmalloc.c -BUILT_SOURCES = $(ALLOCA_H) $(ARPA_INET_H) $(GETOPT_H) $(NETINET_IN_H) \ - $(STDBOOL_H) $(STDINT_H) $(SYS_SOCKET_H) $(UNISTD_H) \ - $(WCHAR_H) $(WCTYPE_H) -SUFFIXES = + vasnprintf.h asprintf.c vasprintf.c vsnprintf.c wchar.in.h \ + wctype.in.h xalloc.h xmalloc.c +BUILT_SOURCES = $(ALLOCA_H) $(ARPA_INET_H) configmake.h $(FLOAT_H) \ + $(GETOPT_H) math.h $(NETINET_IN_H) $(STDBOOL_H) $(STDINT_H) \ + stdio.h stdlib.h string.h $(SYS_SOCKET_H) unistd.h $(WCHAR_H) \ + $(WCTYPE_H) +SUFFIXES = .sed .sin MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arpa/inet.h \ - arpa/inet.h-t getopt.h getopt.h-t netinet/in.h netinet/in.h-t \ - stdbool.h stdbool.h-t stdint.h stdint.h-t sys/socket.h \ - sys/socket.h-t unistd.h unistd.h-t wchar.h wchar.h-t wctype.h \ - wctype.h-t + arpa/inet.h-t float.h float.h-t getopt.h getopt.h-t math.h \ + math.h-t netinet/in.h netinet/in.h-t stdbool.h stdbool.h-t \ + stdint.h stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t \ + string.h string.h-t sys/socket.h sys/socket.h-t unistd.h \ + unistd.h-t wchar.h wchar.h-t wctype.h wctype.h-t MOSTLYCLEANDIRS = arpa netinet sys -CLEANFILES = +CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \ + ref-del.sed DISTCLEANFILES = MAINTAINERCLEANFILES = @@ -405,27 +624,34 @@ MAINTAINERCLEANFILES = # directory contains no libintl.h file) or when the project does not use # "gettextize --intl". AM_CPPFLAGS = -I$(top_builddir)/intl -libgnu_a_SOURCES = exit.h full-read.h full-read.c full-write.h \ - full-write.c gettext.h mbuiter.h minmax.h size_max.h \ - strnlen1.h strnlen1.c wcwidth.h xalloc-die.c xsize.h \ - xstrndup.h xstrndup.c +libgnu_a_SOURCES = base64.h base64.c full-read.h full-read.c \ + full-write.h full-write.c gettext.h localcharset.h \ + localcharset.c size_max.h xalloc-die.c xsize.h xstrndup.h \ + xstrndup.c libgnu_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@ libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@ EXTRA_libgnu_a_SOURCES = alloca.c c-strtod.c cloexec.c basename.c \ dirname.c stripslash.c error.c exitfail.c creat-safer.c \ - open-safer.c fsusage.c gai_strerror.c getaddrinfo.c \ - gethostname.c getloadavg.c getopt.c getopt1.c inet_ntop.c \ - malloc.c mbchar.c memchr.c mountlist.c regcomp.c regex.c \ + open-safer.c floor.c floorf.c fsusage.c gai_strerror.c \ + getaddrinfo.c gethostname.c getloadavg.c getopt.c getopt1.c \ + inet_ntop.c malloc.c malloc.c mountlist.c regcomp.c regex.c \ regex_internal.c regexec.c safe-read.c safe-write.c snprintf.c \ - strcasecmp.c strncasecmp.c strdup.c strndup.c strnlen.c \ - dup-safer.c fd-safer.c pipe-safer.c asnprintf.c printf-args.c \ - printf-parse.c vasnprintf.c asprintf.c vasprintf.c vsnprintf.c \ - xmalloc.c + strdup.c strerror.c strndup.c strnlen.c dup-safer.c fd-safer.c \ + pipe-safer.c asnprintf.c printf-args.c printf-parse.c \ + vasnprintf.c asprintf.c vasprintf.c vsnprintf.c xmalloc.c + +# Use this preprocessor expression to decide whether #include_next works. +# Do not rely on a 'configure'-time test for this, since the expression +# might appear in an installed header, which is used by some other compiler. +HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER) +LINK_WARNING_H = $(top_srcdir)/build-aux/link-warning.h +charset_alias = $(DESTDIR)$(libdir)/charset.alias +charset_tmp = $(DESTDIR)$(libdir)/charset.tmp all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .sed .sin .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -482,6 +708,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asnprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asprintf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strtod.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloexec.Po@am__quote@ @@ -491,6 +718,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-safer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floor.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floorf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsusage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-read.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-write.Po@am__quote@ @@ -501,9 +730,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_ntop.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mountlist.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open-safer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe-safer.Po@am__quote@ @@ -516,13 +744,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-read.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-write.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strndup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasnprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vsnprintf.Po@am__quote@ @@ -610,6 +836,7 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) + $(mkdir_p) $(distdir)/$(top_srcdir)/build-aux @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ @@ -639,7 +866,7 @@ distdir: $(DISTFILES) check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am -all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) +all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am @@ -694,7 +921,7 @@ info-am: install-data-am: -install-exec-am: +install-exec-am: install-exec-local install-info: install-info-am @@ -720,73 +947,237 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am +uninstall-am: uninstall-info-am uninstall-local -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLIBRARIES clean-noinstLTLIBRARIES \ - ctags distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ - pdf-am ps ps-am tags uninstall uninstall-am uninstall-info-am +.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \ + clean-generic clean-libtool clean-noinstLIBRARIES \ + clean-noinstLTLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-exec install-exec-am \ + install-exec-local install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-info-am uninstall-local # We need the following in order to create when the system # doesn't have one that works with the given compiler. -alloca.h: alloca_.h +alloca.h: alloca.in.h { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - cat $(srcdir)/alloca_.h; \ + cat $(srcdir)/alloca.in.h; \ } > $@-t mv -f $@-t $@ # We need the following in order to create when the system # doesn't have one. arpa/inet.h: - test -d arpa || mkdir arpa + @MKDIR_P@ arpa rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ echo '#include '; \ } > $@-t mv $@-t $@ +# Retrieve values of the variables through 'configure' followed by +# 'make', not directly through 'configure', so that a user who +# sets some of these variables consistently on the 'make' command +# line gets correct results. +# +# One advantage of this approach, compared to the classical +# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS, +# is that it protects against the use of undefined variables. +# If, say, $(libdir) is not set in the Makefile, LIBDIR is not +# defined by this module, and code using LIBDIR gives a +# compilation error. +# +# Another advantage is that 'make' output is shorter. +# +# Listed in the same order as the GNU makefile conventions. +# The Automake-defined pkg* macros are appended, in the order +# listed in the Automake 1.10a+ documentation. +configmake.h: Makefile + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + echo '#define PREFIX "$(prefix)"'; \ + echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ + echo '#define BINDIR "$(bindir)"'; \ + echo '#define SBINDIR "$(sbindir)"'; \ + echo '#define LIBEXECDIR "$(libexecdir)"'; \ + echo '#define DATAROOTDIR "$(datarootdir)"'; \ + echo '#define DATADIR "$(datadir)"'; \ + echo '#define SYSCONFDIR "$(sysconfdir)"'; \ + echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ + echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ + echo '#define INCLUDEDIR "$(includedir)"'; \ + echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ + echo '#define DOCDIR "$(docdir)"'; \ + echo '#define INFODIR "$(infodir)"'; \ + echo '#define HTMLDIR "$(htmldir)"'; \ + echo '#define DVIDIR "$(dvidir)"'; \ + echo '#define PDFDIR "$(pdfdir)"'; \ + echo '#define PSDIR "$(psdir)"'; \ + echo '#define LIBDIR "$(libdir)"'; \ + echo '#define LISPDIR "$(lispdir)"'; \ + echo '#define LOCALEDIR "$(localedir)"'; \ + echo '#define MANDIR "$(mandir)"'; \ + echo '#define MANEXT "$(manext)"'; \ + echo '#define PKGDATADIR "$(pkgdatadir)"'; \ + echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ + echo '#define PKGLIBDIR "$(pkglibdir)"'; \ + echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ + } | sed '/""/d' > $@-t + mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +float.h: float.in.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ + < $(srcdir)/float.in.h; \ + } > $@-t + mv $@-t $@ + # We need the following in order to create when the system # doesn't have one that works with the given compiler. -getopt.h: getopt_.h +getopt.h: getopt.in.h { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - cat $(srcdir)/getopt_.h; \ + cat $(srcdir)/getopt.in.h; \ } > $@-t mv -f $@-t $@ +# We need the following in order to install a simple file in $(libdir) +# which is shared with other installed packages. We use a list of referencing +# packages so that "make uninstall" will remove the file if and only if it +# is not used by another installed package. +# On systems with glibc-2.1 or newer, the file is redundant, therefore we +# avoid installing it. + +all-local: charset.alias ref-add.sed ref-del.sed +install-exec-local: all-local + test $(GLIBC21) != no || $(mkinstalldirs) $(DESTDIR)$(libdir) + if test -f $(charset_alias); then \ + sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + else \ + if test $(GLIBC21) = no; then \ + sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + fi ; \ + fi + +uninstall-local: all-local + if test -f $(charset_alias); then \ + sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ + if grep '^# Packages using this file: $$' $(charset_tmp) \ + > /dev/null; then \ + rm -f $(charset_alias); \ + else \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ + fi; \ + rm -f $(charset_tmp); \ + fi + +charset.alias: config.charset + rm -f t-$@ $@ + $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ + mv t-$@ $@ +.sin.sed: + rm -f t-$@ $@ + sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ + mv t-$@ $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +math.h: math.in.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_MATH_H''@|$(NEXT_MATH_H)|g' \ + -e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \ + -e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \ + -e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \ + -e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \ + -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \ + -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \ + -e 's|@''GNULIB_ISFINITE''@|$(GNULIB_ISFINITE)|g' \ + -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \ + -e 's|@''GNULIB_MATHL''@|$(GNULIB_MATHL)|g' \ + -e 's|@''GNULIB_ROUND''@|$(GNULIB_ROUND)|g' \ + -e 's|@''GNULIB_ROUNDF''@|$(GNULIB_ROUNDF)|g' \ + -e 's|@''GNULIB_ROUNDL''@|$(GNULIB_ROUNDL)|g' \ + -e 's|@''GNULIB_SIGNBIT''@|$(GNULIB_SIGNBIT)|g' \ + -e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \ + -e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \ + -e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \ + -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \ + -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \ + -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \ + -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \ + -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \ + -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \ + -e 's|@''HAVE_DECL_LDEXPL''@|$(HAVE_DECL_LDEXPL)|g' \ + -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \ + -e 's|@''HAVE_DECL_SINL''@|$(HAVE_DECL_SINL)|g' \ + -e 's|@''HAVE_DECL_SQRTL''@|$(HAVE_DECL_SQRTL)|g' \ + -e 's|@''HAVE_DECL_TANL''@|$(HAVE_DECL_TANL)|g' \ + -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \ + -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \ + -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \ + -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \ + -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \ + -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \ + -e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \ + -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \ + -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \ + -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \ + -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \ + -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \ + -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \ + -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \ + -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \ + -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \ + -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + < $(srcdir)/math.in.h; \ + } > $@-t + mv $@-t $@ + # We need the following in order to create when the system # doesn't have one. -netinet/in.h: - test -d netinet || mkdir netinet +netinet/in.h: netinet_in.in.h + @MKDIR_P@ netinet rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - echo '#include '; \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \ + -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \ + < $(srcdir)/netinet_in.in.h; \ } > $@-t mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works. -stdbool.h: stdbool_.h +stdbool.h: stdbool.in.h rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool_.h; \ + sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ } > $@-t mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. -stdint.h: stdint_.h +stdint.h: stdint.in.h rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ - -e 's|@''ABSOLUTE_STDINT_H''@|$(ABSOLUTE_STDINT_H)|g' \ + -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ @@ -806,49 +1197,234 @@ stdint.h: stdint_.h -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ - < $(srcdir)/stdint_.h; \ + < $(srcdir)/stdint.in.h; \ + } > $@-t + mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +stdio.h: stdio.in.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ + -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \ + -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \ + -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \ + -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \ + -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \ + -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \ + -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \ + -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \ + -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \ + -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \ + -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \ + -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \ + -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \ + -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ + -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ + -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ + -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ + -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ + -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ + -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ + -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ + -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ + -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ + -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ + -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ + -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ + -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ + -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ + -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ + -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ + -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ + -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ + -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ + -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ + -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ + -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + < $(srcdir)/stdio.in.h; \ + } > $@-t + mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +stdlib.h: stdlib.in.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ + -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \ + -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \ + -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \ + -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \ + -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \ + -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \ + -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \ + -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \ + -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \ + -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \ + -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ + -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \ + -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ + -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \ + -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \ + -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \ + -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ + -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ + -e 's|@''VOID_UNSETENV''@|$(VOID_UNSETENV)|g' \ + -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + < $(srcdir)/stdlib.in.h; \ + } > $@-t + mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +string.h: string.in.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ + -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \ + -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \ + -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \ + -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \ + -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \ + -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \ + -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \ + -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \ + -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \ + -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \ + -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \ + -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \ + -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \ + -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \ + -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \ + -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \ + -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \ + -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \ + -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \ + -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \ + -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \ + -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \ + -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \ + -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \ + -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \ + -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \ + -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \ + -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \ + -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \ + -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \ + -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ + -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ + -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ + -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ + -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ + -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ + -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ + -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \ + -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ + -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ + -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ + -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ + -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ + -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ + -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \ + -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ + -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ + -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ + -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ + -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ + -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ + -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + < $(srcdir)/string.in.h; \ } > $@-t mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. -sys/socket.h: socket_.h +sys/socket.h: sys_socket.in.h @MKDIR_P@ sys { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - cat $(srcdir)/socket_.h; \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ + -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ + -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ + -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ + < $(srcdir)/sys_socket.in.h; \ } > $@-t mv -f $@-t $@ # We need the following in order to create an empty placeholder for # when the system doesn't have one. -unistd.h: unistd_.h +unistd.h: unistd.in.h rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's|@''ABSOLUTE_UNISTD_H''@|$(ABSOLUTE_UNISTD_H)|g' \ - < $(srcdir)/unistd_.h; \ + sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ + -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ + -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \ + -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \ + -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \ + -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \ + -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \ + -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \ + -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \ + -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \ + -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \ + -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \ + -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \ + -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ + -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ + -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ + -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ + -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ + -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ + -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ + -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ + -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ + -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \ + -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ + -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ + -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ + -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ + < $(srcdir)/unistd.in.h; \ } > $@-t mv $@-t $@ # We need the following in order to create when the system # version does not work standalone. -wchar.h: wchar_.h +wchar.h: wchar.in.h rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's|@''ABSOLUTE_WCHAR_H''@|$(ABSOLUTE_WCHAR_H)|g' \ - < $(srcdir)/wchar_.h; \ + sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ + -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ + -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \ + -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ + -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ + -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + < $(srcdir)/wchar.in.h; \ } > $@-t mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. -wctype.h: wctype_.h +wctype.h: wctype.in.h rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ - -e 's|@''ABSOLUTE_WCTYPE_H''@|$(ABSOLUTE_WCTYPE_H)|g' \ - -e 's/@''HAVE_WCTYPE_CTMP_BUG''@/$(HAVE_WCTYPE_CTMP_BUG)/g' \ + -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \ + -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ + -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ - < $(srcdir)/wctype_.h; \ + < $(srcdir)/wctype.in.h; \ } > $@-t mv $@-t $@ @@ -857,7 +1433,8 @@ mostlyclean-local: mostlyclean-generic if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ - done + done; \ + : # 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: diff --git a/gl/alloca.c b/gl/alloca.c index 3a1f4e2..ff1cb7e 100644 --- a/gl/alloca.c +++ b/gl/alloca.c @@ -486,4 +486,4 @@ i00afunc (long address) # endif /* CRAY */ # endif /* no alloca */ -#endif /* not GCC version 2 */ +#endif /* not GCC version 3 */ diff --git a/gl/alloca_.h b/gl/alloca.in.h similarity index 88% rename from gl/alloca_.h rename to gl/alloca.in.h index dd0b3e9..8278288 100644 --- a/gl/alloca_.h +++ b/gl/alloca.in.h @@ -1,11 +1,11 @@ /* Memory allocation on the stack. - Copyright (C) 1995, 1999, 2001, 2002, 2003, 2004, 2006 Free Software + Copyright (C) 1995, 1999, 2001-2004, 2006-2007 Free Software Foundation, Inc. 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, or (at your option) + by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -20,8 +20,8 @@ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H means there is a real alloca function. */ -#ifndef _GNULIB_ALLOCA_H -# define _GNULIB_ALLOCA_H +#ifndef _GL_ALLOCA_H +#define _GL_ALLOCA_H /* alloca (N) returns a pointer to N bytes of memory allocated on the stack, which will last until the function returns. @@ -51,4 +51,4 @@ void *alloca (size_t); # endif #endif -#endif /* _GNULIB_ALLOCA_H */ +#endif /* _GL_ALLOCA_H */ diff --git a/gl/asnprintf.c b/gl/asnprintf.c index 26c3988..bf2abf3 100644 --- a/gl/asnprintf.c +++ b/gl/asnprintf.c @@ -3,7 +3,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, diff --git a/gl/asprintf.c b/gl/asprintf.c index 29ac6cf..0bbecf8 100644 --- a/gl/asprintf.c +++ b/gl/asprintf.c @@ -1,9 +1,9 @@ /* Formatted output to strings. - Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -18,7 +18,11 @@ #include /* Specification. */ -#include "vasprintf.h" +#ifdef IN_LIBASPRINTF +# include "vasprintf.h" +#else +# include +#endif #include diff --git a/gl/base64.c b/gl/base64.c new file mode 100644 index 0000000..e67075d --- /dev/null +++ b/gl/base64.c @@ -0,0 +1,425 @@ +/* base64.c -- Encode binary data using printable characters. + Copyright (C) 1999, 2000, 2001, 2004, 2005, 2006 Free Software + Foundation, Inc. + + 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Written by Simon Josefsson. Partially adapted from GNU MailUtils + * (mailbox/filter_trans.c, as of 2004-11-28). Improved by review + * from Paul Eggert, Bruno Haible, and Stepan Kasal. + * + * See also RFC 3548 . + * + * Be careful with error checking. Here is how you would typically + * use these functions: + * + * bool ok = base64_decode_alloc (in, inlen, &out, &outlen); + * if (!ok) + * FAIL: input was not valid base64 + * if (out == NULL) + * FAIL: memory allocation error + * OK: data in OUT/OUTLEN + * + * size_t outlen = base64_encode_alloc (in, inlen, &out); + * if (out == NULL && outlen == 0 && inlen != 0) + * FAIL: input too long + * if (out == NULL) + * FAIL: memory allocation error + * OK: data in OUT/OUTLEN. + * + */ + +#include + +/* Get prototype. */ +#include "base64.h" + +/* Get malloc. */ +#include + +/* Get UCHAR_MAX. */ +#include + +/* C89 compliant way to cast 'char' to 'unsigned char'. */ +static inline unsigned char +to_uchar (char ch) +{ + return ch; +} + +/* Base64 encode IN array of size INLEN into OUT array of size OUTLEN. + If OUTLEN is less than BASE64_LENGTH(INLEN), write as many bytes as + possible. If OUTLEN is larger than BASE64_LENGTH(INLEN), also zero + terminate the output buffer. */ +void +base64_encode (const char *restrict in, size_t inlen, + char *restrict out, size_t outlen) +{ + static const char b64str[64] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + while (inlen && outlen) + { + *out++ = b64str[(to_uchar (in[0]) >> 2) & 0x3f]; + if (!--outlen) + break; + *out++ = b64str[((to_uchar (in[0]) << 4) + + (--inlen ? to_uchar (in[1]) >> 4 : 0)) + & 0x3f]; + if (!--outlen) + break; + *out++ = + (inlen + ? b64str[((to_uchar (in[1]) << 2) + + (--inlen ? to_uchar (in[2]) >> 6 : 0)) + & 0x3f] + : '='); + if (!--outlen) + break; + *out++ = inlen ? b64str[to_uchar (in[2]) & 0x3f] : '='; + if (!--outlen) + break; + if (inlen) + inlen--; + if (inlen) + in += 3; + } + + if (outlen) + *out = '\0'; +} + +/* Allocate a buffer and store zero terminated base64 encoded data + from array IN of size INLEN, returning BASE64_LENGTH(INLEN), i.e., + the length of the encoded data, excluding the terminating zero. On + return, the OUT variable will hold a pointer to newly allocated + memory that must be deallocated by the caller. If output string + length would overflow, 0 is returned and OUT is set to NULL. If + memory allocation failed, OUT is set to NULL, and the return value + indicates length of the requested memory block, i.e., + BASE64_LENGTH(inlen) + 1. */ +size_t +base64_encode_alloc (const char *in, size_t inlen, char **out) +{ + size_t outlen = 1 + BASE64_LENGTH (inlen); + + /* Check for overflow in outlen computation. + * + * If there is no overflow, outlen >= inlen. + * + * If the operation (inlen + 2) overflows then it yields at most +1, so + * outlen is 0. + * + * If the multiplication overflows, we lose at least half of the + * correct value, so the result is < ((inlen + 2) / 3) * 2, which is + * less than (inlen + 2) * 0.66667, which is less than inlen as soon as + * (inlen > 4). + */ + if (inlen > outlen) + { + *out = NULL; + return 0; + } + + *out = malloc (outlen); + if (!*out) + return outlen; + + base64_encode (in, inlen, *out, outlen); + + return outlen - 1; +} + +/* With this approach this file works independent of the charset used + (think EBCDIC). However, it does assume that the characters in the + Base64 alphabet (A-Za-z0-9+/) are encoded in 0..255. POSIX + 1003.1-2001 require that char and unsigned char are 8-bit + quantities, though, taking care of that problem. But this may be a + potential problem on non-POSIX C99 platforms. + + IBM C V6 for AIX mishandles "#define B64(x) ...'x'...", so use "_" + as the formal parameter rather than "x". */ +#define B64(_) \ + ((_) == 'A' ? 0 \ + : (_) == 'B' ? 1 \ + : (_) == 'C' ? 2 \ + : (_) == 'D' ? 3 \ + : (_) == 'E' ? 4 \ + : (_) == 'F' ? 5 \ + : (_) == 'G' ? 6 \ + : (_) == 'H' ? 7 \ + : (_) == 'I' ? 8 \ + : (_) == 'J' ? 9 \ + : (_) == 'K' ? 10 \ + : (_) == 'L' ? 11 \ + : (_) == 'M' ? 12 \ + : (_) == 'N' ? 13 \ + : (_) == 'O' ? 14 \ + : (_) == 'P' ? 15 \ + : (_) == 'Q' ? 16 \ + : (_) == 'R' ? 17 \ + : (_) == 'S' ? 18 \ + : (_) == 'T' ? 19 \ + : (_) == 'U' ? 20 \ + : (_) == 'V' ? 21 \ + : (_) == 'W' ? 22 \ + : (_) == 'X' ? 23 \ + : (_) == 'Y' ? 24 \ + : (_) == 'Z' ? 25 \ + : (_) == 'a' ? 26 \ + : (_) == 'b' ? 27 \ + : (_) == 'c' ? 28 \ + : (_) == 'd' ? 29 \ + : (_) == 'e' ? 30 \ + : (_) == 'f' ? 31 \ + : (_) == 'g' ? 32 \ + : (_) == 'h' ? 33 \ + : (_) == 'i' ? 34 \ + : (_) == 'j' ? 35 \ + : (_) == 'k' ? 36 \ + : (_) == 'l' ? 37 \ + : (_) == 'm' ? 38 \ + : (_) == 'n' ? 39 \ + : (_) == 'o' ? 40 \ + : (_) == 'p' ? 41 \ + : (_) == 'q' ? 42 \ + : (_) == 'r' ? 43 \ + : (_) == 's' ? 44 \ + : (_) == 't' ? 45 \ + : (_) == 'u' ? 46 \ + : (_) == 'v' ? 47 \ + : (_) == 'w' ? 48 \ + : (_) == 'x' ? 49 \ + : (_) == 'y' ? 50 \ + : (_) == 'z' ? 51 \ + : (_) == '0' ? 52 \ + : (_) == '1' ? 53 \ + : (_) == '2' ? 54 \ + : (_) == '3' ? 55 \ + : (_) == '4' ? 56 \ + : (_) == '5' ? 57 \ + : (_) == '6' ? 58 \ + : (_) == '7' ? 59 \ + : (_) == '8' ? 60 \ + : (_) == '9' ? 61 \ + : (_) == '+' ? 62 \ + : (_) == '/' ? 63 \ + : -1) + +static const signed char b64[0x100] = { + B64 (0), B64 (1), B64 (2), B64 (3), + B64 (4), B64 (5), B64 (6), B64 (7), + B64 (8), B64 (9), B64 (10), B64 (11), + B64 (12), B64 (13), B64 (14), B64 (15), + B64 (16), B64 (17), B64 (18), B64 (19), + B64 (20), B64 (21), B64 (22), B64 (23), + B64 (24), B64 (25), B64 (26), B64 (27), + B64 (28), B64 (29), B64 (30), B64 (31), + B64 (32), B64 (33), B64 (34), B64 (35), + B64 (36), B64 (37), B64 (38), B64 (39), + B64 (40), B64 (41), B64 (42), B64 (43), + B64 (44), B64 (45), B64 (46), B64 (47), + B64 (48), B64 (49), B64 (50), B64 (51), + B64 (52), B64 (53), B64 (54), B64 (55), + B64 (56), B64 (57), B64 (58), B64 (59), + B64 (60), B64 (61), B64 (62), B64 (63), + B64 (64), B64 (65), B64 (66), B64 (67), + B64 (68), B64 (69), B64 (70), B64 (71), + B64 (72), B64 (73), B64 (74), B64 (75), + B64 (76), B64 (77), B64 (78), B64 (79), + B64 (80), B64 (81), B64 (82), B64 (83), + B64 (84), B64 (85), B64 (86), B64 (87), + B64 (88), B64 (89), B64 (90), B64 (91), + B64 (92), B64 (93), B64 (94), B64 (95), + B64 (96), B64 (97), B64 (98), B64 (99), + B64 (100), B64 (101), B64 (102), B64 (103), + B64 (104), B64 (105), B64 (106), B64 (107), + B64 (108), B64 (109), B64 (110), B64 (111), + B64 (112), B64 (113), B64 (114), B64 (115), + B64 (116), B64 (117), B64 (118), B64 (119), + B64 (120), B64 (121), B64 (122), B64 (123), + B64 (124), B64 (125), B64 (126), B64 (127), + B64 (128), B64 (129), B64 (130), B64 (131), + B64 (132), B64 (133), B64 (134), B64 (135), + B64 (136), B64 (137), B64 (138), B64 (139), + B64 (140), B64 (141), B64 (142), B64 (143), + B64 (144), B64 (145), B64 (146), B64 (147), + B64 (148), B64 (149), B64 (150), B64 (151), + B64 (152), B64 (153), B64 (154), B64 (155), + B64 (156), B64 (157), B64 (158), B64 (159), + B64 (160), B64 (161), B64 (162), B64 (163), + B64 (164), B64 (165), B64 (166), B64 (167), + B64 (168), B64 (169), B64 (170), B64 (171), + B64 (172), B64 (173), B64 (174), B64 (175), + B64 (176), B64 (177), B64 (178), B64 (179), + B64 (180), B64 (181), B64 (182), B64 (183), + B64 (184), B64 (185), B64 (186), B64 (187), + B64 (188), B64 (189), B64 (190), B64 (191), + B64 (192), B64 (193), B64 (194), B64 (195), + B64 (196), B64 (197), B64 (198), B64 (199), + B64 (200), B64 (201), B64 (202), B64 (203), + B64 (204), B64 (205), B64 (206), B64 (207), + B64 (208), B64 (209), B64 (210), B64 (211), + B64 (212), B64 (213), B64 (214), B64 (215), + B64 (216), B64 (217), B64 (218), B64 (219), + B64 (220), B64 (221), B64 (222), B64 (223), + B64 (224), B64 (225), B64 (226), B64 (227), + B64 (228), B64 (229), B64 (230), B64 (231), + B64 (232), B64 (233), B64 (234), B64 (235), + B64 (236), B64 (237), B64 (238), B64 (239), + B64 (240), B64 (241), B64 (242), B64 (243), + B64 (244), B64 (245), B64 (246), B64 (247), + B64 (248), B64 (249), B64 (250), B64 (251), + B64 (252), B64 (253), B64 (254), B64 (255) +}; + +#if UCHAR_MAX == 255 +# define uchar_in_range(c) true +#else +# define uchar_in_range(c) ((c) <= 255) +#endif + +/* Return true if CH is a character from the Base64 alphabet, and + false otherwise. Note that '=' is padding and not considered to be + part of the alphabet. */ +bool +isbase64 (char ch) +{ + return uchar_in_range (to_uchar (ch)) && 0 <= b64[to_uchar (ch)]; +} + +/* Decode base64 encoded input array IN of length INLEN to output + array OUT that can hold *OUTLEN bytes. Return true if decoding was + successful, i.e. if the input was valid base64 data, false + otherwise. If *OUTLEN is too small, as many bytes as possible will + be written to OUT. On return, *OUTLEN holds the length of decoded + bytes in OUT. Note that as soon as any non-alphabet characters are + encountered, decoding is stopped and false is returned. This means + that, when applicable, you must remove any line terminators that is + part of the data stream before calling this function. */ +bool +base64_decode (const char *restrict in, size_t inlen, + char *restrict out, size_t *outlen) +{ + size_t outleft = *outlen; + + while (inlen >= 2) + { + if (!isbase64 (in[0]) || !isbase64 (in[1])) + break; + + if (outleft) + { + *out++ = ((b64[to_uchar (in[0])] << 2) + | (b64[to_uchar (in[1])] >> 4)); + outleft--; + } + + if (inlen == 2) + break; + + if (in[2] == '=') + { + if (inlen != 4) + break; + + if (in[3] != '=') + break; + + } + else + { + if (!isbase64 (in[2])) + break; + + if (outleft) + { + *out++ = (((b64[to_uchar (in[1])] << 4) & 0xf0) + | (b64[to_uchar (in[2])] >> 2)); + outleft--; + } + + if (inlen == 3) + break; + + if (in[3] == '=') + { + if (inlen != 4) + break; + } + else + { + if (!isbase64 (in[3])) + break; + + if (outleft) + { + *out++ = (((b64[to_uchar (in[2])] << 6) & 0xc0) + | b64[to_uchar (in[3])]); + outleft--; + } + } + } + + in += 4; + inlen -= 4; + } + + *outlen -= outleft; + + if (inlen != 0) + return false; + + return true; +} + +/* Allocate an output buffer in *OUT, and decode the base64 encoded + data stored in IN of size INLEN to the *OUT buffer. On return, the + size of the decoded data is stored in *OUTLEN. OUTLEN may be NULL, + if the caller is not interested in the decoded length. *OUT may be + NULL to indicate an out of memory error, in which case *OUTLEN + contains the size of the memory block needed. The function returns + true on successful decoding and memory allocation errors. (Use the + *OUT and *OUTLEN parameters to differentiate between successful + decoding and memory error.) The function returns false if the + input was invalid, in which case *OUT is NULL and *OUTLEN is + undefined. */ +bool +base64_decode_alloc (const char *in, size_t inlen, char **out, + size_t *outlen) +{ + /* This may allocate a few bytes too much, depending on input, + but it's not worth the extra CPU time to compute the exact amount. + The exact amount is 3 * inlen / 4, minus 1 if the input ends + with "=" and minus another 1 if the input ends with "==". + Dividing before multiplying avoids the possibility of overflow. */ + size_t needlen = 3 * (inlen / 4) + 2; + + *out = malloc (needlen); + if (!*out) + return true; + + if (!base64_decode (in, inlen, *out, &needlen)) + { + free (*out); + *out = NULL; + return false; + } + + if (outlen) + *outlen = needlen; + + return true; +} diff --git a/gl/base64.h b/gl/base64.h new file mode 100644 index 0000000..1f9b203 --- /dev/null +++ b/gl/base64.h @@ -0,0 +1,45 @@ +/* base64.h -- Encode binary data using printable characters. + Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. + Written by Simon Josefsson. + + 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#ifndef BASE64_H +# define BASE64_H + +/* Get size_t. */ +# include + +/* Get bool. */ +# include + +/* This uses that the expression (n+(k-1))/k means the smallest + integer >= n/k, i.e., the ceiling of n/k. */ +# define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4) + +extern bool isbase64 (char ch); + +extern void base64_encode (const char *restrict in, size_t inlen, + char *restrict out, size_t outlen); + +extern size_t base64_encode_alloc (const char *in, size_t inlen, char **out); + +extern bool base64_decode (const char *restrict in, size_t inlen, + char *restrict out, size_t *outlen); + +extern bool base64_decode_alloc (const char *in, size_t inlen, + char **out, size_t *outlen); + +#endif /* BASE64_H */ diff --git a/gl/basename.c b/gl/basename.c index fbe17ff..426ed40 100644 --- a/gl/basename.c +++ b/gl/basename.c @@ -3,10 +3,10 @@ Copyright (C) 1990, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,8 +14,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/c-strtod.c b/gl/c-strtod.c index 2234ed0..95624cc 100644 --- a/gl/c-strtod.c +++ b/gl/c-strtod.c @@ -2,10 +2,10 @@ Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Paul Eggert. */ diff --git a/gl/cloexec.c b/gl/cloexec.c index 6480006..ff8105b 100644 --- a/gl/cloexec.c +++ b/gl/cloexec.c @@ -2,10 +2,10 @@ Copyright (C) 1991, 2004, 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + along with this program. If not, see . The code is taken from glibc/manual/llio.texi */ diff --git a/gl/config.charset b/gl/config.charset new file mode 100755 index 0000000..c233788 --- /dev/null +++ b/gl/config.charset @@ -0,0 +1,649 @@ +#! /bin/sh +# Output a system dependent table of character encoding aliases. +# +# Copyright (C) 2000-2004, 2006-2007 Free Software Foundation, Inc. +# +# 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# The table consists of lines of the form +# ALIAS CANONICAL +# +# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". +# ALIAS is compared in a case sensitive way. +# +# CANONICAL is the GNU canonical name for this character encoding. +# It must be an encoding supported by libiconv. Support by GNU libc is +# also desirable. CANONICAL is case insensitive. Usually an upper case +# MIME charset name is preferred. +# The current list of GNU canonical charset names is as follows. +# +# name MIME? used by which systems +# ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin +# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin +# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin +# ISO-8859-3 Y glibc solaris +# ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin +# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin +# ISO-8859-6 Y glibc aix hpux solaris +# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin +# ISO-8859-8 Y glibc aix hpux osf solaris +# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin +# ISO-8859-13 glibc netbsd openbsd darwin +# ISO-8859-14 glibc +# ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin +# KOI8-R Y glibc solaris freebsd netbsd openbsd darwin +# KOI8-U Y glibc freebsd netbsd openbsd darwin +# KOI8-T glibc +# CP437 dos +# CP775 dos +# CP850 aix osf dos +# CP852 dos +# CP855 dos +# CP856 aix +# CP857 dos +# CP861 dos +# CP862 dos +# CP864 dos +# CP865 dos +# CP866 freebsd netbsd openbsd darwin dos +# CP869 dos +# CP874 woe32 dos +# CP922 aix +# CP932 aix woe32 dos +# CP943 aix +# CP949 osf woe32 dos +# CP950 woe32 dos +# CP1046 aix +# CP1124 aix +# CP1125 dos +# CP1129 aix +# CP1250 woe32 +# CP1251 glibc solaris netbsd openbsd darwin woe32 +# CP1252 aix woe32 +# CP1253 woe32 +# CP1254 woe32 +# CP1255 glibc woe32 +# CP1256 woe32 +# CP1257 woe32 +# GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin +# EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin +# EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin +# EUC-TW glibc aix hpux irix osf solaris netbsd +# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin +# BIG5-HKSCS glibc solaris +# GBK glibc aix osf solaris woe32 dos +# GB18030 glibc solaris netbsd +# SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin +# JOHAB glibc solaris woe32 +# TIS-620 glibc aix hpux osf solaris +# VISCII Y glibc +# TCVN5712-1 glibc +# GEORGIAN-PS glibc +# HP-ROMAN8 hpux +# HP-ARABIC8 hpux +# HP-GREEK8 hpux +# HP-HEBREW8 hpux +# HP-TURKISH8 hpux +# HP-KANA8 hpux +# DEC-KANJI osf +# DEC-HANYU osf +# UTF-8 Y glibc aix hpux osf solaris netbsd darwin +# +# Note: Names which are not marked as being a MIME name should not be used in +# Internet protocols for information interchange (mail, news, etc.). +# +# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications +# must understand both names and treat them as equivalent. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + +host="$1" +os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` +echo "# This file contains a table of character encoding aliases," +echo "# suitable for operating system '${os}'." +echo "# It was automatically generated from config.charset." +# List of references, updated during installation: +echo "# Packages using this file: " +case "$os" in + linux-gnulibc1*) + # Linux libc5 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + echo "C ASCII" + echo "POSIX ASCII" + for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \ + en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \ + en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \ + es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \ + et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \ + fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \ + it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \ + sv_FI sv_SE; do + echo "$l ISO-8859-1" + echo "$l.iso-8859-1 ISO-8859-1" + echo "$l.iso-8859-15 ISO-8859-15" + echo "$l.iso-8859-15@euro ISO-8859-15" + echo "$l@euro ISO-8859-15" + echo "$l.cp-437 CP437" + echo "$l.cp-850 CP850" + echo "$l.cp-1252 CP1252" + echo "$l.cp-1252@euro CP1252" + #echo "$l.atari-st ATARI-ST" # not a commonly used encoding + echo "$l.utf-8 UTF-8" + echo "$l.utf-8@euro UTF-8" + done + for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \ + sl_SI sr sr_CS sr_YU; do + echo "$l ISO-8859-2" + echo "$l.iso-8859-2 ISO-8859-2" + echo "$l.cp-852 CP852" + echo "$l.cp-1250 CP1250" + echo "$l.utf-8 UTF-8" + done + for l in mk mk_MK ru ru_RU; do + echo "$l ISO-8859-5" + echo "$l.iso-8859-5 ISO-8859-5" + echo "$l.koi8-r KOI8-R" + echo "$l.cp-866 CP866" + echo "$l.cp-1251 CP1251" + echo "$l.utf-8 UTF-8" + done + for l in ar ar_SA; do + echo "$l ISO-8859-6" + echo "$l.iso-8859-6 ISO-8859-6" + echo "$l.cp-864 CP864" + #echo "$l.cp-868 CP868" # not a commonly used encoding + echo "$l.cp-1256 CP1256" + echo "$l.utf-8 UTF-8" + done + for l in el el_GR gr gr_GR; do + echo "$l ISO-8859-7" + echo "$l.iso-8859-7 ISO-8859-7" + echo "$l.cp-869 CP869" + echo "$l.cp-1253 CP1253" + echo "$l.cp-1253@euro CP1253" + echo "$l.utf-8 UTF-8" + echo "$l.utf-8@euro UTF-8" + done + for l in he he_IL iw iw_IL; do + echo "$l ISO-8859-8" + echo "$l.iso-8859-8 ISO-8859-8" + echo "$l.cp-862 CP862" + echo "$l.cp-1255 CP1255" + echo "$l.utf-8 UTF-8" + done + for l in tr tr_TR; do + echo "$l ISO-8859-9" + echo "$l.iso-8859-9 ISO-8859-9" + echo "$l.cp-857 CP857" + echo "$l.cp-1254 CP1254" + echo "$l.utf-8 UTF-8" + done + for l in lt lt_LT lv lv_LV; do + #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name + echo "$l ISO-8859-13" + done + for l in ru_UA uk uk_UA; do + echo "$l KOI8-U" + done + for l in zh zh_CN; do + #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name + echo "$l GB2312" + done + for l in ja ja_JP ja_JP.EUC; do + echo "$l EUC-JP" + done + for l in ko ko_KR; do + echo "$l EUC-KR" + done + for l in th th_TH; do + echo "$l TIS-620" + done + for l in fa fa_IR; do + #echo "$l ISIRI-3342" # a broken encoding + echo "$l.utf-8 UTF-8" + done + ;; + linux* | *-gnu*) + # With glibc-2.1 or newer, we don't need any canonicalization, + # because glibc has iconv and both glibc and libiconv support all + # GNU canonical names directly. Therefore, the Makefile does not + # need to install the alias file at all. + # The following applies only to glibc-2.0.x and older libcs. + echo "ISO_646.IRV:1983 ASCII" + ;; + aix*) + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-6 ISO-8859-6" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-8 ISO-8859-8" + echo "ISO8859-9 ISO-8859-9" + echo "ISO8859-15 ISO-8859-15" + echo "IBM-850 CP850" + echo "IBM-856 CP856" + echo "IBM-921 ISO-8859-13" + echo "IBM-922 CP922" + echo "IBM-932 CP932" + echo "IBM-943 CP943" + echo "IBM-1046 CP1046" + echo "IBM-1124 CP1124" + echo "IBM-1129 CP1129" + echo "IBM-1252 CP1252" + echo "IBM-eucCN GB2312" + echo "IBM-eucJP EUC-JP" + echo "IBM-eucKR EUC-KR" + echo "IBM-eucTW EUC-TW" + echo "big5 BIG5" + echo "GBK GBK" + echo "TIS-620 TIS-620" + echo "UTF-8 UTF-8" + ;; + hpux*) + echo "iso88591 ISO-8859-1" + echo "iso88592 ISO-8859-2" + echo "iso88595 ISO-8859-5" + echo "iso88596 ISO-8859-6" + echo "iso88597 ISO-8859-7" + echo "iso88598 ISO-8859-8" + echo "iso88599 ISO-8859-9" + echo "iso885915 ISO-8859-15" + echo "roman8 HP-ROMAN8" + echo "arabic8 HP-ARABIC8" + echo "greek8 HP-GREEK8" + echo "hebrew8 HP-HEBREW8" + echo "turkish8 HP-TURKISH8" + echo "kana8 HP-KANA8" + echo "tis620 TIS-620" + echo "big5 BIG5" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + echo "hp15CN GB2312" + #echo "ccdc ?" # what is this? + echo "SJIS SHIFT_JIS" + echo "utf8 UTF-8" + ;; + irix*) + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-9 ISO-8859-9" + echo "eucCN GB2312" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + ;; + osf*) + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-8 ISO-8859-8" + echo "ISO8859-9 ISO-8859-9" + echo "ISO8859-15 ISO-8859-15" + echo "cp850 CP850" + echo "big5 BIG5" + echo "dechanyu DEC-HANYU" + echo "dechanzi GB2312" + echo "deckanji DEC-KANJI" + echo "deckorean EUC-KR" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + echo "GBK GBK" + echo "KSC5601 CP949" + echo "sdeckanji EUC-JP" + echo "SJIS SHIFT_JIS" + echo "TACTIS TIS-620" + echo "UTF-8 UTF-8" + ;; + solaris*) + echo "646 ASCII" + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-3 ISO-8859-3" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-6 ISO-8859-6" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-8 ISO-8859-8" + echo "ISO8859-9 ISO-8859-9" + echo "ISO8859-15 ISO-8859-15" + echo "koi8-r KOI8-R" + echo "ansi-1251 CP1251" + echo "BIG5 BIG5" + echo "Big5-HKSCS BIG5-HKSCS" + echo "gb2312 GB2312" + echo "GBK GBK" + echo "GB18030 GB18030" + echo "cns11643 EUC-TW" + echo "5601 EUC-KR" + echo "ko_KR.johap92 JOHAB" + echo "eucJP EUC-JP" + echo "PCK SHIFT_JIS" + echo "TIS620.2533 TIS-620" + #echo "sun_eu_greek ?" # what is this? + echo "UTF-8 UTF-8" + ;; + freebsd* | os2*) + # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just + # reuse FreeBSD's locale data for OS/2. + echo "C ASCII" + echo "US-ASCII ASCII" + for l in la_LN lt_LN; do + echo "$l.ASCII ASCII" + done + for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ + fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ + lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do + echo "$l.ISO_8859-1 ISO-8859-1" + echo "$l.DIS_8859-15 ISO-8859-15" + done + for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do + echo "$l.ISO_8859-2 ISO-8859-2" + done + for l in la_LN lt_LT; do + echo "$l.ISO_8859-4 ISO-8859-4" + done + for l in ru_RU ru_SU; do + echo "$l.KOI8-R KOI8-R" + echo "$l.ISO_8859-5 ISO-8859-5" + echo "$l.CP866 CP866" + done + echo "uk_UA.KOI8-U KOI8-U" + echo "zh_TW.BIG5 BIG5" + echo "zh_TW.Big5 BIG5" + echo "zh_CN.EUC GB2312" + echo "ja_JP.EUC EUC-JP" + echo "ja_JP.SJIS SHIFT_JIS" + echo "ja_JP.Shift_JIS SHIFT_JIS" + echo "ko_KR.EUC EUC-KR" + ;; + netbsd*) + echo "646 ASCII" + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-13 ISO-8859-13" + echo "ISO8859-15 ISO-8859-15" + echo "eucCN GB2312" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + echo "BIG5 BIG5" + echo "SJIS SHIFT_JIS" + ;; + openbsd*) + echo "646 ASCII" + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-13 ISO-8859-13" + echo "ISO8859-15 ISO-8859-15" + ;; + darwin[56]*) + # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + echo "C ASCII" + for l in en_AU en_CA en_GB en_US la_LN; do + echo "$l.US-ASCII ASCII" + done + for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ + fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \ + nl_NL no_NO pt_PT sv_SE; do + echo "$l ISO-8859-1" + echo "$l.ISO8859-1 ISO-8859-1" + echo "$l.ISO8859-15 ISO-8859-15" + done + for l in la_LN; do + echo "$l.ISO8859-1 ISO-8859-1" + echo "$l.ISO8859-15 ISO-8859-15" + done + for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do + echo "$l.ISO8859-2 ISO-8859-2" + done + for l in la_LN lt_LT; do + echo "$l.ISO8859-4 ISO-8859-4" + done + for l in ru_RU; do + echo "$l.KOI8-R KOI8-R" + echo "$l.ISO8859-5 ISO-8859-5" + echo "$l.CP866 CP866" + done + for l in bg_BG; do + echo "$l.CP1251 CP1251" + done + echo "uk_UA.KOI8-U KOI8-U" + echo "zh_TW.BIG5 BIG5" + echo "zh_TW.Big5 BIG5" + echo "zh_CN.EUC GB2312" + echo "ja_JP.EUC EUC-JP" + echo "ja_JP.SJIS SHIFT_JIS" + echo "ko_KR.EUC EUC-KR" + ;; + darwin*) + # Darwin 7.5 has nl_langinfo(CODESET), but it is useless: + # - It returns the empty string when LANG is set to a locale of the + # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 + # LC_CTYPE file. + # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by + # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. + # - The documentation says: + # "... all code that calls BSD system routines should ensure + # that the const *char parameters of these routines are in UTF-8 + # encoding. All BSD system functions expect their string + # parameters to be in UTF-8 encoding and nothing else." + # It also says + # "An additional caveat is that string parameters for files, + # paths, and other file-system entities must be in canonical + # UTF-8. In a canonical UTF-8 Unicode string, all decomposable + # characters are decomposed ..." + # but this is not true: You can pass non-decomposed UTF-8 strings + # to file system functions, and it is the OS which will convert + # them to decomposed UTF-8 before accessing the file system. + # - The Apple Terminal application displays UTF-8 by default. + # - However, other applications are free to use different encodings: + # - xterm uses ISO-8859-1 by default. + # - TextEdit uses MacRoman by default. + # We prefer UTF-8 over decomposed UTF-8-MAC because one should + # minimize the use of decomposed Unicode. Unfortunately, through the + # Darwin file system, decomposed UTF-8 strings are leaked into user + # space nevertheless. + echo "* UTF-8" + ;; + beos*) + # BeOS has a single locale, and it has UTF-8 encoding. + echo "* UTF-8" + ;; + msdosdjgpp*) + # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + echo "#" + echo "# The encodings given here may not all be correct." + echo "# If you find that the encoding given for your language and" + echo "# country is not the one your DOS machine actually uses, just" + echo "# correct it in this file, and send a mail to" + echo "# Juan Manuel Guerrero " + echo "# and Bruno Haible ." + echo "#" + echo "C ASCII" + # ISO-8859-1 languages + echo "ca CP850" + echo "ca_ES CP850" + echo "da CP865" # not CP850 ?? + echo "da_DK CP865" # not CP850 ?? + echo "de CP850" + echo "de_AT CP850" + echo "de_CH CP850" + echo "de_DE CP850" + echo "en CP850" + echo "en_AU CP850" # not CP437 ?? + echo "en_CA CP850" + echo "en_GB CP850" + echo "en_NZ CP437" + echo "en_US CP437" + echo "en_ZA CP850" # not CP437 ?? + echo "es CP850" + echo "es_AR CP850" + echo "es_BO CP850" + echo "es_CL CP850" + echo "es_CO CP850" + echo "es_CR CP850" + echo "es_CU CP850" + echo "es_DO CP850" + echo "es_EC CP850" + echo "es_ES CP850" + echo "es_GT CP850" + echo "es_HN CP850" + echo "es_MX CP850" + echo "es_NI CP850" + echo "es_PA CP850" + echo "es_PY CP850" + echo "es_PE CP850" + echo "es_SV CP850" + echo "es_UY CP850" + echo "es_VE CP850" + echo "et CP850" + echo "et_EE CP850" + echo "eu CP850" + echo "eu_ES CP850" + echo "fi CP850" + echo "fi_FI CP850" + echo "fr CP850" + echo "fr_BE CP850" + echo "fr_CA CP850" + echo "fr_CH CP850" + echo "fr_FR CP850" + echo "ga CP850" + echo "ga_IE CP850" + echo "gd CP850" + echo "gd_GB CP850" + echo "gl CP850" + echo "gl_ES CP850" + echo "id CP850" # not CP437 ?? + echo "id_ID CP850" # not CP437 ?? + echo "is CP861" # not CP850 ?? + echo "is_IS CP861" # not CP850 ?? + echo "it CP850" + echo "it_CH CP850" + echo "it_IT CP850" + echo "lt CP775" + echo "lt_LT CP775" + echo "lv CP775" + echo "lv_LV CP775" + echo "nb CP865" # not CP850 ?? + echo "nb_NO CP865" # not CP850 ?? + echo "nl CP850" + echo "nl_BE CP850" + echo "nl_NL CP850" + echo "nn CP865" # not CP850 ?? + echo "nn_NO CP865" # not CP850 ?? + echo "no CP865" # not CP850 ?? + echo "no_NO CP865" # not CP850 ?? + echo "pt CP850" + echo "pt_BR CP850" + echo "pt_PT CP850" + echo "sv CP850" + echo "sv_SE CP850" + # ISO-8859-2 languages + echo "cs CP852" + echo "cs_CZ CP852" + echo "hr CP852" + echo "hr_HR CP852" + echo "hu CP852" + echo "hu_HU CP852" + echo "pl CP852" + echo "pl_PL CP852" + echo "ro CP852" + echo "ro_RO CP852" + echo "sk CP852" + echo "sk_SK CP852" + echo "sl CP852" + echo "sl_SI CP852" + echo "sq CP852" + echo "sq_AL CP852" + echo "sr CP852" # CP852 or CP866 or CP855 ?? + echo "sr_CS CP852" # CP852 or CP866 or CP855 ?? + echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? + # ISO-8859-3 languages + echo "mt CP850" + echo "mt_MT CP850" + # ISO-8859-5 languages + echo "be CP866" + echo "be_BE CP866" + echo "bg CP866" # not CP855 ?? + echo "bg_BG CP866" # not CP855 ?? + echo "mk CP866" # not CP855 ?? + echo "mk_MK CP866" # not CP855 ?? + echo "ru CP866" + echo "ru_RU CP866" + echo "uk CP1125" + echo "uk_UA CP1125" + # ISO-8859-6 languages + echo "ar CP864" + echo "ar_AE CP864" + echo "ar_DZ CP864" + echo "ar_EG CP864" + echo "ar_IQ CP864" + echo "ar_IR CP864" + echo "ar_JO CP864" + echo "ar_KW CP864" + echo "ar_MA CP864" + echo "ar_OM CP864" + echo "ar_QA CP864" + echo "ar_SA CP864" + echo "ar_SY CP864" + # ISO-8859-7 languages + echo "el CP869" + echo "el_GR CP869" + # ISO-8859-8 languages + echo "he CP862" + echo "he_IL CP862" + # ISO-8859-9 languages + echo "tr CP857" + echo "tr_TR CP857" + # Japanese + echo "ja CP932" + echo "ja_JP CP932" + # Chinese + echo "zh_CN GBK" + echo "zh_TW CP950" # not CP938 ?? + # Korean + echo "kr CP949" # not CP934 ?? + echo "kr_KR CP949" # not CP934 ?? + # Thai + echo "th CP874" + echo "th_TH CP874" + # Other + echo "eo CP850" + echo "eo_EO CP850" + ;; +esac diff --git a/gl/creat-safer.c b/gl/creat-safer.c index f4a2e59..fc314ba 100644 --- a/gl/creat-safer.c +++ b/gl/creat-safer.c @@ -2,10 +2,10 @@ Copyright (C) 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Jim Meyering. */ diff --git a/gl/dirname.c b/gl/dirname.c index 16552c6..c27e5b5 100644 --- a/gl/dirname.c +++ b/gl/dirname.c @@ -3,10 +3,10 @@ Copyright (C) 1990, 1998, 2000, 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,8 +14,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/dirname.h b/gl/dirname.h index 91e7ed3..f592350 100644 --- a/gl/dirname.h +++ b/gl/dirname.h @@ -2,10 +2,10 @@ Copyright (C) 1998, 2001, 2003-2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #ifndef DIRNAME_H_ # define DIRNAME_H_ 1 diff --git a/gl/dup-safer.c b/gl/dup-safer.c index 7b12b61..a690851 100644 --- a/gl/dup-safer.c +++ b/gl/dup-safer.c @@ -2,10 +2,10 @@ Copyright (C) 2001, 2004, 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Paul Eggert. */ diff --git a/gl/error.c b/gl/error.c index cf86343..3177bd5 100644 --- a/gl/error.c +++ b/gl/error.c @@ -1,20 +1,19 @@ /* Error handler for noninteractive utilities - Copyright (C) 1990-1998, 2000-2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1990-1998, 2000-2007 Free Software Foundation, Inc. This file is part of the GNU C Library. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by David MacKenzie . */ @@ -31,6 +30,7 @@ #if !_LIBC && ENABLE_NLS # include "gettext.h" +# define _(msgid) gettext (msgid) #endif #ifdef _LIBC diff --git a/gl/error.h b/gl/error.h index 5a5f247..6d49681 100644 --- a/gl/error.h +++ b/gl/error.h @@ -1,27 +1,26 @@ /* Declaration for error-reporting function - Copyright (C) 1995, 1996, 1997, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 2003, 2006, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _ERROR_H #define _ERROR_H 1 #ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) # define __attribute__(Spec) /* empty */ # endif /* The __-protected variants of `format' and `printf' attributes diff --git a/gl/exit.h b/gl/exit.h deleted file mode 100644 index e8f7738..0000000 --- a/gl/exit.h +++ /dev/null @@ -1,32 +0,0 @@ -/* exit() function. - Copyright (C) 1995, 2001 Free Software Foundation, Inc. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _EXIT_H -#define _EXIT_H - -/* Get exit() declaration. */ -#include - -/* Some systems do not define EXIT_*, despite otherwise supporting C89. */ -#ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -#endif -#ifndef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif - -#endif /* _EXIT_H */ diff --git a/gl/exitfail.c b/gl/exitfail.c index 97abc67..6d1fe4a 100644 --- a/gl/exitfail.c +++ b/gl/exitfail.c @@ -1,11 +1,11 @@ /* Failure exit status - Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,13 +13,12 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include #include "exitfail.h" -#include "exit.h" + +#include int volatile exit_failure = EXIT_FAILURE; diff --git a/gl/exitfail.h b/gl/exitfail.h index e46cf9c..713f259 100644 --- a/gl/exitfail.h +++ b/gl/exitfail.h @@ -2,10 +2,10 @@ Copyright (C) 2002 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ extern int volatile exit_failure; diff --git a/gl/fcntl--.h b/gl/fcntl--.h index 51b869e..5a6a879 100644 --- a/gl/fcntl--.h +++ b/gl/fcntl--.h @@ -2,10 +2,10 @@ Copyright (C) 2005 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Paul Eggert. */ diff --git a/gl/fcntl-safer.h b/gl/fcntl-safer.h index cab6aab..99f3865 100644 --- a/gl/fcntl-safer.h +++ b/gl/fcntl-safer.h @@ -2,10 +2,10 @@ Copyright (C) 2005 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Paul Eggert. */ diff --git a/gl/fd-safer.c b/gl/fd-safer.c index 256bfa4..df38c8f 100644 --- a/gl/fd-safer.c +++ b/gl/fd-safer.c @@ -2,10 +2,10 @@ Copyright (C) 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Paul Eggert. */ diff --git a/gl/float+.h b/gl/float+.h new file mode 100644 index 0000000..240fe36 --- /dev/null +++ b/gl/float+.h @@ -0,0 +1,148 @@ +/* Supplemental information about the floating-point formats. + Copyright (C) 2007 Free Software Foundation, Inc. + Written by Bruno Haible , 2007. + + 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#ifndef _FLOATPLUS_H +#define _FLOATPLUS_H + +#include +#include + +/* Number of bits in the mantissa of a floating-point number, including the + "hidden bit". */ +#if FLT_RADIX == 2 +# define FLT_MANT_BIT FLT_MANT_DIG +# define DBL_MANT_BIT DBL_MANT_DIG +# define LDBL_MANT_BIT LDBL_MANT_DIG +#elif FLT_RADIX == 4 +# define FLT_MANT_BIT (FLT_MANT_DIG * 2) +# define DBL_MANT_BIT (DBL_MANT_DIG * 2) +# define LDBL_MANT_BIT (LDBL_MANT_DIG * 2) +#elif FLT_RADIX == 16 +# define FLT_MANT_BIT (FLT_MANT_DIG * 4) +# define DBL_MANT_BIT (DBL_MANT_DIG * 4) +# define LDBL_MANT_BIT (LDBL_MANT_DIG * 4) +#endif + +/* Bit mask that can be used to mask the exponent, as an unsigned number. */ +#define FLT_EXP_MASK ((FLT_MAX_EXP - FLT_MIN_EXP) | 7) +#define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7) +#define LDBL_EXP_MASK ((LDBL_MAX_EXP - LDBL_MIN_EXP) | 7) + +/* Number of bits used for the exponent of a floating-point number, including + the exponent's sign. */ +#define FLT_EXP_BIT \ + (FLT_EXP_MASK < 0x100 ? 8 : \ + FLT_EXP_MASK < 0x200 ? 9 : \ + FLT_EXP_MASK < 0x400 ? 10 : \ + FLT_EXP_MASK < 0x800 ? 11 : \ + FLT_EXP_MASK < 0x1000 ? 12 : \ + FLT_EXP_MASK < 0x2000 ? 13 : \ + FLT_EXP_MASK < 0x4000 ? 14 : \ + FLT_EXP_MASK < 0x8000 ? 15 : \ + FLT_EXP_MASK < 0x10000 ? 16 : \ + FLT_EXP_MASK < 0x20000 ? 17 : \ + FLT_EXP_MASK < 0x40000 ? 18 : \ + FLT_EXP_MASK < 0x80000 ? 19 : \ + FLT_EXP_MASK < 0x100000 ? 20 : \ + FLT_EXP_MASK < 0x200000 ? 21 : \ + FLT_EXP_MASK < 0x400000 ? 22 : \ + FLT_EXP_MASK < 0x800000 ? 23 : \ + FLT_EXP_MASK < 0x1000000 ? 24 : \ + FLT_EXP_MASK < 0x2000000 ? 25 : \ + FLT_EXP_MASK < 0x4000000 ? 26 : \ + FLT_EXP_MASK < 0x8000000 ? 27 : \ + FLT_EXP_MASK < 0x10000000 ? 28 : \ + FLT_EXP_MASK < 0x20000000 ? 29 : \ + FLT_EXP_MASK < 0x40000000 ? 30 : \ + FLT_EXP_MASK <= 0x7fffffff ? 31 : \ + 32) +#define DBL_EXP_BIT \ + (DBL_EXP_MASK < 0x100 ? 8 : \ + DBL_EXP_MASK < 0x200 ? 9 : \ + DBL_EXP_MASK < 0x400 ? 10 : \ + DBL_EXP_MASK < 0x800 ? 11 : \ + DBL_EXP_MASK < 0x1000 ? 12 : \ + DBL_EXP_MASK < 0x2000 ? 13 : \ + DBL_EXP_MASK < 0x4000 ? 14 : \ + DBL_EXP_MASK < 0x8000 ? 15 : \ + DBL_EXP_MASK < 0x10000 ? 16 : \ + DBL_EXP_MASK < 0x20000 ? 17 : \ + DBL_EXP_MASK < 0x40000 ? 18 : \ + DBL_EXP_MASK < 0x80000 ? 19 : \ + DBL_EXP_MASK < 0x100000 ? 20 : \ + DBL_EXP_MASK < 0x200000 ? 21 : \ + DBL_EXP_MASK < 0x400000 ? 22 : \ + DBL_EXP_MASK < 0x800000 ? 23 : \ + DBL_EXP_MASK < 0x1000000 ? 24 : \ + DBL_EXP_MASK < 0x2000000 ? 25 : \ + DBL_EXP_MASK < 0x4000000 ? 26 : \ + DBL_EXP_MASK < 0x8000000 ? 27 : \ + DBL_EXP_MASK < 0x10000000 ? 28 : \ + DBL_EXP_MASK < 0x20000000 ? 29 : \ + DBL_EXP_MASK < 0x40000000 ? 30 : \ + DBL_EXP_MASK <= 0x7fffffff ? 31 : \ + 32) +#define LDBL_EXP_BIT \ + (LDBL_EXP_MASK < 0x100 ? 8 : \ + LDBL_EXP_MASK < 0x200 ? 9 : \ + LDBL_EXP_MASK < 0x400 ? 10 : \ + LDBL_EXP_MASK < 0x800 ? 11 : \ + LDBL_EXP_MASK < 0x1000 ? 12 : \ + LDBL_EXP_MASK < 0x2000 ? 13 : \ + LDBL_EXP_MASK < 0x4000 ? 14 : \ + LDBL_EXP_MASK < 0x8000 ? 15 : \ + LDBL_EXP_MASK < 0x10000 ? 16 : \ + LDBL_EXP_MASK < 0x20000 ? 17 : \ + LDBL_EXP_MASK < 0x40000 ? 18 : \ + LDBL_EXP_MASK < 0x80000 ? 19 : \ + LDBL_EXP_MASK < 0x100000 ? 20 : \ + LDBL_EXP_MASK < 0x200000 ? 21 : \ + LDBL_EXP_MASK < 0x400000 ? 22 : \ + LDBL_EXP_MASK < 0x800000 ? 23 : \ + LDBL_EXP_MASK < 0x1000000 ? 24 : \ + LDBL_EXP_MASK < 0x2000000 ? 25 : \ + LDBL_EXP_MASK < 0x4000000 ? 26 : \ + LDBL_EXP_MASK < 0x8000000 ? 27 : \ + LDBL_EXP_MASK < 0x10000000 ? 28 : \ + LDBL_EXP_MASK < 0x20000000 ? 29 : \ + LDBL_EXP_MASK < 0x40000000 ? 30 : \ + LDBL_EXP_MASK <= 0x7fffffff ? 31 : \ + 32) + +/* Number of bits used for a floating-point number: the mantissa (not + counting the "hidden bit", since it may or may not be explicit), the + exponent, and the sign. */ +#define FLT_TOTAL_BIT ((FLT_MANT_BIT - 1) + FLT_EXP_BIT + 1) +#define DBL_TOTAL_BIT ((DBL_MANT_BIT - 1) + DBL_EXP_BIT + 1) +#define LDBL_TOTAL_BIT ((LDBL_MANT_BIT - 1) + LDBL_EXP_BIT + 1) + +/* Number of bytes used for a floating-point number. + This can be smaller than the 'sizeof'. For example, on i386 systems, + 'long double' most often have LDBL_MANT_BIT = 64, LDBL_EXP_BIT = 16, hence + LDBL_TOTAL_BIT = 80 bits, i.e. 10 bytes of consecutive memory, but + sizeof (long double) = 12 or = 16. */ +#define SIZEOF_FLT ((FLT_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) +#define SIZEOF_DBL ((DBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) +#define SIZEOF_LDBL ((LDBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) + +/* Verify that SIZEOF_FLT <= sizeof (float) etc. */ +typedef int verify_sizeof_flt[2 * (SIZEOF_FLT <= sizeof (float)) - 1]; +typedef int verify_sizeof_dbl[2 * (SIZEOF_DBL <= sizeof (double)) - 1]; +typedef int verify_sizeof_ldbl[2 * (SIZEOF_LDBL <= sizeof (long double)) - 1]; + +#endif /* _FLOATPLUS_H */ diff --git a/gl/float.in.h b/gl/float.in.h new file mode 100644 index 0000000..2504032 --- /dev/null +++ b/gl/float.in.h @@ -0,0 +1,58 @@ +/* A correct . + + Copyright (C) 2007 Free Software Foundation, Inc. + + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifndef _GL_FLOAT_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_FLOAT_H@ + +#ifndef _GL_FLOAT_H +#define _GL_FLOAT_H + +/* 'long double' properties. */ +#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__) +/* Number of mantissa units, in base FLT_RADIX. */ +# undef LDBL_MANT_DIG +# define LDBL_MANT_DIG 64 +/* Number of decimal digits that is sufficient for representing a number. */ +# undef LDBL_DIG +# define LDBL_DIG 18 +/* x-1 where x is the smallest representable number > 1. */ +# undef LDBL_EPSILON +# define LDBL_EPSILON 1.0842021724855044340E-19L +/* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */ +# undef LDBL_MIN_EXP +# define LDBL_MIN_EXP (-16381) +/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */ +# undef LDBL_MAX_EXP +# define LDBL_MAX_EXP 16384 +/* Minimum positive normalized number. */ +# undef LDBL_MIN +# define LDBL_MIN 3.3621031431120935063E-4932L +/* Maximum representable finite number. */ +# undef LDBL_MAX +# define LDBL_MAX 1.1897314953572317650E+4932L +/* Minimum e such that 10^e is in the range of normalized numbers. */ +# undef LDBL_MIN_10_EXP +# define LDBL_MIN_10_EXP (-4931) +/* Maximum e such that 10^e is in the range of representable finite numbers. */ +# undef LDBL_MAX_10_EXP +# define LDBL_MAX_10_EXP 4932 +#endif + +#endif /* _GL_FLOAT_H */ +#endif /* _GL_FLOAT_H */ diff --git a/gl/floor.c b/gl/floor.c new file mode 100644 index 0000000..05a6591 --- /dev/null +++ b/gl/floor.c @@ -0,0 +1,93 @@ +/* Round towards negative infinity. + Copyright (C) 2007 Free Software Foundation, Inc. + + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* Written by Bruno Haible , 2007. */ + +#include + +/* Specification. */ +#include + +#include + +#ifdef USE_LONG_DOUBLE +# define FUNC floorl +# define DOUBLE long double +# define MANT_DIG LDBL_MANT_DIG +# define L_(literal) literal##L +#elif ! defined USE_FLOAT +# define FUNC floor +# define DOUBLE double +# define MANT_DIG DBL_MANT_DIG +# define L_(literal) literal +#else /* defined USE_FLOAT */ +# define FUNC floorf +# define DOUBLE float +# define MANT_DIG FLT_MANT_DIG +# define L_(literal) literal##f +#endif + +/* 2^(MANT_DIG-1). */ +static const DOUBLE TWO_MANT_DIG = + /* Assume MANT_DIG <= 5 * 31. + Use the identity + n = floor(n/5) + floor((n+1)/5) + ... + floor((n+4)/5). */ + (DOUBLE) (1U << ((MANT_DIG - 1) / 5)) + * (DOUBLE) (1U << ((MANT_DIG - 1 + 1) / 5)) + * (DOUBLE) (1U << ((MANT_DIG - 1 + 2) / 5)) + * (DOUBLE) (1U << ((MANT_DIG - 1 + 3) / 5)) + * (DOUBLE) (1U << ((MANT_DIG - 1 + 4) / 5)); + +DOUBLE +FUNC (DOUBLE x) +{ + /* The use of 'volatile' guarantees that excess precision bits are dropped + at each addition step and before the following comparison at the caller's + site. It is necessary on x86 systems where double-floats are not IEEE + compliant by default, to avoid that the results become platform and compiler + option dependent. 'volatile' is a portable alternative to gcc's + -ffloat-store option. */ + volatile DOUBLE y = x; + volatile DOUBLE z = y; + + if (z > L_(0.0)) + { + /* Avoid rounding errors for values near 2^k, where k >= MANT_DIG-1. */ + if (z < TWO_MANT_DIG) + { + /* Round to the next integer (nearest or up or down, doesn't matter). */ + z += TWO_MANT_DIG; + z -= TWO_MANT_DIG; + /* Enforce rounding down. */ + if (z > y) + z -= L_(1.0); + } + } + else if (z < L_(0.0)) + { + /* Avoid rounding errors for values near -2^k, where k >= MANT_DIG-1. */ + if (z > - TWO_MANT_DIG) + { + /* Round to the next integer (nearest or up or down, doesn't matter). */ + z -= TWO_MANT_DIG; + z += TWO_MANT_DIG; + /* Enforce rounding down. */ + if (z > y) + z -= L_(1.0); + } + } + return z; +} diff --git a/gl/floorf.c b/gl/floorf.c new file mode 100644 index 0000000..f0aff33 --- /dev/null +++ b/gl/floorf.c @@ -0,0 +1,20 @@ +/* Round towards negative infinity. + Copyright (C) 2007 Free Software Foundation, Inc. + + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* Written by Bruno Haible , 2007. */ + +#define USE_FLOAT +#include "floor.c" diff --git a/gl/fsusage.c b/gl/fsusage.c index 337bf53..23d40ea 100644 --- a/gl/fsusage.c +++ b/gl/fsusage.c @@ -3,10 +3,10 @@ Copyright (C) 1991, 1992, 1996, 1998, 1999, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,8 +14,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/fsusage.h b/gl/fsusage.h index 7fa9f8d..b32abe1 100644 --- a/gl/fsusage.h +++ b/gl/fsusage.h @@ -3,10 +3,10 @@ Copyright (C) 1991, 1992, 1997, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,8 +14,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Space usage statistics for a file system. Blocks are 512-byte. */ diff --git a/gl/full-read.c b/gl/full-read.c index 8c3472a..fb7212b 100644 --- a/gl/full-read.c +++ b/gl/full-read.c @@ -1,10 +1,10 @@ /* An interface to read that retries after partial reads and interrupts. Copyright (C) 2002, 2003 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #define FULL_READ #include "full-write.c" diff --git a/gl/full-read.h b/gl/full-read.h index 05d83a7..a341ee0 100644 --- a/gl/full-read.h +++ b/gl/full-read.h @@ -2,10 +2,10 @@ Copyright (C) 2002 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, read to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/full-write.c b/gl/full-write.c index cc16872..51f2d38 100644 --- a/gl/full-write.c +++ b/gl/full-write.c @@ -3,10 +3,10 @@ Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,8 +14,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/full-write.h b/gl/full-write.h index d20d2fe..9a80146 100644 --- a/gl/full-write.h +++ b/gl/full-write.h @@ -2,10 +2,10 @@ Copyright (C) 2002-2003 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/gai_strerror.c b/gl/gai_strerror.c index 7f0e034..9e4abbe 100644 --- a/gl/gai_strerror.c +++ b/gl/gai_strerror.c @@ -4,7 +4,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -52,6 +52,7 @@ values[] = { EAI_SERVICE, N_("Servname not supported for ai_socktype") }, { EAI_SOCKTYPE, N_("ai_socktype not supported") }, { EAI_SYSTEM, N_("System error") }, + { EAI_OVERFLOW, N_("Argument buffer too small") }, #ifdef __USE_GNU { EAI_INPROGRESS, N_("Processing request in progress") }, { EAI_CANCELED, N_("Request canceled") }, diff --git a/gl/getaddrinfo.c b/gl/getaddrinfo.c index f523f76..04f0ac2 100644 --- a/gl/getaddrinfo.c +++ b/gl/getaddrinfo.c @@ -1,11 +1,11 @@ /* Get address information (partial implementation). - Copyright (C) 1997, 2001, 2002, 2004, 2005, 2006 Free Software + Copyright (C) 1997, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. Contributed by Simon Josefsson . 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -28,9 +28,12 @@ /* Get calloc. */ #include -/* Get memcpy. */ +/* Get memcpy, strdup. */ #include +/* Get snprintf. */ +#include + #include #include "gettext.h" @@ -38,8 +41,6 @@ #define N_(String) String #include "inet_ntop.h" -#include "snprintf.h" -#include "strdup.h" /* BeOS has AF_INET, but not PF_INET. */ #ifndef PF_INET @@ -178,7 +179,7 @@ getaddrinfo (const char *restrict nodename, const char *proto = (hints && hints->ai_socktype == SOCK_DGRAM) ? "udp" : "tcp"; - if (!(hints->ai_flags & AI_NUMERICSERV)) + if (hints == NULL || !(hints->ai_flags & AI_NUMERICSERV)) /* FIXME: Use getservbyname_r if available. */ se = getservbyname (servname, proto); diff --git a/gl/getaddrinfo.h b/gl/getaddrinfo.h index b4ef242..050b793 100644 --- a/gl/getaddrinfo.h +++ b/gl/getaddrinfo.h @@ -5,7 +5,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, diff --git a/gl/gethostname.c b/gl/gethostname.c index eedc40e..169dd4e 100644 --- a/gl/gethostname.c +++ b/gl/gethostname.c @@ -1,11 +1,11 @@ /* gethostname emulation for SysV and POSIX.1. - Copyright (C) 1992, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 1992, 2003, 2006, 2008 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* David MacKenzie */ @@ -24,6 +23,8 @@ # include #endif +#include + /* Put up to LEN chars of the host name into NAME. Null terminate it if the name is shorter than LEN. Return 0 if ok, -1 if error. */ diff --git a/gl/getloadavg.c b/gl/getloadavg.c index cfa6273..5faa8fa 100644 --- a/gl/getloadavg.c +++ b/gl/getloadavg.c @@ -1,16 +1,16 @@ /* Get the system load averages. Copyright (C) 1985, 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1994, - 1995, 1997, 1999, 2000, 2003, 2004, 2005, 2006 Free Software + 1995, 1997, 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with gnulib. Bugs can be reported to bug-gnulib@gnu.org. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -18,9 +18,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - USA. */ + along with this program. If not, see . */ /* Compile-time symbols that this file uses: @@ -32,6 +30,8 @@ If that isn't an option, then just put AC_CHECK_FUNCS(pstat_getdynamic) in your configure.in file. + HAVE_LIBPERFSTAT Define this if your system has the + perfstat_cpu_total function in libperfstat (AIX). FIXUP_KERNEL_SYMBOL_ADDR() Adjust address in returned struct nlist. KERNEL_FILE Name of the kernel file to nlist. LDAV_CVT() Scale the load average from the kernel. @@ -188,6 +188,8 @@ # include # include # include +/* Tru64 4.0D's table.h redefines sys */ +# undef sys # endif # if defined (__osf__) && (defined (mips) || defined (__mips__)) @@ -254,7 +256,7 @@ # define LOAD_AVE_TYPE long # endif -# ifdef _AIX +# if defined _AIX && ! defined HAVE_LIBPERFSTAT # define LOAD_AVE_TYPE long # endif @@ -309,7 +311,7 @@ # define FSCALE 100.0 # endif -# ifdef _AIX +# if defined _AIX && !defined HAVE_LIBPERFSTAT # define FSCALE 65536.0 # endif @@ -347,7 +349,7 @@ # define LDAV_SYMBOL "_Loadavg" # endif -# if !defined (LDAV_SYMBOL) && ((defined (hpux) && !defined (hp9000s300)) || defined (_SEQUENT_) || defined (SVR4) || defined (ISC) || defined (sgi) || (defined (ardent) && defined (titan)) || defined (_AIX)) +# if !defined (LDAV_SYMBOL) && ((defined (hpux) && !defined (hp9000s300)) || defined (_SEQUENT_) || defined (SVR4) || defined (ISC) || defined (sgi) || (defined (ardent) && defined (titan)) || (defined (_AIX) && !defined(HAVE_LIBPERFSTAT))) # define LDAV_SYMBOL "avenrun" # endif @@ -404,6 +406,14 @@ # endif /* LOAD_AVE_TYPE */ +# if defined HAVE_LIBPERFSTAT +# include +# include +# ifndef SBITS +# define SBITS 16 +# endif +# endif + # if defined (__GNU__) && !defined (NeXT) /* Note that NeXT Openstep defines __GNU__ even though it should not. */ /* GNU system acts much like NeXT, for load average purposes, @@ -568,6 +578,22 @@ getloadavg (double loadavg[], int nelem) # endif /* hpux && HAVE_PSTAT_GETDYNAMIC */ +# if ! defined LDAV_DONE && defined HAVE_LIBPERFSTAT +# define LDAV_DONE +# undef LOAD_AVE_TYPE +/* Use perfstat_cpu_total because we don't have to be root. */ + { + perfstat_cpu_total_t cpu_stats; + int result = perfstat_cpu_total (NULL, &cpu_stats, sizeof cpu_stats, 1); + if (result == -1) + return result; + loadavg[0] = cpu_stats.loadavg[0] / (double)(1 << SBITS); + loadavg[1] = cpu_stats.loadavg[1] / (double)(1 << SBITS); + loadavg[2] = cpu_stats.loadavg[2] / (double)(1 << SBITS); + elem = 3; + } +# endif + # if !defined (LDAV_DONE) && (defined (__linux__) || defined (__CYGWIN__)) # define LDAV_DONE # undef LOAD_AVE_TYPE diff --git a/gl/getopt.c b/gl/getopt.c index 3580ad8..3c23601 100644 --- a/gl/getopt.c +++ b/gl/getopt.c @@ -6,19 +6,18 @@ Free Software Foundation, Inc. This file is part of the GNU C Library. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _LIBC # include diff --git a/gl/getopt_.h b/gl/getopt.in.h similarity index 94% rename from gl/getopt_.h rename to gl/getopt.in.h index 27fce3d..d2d3e6e 100644 --- a/gl/getopt_.h +++ b/gl/getopt.in.h @@ -1,21 +1,20 @@ /* Declarations for getopt. - Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2005,2006 + Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2005,2006,2007 Free Software Foundation, Inc. This file is part of the GNU C Library. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _GETOPT_H @@ -101,7 +100,7 @@ # endif #endif -#ifdef __cplusplus +#ifdef __cplusplus extern "C" { #endif @@ -216,7 +215,7 @@ extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, #endif -#ifdef __cplusplus +#ifdef __cplusplus } #endif diff --git a/gl/getopt1.c b/gl/getopt1.c index cc0746e..d6a3ecf 100644 --- a/gl/getopt1.c +++ b/gl/getopt1.c @@ -3,19 +3,18 @@ Free Software Foundation, Inc. This file is part of the GNU C Library. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifdef _LIBC # include diff --git a/gl/getopt_int.h b/gl/getopt_int.h index 401579f..3c6628b 100644 --- a/gl/getopt_int.h +++ b/gl/getopt_int.h @@ -3,19 +3,18 @@ Free Software Foundation, Inc. This file is part of the GNU C Library. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _GETOPT_INT_H #define _GETOPT_INT_H 1 diff --git a/gl/gettext.h b/gl/gettext.h index 9d76ec9..763dd3c 100644 --- a/gl/gettext.h +++ b/gl/gettext.h @@ -3,7 +3,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, diff --git a/gl/inet_ntop.c b/gl/inet_ntop.c index 537b59f..3e266a2 100644 --- a/gl/inet_ntop.c +++ b/gl/inet_ntop.c @@ -4,7 +4,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, diff --git a/gl/inet_ntop.h b/gl/inet_ntop.h index bd1e085..2897bb4 100644 --- a/gl/inet_ntop.h +++ b/gl/inet_ntop.h @@ -3,7 +3,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, diff --git a/gl/intprops.h b/gl/intprops.h index 34f971c..002161e 100644 --- a/gl/intprops.h +++ b/gl/intprops.h @@ -2,10 +2,10 @@ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Paul Eggert. */ diff --git a/gl/localcharset.c b/gl/localcharset.c new file mode 100644 index 0000000..4f31948 --- /dev/null +++ b/gl/localcharset.c @@ -0,0 +1,460 @@ +/* Determine a canonical name for the current locale's character encoding. + + Copyright (C) 2000-2006 Free Software Foundation, Inc. + + 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Written by Bruno Haible . */ + +#include + +/* Specification. */ +#include "localcharset.h" + +#include +#include +#include +#include + +#if defined _WIN32 || defined __WIN32__ +# define WIN32_NATIVE +#endif + +#if defined __EMX__ +/* Assume EMX program runs on OS/2, even if compiled under DOS. */ +# define OS2 +#endif + +#if !defined WIN32_NATIVE +# if HAVE_LANGINFO_CODESET +# include +# else +# if 0 /* see comment below */ +# include +# endif +# endif +# ifdef __CYGWIN__ +# define WIN32_LEAN_AND_MEAN +# include +# endif +#elif defined WIN32_NATIVE +# define WIN32_LEAN_AND_MEAN +# include +#endif +#if defined OS2 +# define INCL_DOS +# include +#endif + +#if ENABLE_RELOCATABLE +# include "relocatable.h" +#else +# define relocate(pathname) (pathname) +#endif + +/* Get LIBDIR. */ +#ifndef LIBDIR +# include "configmake.h" +#endif + +#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ + /* Win32, Cygwin, OS/2, DOS */ +# define ISSLASH(C) ((C) == '/' || (C) == '\\') +#endif + +#ifndef DIRECTORY_SEPARATOR +# define DIRECTORY_SEPARATOR '/' +#endif + +#ifndef ISSLASH +# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) +#endif + +#if HAVE_DECL_GETC_UNLOCKED +# undef getc +# define getc getc_unlocked +#endif + +/* The following static variable is declared 'volatile' to avoid a + possible multithread problem in the function get_charset_aliases. If we + are running in a threaded environment, and if two threads initialize + 'charset_aliases' simultaneously, both will produce the same value, + and everything will be ok if the two assignments to 'charset_aliases' + are atomic. But I don't know what will happen if the two assignments mix. */ +#if __STDC__ != 1 +# define volatile /* empty */ +#endif +/* Pointer to the contents of the charset.alias file, if it has already been + read, else NULL. Its format is: + ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ +static const char * volatile charset_aliases; + +/* Return a pointer to the contents of the charset.alias file. */ +static const char * +get_charset_aliases (void) +{ + const char *cp; + + cp = charset_aliases; + if (cp == NULL) + { +#if !(defined VMS || defined WIN32_NATIVE || defined __CYGWIN__) + FILE *fp; + const char *dir; + const char *base = "charset.alias"; + char *file_name; + + /* Make it possible to override the charset.alias location. This is + necessary for running the testsuite before "make install". */ + dir = getenv ("CHARSETALIASDIR"); + if (dir == NULL || dir[0] == '\0') + dir = relocate (LIBDIR); + + /* Concatenate dir and base into freshly allocated file_name. */ + { + size_t dir_len = strlen (dir); + size_t base_len = strlen (base); + int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); + file_name = (char *) malloc (dir_len + add_slash + base_len + 1); + if (file_name != NULL) + { + memcpy (file_name, dir, dir_len); + if (add_slash) + file_name[dir_len] = DIRECTORY_SEPARATOR; + memcpy (file_name + dir_len + add_slash, base, base_len + 1); + } + } + + if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL) + /* Out of memory or file not found, treat it as empty. */ + cp = ""; + else + { + /* Parse the file's contents. */ + char *res_ptr = NULL; + size_t res_size = 0; + + for (;;) + { + int c; + char buf1[50+1]; + char buf2[50+1]; + size_t l1, l2; + char *old_res_ptr; + + c = getc (fp); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') + { + /* Skip comment, to end of line. */ + do + c = getc (fp); + while (!(c == EOF || c == '\n')); + if (c == EOF) + break; + continue; + } + ungetc (c, fp); + if (fscanf (fp, "%50s %50s", buf1, buf2) < 2) + break; + l1 = strlen (buf1); + l2 = strlen (buf2); + old_res_ptr = res_ptr; + if (res_size == 0) + { + res_size = l1 + 1 + l2 + 1; + res_ptr = (char *) malloc (res_size + 1); + } + else + { + res_size += l1 + 1 + l2 + 1; + res_ptr = (char *) realloc (res_ptr, res_size + 1); + } + if (res_ptr == NULL) + { + /* Out of memory. */ + res_size = 0; + if (old_res_ptr != NULL) + free (old_res_ptr); + break; + } + strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); + strcpy (res_ptr + res_size - (l2 + 1), buf2); + } + fclose (fp); + if (res_size == 0) + cp = ""; + else + { + *(res_ptr + res_size) = '\0'; + cp = res_ptr; + } + } + + if (file_name != NULL) + free (file_name); + +#else + +# if defined VMS + /* To avoid the troubles of an extra file charset.alias_vms in the + sources of many GNU packages, simply inline the aliases here. */ + /* The list of encodings is taken from the OpenVMS 7.3-1 documentation + "Compaq C Run-Time Library Reference Manual for OpenVMS systems" + section 10.7 "Handling Different Character Sets". */ + cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" + "ISO8859-2" "\0" "ISO-8859-2" "\0" + "ISO8859-5" "\0" "ISO-8859-5" "\0" + "ISO8859-7" "\0" "ISO-8859-7" "\0" + "ISO8859-8" "\0" "ISO-8859-8" "\0" + "ISO8859-9" "\0" "ISO-8859-9" "\0" + /* Japanese */ + "eucJP" "\0" "EUC-JP" "\0" + "SJIS" "\0" "SHIFT_JIS" "\0" + "DECKANJI" "\0" "DEC-KANJI" "\0" + "SDECKANJI" "\0" "EUC-JP" "\0" + /* Chinese */ + "eucTW" "\0" "EUC-TW" "\0" + "DECHANYU" "\0" "DEC-HANYU" "\0" + "DECHANZI" "\0" "GB2312" "\0" + /* Korean */ + "DECKOREAN" "\0" "EUC-KR" "\0"; +# endif + +# if defined WIN32_NATIVE || defined __CYGWIN__ + /* To avoid the troubles of installing a separate file in the same + directory as the DLL and of retrieving the DLL's directory at + runtime, simply inline the aliases here. */ + + cp = "CP936" "\0" "GBK" "\0" + "CP1361" "\0" "JOHAB" "\0" + "CP20127" "\0" "ASCII" "\0" + "CP20866" "\0" "KOI8-R" "\0" + "CP20936" "\0" "GB2312" "\0" + "CP21866" "\0" "KOI8-RU" "\0" + "CP28591" "\0" "ISO-8859-1" "\0" + "CP28592" "\0" "ISO-8859-2" "\0" + "CP28593" "\0" "ISO-8859-3" "\0" + "CP28594" "\0" "ISO-8859-4" "\0" + "CP28595" "\0" "ISO-8859-5" "\0" + "CP28596" "\0" "ISO-8859-6" "\0" + "CP28597" "\0" "ISO-8859-7" "\0" + "CP28598" "\0" "ISO-8859-8" "\0" + "CP28599" "\0" "ISO-8859-9" "\0" + "CP28605" "\0" "ISO-8859-15" "\0" + "CP38598" "\0" "ISO-8859-8" "\0" + "CP51932" "\0" "EUC-JP" "\0" + "CP51936" "\0" "GB2312" "\0" + "CP51949" "\0" "EUC-KR" "\0" + "CP51950" "\0" "EUC-TW" "\0" + "CP54936" "\0" "GB18030" "\0" + "CP65001" "\0" "UTF-8" "\0"; +# endif +#endif + + charset_aliases = cp; + } + + return cp; +} + +/* Determine the current locale's character encoding, and canonicalize it + into one of the canonical names listed in config.charset. + The result must not be freed; it is statically allocated. + If the canonical name cannot be determined, the result is a non-canonical + name. */ + +#ifdef STATIC +STATIC +#endif +const char * +locale_charset (void) +{ + const char *codeset; + const char *aliases; + +#if !(defined WIN32_NATIVE || defined OS2) + +# if HAVE_LANGINFO_CODESET + + /* Most systems support nl_langinfo (CODESET) nowadays. */ + codeset = nl_langinfo (CODESET); + +# ifdef __CYGWIN__ + /* Cygwin 2006 does not have locales. nl_langinfo (CODESET) always + returns "US-ASCII". As long as this is not fixed, return the suffix + of the locale name from the environment variables (if present) or + the codepage as a number. */ + if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) + { + const char *locale; + static char buf[2 + 10 + 1]; + + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + } + if (locale != NULL && locale[0] != '\0') + { + /* If the locale name contains an encoding after the dot, return + it. */ + const char *dot = strchr (locale, '.'); + + if (dot != NULL) + { + const char *modifier; + + dot++; + /* Look for the possible @... trailer and remove it, if any. */ + modifier = strchr (dot, '@'); + if (modifier == NULL) + return dot; + if (modifier - dot < sizeof (buf)) + { + memcpy (buf, dot, modifier - dot); + buf [modifier - dot] = '\0'; + return buf; + } + } + } + + /* Woe32 has a function returning the locale's codepage as a number. */ + sprintf (buf, "CP%u", GetACP ()); + codeset = buf; + } +# endif + +# else + + /* On old systems which lack it, use setlocale or getenv. */ + const char *locale = NULL; + + /* But most old systems don't have a complete set of locales. Some + (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't + use setlocale here; it would return "C" when it doesn't support the + locale name the user has set. */ +# if 0 + locale = setlocale (LC_CTYPE, NULL); +# endif + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + } + } + + /* On some old systems, one used to set locale = "iso8859_1". On others, + you set it to "language_COUNTRY.charset". In any case, we resolve it + through the charset.alias file. */ + codeset = locale; + +# endif + +#elif defined WIN32_NATIVE + + static char buf[2 + 10 + 1]; + + /* Woe32 has a function returning the locale's codepage as a number. */ + sprintf (buf, "CP%u", GetACP ()); + codeset = buf; + +#elif defined OS2 + + const char *locale; + static char buf[2 + 10 + 1]; + ULONG cp[3]; + ULONG cplen; + + /* Allow user to override the codeset, as set in the operating system, + with standard language environment variables. */ + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + } + if (locale != NULL && locale[0] != '\0') + { + /* If the locale name contains an encoding after the dot, return it. */ + const char *dot = strchr (locale, '.'); + + if (dot != NULL) + { + const char *modifier; + + dot++; + /* Look for the possible @... trailer and remove it, if any. */ + modifier = strchr (dot, '@'); + if (modifier == NULL) + return dot; + if (modifier - dot < sizeof (buf)) + { + memcpy (buf, dot, modifier - dot); + buf [modifier - dot] = '\0'; + return buf; + } + } + + /* Resolve through the charset.alias file. */ + codeset = locale; + } + else + { + /* OS/2 has a function returning the locale's codepage as a number. */ + if (DosQueryCp (sizeof (cp), cp, &cplen)) + codeset = ""; + else + { + sprintf (buf, "CP%u", cp[0]); + codeset = buf; + } + } + +#endif + + if (codeset == NULL) + /* The canonical name cannot be determined. */ + codeset = ""; + + /* Resolve alias. */ + for (aliases = get_charset_aliases (); + *aliases != '\0'; + aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) + if (strcmp (codeset, aliases) == 0 + || (aliases[0] == '*' && aliases[1] == '\0')) + { + codeset = aliases + strlen (aliases) + 1; + break; + } + + /* Don't return an empty string. GNU libc and GNU libiconv interpret + the empty string as denoting "the locale's character encoding", + thus GNU libiconv would call this function a second time. */ + if (codeset[0] == '\0') + codeset = "ASCII"; + + return codeset; +} diff --git a/gl/localcharset.h b/gl/localcharset.h new file mode 100644 index 0000000..b9a3013 --- /dev/null +++ b/gl/localcharset.h @@ -0,0 +1,41 @@ +/* Determine a canonical name for the current locale's character encoding. + Copyright (C) 2000-2003 Free Software Foundation, Inc. + This file is part of the GNU CHARSET Library. + + 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#ifndef _LOCALCHARSET_H +#define _LOCALCHARSET_H + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Determine the current locale's character encoding, and canonicalize it + into one of the canonical names listed in config.charset. + The result must not be freed; it is statically allocated. + If the canonical name cannot be determined, the result is a non-canonical + name. */ +extern const char * locale_charset (void); + + +#ifdef __cplusplus +} +#endif + + +#endif /* _LOCALCHARSET_H */ diff --git a/gl/m4/absolute-header.m4 b/gl/m4/absolute-header.m4 deleted file mode 100644 index c649df0..0000000 --- a/gl/m4/absolute-header.m4 +++ /dev/null @@ -1,44 +0,0 @@ -# absolute-header.m4 serial 6 -dnl Copyright (C) 2006 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Derek Price. - -# gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...) -# --------------------------------------- -# Find the absolute name of a header file, assuming the header exists. -# If the header were sys/inttypes.h, this macro would define -# ABSOLUTE_SYS_INTTYPES_H to the `""' quoted absolute name of sys/inttypes.h -# in config.h -# (e.g. `#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"'). -# The three "///" are to pacify Sun C 5.8, which otherwise would say -# "warning: #include of /usr/include/... may be non-portable". -# Use `""', not `<>', so that the /// cannot be confused with a C99 comment. -AC_DEFUN([gl_ABSOLUTE_HEADER], -[AC_LANG_PREPROC_REQUIRE()dnl -AC_FOREACH([gl_HEADER_NAME], [$1], - [AS_VAR_PUSHDEF([gl_absolute_header], - [gl_cv_absolute_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl - AC_CACHE_CHECK([absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>], - m4_quote(m4_defn([gl_absolute_header])), - [AS_VAR_PUSHDEF([ac_header_exists], - [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl - AC_CHECK_HEADERS_ONCE(m4_quote(m4_defn([gl_HEADER_NAME])))dnl - if test AS_VAR_GET(ac_header_exists) = yes; then - AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]])]) -dnl eval is necessary to expand ac_cpp. -dnl Ultrix and Pyramid sh refuse to redirect output of eval, so use subshell. - AS_VAR_SET(gl_absolute_header, -[`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | -sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#;s#^/[^/]#//&#;p;q;}'`]) - fi - AS_VAR_POPDEF([ac_header_exists])dnl - ])dnl - AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_quote(m4_defn([gl_HEADER_NAME]))), - ["AS_VAR_GET(gl_absolute_header)"], - [Define this to an absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>.]) - AS_VAR_POPDEF([gl_absolute_header])dnl -])dnl -])# gl_ABSOLUTE_HEADER diff --git a/gl/m4/alloca.m4 b/gl/m4/alloca.m4 index eb62e0e..95f54a6 100644 --- a/gl/m4/alloca.m4 +++ b/gl/m4/alloca.m4 @@ -1,5 +1,5 @@ -# alloca.m4 serial 7 -dnl Copyright (C) 2002-2004, 2006 Free Software Foundation, Inc. +# alloca.m4 serial 8 +dnl Copyright (C) 2002-2004, 2006, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -39,10 +39,6 @@ AC_DEFUN([gl_FUNC_ALLOCA], ALLOCA_H=alloca.h fi AC_SUBST([ALLOCA_H]) - - AC_DEFINE(HAVE_ALLOCA_H, 1, - [Define HAVE_ALLOCA_H for backward compatibility with older code - that includes only if HAVE_ALLOCA_H is defined.]) ]) # Prerequisites of lib/alloca.c. diff --git a/gl/m4/base64.m4 b/gl/m4/base64.m4 new file mode 100644 index 0000000..24801ef --- /dev/null +++ b/gl/m4/base64.m4 @@ -0,0 +1,16 @@ +# base64.m4 serial 3 +dnl Copyright (C) 2004, 2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_BASE64], +[ + gl_PREREQ_BASE64 +]) + +# Prerequisites of lib/base64.c. +AC_DEFUN([gl_PREREQ_BASE64], [ + AC_REQUIRE([AC_C_INLINE]) + AC_REQUIRE([AC_C_RESTRICT]) +]) diff --git a/gl/m4/extensions.m4 b/gl/m4/extensions.m4 index 143a9e5..bcbb3ce 100644 --- a/gl/m4/extensions.m4 +++ b/gl/m4/extensions.m4 @@ -1,14 +1,14 @@ -# serial 4 -*- Autoconf -*- +# serial 5 -*- Autoconf -*- # Enable extensions on systems that normally disable them. -# Copyright (C) 2003, 2006 Free Software Foundation, Inc. +# Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS # Autoconf. Perhaps we can remove this once we can assume Autoconf -# 2.61 or later everywhere, but since CVS Autoconf mutates rapidly +# 2.62 or later everywhere, but since CVS Autoconf mutates rapidly # enough in this area it's likely we'll need to redefine # AC_USE_SYSTEM_EXTENSIONS for quite some time. @@ -16,26 +16,48 @@ # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. +# Remember that #undef in AH_VERBATIM gets replaced with #define by +# AC_DEFINE. The goal here is to define all known feature-enabling +# macros, then, if reports of conflicts are made, disable macros that +# cause problems on some platforms (such as __EXTENSIONS__). AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS], -[ - AC_BEFORE([$0], [AC_COMPILE_IFELSE]) - AC_BEFORE([$0], [AC_RUN_IFELSE]) +[AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl +AC_BEFORE([$0], [AC_RUN_IFELSE])dnl - AC_REQUIRE([AC_GNU_SOURCE]) - AC_REQUIRE([AC_AIX]) - AC_REQUIRE([AC_MINIX]) + AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=]) + if test "$MINIX" = yes; then + AC_DEFINE([_POSIX_SOURCE], [1], + [Define to 1 if you need to in order for `stat' and other + things to work.]) + AC_DEFINE([_POSIX_1_SOURCE], [2], + [Define to 2 if the system does not provide POSIX.1 features + except with this defined.]) + AC_DEFINE([_MINIX], [1], + [Define to 1 if on MINIX.]) + fi AH_VERBATIM([__EXTENSIONS__], -[/* Enable extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ +[/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE #endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif +/* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE -#endif]) +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +]) AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], [ac_cv_safe_to_define___extensions__], [AC_COMPILE_IFELSE( @@ -46,9 +68,11 @@ AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS], [ac_cv_safe_to_define___extensions__=no])]) test $ac_cv_safe_to_define___extensions__ = yes && AC_DEFINE([__EXTENSIONS__]) + AC_DEFINE([_ALL_SOURCE]) + AC_DEFINE([_GNU_SOURCE]) AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) AC_DEFINE([_TANDEM_SOURCE]) -]) +])# AC_USE_SYSTEM_EXTENSIONS # gl_USE_SYSTEM_EXTENSIONS # ------------------------ diff --git a/gl/m4/float_h.m4 b/gl/m4/float_h.m4 new file mode 100644 index 0000000..d36e3a4 --- /dev/null +++ b/gl/m4/float_h.m4 @@ -0,0 +1,19 @@ +# float_h.m4 serial 3 +dnl Copyright (C) 2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FLOAT_H], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + FLOAT_H= + case "$host_os" in + beos* | openbsd*) + FLOAT_H=float.h + gl_CHECK_NEXT_HEADERS([float.h]) + ;; + esac + AC_SUBST([FLOAT_H]) +]) diff --git a/gl/m4/floorf.m4 b/gl/m4/floorf.m4 new file mode 100644 index 0000000..8cdaa94 --- /dev/null +++ b/gl/m4/floorf.m4 @@ -0,0 +1,62 @@ +# floorf.m4 serial 3 +dnl Copyright (C) 2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_FLOORF], +[ + AC_REQUIRE([gl_MATH_H_DEFAULTS]) + dnl Persuade glibc to declare floorf(). + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + dnl Test whether floorf() is declared. + AC_CHECK_DECLS([floorf], , , [#include ]) + if test "$ac_cv_have_decl_floorf" = yes; then + dnl Test whether floorf() can be used without libm. + gl_FUNC_FLOORF_LIBS + if test "$FLOORF_LIBM" = "?"; then + dnl Sun C 5.0 on Solaris declares floorf() and has it in the system-wide + dnl libm.so, but not in the libm.so that the compiler uses. + REPLACE_FLOORF=1 + fi + else + REPLACE_FLOORF=1 + fi + if test $REPLACE_FLOORF = 1; then + AC_LIBOBJ([floorf]) + FLOORF_LIBM= + fi + AC_SUBST([REPLACE_FLOORF]) + AC_SUBST([FLOORF_LIBM]) +]) + +# Determines the libraries needed to get the floorf() function. +# Sets FLOORF_LIBM. +AC_DEFUN([gl_FUNC_FLOORF_LIBS], +[ + AC_CACHE_VAL([gl_cv_func_floorf_libm], [ + gl_cv_func_floorf_libm=? + AC_TRY_LINK([ + #ifndef __NO_MATH_INLINES + # define __NO_MATH_INLINES 1 /* for glibc */ + #endif + #include + float x;], + [x = floorf(x);], + [gl_cv_func_floorf_libm=]) + if test "$gl_cv_func_floorf_libm" = "?"; then + save_LIBS="$LIBS" + LIBS="$LIBS -lm" + AC_TRY_LINK([ + #ifndef __NO_MATH_INLINES + # define __NO_MATH_INLINES 1 /* for glibc */ + #endif + #include + float x;], + [x = floorf(x);], + [gl_cv_func_floorf_libm="-lm"]) + LIBS="$save_LIBS" + fi + ]) + FLOORF_LIBM="$gl_cv_func_floorf_libm" +]) diff --git a/gl/m4/fsusage.m4 b/gl/m4/fsusage.m4 index 08bf06c..18eedbc 100644 --- a/gl/m4/fsusage.m4 +++ b/gl/m4/fsusage.m4 @@ -1,8 +1,7 @@ -#serial 22 +#serial 23 # Obtaining file system usage information. -# Copyright (C) 1997, 1998, 2000, 2001, 2003, 2004, 2005, 2006 Free Software -# Foundation, Inc. +# Copyright (C) 1997, 1998, 2000, 2001, 2003-2007 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -55,6 +54,11 @@ one of the corresponding file systems is hard-mounted, but not available. statvfs in GNU libc on BeOS operates differently: it only makes a system call. #endif + +#ifdef __osf__ +"Do not use Tru64's statvfs implementation" +#endif + #include ], [struct statvfs fsd; statvfs (0, &fsd);], fu_cv_sys_stat_statvfs=yes, diff --git a/gl/m4/getaddrinfo.m4 b/gl/m4/getaddrinfo.m4 index db285d9..5d36c19 100644 --- a/gl/m4/getaddrinfo.m4 +++ b/gl/m4/getaddrinfo.m4 @@ -1,15 +1,31 @@ -# getaddrinfo.m4 serial 11 -dnl Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. +# getaddrinfo.m4 serial 15 +dnl Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_GETADDRINFO], [ + AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H AC_MSG_NOTICE([checking how to do getaddrinfo, freeaddrinfo and getnameinfo]) + AC_CHECK_HEADERS_ONCE(netdb.h) + AC_SEARCH_LIBS(getaddrinfo, [nsl socket]) - AC_CHECK_FUNCS(getaddrinfo,, [ + AC_CACHE_CHECK([for getaddrinfo], [gl_cv_func_getaddrinfo], [ + AC_TRY_LINK([ +#include +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETDB_H +#include +#endif +#include +], [getaddrinfo("", "", NULL, NULL);], + [gl_cv_func_getaddrinfo=yes], + [gl_cv_func_getaddrinfo=no])]) + if test $gl_cv_func_getaddrinfo = no; then AC_CACHE_CHECK(for getaddrinfo in ws2tcpip.h and -lws2_32, gl_cv_w32_getaddrinfo, [ gl_cv_w32_getaddrinfo=no @@ -19,21 +35,46 @@ AC_DEFUN([gl_GETADDRINFO], #ifdef HAVE_WS2TCPIP_H #include #endif -], [getaddrinfo(0, 0, 0, 0);], gl_cv_w32_getaddrinfo=yes) +#include +], [getaddrinfo(NULL, NULL, NULL, NULL);], gl_cv_w32_getaddrinfo=yes) LIBS="$am_save_LIBS"]) if test "$gl_cv_w32_getaddrinfo" = "yes"; then LIBS="$LIBS -lws2_32" else AC_LIBOBJ(getaddrinfo) fi - ]) + fi + + # We can't use AC_REPLACE_FUNCS here because gai_strerror may be an + # inline function declared in ws2tcpip.h, so we need to get that + # header included somehow. + AC_CACHE_CHECK([for gai_strerror (possibly via ws2tcpip.h)], + gl_cv_func_gai_strerror, [ + AC_TRY_LINK([ +#include +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETDB_H +#include +#endif +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#include +], [gai_strerror (NULL);], + [gl_cv_func_gai_strerror=yes], + [gl_cv_func_gai_strerror=no])]) + if test $gl_cv_func_gai_strerror = no; then + AC_LIBOBJ(gai_strerror) + fi - AC_REPLACE_FUNCS(gai_strerror) gl_PREREQ_GETADDRINFO ]) # Prerequisites of lib/getaddrinfo.h and lib/getaddrinfo.c. AC_DEFUN([gl_PREREQ_GETADDRINFO], [ + AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H AC_SEARCH_LIBS(gethostbyname, [inet nsl]) AC_SEARCH_LIBS(getservbyname, [inet nsl socket xnet]) AC_CHECK_FUNCS(gethostbyname,, [ @@ -46,7 +87,8 @@ AC_DEFUN([gl_PREREQ_GETADDRINFO], [ #ifdef HAVE_WINSOCK2_H #include #endif -], [gethostbyname(0);], gl_cv_w32_gethostbyname=yes) +#include +], [gethostbyname(NULL);], gl_cv_w32_gethostbyname=yes) LIBS="$am_save_LIBS"]) if test "$gl_cv_w32_gethostbyname" = "yes"; then LIBS="$LIBS -lws2_32" @@ -56,7 +98,7 @@ AC_DEFUN([gl_PREREQ_GETADDRINFO], [ AC_REQUIRE([gl_SOCKET_FAMILIES]) AC_REQUIRE([gl_HEADER_SYS_SOCKET]) AC_REQUIRE([AC_C_INLINE]) - AC_REQUIRE([AC_GNU_SOURCE]) + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE(netinet/in.h netdb.h) AC_CHECK_DECLS([getaddrinfo, freeaddrinfo, gai_strerror, getnameinfo],,,[ /* sys/types.h is not needed according to POSIX, but the diff --git a/gl/m4/getloadavg.m4 b/gl/m4/getloadavg.m4 index 8243729..c1547c7 100644 --- a/gl/m4/getloadavg.m4 +++ b/gl/m4/getloadavg.m4 @@ -31,6 +31,10 @@ AC_CHECK_FUNCS(pstat_getdynamic) AC_CHECK_LIB(kstat, kstat_open) test $ac_cv_lib_kstat_kstat_open = yes && gl_have_func=yes +# AIX has libperfstat which does not require root +AC_CHECK_LIB(perfstat, perfstat_cpu_total) +test $ac_cv_lib_perfstat_perfstat_cpu_total = yes && gl_have_func=yes + # Some systems with -lutil have (and need) -lkvm as well, some do not. # On Solaris, -lkvm requires nlist from -lelf, so check that first # to get the right answer into the cache. diff --git a/gl/m4/gettext.m4 b/gl/m4/gettext.m4 index 91c345e..c9ae1f7 100644 --- a/gl/m4/gettext.m4 +++ b/gl/m4/gettext.m4 @@ -1,5 +1,5 @@ -# gettext.m4 serial 59 (gettext-0.16.1) -dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. +# gettext.m4 serial 60 (gettext-0.17) +dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -362,44 +362,6 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a ]) -dnl Checks for special options needed on MacOS X. -dnl Defines INTL_MACOSX_LIBS. -AC_DEFUN([gt_INTL_MACOSX], -[ - dnl Check for API introduced in MacOS X 10.2. - AC_CACHE_CHECK([for CFPreferencesCopyAppValue], - gt_cv_func_CFPreferencesCopyAppValue, - [gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - AC_TRY_LINK([#include ], - [CFPreferencesCopyAppValue(NULL, NULL)], - [gt_cv_func_CFPreferencesCopyAppValue=yes], - [gt_cv_func_CFPreferencesCopyAppValue=no]) - LIBS="$gt_save_LIBS"]) - if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then - AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, - [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) - fi - dnl Check for API introduced in MacOS X 10.3. - AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, - [gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], - [gt_cv_func_CFLocaleCopyCurrent=yes], - [gt_cv_func_CFLocaleCopyCurrent=no]) - LIBS="$gt_save_LIBS"]) - if test $gt_cv_func_CFLocaleCopyCurrent = yes; then - AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, - [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) - fi - INTL_MACOSX_LIBS= - if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then - INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" - fi - AC_SUBST([INTL_MACOSX_LIBS]) -]) - - dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ diff --git a/gl/m4/glibc21.m4 b/gl/m4/glibc21.m4 new file mode 100644 index 0000000..d95fd98 --- /dev/null +++ b/gl/m4/glibc21.m4 @@ -0,0 +1,30 @@ +# glibc21.m4 serial 3 +dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Test for the GNU C Library, version 2.1 or newer. +# From Bruno Haible. + +AC_DEFUN([gl_GLIBC21], + [ + AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, + ac_cv_gnu_library_2_1, + [AC_EGREP_CPP([Lucky GNU user], + [ +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) + Lucky GNU user + #endif +#endif + ], + ac_cv_gnu_library_2_1=yes, + ac_cv_gnu_library_2_1=no) + ] + ) + AC_SUBST(GLIBC21) + GLIBC21="$ac_cv_gnu_library_2_1" + ] +) diff --git a/gl/m4/gnulib-common.m4 b/gl/m4/gnulib-common.m4 index 5398010..9336d72 100644 --- a/gl/m4/gnulib-common.m4 +++ b/gl/m4/gnulib-common.m4 @@ -1,4 +1,4 @@ -# gnulib-common.m4 serial 2 +# gnulib-common.m4 serial 3 dnl Copyright (C) 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -20,3 +20,46 @@ m4_ifdef([AC_PROG_MKDIR_P], [], [ [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake MKDIR_P='$(mkdir_p)' AC_SUBST([MKDIR_P])])]) + +# AC_C_RESTRICT +# This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61, +# so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++ +# works. +# This definition can be removed once autoconf >= 2.62 can be assumed. +AC_DEFUN([AC_C_RESTRICT], +[AC_CACHE_CHECK([for C/C++ restrict keyword], ac_cv_c_restrict, + [ac_cv_c_restrict=no + # The order here caters to the fact that C++ does not require restrict. + for ac_kw in __restrict __restrict__ _Restrict restrict; do + AC_COMPILE_IFELSE([AC_LANG_PROGRAM( + [[typedef int * int_ptr; + int foo (int_ptr $ac_kw ip) { + return ip[0]; + }]], + [[int s[1]; + int * $ac_kw t = s; + t[0] = 0; + return foo(t)]])], + [ac_cv_c_restrict=$ac_kw]) + test "$ac_cv_c_restrict" != no && break + done + ]) + AH_VERBATIM([restrict], +[/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#undef restrict +/* Work around a bug in Sun C++: it does not support _Restrict, even + though the corresponding Sun C compiler does, which causes + "#define restrict _Restrict" in the previous line. Perhaps some future + version of Sun C++ will work with _Restrict; if so, it'll probably + define __RESTRICT, just as Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +#endif]) + case $ac_cv_c_restrict in + restrict) ;; + no) AC_DEFINE([restrict], []) ;; + *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; + esac +]) diff --git a/gl/m4/gnulib-comp.m4 b/gl/m4/gnulib-comp.m4 index ed4da7d..85ad2e9 100644 --- a/gl/m4/gnulib-comp.m4 +++ b/gl/m4/gnulib-comp.m4 @@ -27,78 +27,98 @@ AC_DEFUN([gl_EARLY], AC_REQUIRE([AC_PROG_RANLIB]) AC_REQUIRE([AC_GNU_SOURCE]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - AC_REQUIRE([gl_LOCK_EARLY]) ]) # This macro should be invoked from ./configure.in, in the section # "Check for header files, types and library functions". AC_DEFUN([gl_INIT], [ - m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ])) - m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS])) - m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) AM_CONDITIONAL([GL_COND_LIBTOOL], [false]) gl_cond_libtool=false gl_libdeps= gl_ltlibdeps= + m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ])) + m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS])) + m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) gl_source_base='gl' gl_FUNC_ALLOCA gl_HEADER_ARPA_INET + AC_PROG_MKDIR_P + gl_FUNC_BASE64 gl_C_STRTOD gl_CLOEXEC gl_DIRNAME gl_DOUBLE_SLASH_ROOT gl_ERROR + m4_ifdef([AM_XGETTEXT_OPTION], + [AM_XGETTEXT_OPTION([--flag=error:3:c-format]) + AM_XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) gl_EXITFAIL - dnl gl_USE_SYSTEM_EXTENSIONS must be added quite early to configure.ac. gl_FCNTL_SAFER gl_MODULE_INDICATOR([fcntl-safer]) + gl_FLOAT_H + gl_FUNC_FLOORF + gl_MATH_MODULE_INDICATOR([floorf]) gl_FSUSAGE gl_GETADDRINFO gl_FUNC_GETHOSTNAME gl_GETLOADAVG([$gl_source_base]) gl_GETOPT dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac. - AM_GNU_GETTEXT_VERSION([0.15]) + AM_GNU_GETTEXT_VERSION([0.17]) + AC_SUBST([LIBINTL]) + AC_SUBST([LTLIBINTL]) gl_INET_NTOP gl_INLINE + gl_LOCALCHARSET + LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\"" + AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT]) AC_FUNC_MALLOC - gl_MBCHAR - gl_MBITER - gl_FUNC_MEMCHR - gl_MINMAX + AC_DEFINE([GNULIB_MALLOC_GNU], 1, [Define to indicate the 'malloc' module.]) + gl_FUNC_MALLOC_POSIX + gl_STDLIB_MODULE_INDICATOR([malloc-posix]) + gl_MATH_H gl_MOUNTLIST gl_HEADER_NETINET_IN + AC_PROG_MKDIR_P gl_REGEX gl_SAFE_READ gl_SAFE_WRITE gl_SIZE_MAX gl_FUNC_SNPRINTF + gl_STDIO_MODULE_INDICATOR([snprintf]) gl_TYPE_SOCKLEN_T gt_TYPE_SSIZE_T AM_STDBOOL_H gl_STDINT_H - gl_STRCASE + gl_STDIO_H + gl_STDLIB_H gl_FUNC_STRDUP + gl_STRING_MODULE_INDICATOR([strdup]) + gl_FUNC_STRERROR + gl_STRING_MODULE_INDICATOR([strerror]) + gl_HEADER_STRING_H gl_FUNC_STRNDUP + gl_STRING_MODULE_INDICATOR([strndup]) gl_FUNC_STRNLEN + gl_STRING_MODULE_INDICATOR([strnlen]) gl_HEADER_SYS_SOCKET AC_PROG_MKDIR_P - gl_HEADER_UNISTD + gl_UNISTD_H gl_UNISTD_SAFER gl_FUNC_VASNPRINTF gl_FUNC_VASPRINTF + gl_STDIO_MODULE_INDICATOR([vasprintf]) + m4_ifdef([AM_XGETTEXT_OPTION], + [AM_XGETTEXT_OPTION([--flag=asprintf:2:c-format]) + AM_XGETTEXT_OPTION([--flag=vasprintf:2:c-format])]) gl_FUNC_VSNPRINTF + gl_STDIO_MODULE_INDICATOR([vsnprintf]) gl_WCHAR_H gl_WCTYPE_H - gl_FUNC_WCWIDTH gl_XALLOC gl_XSIZE gl_XSTRNDUP - LIBGNU_LIBDEPS="$gl_libdeps" - AC_SUBST([LIBGNU_LIBDEPS]) - LIBGNU_LTLIBDEPS="$gl_ltlibdeps" - AC_SUBST([LIBGNU_LTLIBDEPS]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) @@ -116,48 +136,137 @@ AC_DEFUN([gl_INIT], AC_SUBST([gl_LIBOBJS], [$gl_libobjs]) AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs]) ]) + gltests_libdeps= + gltests_ltlibdeps= + m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ])) + m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS])) + m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES])) + gl_source_base='tests' + m4_popdef([AC_LIBSOURCES]) + m4_popdef([AC_REPLACE_FUNCS]) + m4_popdef([AC_LIBOBJ]) + AC_CONFIG_COMMANDS_PRE([ + gltests_libobjs= + gltests_ltlibobjs= + if test -n "$gltests_LIBOBJS"; then + # Remove the extension. + sed_drop_objext='s/\.o$//;s/\.obj$//' + for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do + gltests_libobjs="$gltests_libobjs $i.$ac_objext" + gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" + done + fi + AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs]) + AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs]) + ]) + LIBGNU_LIBDEPS="$gl_libdeps" + AC_SUBST([LIBGNU_LIBDEPS]) + LIBGNU_LTLIBDEPS="$gl_ltlibdeps" + AC_SUBST([LIBGNU_LTLIBDEPS]) ]) # Like AC_LIBOBJ, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. -AC_DEFUN([gl_LIBOBJ], - [gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext"]) +AC_DEFUN([gl_LIBOBJ], [ + AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl + gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext" +]) + +# m4_foreach_w is provided by autoconf-2.59c and later. +# This definition is to accommodate developers using versions +# of autoconf older than that. +m4_ifndef([m4_foreach_w], + [m4_define([m4_foreach_w], + [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. -AC_DEFUN([gl_REPLACE_FUNCS], - [AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)])]) +AC_DEFUN([gl_REPLACE_FUNCS], [ + m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl + AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)]) +]) -# Like AC_LIBSOURCES, except that it does nothing. -# We rely on EXTRA_lib..._SOURCES instead. -AC_DEFUN([gl_LIBSOURCES], - []) +# Like AC_LIBSOURCES, except the directory where the source file is +# expected is derived from the gnulib-tool parametrization, +# and alloca is special cased (for the alloca-opt module). +# We could also entirely rely on EXTRA_lib..._SOURCES. +AC_DEFUN([gl_LIBSOURCES], [ + m4_foreach([_gl_NAME], [$1], [ + m4_if(_gl_NAME, [alloca.c], [], [ + m4_syscmd([test -r gl/]_gl_NAME[ || test ! -d gl])dnl + m4_if(m4_sysval, [0], [], + [AC_FATAL([missing gl/]_gl_NAME)]) + ]) + ]) +]) + +# Like AC_LIBOBJ, except that the module name goes +# into gltests_LIBOBJS instead of into LIBOBJS. +AC_DEFUN([gltests_LIBOBJ], [ + AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl + gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext" +]) + +# m4_foreach_w is provided by autoconf-2.59c and later. +# This definition is to accommodate developers using versions +# of autoconf older than that. +m4_ifndef([m4_foreach_w], + [m4_define([m4_foreach_w], + [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])]) + +# Like AC_REPLACE_FUNCS, except that the module name goes +# into gltests_LIBOBJS instead of into LIBOBJS. +AC_DEFUN([gltests_REPLACE_FUNCS], [ + m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl + AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)]) +]) + +# Like AC_LIBSOURCES, except the directory where the source file is +# expected is derived from the gnulib-tool parametrization, +# and alloca is special cased (for the alloca-opt module). +# We could also entirely rely on EXTRA_lib..._SOURCES. +AC_DEFUN([gltests_LIBSOURCES], [ + m4_foreach([_gl_NAME], [$1], [ + m4_if(_gl_NAME, [alloca.c], [], [ + m4_syscmd([test -r tests/]_gl_NAME[ || test ! -d tests])dnl + m4_if(m4_sysval, [0], [], + [AC_FATAL([missing tests/]_gl_NAME)]) + ]) + ]) +]) # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([gl_FILE_LIST], [ build-aux/config.rpath + build-aux/link-warning.h lib/alloca.c - lib/alloca_.h + lib/alloca.in.h lib/asnprintf.c lib/asprintf.c + lib/base64.c + lib/base64.h lib/basename.c lib/c-strtod.c lib/c-strtod.h lib/cloexec.c lib/cloexec.h + lib/config.charset lib/creat-safer.c lib/dirname.c lib/dirname.h lib/dup-safer.c lib/error.c lib/error.h - lib/exit.h lib/exitfail.c lib/exitfail.h lib/fcntl--.h lib/fcntl-safer.h lib/fd-safer.c + lib/float+.h + lib/float.in.h + lib/floor.c + lib/floorf.c lib/fsusage.c lib/fsusage.h lib/full-read.c @@ -170,27 +279,28 @@ AC_DEFUN([gl_FILE_LIST], [ lib/gethostname.c lib/getloadavg.c lib/getopt.c + lib/getopt.in.h lib/getopt1.c - lib/getopt_.h lib/getopt_int.h lib/gettext.h lib/inet_ntop.c lib/inet_ntop.h lib/intprops.h + lib/localcharset.c + lib/localcharset.h lib/malloc.c - lib/mbchar.c - lib/mbchar.h - lib/mbuiter.h - lib/memchr.c - lib/minmax.h + lib/math.in.h lib/mountlist.c lib/mountlist.h + lib/netinet_in.in.h lib/open-safer.c lib/pipe-safer.c lib/printf-args.c lib/printf-args.h lib/printf-parse.c lib/printf-parse.h + lib/ref-add.sin + lib/ref-del.sin lib/regcomp.c lib/regex.c lib/regex.h @@ -203,34 +313,26 @@ AC_DEFUN([gl_FILE_LIST], [ lib/safe-write.h lib/size_max.h lib/snprintf.c - lib/snprintf.h - lib/socket_.h - lib/stdbool_.h - lib/stdint_.h - lib/strcase.h - lib/strcasecmp.c + lib/stdbool.in.h + lib/stdint.in.h + lib/stdio.in.h + lib/stdlib.in.h lib/strdup.c - lib/strdup.h + lib/strerror.c + lib/string.in.h lib/stripslash.c - lib/strncasecmp.c lib/strndup.c - lib/strndup.h lib/strnlen.c - lib/strnlen.h - lib/strnlen1.c - lib/strnlen1.h + lib/sys_socket.in.h lib/unistd--.h lib/unistd-safer.h - lib/unistd_.h + lib/unistd.in.h lib/vasnprintf.c lib/vasnprintf.h lib/vasprintf.c - lib/vasprintf.h lib/vsnprintf.c - lib/vsnprintf.h - lib/wchar_.h - lib/wctype_.h - lib/wcwidth.h + lib/wchar.in.h + lib/wctype.in.h lib/xalloc-die.c lib/xalloc.h lib/xmalloc.c @@ -240,6 +342,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/absolute-header.m4 m4/alloca.m4 m4/arpa_inet_h.m4 + m4/base64.m4 m4/c-strtod.m4 m4/cloexec.m4 m4/codeset.m4 @@ -251,6 +354,8 @@ AC_DEFUN([gl_FILE_LIST], [ m4/exitfail.m4 m4/extensions.m4 m4/fcntl-safer.m4 + m4/float_h.m4 + m4/floorf.m4 m4/fstypename.m4 m4/fsusage.m4 m4/getaddrinfo.m4 @@ -262,11 +367,13 @@ AC_DEFUN([gl_FILE_LIST], [ m4/glibc21.m4 m4/gnulib-common.m4 m4/iconv.m4 + m4/include_next.m4 m4/inet_ntop.m4 m4/inline.m4 m4/intdiv0.m4 m4/intl.m4 m4/intldir.m4 + m4/intlmacosx.m4 m4/intmax.m4 m4/intmax_t.m4 m4/inttypes-pri.m4 @@ -275,15 +382,12 @@ AC_DEFUN([gl_FILE_LIST], [ m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 + m4/localcharset.m4 m4/lock.m4 - m4/longdouble.m4 m4/longlong.m4 m4/ls-mntd-fs.m4 - m4/mbchar.m4 - m4/mbiter.m4 - m4/mbrtowc.m4 - m4/memchr.m4 - m4/minmax.m4 + m4/malloc.m4 + m4/math_h.m4 m4/mountlist.m4 m4/netinet_in_h.m4 m4/nls.m4 @@ -302,13 +406,15 @@ AC_DEFUN([gl_FILE_LIST], [ m4/stdbool.m4 m4/stdint.m4 m4/stdint_h.m4 - m4/strcase.m4 + m4/stdio_h.m4 + m4/stdlib_h.m4 m4/strdup.m4 + m4/strerror.m4 + m4/string_h.m4 m4/strndup.m4 m4/strnlen.m4 m4/sys_socket_h.m4 m4/uintmax_t.m4 - m4/ulonglong.m4 m4/unistd-safer.m4 m4/unistd_h.m4 m4/vasnprintf.m4 @@ -318,7 +424,6 @@ AC_DEFUN([gl_FILE_LIST], [ m4/wchar.m4 m4/wchar_t.m4 m4/wctype.m4 - m4/wcwidth.m4 m4/wint_t.m4 m4/xalloc.m4 m4/xsize.m4 diff --git a/gl/m4/iconv.m4 b/gl/m4/iconv.m4 index 654c415..66bc76f 100644 --- a/gl/m4/iconv.m4 +++ b/gl/m4/iconv.m4 @@ -1,5 +1,5 @@ -# iconv.m4 serial AM4 (gettext-0.11.3) -dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +# iconv.m4 serial AM6 (gettext-0.17) +dnl Copyright (C) 2000-2002, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -21,6 +21,7 @@ AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. @@ -33,7 +34,7 @@ AC_DEFUN([AM_ICONV_LINK], am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) - AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ + AC_CACHE_CHECK([for iconv], am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include @@ -56,7 +57,85 @@ AC_DEFUN([AM_ICONV_LINK], fi ]) if test "$am_cv_func_iconv" = yes; then - AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) + AC_CACHE_CHECK([for working iconv], am_cv_func_iconv_works, [ + dnl This tests against bugs in AIX 5.1 and HP-UX 11.11. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + AC_TRY_RUN([ +#include +#include +int main () +{ + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + return 1; + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + return 1; + return 0; +}], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], + [case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac]) + LIBS="$am_save_LIBS" + ]) + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + AC_DEFINE(HAVE_ICONV, 1, + [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) diff --git a/gl/m4/include_next.m4 b/gl/m4/include_next.m4 new file mode 100644 index 0000000..7ce472b --- /dev/null +++ b/gl/m4/include_next.m4 @@ -0,0 +1,107 @@ +# include_next.m4 serial 4 +dnl Copyright (C) 2006, 2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert and Derek Price. + +AC_DEFUN([gl_INCLUDE_NEXT], +[ + AC_LANG_PREPROC_REQUIRE() + AC_CACHE_CHECK([whether the preprocessor supports include_next], + [gl_cv_have_include_next], + [rm -rf conftestd1 conftestd2 + mkdir conftestd1 conftestd2 + cat < conftestd1/conftest.h +#define DEFINED_IN_CONFTESTD1 +#include_next +#ifdef DEFINED_IN_CONFTESTD2 +int foo; +#else +#error "include_next doesn't work" +#endif +EOF + cat < conftestd2/conftest.h +#ifndef DEFINED_IN_CONFTESTD1 +#error "include_next test doesn't work" +#endif +#define DEFINED_IN_CONFTESTD2 +EOF + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -Iconftestd1 -Iconftestd2" + AC_COMPILE_IFELSE([#include ], + [gl_cv_have_include_next=yes], + [gl_cv_have_include_next=no]) + CPPFLAGS="$save_CPPFLAGS" + rm -rf conftestd1 conftestd2 + ]) + if test $gl_cv_have_include_next = yes; then + + dnl FIXME: Remove HAVE_INCLUDE_NEXT and update everything that uses it + dnl to use @INCLUDE_NEXT@ instead. + AC_DEFINE([HAVE_INCLUDE_NEXT], 1, + [Define if your compiler supports the #include_next directive.]) + + INCLUDE_NEXT=include_next + else + INCLUDE_NEXT=include + fi + AC_SUBST([INCLUDE_NEXT]) +]) + +# gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...) +# ------------------------------------------ +# For each arg foo.h, if #include_next works, define NEXT_FOO_H to be +# ''; otherwise define it to be +# '"///usr/include/foo.h"', or whatever other absolute file name is suitable. +# That way, a header file with the following line: +# #@INCLUDE_NEXT@ @NEXT_FOO_H@ +# behaves (after sed substitution) as if it contained +# #include_next +# even if the compiler does not support include_next. +# The three "///" are to pacify Sun C 5.8, which otherwise would say +# "warning: #include of /usr/include/... may be non-portable". +# Use `""', not `<>', so that the /// cannot be confused with a C99 comment. +AC_DEFUN([gl_CHECK_NEXT_HEADERS], +[ + AC_REQUIRE([gl_INCLUDE_NEXT]) + AC_CHECK_HEADERS_ONCE([$1]) + + AC_FOREACH([gl_HEADER_NAME], [$1], + [AS_VAR_PUSHDEF([gl_next_header], + [gl_cv_next_]m4_quote(m4_defn([gl_HEADER_NAME]))) + if test $gl_cv_have_include_next = yes; then + AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) + else + AC_CACHE_CHECK( + [absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>], + m4_quote(m4_defn([gl_next_header])), + [AS_VAR_PUSHDEF([gl_header_exists], + [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME]))) + if test AS_VAR_GET(gl_header_exists) = yes; then + AC_LANG_CONFTEST( + [AC_LANG_SOURCE( + [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]] + )]) + dnl eval is necessary to expand ac_cpp. + dnl Ultrix and Pyramid sh refuse to redirect output of eval, + dnl so use subshell. + AS_VAR_SET([gl_next_header], + ['"'`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | + sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{ + s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"']) + else + AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) + fi + AS_VAR_POPDEF([gl_header_exists])]) + fi + AC_SUBST( + AS_TR_CPP([NEXT_]m4_quote(m4_defn([gl_HEADER_NAME]))), + [AS_VAR_GET([gl_next_header])]) + AS_VAR_POPDEF([gl_next_header])]) +]) diff --git a/gl/m4/intlmacosx.m4 b/gl/m4/intlmacosx.m4 new file mode 100644 index 0000000..d3f0d90 --- /dev/null +++ b/gl/m4/intlmacosx.m4 @@ -0,0 +1,51 @@ +# intlmacosx.m4 serial 1 (gettext-0.17) +dnl Copyright (C) 2004-2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Checks for special options needed on MacOS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in MacOS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + gt_cv_func_CFPreferencesCopyAppValue, + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include ], + [CFPreferencesCopyAppValue(NULL, NULL)], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, + [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in MacOS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, + [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) diff --git a/gl/m4/intmax_t.m4 b/gl/m4/intmax_t.m4 index 17c7b0a..50ae35d 100644 --- a/gl/m4/intmax_t.m4 +++ b/gl/m4/intmax_t.m4 @@ -1,5 +1,5 @@ -# intmax_t.m4 serial 5 -dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc. +# intmax_t.m4 serial 6 +dnl Copyright (C) 1997-2004, 2006-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -18,8 +18,8 @@ AC_DEFUN([gl_AC_TYPE_INTMAX_T], AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then - AC_REQUIRE([gl_AC_TYPE_LONG_LONG]) - test $ac_cv_type_long_long = yes \ + AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) + test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' AC_DEFINE_UNQUOTED(intmax_t, $ac_type, @@ -51,8 +51,8 @@ AC_DEFUN([gt_AC_TYPE_INTMAX_T], AC_DEFINE(HAVE_INTMAX_T, 1, [Define if you have the 'intmax_t' type in or .]) else - AC_REQUIRE([gl_AC_TYPE_LONG_LONG]) - test $ac_cv_type_long_long = yes \ + AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) + test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' AC_DEFINE_UNQUOTED(intmax_t, $ac_type, diff --git a/gl/m4/lib-link.m4 b/gl/m4/lib-link.m4 index f157d98..e3d26fc 100644 --- a/gl/m4/lib-link.m4 +++ b/gl/m4/lib-link.m4 @@ -1,4 +1,4 @@ -# lib-link.m4 serial 13 (gettext-0.16.2) +# lib-link.m4 serial 13 (gettext-0.17) dnl Copyright (C) 2001-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, diff --git a/gl/m4/localcharset.m4 b/gl/m4/localcharset.m4 new file mode 100644 index 0000000..b2b7733 --- /dev/null +++ b/gl/m4/localcharset.m4 @@ -0,0 +1,16 @@ +# localcharset.m4 serial 5 +dnl Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_LOCALCHARSET], +[ + dnl Prerequisites of lib/localcharset.c. + AC_REQUIRE([AM_LANGINFO_CODESET]) + AC_CHECK_DECLS_ONCE(getc_unlocked) + + dnl Prerequisites of the lib/Makefile.am snippet. + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_GLIBC21]) +]) diff --git a/gl/m4/lock.m4 b/gl/m4/lock.m4 deleted file mode 100644 index 0224f2f..0000000 --- a/gl/m4/lock.m4 +++ /dev/null @@ -1,311 +0,0 @@ -# lock.m4 serial 6 (gettext-0.16) -dnl Copyright (C) 2005-2006 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -dnl Tests for a multithreading library to be used. -dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, -dnl USE_PTH_THREADS, USE_WIN32_THREADS -dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use -dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with -dnl libtool). -dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for -dnl programs that really need multithread functionality. The difference -dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak -dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread". -dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for -dnl multithread-safe programs. - -AC_DEFUN([gl_LOCK_EARLY], -[ - AC_REQUIRE([gl_LOCK_EARLY_BODY]) -]) - -dnl The guts of gl_LOCK_EARLY. Needs to be expanded only once. - -AC_DEFUN([gl_LOCK_EARLY_BODY], -[ - dnl Ordering constraints: This macro modifies CPPFLAGS in a way that - dnl influences the result of the autoconf tests that test for *_unlocked - dnl declarations, on AIX 5 at least. Therefore it must come early. - AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl - AC_BEFORE([$0], [gl_ARGP])dnl - - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([AC_GNU_SOURCE]) dnl needed for pthread_rwlock_t on glibc systems - dnl Check for multithreading. - AC_ARG_ENABLE(threads, -AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API]) -AC_HELP_STRING([--disable-threads], [build without multithread safety]), - [gl_use_threads=$enableval], - [case "$host_os" in - dnl Disable multithreading by default on OSF/1, because it interferes - dnl with fork()/exec(): When msgexec is linked with -lpthread, its child - dnl process gets an endless segmentation fault inside execvp(). - osf*) gl_use_threads=no ;; - *) gl_use_threads=yes ;; - esac - ]) - if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then - # For using : - case "$host_os" in - osf*) - # On OSF/1, the compiler needs the flag -D_REENTRANT so that it - # groks . cc also understands the flag -pthread, but - # we don't use it because 1. gcc-2.95 doesn't understand -pthread, - # 2. putting a flag into CPPFLAGS that has an effect on the linker - # causes the AC_TRY_LINK test below to succeed unexpectedly, - # leading to wrong values of LIBTHREAD and LTLIBTHREAD. - CPPFLAGS="$CPPFLAGS -D_REENTRANT" - ;; - esac - # Some systems optimize for single-threaded programs by default, and - # need special flags to disable these optimizations. For example, the - # definition of 'errno' in . - case "$host_os" in - aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; - solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; - esac - fi -]) - -dnl The guts of gl_LOCK. Needs to be expanded only once. - -AC_DEFUN([gl_LOCK_BODY], -[ - AC_REQUIRE([gl_LOCK_EARLY_BODY]) - gl_threads_api=none - LIBTHREAD= - LTLIBTHREAD= - LIBMULTITHREAD= - LTLIBMULTITHREAD= - if test "$gl_use_threads" != no; then - dnl Check whether the compiler and linker support weak declarations. - AC_MSG_CHECKING([whether imported symbols can be declared weak]) - gl_have_weak=no - AC_TRY_LINK([extern void xyzzy (); -#pragma weak xyzzy], [xyzzy();], [gl_have_weak=yes]) - AC_MSG_RESULT([$gl_have_weak]) - if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then - # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that - # it groks . It's added above, in gl_LOCK_EARLY_BODY. - AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no) - if test "$gl_have_pthread_h" = yes; then - # Other possible tests: - # -lpthreads (FSU threads, PCthreads) - # -lgthreads - gl_have_pthread= - # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist - # in libc. IRIX 6.5 has the first one in both libc and libpthread, but - # the second one only in libpthread, and lock.c needs it. - AC_TRY_LINK([#include ], - [pthread_mutex_lock((pthread_mutex_t*)0); - pthread_mutexattr_init((pthread_mutexattr_t*)0);], - [gl_have_pthread=yes]) - # Test for libpthread by looking for pthread_kill. (Not pthread_self, - # since it is defined as a macro on OSF/1.) - if test -n "$gl_have_pthread"; then - # The program links fine without libpthread. But it may actually - # need to link with libpthread in order to create multiple threads. - AC_CHECK_LIB(pthread, pthread_kill, - [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread - # On Solaris and HP-UX, most pthread functions exist also in libc. - # Therefore pthread_in_use() needs to actually try to create a - # thread: pthread_create from libc will fail, whereas - # pthread_create will actually create a thread. - case "$host_os" in - solaris* | hpux*) - AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], 1, - [Define if the pthread_in_use() detection is hard.]) - esac - ]) - else - # Some library is needed. Try libpthread and libc_r. - AC_CHECK_LIB(pthread, pthread_kill, - [gl_have_pthread=yes - LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread - LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) - if test -z "$gl_have_pthread"; then - # For FreeBSD 4. - AC_CHECK_LIB(c_r, pthread_kill, - [gl_have_pthread=yes - LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r - LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) - fi - fi - if test -n "$gl_have_pthread"; then - gl_threads_api=posix - AC_DEFINE([USE_POSIX_THREADS], 1, - [Define if the POSIX multithreading library can be used.]) - if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then - if test $gl_have_weak = yes; then - AC_DEFINE([USE_POSIX_THREADS_WEAK], 1, - [Define if references to the POSIX multithreading library should be made weak.]) - LIBTHREAD= - LTLIBTHREAD= - fi - fi - # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the - # pthread_rwlock_* functions. - AC_CHECK_TYPE([pthread_rwlock_t], - [AC_DEFINE([HAVE_PTHREAD_RWLOCK], 1, - [Define if the POSIX multithreading library has read/write locks.])], - [], - [#include ]) - # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. - AC_TRY_COMPILE([#include ], - [#if __FreeBSD__ == 4 -error "No, in FreeBSD 4.0 recursive mutexes actually don't work." -#else -int x = (int)PTHREAD_MUTEX_RECURSIVE; -return !x; -#endif], - [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1, - [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) - fi - fi - fi - if test -z "$gl_have_pthread"; then - if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then - gl_have_solaristhread= - gl_save_LIBS="$LIBS" - LIBS="$LIBS -lthread" - AC_TRY_LINK([#include -#include ], - [thr_self();], - [gl_have_solaristhread=yes]) - LIBS="$gl_save_LIBS" - if test -n "$gl_have_solaristhread"; then - gl_threads_api=solaris - LIBTHREAD=-lthread - LTLIBTHREAD=-lthread - LIBMULTITHREAD="$LIBTHREAD" - LTLIBMULTITHREAD="$LTLIBTHREAD" - AC_DEFINE([USE_SOLARIS_THREADS], 1, - [Define if the old Solaris multithreading library can be used.]) - if test $gl_have_weak = yes; then - AC_DEFINE([USE_SOLARIS_THREADS_WEAK], 1, - [Define if references to the old Solaris multithreading library should be made weak.]) - LIBTHREAD= - LTLIBTHREAD= - fi - fi - fi - fi - if test "$gl_use_threads" = pth; then - gl_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_LINKFLAGS(pth) - gl_have_pth= - gl_save_LIBS="$LIBS" - LIBS="$LIBS -lpth" - AC_TRY_LINK([#include ], [pth_self();], gl_have_pth=yes) - LIBS="$gl_save_LIBS" - if test -n "$gl_have_pth"; then - gl_threads_api=pth - LIBTHREAD="$LIBPTH" - LTLIBTHREAD="$LTLIBPTH" - LIBMULTITHREAD="$LIBTHREAD" - LTLIBMULTITHREAD="$LTLIBTHREAD" - AC_DEFINE([USE_PTH_THREADS], 1, - [Define if the GNU Pth multithreading library can be used.]) - if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then - if test $gl_have_weak = yes; then - AC_DEFINE([USE_PTH_THREADS_WEAK], 1, - [Define if references to the GNU Pth multithreading library should be made weak.]) - LIBTHREAD= - LTLIBTHREAD= - fi - fi - else - CPPFLAGS="$gl_save_CPPFLAGS" - fi - fi - if test -z "$gl_have_pthread"; then - if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then - if { case "$host_os" in - mingw*) true;; - *) false;; - esac - }; then - gl_threads_api=win32 - AC_DEFINE([USE_WIN32_THREADS], 1, - [Define if the Win32 multithreading API can be used.]) - fi - fi - fi - fi - AC_MSG_CHECKING([for multithread API to use]) - AC_MSG_RESULT([$gl_threads_api]) - AC_SUBST(LIBTHREAD) - AC_SUBST(LTLIBTHREAD) - AC_SUBST(LIBMULTITHREAD) - AC_SUBST(LTLIBMULTITHREAD) -]) - -AC_DEFUN([gl_LOCK], -[ - AC_REQUIRE([gl_LOCK_EARLY]) - AC_REQUIRE([gl_LOCK_BODY]) - gl_PREREQ_LOCK -]) - -# Prerequisites of lib/lock.c. -AC_DEFUN([gl_PREREQ_LOCK], [ - AC_REQUIRE([AC_C_INLINE]) -]) - -dnl Survey of platforms: -dnl -dnl Platform Available Compiler Supports test-lock -dnl flavours option weak result -dnl --------------- --------- --------- -------- --------- -dnl Linux 2.4/glibc posix -lpthread Y OK -dnl -dnl GNU Hurd/glibc posix -dnl -dnl FreeBSD 5.3 posix -lc_r Y -dnl posix -lkse ? Y -dnl posix -lpthread ? Y -dnl posix -lthr Y -dnl -dnl FreeBSD 5.2 posix -lc_r Y -dnl posix -lkse Y -dnl posix -lthr Y -dnl -dnl FreeBSD 4.0,4.10 posix -lc_r Y OK -dnl -dnl NetBSD 1.6 -- -dnl -dnl OpenBSD 3.4 posix -lpthread Y OK -dnl -dnl MacOS X 10.[123] posix -lpthread Y OK -dnl -dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK -dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK -dnl -dnl HP-UX 11 posix -lpthread N (cc) OK -dnl Y (gcc) -dnl -dnl IRIX 6.5 posix -lpthread Y 0.5 -dnl -dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK -dnl -dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK -dnl -lpthread (gcc) Y -dnl -dnl Cygwin posix -lpthread Y OK -dnl -dnl Any of the above pth -lpth 0.0 -dnl -dnl Mingw win32 N OK -dnl -dnl BeOS 5 -- -dnl -dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is -dnl turned off: -dnl OK if all three tests terminate OK, -dnl 0.5 if the first test terminates OK but the second one loops endlessly, -dnl 0.0 if the first test already loops endlessly. diff --git a/gl/m4/longdouble.m4 b/gl/m4/longdouble.m4 deleted file mode 100644 index 25590f4..0000000 --- a/gl/m4/longdouble.m4 +++ /dev/null @@ -1,31 +0,0 @@ -# longdouble.m4 serial 2 (gettext-0.15) -dnl Copyright (C) 2002-2003, 2006 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. -dnl Test whether the compiler supports the 'long double' type. -dnl Prerequisite: AC_PROG_CC - -dnl This file is only needed in autoconf <= 2.59. Newer versions of autoconf -dnl have a macro AC_TYPE_LONG_DOUBLE with identical semantics. - -AC_DEFUN([gt_TYPE_LONGDOUBLE], -[ - AC_CACHE_CHECK([for long double], gt_cv_c_long_double, - [if test "$GCC" = yes; then - gt_cv_c_long_double=yes - else - AC_TRY_COMPILE([ - /* The Stardent Vistra knows sizeof(long double), but does not support it. */ - long double foo = 0.0; - /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ - int array [2*(sizeof(long double) >= sizeof(double)) - 1]; - ], , - gt_cv_c_long_double=yes, gt_cv_c_long_double=no) - fi]) - if test $gt_cv_c_long_double = yes; then - AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.]) - fi -]) diff --git a/gl/m4/longlong.m4 b/gl/m4/longlong.m4 index 1f9e862..15bf9da 100644 --- a/gl/m4/longlong.m4 +++ b/gl/m4/longlong.m4 @@ -1,5 +1,5 @@ -# longlong.m4 serial 10 -dnl Copyright (C) 1999-2006 Free Software Foundation, Inc. +# longlong.m4 serial 13 +dnl Copyright (C) 1999-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -7,8 +7,8 @@ dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_LONG_LONG_INT if 'long long int' works. -# This fixes a bug in Autoconf 2.60, but can be removed once we -# assume 2.61 everywhere. +# This fixes a bug in Autoconf 2.61, but can be removed once we +# assume 2.62 everywhere. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be @@ -18,20 +18,11 @@ AC_DEFUN([AC_TYPE_LONG_LONG_INT], [ AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], [AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[long long int ll = 9223372036854775807ll; - long long int nll = -9223372036854775807LL; - typedef int a[((-9223372036854775807LL < 0 - && 0 < 9223372036854775807ll) - ? 1 : -1)]; - int i = 63;]], - [[long long int llmax = 9223372036854775807ll; - return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll));]])], + [_AC_TYPE_LONG_LONG_SNIPPET], [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. dnl If cross compiling, assume the bug isn't important, since dnl nobody cross compiles for this platform as far as we know. - AC_RUN_IFELSE( + AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[@%:@include @%:@ifndef LLONG_MAX @@ -60,13 +51,56 @@ AC_DEFUN([AC_TYPE_LONG_LONG_INT], fi ]) -# This macro is obsolescent and should go away soon. -AC_DEFUN([gl_AC_TYPE_LONG_LONG], +# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. +# This fixes a bug in Autoconf 2.61, but can be removed once we +# assume 2.62 everywhere. + +# Note: If the type 'unsigned long long int' exists but is only 32 bits +# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT +# will not be defined. In this case you can treat 'unsigned long long int' +# like 'unsigned long int'. + +AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], [ - AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) - ac_cv_type_long_long=$ac_cv_type_long_long_int - if test $ac_cv_type_long_long = yes; then - AC_DEFINE(HAVE_LONG_LONG, 1, - [Define if you have the 'long long' type.]) + AC_CACHE_CHECK([for unsigned long long int], + [ac_cv_type_unsigned_long_long_int], + [AC_LINK_IFELSE( + [_AC_TYPE_LONG_LONG_SNIPPET], + [ac_cv_type_unsigned_long_long_int=yes], + [ac_cv_type_unsigned_long_long_int=no])]) + if test $ac_cv_type_unsigned_long_long_int = yes; then + AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1, + [Define to 1 if the system has the type `unsigned long long int'.]) fi ]) + +# Expands to a C program that can be used to test for simultaneous support +# of 'long long' and 'unsigned long long'. We don't want to say that +# 'long long' is available if 'unsigned long long' is not, or vice versa, +# because too many programs rely on the symmetry between signed and unsigned +# integer types (excluding 'bool'). +AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], +[ + AC_LANG_PROGRAM( + [[/* For now, do not test the preprocessor; as of 2007 there are too many + implementations with broken preprocessors. Perhaps this can + be revisited in 2012. In the meantime, code should not expect + #if to work with literals wider than 32 bits. */ + /* Test literals. */ + long long int ll = 9223372036854775807ll; + long long int nll = -9223372036854775807LL; + unsigned long long int ull = 18446744073709551615ULL; + /* Test constant expressions. */ + typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) + ? 1 : -1)]; + typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 + ? 1 : -1)]; + int i = 63;]], + [[/* Test availability of runtime routines for shift and division. */ + long long int llmax = 9223372036854775807ll; + unsigned long long int ullmax = 18446744073709551615ull; + return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) + | (llmax / ll) | (llmax % ll) + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull));]]) +]) diff --git a/gl/m4/malloc.m4 b/gl/m4/malloc.m4 new file mode 100644 index 0000000..764f2a9 --- /dev/null +++ b/gl/m4/malloc.m4 @@ -0,0 +1,41 @@ +# malloc.m4 serial 8 +dnl Copyright (C) 2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# gl_FUNC_MALLOC_POSIX +# -------------------- +# Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it +# fails), and replace malloc if it is not. +AC_DEFUN([gl_FUNC_MALLOC_POSIX], +[ + AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) + if test $gl_cv_func_malloc_posix = yes; then + HAVE_MALLOC_POSIX=1 + AC_DEFINE([HAVE_MALLOC_POSIX], 1, + [Define if the 'malloc' function is POSIX compliant.]) + else + AC_LIBOBJ([malloc]) + HAVE_MALLOC_POSIX=0 + fi + AC_SUBST([HAVE_MALLOC_POSIX]) +]) + +# Test whether malloc, realloc, calloc are POSIX compliant, +# Set gl_cv_func_malloc_posix to yes or no accordingly. +AC_DEFUN([gl_CHECK_MALLOC_POSIX], +[ + AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant], + [gl_cv_func_malloc_posix], + [ + dnl It is too dangerous to try to allocate a large amount of memory: + dnl some systems go to their knees when you do that. So assume that + dnl all Unix implementations of the function are POSIX compliant. + AC_TRY_COMPILE([], + [#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + choke me + #endif + ], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no]) + ]) +]) diff --git a/gl/m4/math_h.m4 b/gl/m4/math_h.m4 new file mode 100644 index 0000000..dd99e7f --- /dev/null +++ b/gl/m4/math_h.m4 @@ -0,0 +1,66 @@ +# math_h.m4 serial 9 +dnl Copyright (C) 2007-2008 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_MATH_H], +[ + AC_REQUIRE([gl_MATH_H_DEFAULTS]) + gl_CHECK_NEXT_HEADERS([math.h]) +]) + +AC_DEFUN([gl_MATH_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_MATH_H_DEFAULTS]) + GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 +]) + +AC_DEFUN([gl_MATH_H_DEFAULTS], +[ + GNULIB_CEILF=0; AC_SUBST([GNULIB_CEILF]) + GNULIB_CEILL=0; AC_SUBST([GNULIB_CEILL]) + GNULIB_FLOORF=0; AC_SUBST([GNULIB_FLOORF]) + GNULIB_FLOORL=0; AC_SUBST([GNULIB_FLOORL]) + GNULIB_FREXP=0; AC_SUBST([GNULIB_FREXP]) + GNULIB_FREXPL=0; AC_SUBST([GNULIB_FREXPL]) + GNULIB_ISFINITE=0; AC_SUBST([GNULIB_ISFINITE]) + GNULIB_LDEXPL=0; AC_SUBST([GNULIB_LDEXPL]) + GNULIB_MATHL=0; AC_SUBST([GNULIB_MATHL]) + GNULIB_ROUND=0; AC_SUBST([GNULIB_ROUND]) + GNULIB_ROUNDF=0; AC_SUBST([GNULIB_ROUNDF]) + GNULIB_ROUNDL=0; AC_SUBST([GNULIB_ROUNDL]) + GNULIB_SIGNBIT=0; AC_SUBST([GNULIB_SIGNBIT]) + GNULIB_TRUNC=0; AC_SUBST([GNULIB_TRUNC]) + GNULIB_TRUNCF=0; AC_SUBST([GNULIB_TRUNCF]) + GNULIB_TRUNCL=0; AC_SUBST([GNULIB_TRUNCL]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL]) + HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL]) + HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL]) + HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL]) + HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL]) + HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL]) + HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL]) + HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL]) + HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL]) + HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL]) + HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL]) + HAVE_DECL_TRUNC=1; AC_SUBST([HAVE_DECL_TRUNC]) + HAVE_DECL_TRUNCF=1; AC_SUBST([HAVE_DECL_TRUNCF]) + HAVE_DECL_TRUNCL=1; AC_SUBST([HAVE_DECL_TRUNCL]) + REPLACE_CEILF=0; AC_SUBST([REPLACE_CEILF]) + REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL]) + REPLACE_FLOORF=0; AC_SUBST([REPLACE_FLOORF]) + REPLACE_FLOORL=0; AC_SUBST([REPLACE_FLOORL]) + REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP]) + REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL]) + REPLACE_ISFINITE=0; AC_SUBST([REPLACE_ISFINITE]) + REPLACE_LDEXPL=0; AC_SUBST([REPLACE_LDEXPL]) + REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND]) + REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF]) + REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL]) + REPLACE_SIGNBIT=0; AC_SUBST([REPLACE_SIGNBIT]) + REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC]) +]) diff --git a/gl/m4/mbchar.m4 b/gl/m4/mbchar.m4 deleted file mode 100644 index 5380941..0000000 --- a/gl/m4/mbchar.m4 +++ /dev/null @@ -1,14 +0,0 @@ -# mbchar.m4 serial 5 -dnl Copyright (C) 2005-2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl autoconf tests required for use of mbchar.m4 -dnl From Bruno Haible. - -AC_DEFUN([gl_MBCHAR], -[ - AC_REQUIRE([AC_GNU_SOURCE]) - AC_LIBOBJ([mbchar]) -]) diff --git a/gl/m4/mbiter.m4 b/gl/m4/mbiter.m4 deleted file mode 100644 index 7d51af1..0000000 --- a/gl/m4/mbiter.m4 +++ /dev/null @@ -1,17 +0,0 @@ -# mbiter.m4 serial 2 -dnl Copyright (C) 2005 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl autoconf tests required for use of mbiter.h -dnl From Bruno Haible. - -AC_DEFUN([gl_MBITER], -[ - AC_REQUIRE([AC_TYPE_MBSTATE_T]) - dnl The following line is that so the user can test HAVE_MBRTOWC before - dnl #include "mbiter.h" or "mbuiter.h". - AC_REQUIRE([gl_FUNC_MBRTOWC]) - : -]) diff --git a/gl/m4/mbrtowc.m4 b/gl/m4/mbrtowc.m4 deleted file mode 100644 index a3bd911..0000000 --- a/gl/m4/mbrtowc.m4 +++ /dev/null @@ -1,31 +0,0 @@ -# mbrtowc.m4 serial 8 -dnl Copyright (C) 2001-2002, 2004-2005 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Paul Eggert - -dnl This file can be removed, and gl_FUNC_MBRTOWC replaced with -dnl AC_FUNC_MBRTOWC, when autoconf 2.60 can be assumed everywhere. - -AC_DEFUN([gl_FUNC_MBRTOWC], -[ - dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60. - AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared], - gl_cv_func_mbrtowc, - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include ]], - [[wchar_t wc; - char const s[] = ""; - size_t n = 1; - mbstate_t state; - return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])], - gl_cv_func_mbrtowc=yes, - gl_cv_func_mbrtowc=no)]) - if test $gl_cv_func_mbrtowc = yes; then - AC_DEFINE([HAVE_MBRTOWC], 1, - [Define to 1 if mbrtowc and mbstate_t are properly declared.]) - fi -]) diff --git a/gl/m4/mbstate_t.m4 b/gl/m4/mbstate_t.m4 new file mode 100644 index 0000000..df2a275 --- /dev/null +++ b/gl/m4/mbstate_t.m4 @@ -0,0 +1,30 @@ +# mbstate_t.m4 serial 9 +dnl Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# From Paul Eggert. + +# BeOS 5 has but does not define mbstate_t, +# so you can't declare an object of that type. +# Check for this incompatibility with Standard C. + +# AC_TYPE_MBSTATE_T +# ----------------- +AC_DEFUN([AC_TYPE_MBSTATE_T], + [AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t, + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [AC_INCLUDES_DEFAULT +# include ], + [mbstate_t x; return sizeof x;])], + [ac_cv_type_mbstate_t=yes], + [ac_cv_type_mbstate_t=no])]) + if test $ac_cv_type_mbstate_t = yes; then + AC_DEFINE([HAVE_MBSTATE_T], 1, + [Define to 1 if declares mbstate_t.]) + else + AC_DEFINE([mbstate_t], int, + [Define to a type if does not define.]) + fi]) diff --git a/gl/m4/memchr.m4 b/gl/m4/memchr.m4 deleted file mode 100644 index 91b8636..0000000 --- a/gl/m4/memchr.m4 +++ /dev/null @@ -1,18 +0,0 @@ -# memchr.m4 serial 4 -dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -AC_DEFUN([gl_FUNC_MEMCHR], -[ - AC_REPLACE_FUNCS(memchr) - if test $ac_cv_func_memchr = no; then - gl_PREREQ_MEMCHR - fi -]) - -# Prerequisites of lib/memchr.c. -AC_DEFUN([gl_PREREQ_MEMCHR], [ - AC_CHECK_HEADERS(bp-sym.h) -]) diff --git a/gl/m4/minmax.m4 b/gl/m4/minmax.m4 deleted file mode 100644 index bbd1ba0..0000000 --- a/gl/m4/minmax.m4 +++ /dev/null @@ -1,41 +0,0 @@ -# minmax.m4 serial 2 -dnl Copyright (C) 2005 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -AC_PREREQ(2.52) - -AC_DEFUN([gl_MINMAX], -[ - AC_REQUIRE([gl_PREREQ_MINMAX]) -]) - -# Prerequisites of lib/minmax.h. -AC_DEFUN([gl_PREREQ_MINMAX], -[ - gl_MINMAX_IN_HEADER([limits.h]) - gl_MINMAX_IN_HEADER([sys/param.h]) -]) - -dnl gl_MINMAX_IN_HEADER(HEADER) -dnl The parameter has to be a literal header name; it cannot be macro, -dnl nor a shell variable. (Because autoheader collects only AC_DEFINE -dnl invocations with a literal macro name.) -AC_DEFUN([gl_MINMAX_IN_HEADER], -[ - m4_pushdef([header], AS_TR_SH([$1])) - m4_pushdef([HEADER], AS_TR_CPP([$1])) - AC_CACHE_CHECK([whether <$1> defines MIN and MAX], - [gl_cv_minmax_in_]header, - [AC_TRY_COMPILE([#include <$1> -int x = MIN (42, 17);], [], - [gl_cv_minmax_in_]header[=yes], - [gl_cv_minmax_in_]header[=no])]) - if test $gl_cv_minmax_in_[]header = yes; then - AC_DEFINE([HAVE_MINMAX_IN_]HEADER, 1, - [Define to 1 if <$1> defines the MIN and MAX macros.]) - fi - m4_popdef([HEADER]) - m4_popdef([header]) -]) diff --git a/gl/m4/netinet_in_h.m4 b/gl/m4/netinet_in_h.m4 index d73531a..096be74 100644 --- a/gl/m4/netinet_in_h.m4 +++ b/gl/m4/netinet_in_h.m4 @@ -1,18 +1,30 @@ -# netinet_in_h.m4 serial 1 -dnl Copyright (C) 2006 Free Software Foundation, Inc. +# netinet_in_h.m4 serial 3 +dnl Copyright (C) 2006-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. -dnl Written by Simon Josefsson - AC_DEFUN([gl_HEADER_NETINET_IN], [ - AC_CHECK_HEADERS_ONCE([netinet/in.h]) - if test $ac_cv_header_netinet_in_h = yes; then + AC_CACHE_CHECK([whether is self-contained], + [gl_cv_header_netinet_in_h_selfcontained], + [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [])], + [gl_cv_header_netinet_in_h_selfcontained=yes], + [gl_cv_header_netinet_in_h_selfcontained=no]) + ]) + if test $gl_cv_header_netinet_in_h_selfcontained = yes; then NETINET_IN_H='' else NETINET_IN_H='netinet/in.h' + AC_CHECK_HEADERS([netinet/in.h]) + gl_CHECK_NEXT_HEADERS([netinet/in.h]) + if test $ac_cv_header_netinet_in_h = yes; then + HAVE_NETINET_IN_H=1 + else + HAVE_NETINET_IN_H=0 + fi + AC_SUBST([HAVE_NETINET_IN_H]) fi - AC_SUBST(NETINET_IN_H) + AC_SUBST([NETINET_IN_H]) ]) diff --git a/gl/m4/po.m4 b/gl/m4/po.m4 index 00133ef..0734762 100644 --- a/gl/m4/po.m4 +++ b/gl/m4/po.m4 @@ -1,5 +1,5 @@ -# po.m4 serial 13 (gettext-0.15) -dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. +# po.m4 serial 15 (gettext-0.17) +dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -27,6 +27,10 @@ AC_DEFUN([AM_PO_SUBDIRS], AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AM_NLS])dnl + dnl Release version of the gettext macros. This is used to ensure that + dnl the gettext macros and po/Makefile.in.in are in sync. + AC_SUBST([GETTEXT_MACRO_VERSION], [0.17]) + dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. @@ -84,6 +88,10 @@ changequote([,])dnl test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) + dnl Support for AM_XGETTEXT_OPTION. + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" @@ -426,3 +434,16 @@ EOF fi mv "$ac_file.tmp" "$ac_file" ]) + +dnl Initializes the accumulator used by AM_XGETTEXT_OPTION. +AC_DEFUN([AM_XGETTEXT_OPTION_INIT], +[ + XGETTEXT_EXTRA_OPTIONS= +]) + +dnl Registers an option to be passed to xgettext in the po subdirectory. +AC_DEFUN([AM_XGETTEXT_OPTION], +[ + AC_REQUIRE([AM_XGETTEXT_OPTION_INIT]) + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1" +]) diff --git a/gl/m4/regex.m4 b/gl/m4/regex.m4 index 25da645..7da6efe 100644 --- a/gl/m4/regex.m4 +++ b/gl/m4/regex.m4 @@ -1,4 +1,4 @@ -#serial 42 +#serial 48 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007 Free Software Foundation, Inc. @@ -18,9 +18,12 @@ AC_DEFUN([gl_REGEX], AC_ARG_WITH([included-regex], [AC_HELP_STRING([--without-included-regex], - [don't compile regex; this is the default on + [don't compile regex; this is the default on 32-bit systems with recent-enough versions of the GNU C - Library (use with caution on other systems)])]) + Library (use with caution on other systems). + On systems with 64-bit ptrdiff_t and 32-bit int, + --with-included-regex is the default, in case + regex functions operate on very long strings (>2GB)])]) case $with_included_regex in #( yes|no) ac_use_included_regex=$with_included_regex @@ -29,8 +32,7 @@ AC_DEFUN([gl_REGEX], # If the system regex support is good enough that it passes the # following run test, then default to *not* using the included regex.c. # If cross compiling, assume the test would fail and use the included - # regex.c. The first failing regular expression is from `Spencer ere - # test #75' in grep-2.3. + # regex.c. AC_CACHE_CHECK([for working re_compile_pattern], [gl_cv_func_re_compile_pattern_working], [AC_RUN_IFELSE( @@ -74,68 +76,91 @@ AC_DEFUN([gl_REGEX], } #endif + /* This test is from glibc bug 3957, reported by Andrew Mackey. */ + re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("a[^x]b", 6, ®ex); + if (s) + return 1; + + /* This should fail, but succeeds for glibc-2.5. */ + if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) + return 1; + + /* This regular expression is from Spencer ere test number 75 + in grep-2.3. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP); - memset (®ex, 0, sizeof (regex)); + memset (®ex, 0, sizeof regex); for (i = 0; i <= UCHAR_MAX; i++) folded_chars[i] = i; regex.translate = folded_chars; s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) - exit (1); + return 1; - /* This should succeed, but does not for e.g. glibc-2.1.3. */ - memset (®ex, 0, sizeof (regex)); + /* This should succeed, but does not for glibc-2.1.3. */ + memset (®ex, 0, sizeof regex); s = re_compile_pattern ("{1", 2, ®ex); if (s) - exit (1); + return 1; /* The following example is derived from a problem report against gawk from Jorge Stolfi . */ - memset (®ex, 0, sizeof (regex)); + memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[an\371]*n", 7, ®ex); if (s) - exit (1); + return 1; - /* This should match, but does not for e.g. glibc-2.2.1. */ + /* This should match, but does not for glibc-2.2.1. */ if (re_match (®ex, "an", 2, 0, ®s) != 2) - exit (1); + return 1; - memset (®ex, 0, sizeof (regex)); + memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) - exit (1); + return 1; - /* The version of regex.c in e.g. GNU libc-2.2.93 did not - work with a negative RANGE argument. */ + /* glibc-2.2.93 does not work with a negative RANGE argument. */ if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) - exit (1); + return 1; /* The version of regex.c in older versions of gnulib ignored RE_ICASE. Detect that problem too. */ - memset (®ex, 0, sizeof (regex)); re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); + memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) - exit (1); + return 1; if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) - exit (1); + return 1; + + /* Catch a bug reported by Vin Shelton in + http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html + */ + re_set_syntax (RE_SYNTAX_POSIX_BASIC + & ~RE_CONTEXT_INVALID_DUP + & ~RE_NO_EMPTY_RANGES); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); + if (s) + return 1; /* REG_STARTEND was added to glibc on 2004-01-15. Reject older versions. */ if (! REG_STARTEND) - exit (1); + return 1; /* Reject hosts whose regoff_t values are too narrow. These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t and 32-bit int. */ if (sizeof (regoff_t) < sizeof (ptrdiff_t) || sizeof (regoff_t) < sizeof (ssize_t)) - exit (1); + return 1; - exit (0);]])], + return 0;]])], [gl_cv_func_re_compile_pattern_working=yes], [gl_cv_func_re_compile_pattern_working=no], dnl When crosscompiling, assume it is not working. @@ -190,9 +215,8 @@ AC_DEFUN([gl_REGEX], # Prerequisites of lib/regex.c and lib/regex_internal.c. AC_DEFUN([gl_PREREQ_REGEX], [ - AC_REQUIRE([AC_GNU_SOURCE]) + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_C_RESTRICT]) - AC_REQUIRE([AM_LANGINFO_CODESET]) - AC_CHECK_FUNCS_ONCE([iswctype mbrtowc mempcpy wcrtomb wcscoll]) + AC_CHECK_FUNCS_ONCE([isblank iswctype mbrtowc wcrtomb wcscoll]) AC_CHECK_DECLS([isblank], [], [], [#include ]) ]) diff --git a/gl/m4/snprintf.m4 b/gl/m4/snprintf.m4 index 432e037..f21200d 100644 --- a/gl/m4/snprintf.m4 +++ b/gl/m4/snprintf.m4 @@ -1,13 +1,29 @@ -# snprintf.m4 serial 2 -dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +# snprintf.m4 serial 4 +dnl Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_SNPRINTF], [ - AC_REPLACE_FUNCS(snprintf) - AC_CHECK_DECLS_ONCE(snprintf) + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_CHECK_FUNCS([snprintf]) + if test $ac_cv_func_snprintf = no; then + gl_REPLACE_SNPRINTF + fi + AC_CHECK_DECLS_ONCE([snprintf]) + if test $ac_cv_have_decl_snprintf = no; then + HAVE_DECL_SNPRINTF=0 + fi +]) + +AC_DEFUN([gl_REPLACE_SNPRINTF], +[ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_LIBOBJ([snprintf]) + if test $ac_cv_func_snprintf = yes; then + REPLACE_SNPRINTF=1 + fi gl_PREREQ_SNPRINTF ]) diff --git a/gl/m4/socklen.m4 b/gl/m4/socklen.m4 index 5e3765a..b755757 100644 --- a/gl/m4/socklen.m4 +++ b/gl/m4/socklen.m4 @@ -1,5 +1,5 @@ -# socklen.m4 serial 4 -dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc. +# socklen.m4 serial 6 +dnl Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -12,14 +12,14 @@ dnl types for the argument to getsockopt, getpeername, etc. So we dnl have to test to find something that will work. dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find -dnl it there first. That file is included by gnulib's socket_.h, which +dnl it there first. That file is included by gnulib's sys_socket.in.h, which dnl all users of this module should include. Cygwin must not include dnl ws2tcpip.h. AC_DEFUN([gl_TYPE_SOCKLEN_T], [AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl AC_CHECK_TYPE([socklen_t], , [AC_MSG_CHECKING([for socklen_t equivalent]) - AC_CACHE_VAL([gl_cv_gl_cv_socklen_t_equiv], + AC_CACHE_VAL([gl_cv_socklen_t_equiv], [# Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername gl_cv_socklen_t_equiv= diff --git a/gl/m4/stdint.m4 b/gl/m4/stdint.m4 index 1a4b4a6..bb6c34f 100644 --- a/gl/m4/stdint.m4 +++ b/gl/m4/stdint.m4 @@ -1,5 +1,5 @@ -# stdint.m4 serial 22 -dnl Copyright (C) 2001-2002, 2004-2007 Free Software Foundation, Inc. +# stdint.m4 serial 29 +dnl Copyright (C) 2001-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -45,32 +45,32 @@ AC_DEFUN([gl_STDINT_H], fi AC_SUBST([HAVE_SYS_TYPES_H]) - dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_stdint_h. + gl_CHECK_NEXT_HEADERS([stdint.h]) if test $ac_cv_header_stdint_h = yes; then - gl_ABSOLUTE_HEADER([stdint.h]) - ABSOLUTE_STDINT_H=\"$gl_cv_absolute_stdint_h\" HAVE_STDINT_H=1 else - ABSOLUTE_STDINT_H=\"no/such/file/stdint.h\" HAVE_STDINT_H=0 fi - AC_SUBST([ABSOLUTE_STDINT_H]) AC_SUBST([HAVE_STDINT_H]) - dnl Now see whether we need a substitute . Use - dnl ABSOLUTE_STDINT_H, not , so that it also works during - dnl a "config.status --recheck" if a stdint.h has been - dnl created in the build directory. + dnl Now see whether we need a substitute . if test $ac_cv_header_stdint_h = yes; then AC_CACHE_CHECK([whether stdint.h conforms to C99], [gl_cv_header_working_stdint_h], [gl_cv_header_working_stdint_h=no AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ -#include #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ -#include ABSOLUTE_STDINT_H +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#include +/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ +#if !(defined WCHAR_MIN && defined WCHAR_MAX) +#error "WCHAR_MIN, WCHAR_MAX not defined in " +#endif +] +gl_STDINT_INCLUDES +[ #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; @@ -142,12 +142,32 @@ uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; + +#include /* for CHAR_BIT */ +#define TYPE_MINIMUM(t) \ + ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) +#define TYPE_MAXIMUM(t) \ + ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) struct s { - int check_PTRDIFF: PTRDIFF_MIN < 0 && 0 < PTRDIFF_MAX ? 1 : -1; - int check_SIG_ATOMIC: SIG_ATOMIC_MIN <= 0 && 0 < SIG_ATOMIC_MAX ? 1 : -1; - int check_SIZE: 0 < SIZE_MAX ? 1 : -1; - int check_WCHAR: WCHAR_MIN <= 0 && 0 < WCHAR_MAX ? 1 : -1; - int check_WINT: WINT_MIN <= 0 && 0 < WINT_MAX ? 1 : -1; + int check_PTRDIFF: + PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) + && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) + ? 1 : -1; + /* Detect bug in FreeBSD 6.0 / ia64. */ + int check_SIG_ATOMIC: + SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) + && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) + ? 1 : -1; + int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; + int check_WCHAR: + WCHAR_MIN == TYPE_MINIMUM (wchar_t) + && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) + ? 1 : -1; + /* Detect bug in mingw. */ + int check_WINT: + WINT_MIN == TYPE_MINIMUM (wint_t) + && WINT_MAX == TYPE_MAXIMUM (wint_t) + ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: @@ -202,6 +222,10 @@ struct s { fi AC_SUBST([HAVE_SYS_BITYPES_H]) + dnl Check for (missing in Linux uClibc when built without wide + dnl character support). + AC_CHECK_HEADERS_ONCE([wchar.h]) + gl_STDINT_TYPE_PROPERTIES STDINT_H=stdint.h fi @@ -337,14 +361,16 @@ AC_DEFUN([gl_STDINT_INCLUDES], included before . */ #include #include - #include - #include - #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif ]]) dnl gl_STDINT_TYPE_PROPERTIES dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t -dnl of interest to stdint_.h. +dnl of interest to stdint.in.h. AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], [ gl_STDINT_BITSIZEOF([ptrdiff_t sig_atomic_t size_t wchar_t wint_t], diff --git a/gl/m4/stdio_h.m4 b/gl/m4/stdio_h.m4 new file mode 100644 index 0000000..a40d418 --- /dev/null +++ b/gl/m4/stdio_h.m4 @@ -0,0 +1,85 @@ +# stdio_h.m4 serial 9 +dnl Copyright (C) 2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_STDIO_H], +[ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + gl_CHECK_NEXT_HEADERS([stdio.h]) +]) + +AC_DEFUN([gl_STDIO_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 +]) + +AC_DEFUN([gl_STDIO_H_DEFAULTS], +[ + GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX]) + GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX]) + GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF]) + GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX]) + GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX]) + GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX]) + GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF]) + GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX]) + GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) + GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN]) + GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN]) + GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK]) + GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO]) + GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL]) + GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO]) + GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) + GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM]) + GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE]) + dnl Assume proper GNU behavior unless another module says otherwise. + REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) + REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF]) + REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF]) + REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF]) + REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF]) + HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF]) + REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF]) + HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF]) + REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF]) + REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) + HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF]) + REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) + REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN]) + REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN]) + HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO]) + REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO]) + REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK]) + HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO]) + REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO]) + REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL]) + REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) + HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM]) + HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE]) + REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE]) +]) + +dnl Code shared by fseeko and ftello. Determine if large files are supported, +dnl but stdin does not start as a large file by default. +AC_DEFUN([gl_STDIN_LARGE_OFFSET], + [ + AC_CACHE_CHECK([whether stdin defaults to large file offsets], + [gl_cv_var_stdin_large_offset], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], +[#if defined __SL64 && defined __SCLE /* cygwin */ + /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making + fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and + it is easier to do a version check than building a runtime test. */ +# include +# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25) + choke me +# endif +#endif])], + [gl_cv_var_stdin_large_offset=yes], + [gl_cv_var_stdin_large_offset=no])]) +]) diff --git a/gl/m4/stdlib_h.m4 b/gl/m4/stdlib_h.m4 new file mode 100644 index 0000000..fe4ce12 --- /dev/null +++ b/gl/m4/stdlib_h.m4 @@ -0,0 +1,42 @@ +# stdlib_h.m4 serial 5 +dnl Copyright (C) 2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_STDLIB_H], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + gl_CHECK_NEXT_HEADERS([stdlib.h]) +]) + +AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 +]) + +AC_DEFUN([gl_STDLIB_H_DEFAULTS], +[ + GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX]) + GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX]) + GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX]) + GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT]) + GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP]) + GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP]) + GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV]) + GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV]) + GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_CALLOC_POSIX=1; AC_SUBST([HAVE_CALLOC_POSIX]) + HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) + HAVE_MALLOC_POSIX=1; AC_SUBST([HAVE_MALLOC_POSIX]) + HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) + HAVE_REALLOC_POSIX=1; AC_SUBST([HAVE_REALLOC_POSIX]) + HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) + HAVE_UNSETENV=1; AC_SUBST([HAVE_UNSETENV]) + REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) + REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) + VOID_UNSETENV=0; AC_SUBST([VOID_UNSETENV]) +]) diff --git a/gl/m4/strcase.m4 b/gl/m4/strcase.m4 deleted file mode 100644 index ae82790..0000000 --- a/gl/m4/strcase.m4 +++ /dev/null @@ -1,39 +0,0 @@ -# strcase.m4 serial 4 -dnl Copyright (C) 2002, 2005-2006 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -AC_DEFUN([gl_STRCASE], -[ - gl_FUNC_STRCASECMP - gl_FUNC_STRNCASECMP -]) - -AC_DEFUN([gl_FUNC_STRCASECMP], -[ - dnl No known system has a strcasecmp() function that works correctly in - dnl multibyte locales. Therefore we use our version always. - AC_LIBOBJ(strcasecmp) - gl_PREREQ_STRCASECMP -]) - -AC_DEFUN([gl_FUNC_STRNCASECMP], -[ - AC_REPLACE_FUNCS(strncasecmp) - AC_CHECK_DECLS(strncasecmp) - if test $ac_cv_func_strncasecmp = no; then - gl_PREREQ_STRNCASECMP - fi -]) - -# Prerequisites of lib/strcasecmp.c. -AC_DEFUN([gl_PREREQ_STRCASECMP], [ - AC_REQUIRE([gl_FUNC_MBRTOWC]) - : -]) - -# Prerequisites of lib/strncasecmp.c. -AC_DEFUN([gl_PREREQ_STRNCASECMP], [ - : -]) diff --git a/gl/m4/strdup.m4 b/gl/m4/strdup.m4 index f7786e9..8796e9e 100644 --- a/gl/m4/strdup.m4 +++ b/gl/m4/strdup.m4 @@ -1,13 +1,20 @@ -# strdup.m4 serial 7 -dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# strdup.m4 serial 9 + +dnl Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software +dnl Foundation, Inc. + dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRDUP], [ + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REPLACE_FUNCS(strdup) AC_CHECK_DECLS_ONCE(strdup) + if test $ac_cv_have_decl_strdup = no; then + HAVE_DECL_STRDUP=0 + fi gl_PREREQ_STRDUP ]) diff --git a/gl/m4/strerror.m4 b/gl/m4/strerror.m4 new file mode 100644 index 0000000..eb7d45a --- /dev/null +++ b/gl/m4/strerror.m4 @@ -0,0 +1,47 @@ +# strerror.m4 serial 7 +dnl Copyright (C) 2002, 2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_STRERROR], +[ + AC_REQUIRE([gl_FUNC_STRERROR_SEPARATE]) + if test $gl_cv_func_working_strerror = no; then + AC_LIBOBJ([strerror]) + AC_DEFINE_UNQUOTED([REPLACE_STRERROR], [$REPLACE_STRERROR], + [Define this to 1 if strerror is broken.]) + fi +]) + +# Like gl_FUNC_STRERROR, except prepare for separate compilation (no AC_LIBOBJ). +AC_DEFUN([gl_FUNC_STRERROR_SEPARATE], +[ + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + AC_CACHE_CHECK([for working strerror function], + [gl_cv_func_working_strerror], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [#include + ], + [return !*strerror (-2);])], + [gl_cv_func_working_strerror=yes], + [gl_cv_func_working_strerror=no], + [dnl Assume crossbuild works if it compiles. + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [#include + ], + [return !*strerror (-2);])], + [gl_cv_func_working_strerror=yes], + [gl_cv_func_working_strerror=no])])]) + if test $gl_cv_func_working_strerror = no ; then + REPLACE_STRERROR=1 + gl_PREREQ_STRERROR + fi +]) + +# Prerequisites of lib/strerror.c. +AC_DEFUN([gl_PREREQ_STRERROR], [ + AC_CHECK_DECLS([strerror]) +]) diff --git a/gl/m4/string_h.m4 b/gl/m4/string_h.m4 new file mode 100644 index 0000000..766d7e9 --- /dev/null +++ b/gl/m4/string_h.m4 @@ -0,0 +1,87 @@ +# Configure a GNU-like replacement for . + +# Copyright (C) 2007, 2008 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# Written by Paul Eggert. + +AC_DEFUN([gl_HEADER_STRING_H], +[ + dnl Use AC_REQUIRE here, so that the default behavior below is expanded + dnl once only, before all statements that occur in other macros. + AC_REQUIRE([gl_HEADER_STRING_H_BODY]) +]) + +AC_DEFUN([gl_HEADER_STRING_H_BODY], +[ + AC_REQUIRE([AC_C_RESTRICT]) + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + gl_CHECK_NEXT_HEADERS([string.h]) +]) + +AC_DEFUN([gl_STRING_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 +]) + +AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], +[ + GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM]) + GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY]) + GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR]) + GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY]) + GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY]) + GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL]) + GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP]) + GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP]) + GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN]) + GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK]) + GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP]) + GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR]) + GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR]) + GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R]) + GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN]) + GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN]) + GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR]) + GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR]) + GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR]) + GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP]) + GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP]) + GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP]) + GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR]) + GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN]) + GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK]) + GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN]) + GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP]) + GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R]) + GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR]) + GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) + HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) + HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) + HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) + HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY]) + HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL]) + HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP]) + HAVE_STRNDUP=1; AC_SUBST([HAVE_STRNDUP]) + HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP]) + HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN]) + HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK]) + HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP]) + HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR]) + HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) + HAVE_DECL_STRERROR=1; AC_SUBST([HAVE_DECL_STRERROR]) + HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) + REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) + REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) + REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) + REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) + REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) +]) diff --git a/gl/m4/strndup.m4 b/gl/m4/strndup.m4 index dd5780b..f7934ef 100644 --- a/gl/m4/strndup.m4 +++ b/gl/m4/strndup.m4 @@ -1,5 +1,5 @@ -# strndup.m4 serial 11 -dnl Copyright (C) 2002-2003, 2005-2006 Free Software Foundation, Inc. +# strndup.m4 serial 14 +dnl Copyright (C) 2002-2003, 2005-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -7,15 +7,19 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRNDUP], [ dnl Persuade glibc to declare strndup(). - AC_REQUIRE([AC_GNU_SOURCE]) + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_CHECK_DECLS_ONCE([strndup]) + if test $ac_cv_have_decl_strndup = no; then + HAVE_DECL_STRNDUP=0 + fi # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. AC_CACHE_CHECK([for working strndup], gl_cv_func_strndup, [AC_RUN_IFELSE([ AC_LANG_PROGRAM([#include - #include ], [[ + #include ], [[ #ifndef HAVE_DECL_STRNDUP extern char *strndup (const char *, size_t); #endif @@ -39,6 +43,7 @@ AC_DEFUN([gl_FUNC_STRNDUP], AC_DEFINE([HAVE_STRNDUP], 1, [Define if you have the strndup() function and it works.]) else + HAVE_STRNDUP=0 AC_LIBOBJ([strndup]) gl_PREREQ_STRNDUP fi diff --git a/gl/m4/strnlen.m4 b/gl/m4/strnlen.m4 index 0213a8a..d8307ed 100644 --- a/gl/m4/strnlen.m4 +++ b/gl/m4/strnlen.m4 @@ -1,5 +1,5 @@ -# strnlen.m4 serial 6 -dnl Copyright (C) 2002-2003, 2005, 2006 Free Software Foundation, Inc. +# strnlen.m4 serial 9 +dnl Copyright (C) 2002-2003, 2005-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -7,11 +7,17 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRNLEN], [ dnl Persuade glibc to declare strnlen(). - AC_REQUIRE([AC_GNU_SOURCE]) + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + AC_CHECK_DECLS_ONCE([strnlen]) + if test $ac_cv_have_decl_strnlen = no; then + HAVE_DECL_STRNLEN=0 + fi AC_FUNC_STRNLEN if test $ac_cv_func_strnlen_working = no; then - # This is necessary because automake-1.6.1 doens't understand + # This is necessary because automake-1.6.1 doesn't understand # that the above use of AC_FUNC_STRNLEN means we may have to use # lib/strnlen.c. #AC_LIBOBJ(strnlen) @@ -22,6 +28,4 @@ AC_DEFUN([gl_FUNC_STRNLEN], ]) # Prerequisites of lib/strnlen.c. -AC_DEFUN([gl_PREREQ_STRNLEN], [ - AC_CHECK_DECLS_ONCE(strnlen) -]) +AC_DEFUN([gl_PREREQ_STRNLEN], [:]) diff --git a/gl/m4/sys_socket_h.m4 b/gl/m4/sys_socket_h.m4 index d3e45b4..d9659c2 100644 --- a/gl/m4/sys_socket_h.m4 +++ b/gl/m4/sys_socket_h.m4 @@ -1,5 +1,5 @@ -# sys_socket_h.m4 serial 2 -dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc. +# sys_socket_h.m4 serial 4 +dnl Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -8,16 +8,44 @@ dnl From Simon Josefsson. AC_DEFUN([gl_HEADER_SYS_SOCKET], [ - AC_CHECK_HEADERS_ONCE([sys/socket.h]) - if test $ac_cv_header_sys_socket_h = yes; then + AC_CACHE_CHECK([whether is self-contained], + [gl_cv_header_sys_socket_h_selfcontained], + [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [])], + [gl_cv_header_sys_socket_h_selfcontained=yes], + [gl_cv_header_sys_socket_h_selfcontained=no]) + ]) + if test $gl_cv_header_sys_socket_h_selfcontained = yes; then SYS_SOCKET_H='' else - dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make - dnl the check for those headers unconditional; yet cygwin reports - dnl that the headers are present but cannot be compiled (since on - dnl cygwin, all socket information should come from sys/socket.h). - AC_CHECK_HEADERS([winsock2.h ws2tcpip.h]) SYS_SOCKET_H='sys/socket.h' + + gl_CHECK_NEXT_HEADERS([sys/socket.h]) + if test $ac_cv_header_sys_socket_h = yes; then + HAVE_SYS_SOCKET_H=1 + HAVE_WINSOCK2_H=0 + HAVE_WS2TCPIP_H=0 + else + HAVE_SYS_SOCKET_H=0 + dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make + dnl the check for those headers unconditional; yet cygwin reports + dnl that the headers are present but cannot be compiled (since on + dnl cygwin, all socket information should come from sys/socket.h). + AC_CHECK_HEADERS([winsock2.h ws2tcpip.h]) + if test $ac_cv_header_winsock2_h = yes; then + HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + if test $ac_cv_header_ws2tcpip_h = yes; then + HAVE_WS2TCPIP_H=1 + else + HAVE_WS2TCPIP_H=0 + fi + fi + AC_SUBST([HAVE_SYS_SOCKET_H]) + AC_SUBST([HAVE_WINSOCK2_H]) + AC_SUBST([HAVE_WS2TCPIP_H]) fi - AC_SUBST(SYS_SOCKET_H) + AC_SUBST([SYS_SOCKET_H]) ]) diff --git a/gl/m4/ulonglong.m4 b/gl/m4/ulonglong.m4 deleted file mode 100644 index 9fae98e..0000000 --- a/gl/m4/ulonglong.m4 +++ /dev/null @@ -1,48 +0,0 @@ -# ulonglong.m4 serial 6 -dnl Copyright (C) 1999-2006 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Paul Eggert. - -# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. -# This fixes a bug in Autoconf 2.60, but can be removed once we -# assume 2.61 everywhere. - -# Note: If the type 'unsigned long long int' exists but is only 32 bits -# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT -# will not be defined. In this case you can treat 'unsigned long long int' -# like 'unsigned long int'. - -AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], -[ - AC_CACHE_CHECK([for unsigned long long int], - [ac_cv_type_unsigned_long_long_int], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[unsigned long long int ull = 18446744073709551615ULL; - typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; - int i = 63;]], - [[unsigned long long int ullmax = 18446744073709551615ull; - return (ull << 63 | ull >> 63 | ull << i | ull >> i - | ullmax / ull | ullmax % ull);]])], - [ac_cv_type_unsigned_long_long_int=yes], - [ac_cv_type_unsigned_long_long_int=no])]) - if test $ac_cv_type_unsigned_long_long_int = yes; then - AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1, - [Define to 1 if the system has the type `unsigned long long int'.]) - fi -]) - -# This macro is obsolescent and should go away soon. -AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG], -[ - AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) - ac_cv_type_unsigned_long_long=$ac_cv_type_unsigned_long_long_int - if test $ac_cv_type_unsigned_long_long = yes; then - AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, - [Define if you have the 'unsigned long long' type.]) - fi -]) diff --git a/gl/m4/unistd_h.m4 b/gl/m4/unistd_h.m4 index 9d499df..4b8857c 100644 --- a/gl/m4/unistd_h.m4 +++ b/gl/m4/unistd_h.m4 @@ -1,32 +1,61 @@ -# unistd_h.m4 serial 3 -dnl Copyright (C) 2006 Free Software Foundation, Inc. +# unistd_h.m4 serial 10 +dnl Copyright (C) 2006-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. -dnl Written by Simon Josefsson +dnl Written by Simon Josefsson, Bruno Haible. -AC_DEFUN([gl_HEADER_UNISTD], +AC_DEFUN([gl_UNISTD_H], [ - AC_CHECK_HEADERS([unistd.h], [ - UNISTD_H='' - ], [ - UNISTD_H='unistd.h' - ]) - AC_SUBST(UNISTD_H) - dnl This module decides to build unistd.h if it is missing. - dnl The fchdir module decides to build unistd.h if fchdir() is missing. - dnl Therefore check for the prerequisites of lib/unistd.h always. - gl_PREREQ_UNISTD -]) + dnl Use AC_REQUIRE here, so that the default behavior below is expanded + dnl once only, before all statements that occur in other macros. + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + + gl_CHECK_NEXT_HEADERS([unistd.h]) -dnl Prerequisites of lib/unistd.h. -AC_DEFUN([gl_PREREQ_UNISTD], -[ AC_CHECK_HEADERS_ONCE([unistd.h]) if test $ac_cv_header_unistd_h = yes; then - gl_ABSOLUTE_HEADER([unistd.h]) - ABSOLUTE_UNISTD_H=\"$gl_cv_absolute_unistd_h\" + HAVE_UNISTD_H=1 + else + HAVE_UNISTD_H=0 fi - AC_SUBST([ABSOLUTE_UNISTD_H]) + AC_SUBST([HAVE_UNISTD_H]) +]) + +AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 +]) + +AC_DEFUN([gl_UNISTD_H_DEFAULTS], +[ + GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) + GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) + GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR]) + GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE]) + GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD]) + GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) + GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) + GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) + GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK]) + GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) + GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) + HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) + HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) + HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) + HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) + HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) + HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) + HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) + REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) + REPLACE_FCHDIR=0; AC_SUBST([REPLACE_FCHDIR]) + REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) + REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) + REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) + REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) ]) diff --git a/gl/m4/vasnprintf.m4 b/gl/m4/vasnprintf.m4 index 72c9a13..c4d3f4f 100644 --- a/gl/m4/vasnprintf.m4 +++ b/gl/m4/vasnprintf.m4 @@ -1,5 +1,5 @@ -# vasnprintf.m4 serial 7 -dnl Copyright (C) 2002-2004, 2006 Free Software Foundation, Inc. +# vasnprintf.m4 serial 24 +dnl Copyright (C) 2002-2004, 2006-2008 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -7,23 +7,33 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_VASNPRINTF], [ AC_REQUIRE([gl_EOVERFLOW]) - AC_REPLACE_FUNCS(vasnprintf) + AC_CHECK_FUNCS_ONCE([vasnprintf]) if test $ac_cv_func_vasnprintf = no; then - AC_LIBOBJ(printf-args) - AC_LIBOBJ(printf-parse) - AC_LIBOBJ(asnprintf) - gl_PREREQ_PRINTF_ARGS - gl_PREREQ_PRINTF_PARSE - gl_PREREQ_VASNPRINTF - gl_PREREQ_ASNPRINTF + gl_REPLACE_VASNPRINTF fi ]) +AC_DEFUN([gl_REPLACE_VASNPRINTF], +[ + AC_CHECK_FUNCS_ONCE([vasnprintf]) + AC_LIBOBJ([vasnprintf]) + AC_LIBOBJ([printf-args]) + AC_LIBOBJ([printf-parse]) + AC_LIBOBJ([asnprintf]) + if test $ac_cv_func_vasnprintf = yes; then + AC_DEFINE([REPLACE_VASNPRINTF], 1, + [Define if vasnprintf exists but is overridden by gnulib.]) + fi + gl_PREREQ_PRINTF_ARGS + gl_PREREQ_PRINTF_PARSE + gl_PREREQ_VASNPRINTF + gl_PREREQ_ASNPRINTF +]) + # Prequisites of lib/printf-args.h, lib/printf-args.c. AC_DEFUN([gl_PREREQ_PRINTF_ARGS], [ AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) - AC_REQUIRE([gt_TYPE_LONGDOUBLE]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) ]) @@ -32,11 +42,13 @@ AC_DEFUN([gl_PREREQ_PRINTF_ARGS], AC_DEFUN([gl_PREREQ_PRINTF_PARSE], [ AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) - AC_REQUIRE([gt_TYPE_LONGDOUBLE]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_REQUIRE([AC_TYPE_SIZE_T]) - AC_CHECK_TYPES(ptrdiff_t) + AC_CHECK_TYPE([ptrdiff_t], , + [AC_DEFINE([ptrdiff_t], [long], + [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) + ]) AC_REQUIRE([gt_AC_TYPE_INTMAX_T]) ]) @@ -45,10 +57,202 @@ AC_DEFUN([gl_PREREQ_VASNPRINTF], [ AC_REQUIRE([AC_FUNC_ALLOCA]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) - AC_REQUIRE([gt_TYPE_LONGDOUBLE]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_CHECK_FUNCS(snprintf wcslen) + dnl Use the _snprintf function only if it is declared (because on NetBSD it + dnl is defined as a weak alias of snprintf; we prefer to use the latter). + AC_CHECK_DECLS([_snprintf], , , [#include ]) +]) + +# Extra prerequisites of lib/vasnprintf.c for supporting 'long double' +# arguments. +AC_DEFUN([gl_PREREQ_VASNPRINTF_LONG_DOUBLE], +[ + AC_REQUIRE([gl_PRINTF_LONG_DOUBLE]) + case "$gl_cv_func_printf_long_double" in + *yes) + ;; + *) + AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], 1, + [Define if the vasnprintf implementation needs special code for + 'long double' arguments.]) + ;; + esac +]) + +# Extra prerequisites of lib/vasnprintf.c for supporting infinite 'double' +# arguments. +AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE], +[ + AC_REQUIRE([gl_PRINTF_INFINITE]) + case "$gl_cv_func_printf_infinite" in + *yes) + ;; + *) + AC_DEFINE([NEED_PRINTF_INFINITE_DOUBLE], 1, + [Define if the vasnprintf implementation needs special code for + infinite 'double' arguments.]) + ;; + esac +]) + +# Extra prerequisites of lib/vasnprintf.c for supporting infinite 'long double' +# arguments. +AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE], +[ + AC_REQUIRE([gl_PRINTF_INFINITE_LONG_DOUBLE]) + dnl There is no need to set NEED_PRINTF_INFINITE_LONG_DOUBLE if + dnl NEED_PRINTF_LONG_DOUBLE is already set. + AC_REQUIRE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE]) + case "$gl_cv_func_printf_long_double" in + *yes) + case "$gl_cv_func_printf_infinite_long_double" in + *yes) + ;; + *) + AC_DEFINE([NEED_PRINTF_INFINITE_LONG_DOUBLE], 1, + [Define if the vasnprintf implementation needs special code for + infinite 'long double' arguments.]) + ;; + esac + ;; + esac +]) + +# Extra prerequisites of lib/vasnprintf.c for supporting the 'a' directive. +AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_A], +[ + AC_REQUIRE([gl_PRINTF_DIRECTIVE_A]) + case "$gl_cv_func_printf_directive_a" in + *yes) + ;; + *) + AC_DEFINE([NEED_PRINTF_DIRECTIVE_A], 1, + [Define if the vasnprintf implementation needs special code for + the 'a' and 'A' directives.]) + AC_CHECK_FUNCS([nl_langinfo]) + ;; + esac +]) + +# Extra prerequisites of lib/vasnprintf.c for supporting the 'F' directive. +AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F], +[ + AC_REQUIRE([gl_PRINTF_DIRECTIVE_F]) + case "$gl_cv_func_printf_directive_f" in + *yes) + ;; + *) + AC_DEFINE([NEED_PRINTF_DIRECTIVE_F], 1, + [Define if the vasnprintf implementation needs special code for + the 'F' directive.]) + ;; + esac +]) + +# Extra prerequisites of lib/vasnprintf.c for supporting the ' flag. +AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING], +[ + AC_REQUIRE([gl_PRINTF_FLAG_GROUPING]) + case "$gl_cv_func_printf_flag_grouping" in + *yes) + ;; + *) + AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], 1, + [Define if the vasnprintf implementation needs special code for the + ' flag.]) + ;; + esac +]) + +# Extra prerequisites of lib/vasnprintf.c for supporting the '-' flag. +AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST], +[ + AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST]) + case "$gl_cv_func_printf_flag_leftadjust" in + *yes) + ;; + *) + AC_DEFINE([NEED_PRINTF_FLAG_LEFTADJUST], 1, + [Define if the vasnprintf implementation needs special code for the + '-' flag.]) + ;; + esac +]) + +# Extra prerequisites of lib/vasnprintf.c for supporting the 0 flag. +AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_ZERO], +[ + AC_REQUIRE([gl_PRINTF_FLAG_ZERO]) + case "$gl_cv_func_printf_flag_zero" in + *yes) + ;; + *) + AC_DEFINE([NEED_PRINTF_FLAG_ZERO], 1, + [Define if the vasnprintf implementation needs special code for the + 0 flag.]) + ;; + esac +]) + +# Extra prerequisites of lib/vasnprintf.c for supporting large precisions. +AC_DEFUN([gl_PREREQ_VASNPRINTF_PRECISION], +[ + AC_REQUIRE([gl_PRINTF_PRECISION]) + case "$gl_cv_func_printf_precision" in + *yes) + ;; + *) + AC_DEFINE([NEED_PRINTF_UNBOUNDED_PRECISION], 1, + [Define if the vasnprintf implementation needs special code for + supporting large precisions without arbitrary bounds.]) + AC_DEFINE([NEED_PRINTF_DOUBLE], 1, + [Define if the vasnprintf implementation needs special code for + 'double' arguments.]) + AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], 1, + [Define if the vasnprintf implementation needs special code for + 'long double' arguments.]) + ;; + esac +]) + +# Extra prerequisites of lib/vasnprintf.c for surviving out-of-memory +# conditions. +AC_DEFUN([gl_PREREQ_VASNPRINTF_ENOMEM], +[ + AC_REQUIRE([gl_PRINTF_ENOMEM]) + case "$gl_cv_func_printf_enomem" in + *yes) + ;; + *) + AC_DEFINE([NEED_PRINTF_ENOMEM], 1, + [Define if the vasnprintf implementation needs special code for + surviving out-of-memory conditions.]) + AC_DEFINE([NEED_PRINTF_DOUBLE], 1, + [Define if the vasnprintf implementation needs special code for + 'double' arguments.]) + AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], 1, + [Define if the vasnprintf implementation needs special code for + 'long double' arguments.]) + ;; + esac +]) + +# Prerequisites of lib/vasnprintf.c including all extras for POSIX compliance. +AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS], +[ + AC_REQUIRE([gl_PREREQ_VASNPRINTF]) + gl_PREREQ_VASNPRINTF_LONG_DOUBLE + gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE + gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE + gl_PREREQ_VASNPRINTF_DIRECTIVE_A + gl_PREREQ_VASNPRINTF_DIRECTIVE_F + gl_PREREQ_VASNPRINTF_FLAG_GROUPING + gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST + gl_PREREQ_VASNPRINTF_FLAG_ZERO + gl_PREREQ_VASNPRINTF_PRECISION + gl_PREREQ_VASNPRINTF_ENOMEM ]) # Prerequisites of lib/asnprintf.c. diff --git a/gl/m4/vasprintf.m4 b/gl/m4/vasprintf.m4 index 18ca632..074b03c 100644 --- a/gl/m4/vasprintf.m4 +++ b/gl/m4/vasprintf.m4 @@ -1,25 +1,37 @@ -# vasprintf.m4 serial 2 -dnl Copyright (C) 2002-2003, 2006 Free Software Foundation, Inc. +# vasprintf.m4 serial 6 +dnl Copyright (C) 2002-2003, 2006-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_VASPRINTF], [ - AC_REPLACE_FUNCS(vasprintf) + AC_CHECK_FUNCS([vasprintf]) if test $ac_cv_func_vasprintf = no; then - AC_LIBOBJ(asprintf) - gl_PREREQ_VASPRINTF_H - gl_PREREQ_VASPRINTF - gl_PREREQ_ASPRINTF + gl_REPLACE_VASPRINTF fi ]) -# Prerequisites of lib/vasprintf.h. +AC_DEFUN([gl_REPLACE_VASPRINTF], +[ + AC_LIBOBJ([vasprintf]) + AC_LIBOBJ([asprintf]) + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + if test $ac_cv_func_vasprintf = yes; then + REPLACE_VASPRINTF=1 + else + HAVE_VASPRINTF=0 + fi + gl_PREREQ_VASPRINTF_H + gl_PREREQ_VASPRINTF + gl_PREREQ_ASPRINTF +]) + +# Prerequisites of the vasprintf portion of lib/stdio.h. AC_DEFUN([gl_PREREQ_VASPRINTF_H], [ dnl Persuade glibc to declare asprintf() and vasprintf(). - AC_REQUIRE([AC_GNU_SOURCE]) + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) ]) # Prerequisites of lib/vasprintf.c. diff --git a/gl/m4/vsnprintf.m4 b/gl/m4/vsnprintf.m4 index cb8a9b1..accc79f 100644 --- a/gl/m4/vsnprintf.m4 +++ b/gl/m4/vsnprintf.m4 @@ -1,13 +1,29 @@ -# vsnprintf.m4 serial 2 -dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +# vsnprintf.m4 serial 4 +dnl Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_VSNPRINTF], [ - AC_REPLACE_FUNCS(vsnprintf) - AC_CHECK_DECLS_ONCE(vsnprintf) + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_CHECK_FUNCS([vsnprintf]) + if test $ac_cv_func_vsnprintf = no; then + gl_REPLACE_VSNPRINTF + fi + AC_CHECK_DECLS_ONCE([vsnprintf]) + if test $ac_cv_have_decl_vsnprintf = no; then + HAVE_DECL_VSNPRINTF=0 + fi +]) + +AC_DEFUN([gl_REPLACE_VSNPRINTF], +[ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_LIBOBJ([vsnprintf]) + if test $ac_cv_func_vsnprintf = yes; then + REPLACE_VSNPRINTF=1 + fi gl_PREREQ_VSNPRINTF ]) diff --git a/gl/m4/wchar.m4 b/gl/m4/wchar.m4 index 068f22d..70b1248 100644 --- a/gl/m4/wchar.m4 +++ b/gl/m4/wchar.m4 @@ -7,23 +7,48 @@ dnl with or without modifications, as long as this notice is preserved. dnl Written by Eric Blake. -# wchar.m4 serial 1 +# wchar.m4 serial 4 AC_DEFUN([gl_WCHAR_H], [ + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_CACHE_CHECK([whether is standalone], [gl_cv_header_wchar_h_standalone], [AC_COMPILE_IFELSE([[#include wchar_t w;]], [gl_cv_header_wchar_h_standalone=yes], [gl_cv_header_wchar_h_standalone=no])]) - if test $gl_cv_header_wchar_h_standalone = yes; then - WCHAR_H= - else - gl_ABSOLUTE_HEADER([wchar.h]) - ABSOLUTE_WCHAR_H=\"$gl_cv_absolute_wchar_h\" + if test $gl_cv_header_wchar_h_standalone != yes; then WCHAR_H=wchar.h fi - AC_SUBST([ABSOLUTE_WCHAR_H]) + + dnl Prepare for creating substitute . + dnl Do it always: WCHAR_H may be empty here but can be set later. + dnl Check for (missing in Linux uClibc when built without wide + dnl character support). + AC_CHECK_HEADERS_ONCE([wchar.h]) + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + AC_SUBST([HAVE_WCHAR_H]) + gl_CHECK_NEXT_HEADERS([wchar.h]) +]) + +AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 +]) + +AC_DEFUN([gl_WCHAR_H_DEFAULTS], +[ + GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH]) + REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) + WCHAR_H= AC_SUBST([WCHAR_H]) ]) diff --git a/gl/m4/wctype.m4 b/gl/m4/wctype.m4 index 62994c6..7483c4f 100644 --- a/gl/m4/wctype.m4 +++ b/gl/m4/wctype.m4 @@ -10,6 +10,12 @@ dnl Written by Paul Eggert. AC_DEFUN([gl_WCTYPE_H], [ AC_CHECK_FUNCS_ONCE([iswcntrl]) + if test $ac_cv_func_iswcntrl = yes; then + HAVE_ISWCNTRL=1 + else + HAVE_ISWCNTRL=0 + fi + AC_SUBST([HAVE_ISWCNTRL]) AC_CHECK_HEADERS_ONCE([wctype.h]) AC_REQUIRE([AC_C_INLINE]) @@ -23,19 +29,16 @@ AC_DEFUN([gl_WCTYPE_H], WCTYPE_H=wctype.h if test $ac_cv_header_wctype_h = yes; then - if test "$ac_cv_func_iswcntrl" = yes; then + if test $ac_cv_func_iswcntrl = yes; then WCTYPE_H= fi - dnl Compute ABSOLUTE_WCTYPE_H even if WCTYPE_H is empty, + dnl Compute NEXT_WCTYPE_H even if WCTYPE_H is empty, dnl for the benefit of builds from non-distclean directories. - gl_ABSOLUTE_HEADER([wctype.h]) - ABSOLUTE_WCTYPE_H=\"$gl_cv_absolute_wctype_h\" + gl_CHECK_NEXT_HEADERS([wctype.h]) HAVE_WCTYPE_H=1 else - ABSOLUTE_WCTYPE_H=\"no/such/file/wctype.h\" HAVE_WCTYPE_H=0 fi - AC_SUBST([ABSOLUTE_WCTYPE_H]) AC_SUBST([HAVE_WCTYPE_H]) AC_SUBST([WCTYPE_H]) ]) diff --git a/gl/m4/wcwidth.m4 b/gl/m4/wcwidth.m4 deleted file mode 100644 index b483499..0000000 --- a/gl/m4/wcwidth.m4 +++ /dev/null @@ -1,30 +0,0 @@ -# wcwidth.m4 serial 8 -dnl Copyright (C) 2006, 2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -AC_DEFUN([gl_FUNC_WCWIDTH], -[ - dnl Persuade glibc to declare wcwidth(). - AC_REQUIRE([AC_GNU_SOURCE]) - - AC_REQUIRE([AC_C_INLINE]) - AC_REQUIRE([gt_TYPE_WCHAR_T]) - AC_REQUIRE([gt_TYPE_WINT_T]) - - AC_CHECK_HEADERS_ONCE([wchar.h]) - AC_CHECK_FUNCS_ONCE([wcwidth]) - - AC_CHECK_DECLS([wcwidth], [], [], [ -/* AIX 3.2.5 declares wcwidth in . */ -#include -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.0.1 has a bug: , and must be included - before . */ -#include -#include -#include -#include -])]) diff --git a/gl/m4/wint_t.m4 b/gl/m4/wint_t.m4 index 3706c04..af5ed93 100644 --- a/gl/m4/wint_t.m4 +++ b/gl/m4/wint_t.m4 @@ -1,4 +1,4 @@ -# wint_t.m4 serial 2 (gettext-0.12) +# wint_t.m4 serial 2 (gettext-0.17) dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, diff --git a/gl/malloc.c b/gl/malloc.c index d4dae3e..f2f6663 100644 --- a/gl/malloc.c +++ b/gl/malloc.c @@ -1,10 +1,10 @@ /* malloc() function that is glibc compatible. - Copyright (C) 1997, 1998, 2006 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 2006, 2007 Free Software Foundation, Inc. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -16,20 +16,42 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -/* written by Jim Meyering */ +/* written by Jim Meyering and Bruno Haible */ #include -#undef malloc +/* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */ +#ifdef malloc +# define NEED_MALLOC_GNU +# undef malloc +#endif +/* Specification. */ #include +#include + +/* Call the system's malloc below. */ +#undef malloc + /* Allocate an N-byte block of memory from the heap. If N is zero, allocate a 1-byte block. */ void * rpl_malloc (size_t n) { + void *result; + +#ifdef NEED_MALLOC_GNU if (n == 0) n = 1; - return malloc (n); +#endif + + result = malloc (n); + +#if !HAVE_MALLOC_POSIX + if (result == NULL) + errno = ENOMEM; +#endif + + return result; } diff --git a/gl/math.in.h b/gl/math.in.h new file mode 100644 index 0000000..c3515d7 --- /dev/null +++ b/gl/math.in.h @@ -0,0 +1,413 @@ +/* A GNU-like . + + Copyright (C) 2002-2003, 2007 Free Software Foundation, Inc. + + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifndef _GL_MATH_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_MATH_H@ + +#ifndef _GL_MATH_H +#define _GL_MATH_H + + +/* The definition of GL_LINK_WARNING is copied here. */ + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Write x as + x = mantissa * 2^exp + where + If x finite and nonzero: 0.5 <= |mantissa| < 1.0. + If x is zero: mantissa = x, exp = 0. + If x is infinite or NaN: mantissa = x, exp unspecified. + Store exp in *EXPPTR and return mantissa. */ +#if @GNULIB_FREXP@ +# if @REPLACE_FREXP@ +# define frexp rpl_frexp +extern double frexp (double x, int *expptr); +# endif +#elif defined GNULIB_POSIXCHECK +# undef frexp +# define frexp(x,e) \ + (GL_LINK_WARNING ("frexp is unportable - " \ + "use gnulib module frexp for portability"), \ + frexp (x, e)) +#endif + + +#if @GNULIB_MATHL@ || !@HAVE_DECL_ACOSL@ +extern long double acosl (long double x); +#endif +#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK +# undef acosl +# define acosl(x) \ + (GL_LINK_WARNING ("acosl is unportable - " \ + "use gnulib module mathl for portability"), \ + acosl (x)) +#endif + + +#if @GNULIB_MATHL@ || !@HAVE_DECL_ASINL@ +extern long double asinl (long double x); +#endif +#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK +# undef asinl +# define asinl(x) \ + (GL_LINK_WARNING ("asinl is unportable - " \ + "use gnulib module mathl for portability"), \ + asinl (x)) +#endif + + +#if @GNULIB_MATHL@ || !@HAVE_DECL_ATANL@ +extern long double atanl (long double x); +#endif +#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK +# undef atanl +# define atanl(x) \ + (GL_LINK_WARNING ("atanl is unportable - " \ + "use gnulib module mathl for portability"), \ + atanl (x)) +#endif + + +#if @GNULIB_CEILF@ +# if @REPLACE_CEILF@ +# define ceilf rpl_ceilf +extern float ceilf (float x); +# endif +#elif defined GNULIB_POSIXCHECK +# undef ceilf +# define ceilf(x) \ + (GL_LINK_WARNING ("ceilf is unportable - " \ + "use gnulib module ceilf for portability"), \ + ceilf (x)) +#endif + +#if @GNULIB_CEILL@ +# if @REPLACE_CEILL@ +# define ceill rpl_ceill +extern long double ceill (long double x); +# endif +#elif defined GNULIB_POSIXCHECK +# undef ceill +# define ceill(x) \ + (GL_LINK_WARNING ("ceill is unportable - " \ + "use gnulib module ceill for portability"), \ + ceill (x)) +#endif + + +#if @GNULIB_MATHL@ || !@HAVE_DECL_COSL@ +extern long double cosl (long double x); +#endif +#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK +# undef cosl +# define cosl(x) \ + (GL_LINK_WARNING ("cosl is unportable - " \ + "use gnulib module mathl for portability"), \ + cosl (x)) +#endif + + +#if @GNULIB_MATHL@ || !@HAVE_DECL_EXPL@ +extern long double expl (long double x); +#endif +#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK +# undef expl +# define expl(x) \ + (GL_LINK_WARNING ("expl is unportable - " \ + "use gnulib module mathl for portability"), \ + expl (x)) +#endif + + +#if @GNULIB_FLOORF@ +# if @REPLACE_FLOORF@ +# define floorf rpl_floorf +extern float floorf (float x); +# endif +#elif defined GNULIB_POSIXCHECK +# undef floorf +# define floorf(x) \ + (GL_LINK_WARNING ("floorf is unportable - " \ + "use gnulib module floorf for portability"), \ + floorf (x)) +#endif + +#if @GNULIB_FLOORL@ +# if @REPLACE_FLOORL@ +# define floorl rpl_floorl +extern long double floorl (long double x); +# endif +#elif defined GNULIB_POSIXCHECK +# undef floorl +# define floorl(x) \ + (GL_LINK_WARNING ("floorl is unportable - " \ + "use gnulib module floorl for portability"), \ + floorl (x)) +#endif + + +/* Write x as + x = mantissa * 2^exp + where + If x finite and nonzero: 0.5 <= |mantissa| < 1.0. + If x is zero: mantissa = x, exp = 0. + If x is infinite or NaN: mantissa = x, exp unspecified. + Store exp in *EXPPTR and return mantissa. */ +#if @GNULIB_FREXPL@ && @REPLACE_FREXPL@ +# define frexpl rpl_frexpl +#endif +#if (@GNULIB_FREXPL@ && @REPLACE_FREXPL@) || !@HAVE_DECL_FREXPL@ +extern long double frexpl (long double x, int *expptr); +#endif +#if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK +# undef frexpl +# define frexpl(x,e) \ + (GL_LINK_WARNING ("frexpl is unportable - " \ + "use gnulib module frexpl for portability"), \ + frexpl (x, e)) +#endif + + +/* Return x * 2^exp. */ +#if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@ +# define ldexpl rpl_ldexpl +#endif +#if (@GNULIB_LDEXPL@ && @REPLACE_LDEXPL@) || !@HAVE_DECL_LDEXPL@ +extern long double ldexpl (long double x, int exp); +#endif +#if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK +# undef ldexpl +# define ldexpl(x,e) \ + (GL_LINK_WARNING ("ldexpl is unportable - " \ + "use gnulib module ldexpl for portability"), \ + ldexpl (x, e)) +#endif + + +#if @GNULIB_MATHL@ || !@HAVE_DECL_LOGL@ +extern long double logl (long double x); +#endif +#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK +# undef logl +# define logl(x) \ + (GL_LINK_WARNING ("logl is unportable - " \ + "use gnulib module mathl for portability"), \ + logl (x)) +#endif + + +#if @GNULIB_ROUNDF@ +# if @REPLACE_ROUNDF@ +# undef roundf +# define roundf rpl_roundf +extern float roundf (float x); +# endif +#elif defined GNULIB_POSIXCHECK +# undef roundf +# define roundf(x) \ + (GL_LINK_WARNING ("roundf is unportable - " \ + "use gnulib module roundf for portability"), \ + roundf (x)) +#endif + +#if @GNULIB_ROUND@ +# if @REPLACE_ROUND@ +# undef round +# define round rpl_round +extern double round (double x); +# endif +#elif defined GNULIB_POSIXCHECK +# undef round +# define round(x) \ + (GL_LINK_WARNING ("round is unportable - " \ + "use gnulib module round for portability"), \ + round (x)) +#endif + +#if @GNULIB_ROUNDL@ +# if @REPLACE_ROUNDL@ +# undef roundl +# define roundl rpl_roundl +extern long double roundl (long double x); +# endif +#elif defined GNULIB_POSIXCHECK +# undef roundl +# define roundl(x) \ + (GL_LINK_WARNING ("roundl is unportable - " \ + "use gnulib module roundl for portability"), \ + roundl (x)) +#endif + + +#if @GNULIB_MATHL@ || !@HAVE_DECL_SINL@ +extern long double sinl (long double x); +#endif +#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK +# undef sinl +# define sinl(x) \ + (GL_LINK_WARNING ("sinl is unportable - " \ + "use gnulib module mathl for portability"), \ + sinl (x)) +#endif + + +#if @GNULIB_MATHL@ || !@HAVE_DECL_SQRTL@ +extern long double sqrtl (long double x); +#endif +#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK +# undef sqrtl +# define sqrtl(x) \ + (GL_LINK_WARNING ("sqrtl is unportable - " \ + "use gnulib module mathl for portability"), \ + sqrtl (x)) +#endif + + +#if @GNULIB_MATHL@ || !@HAVE_DECL_TANL@ +extern long double tanl (long double x); +#endif +#if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK +# undef tanl +# define tanl(x) \ + (GL_LINK_WARNING ("tanl is unportable - " \ + "use gnulib module mathl for portability"), \ + tanl (x)) +#endif + + +#if @GNULIB_TRUNCF@ +# if !@HAVE_DECL_TRUNCF@ +# define truncf rpl_truncf +extern float truncf (float x); +# endif +#elif defined GNULIB_POSIXCHECK +# undef truncf +# define truncf(x) \ + (GL_LINK_WARNING ("truncf is unportable - " \ + "use gnulib module truncf for portability"), \ + truncf (x)) +#endif + +#if @GNULIB_TRUNC@ +# if !@HAVE_DECL_TRUNC@ +# define trunc rpl_trunc +extern double trunc (double x); +# endif +#elif defined GNULIB_POSIXCHECK +# undef trunc +# define trunc(x) \ + (GL_LINK_WARNING ("trunc is unportable - " \ + "use gnulib module trunc for portability"), \ + trunc (x)) +#endif + +#if @GNULIB_TRUNCL@ +# if !@HAVE_DECL_TRUNCL@ +# define truncl rpl_truncl +extern long double truncl (long double x); +# endif +#elif defined GNULIB_POSIXCHECK +# undef truncl +# define truncl(x) \ + (GL_LINK_WARNING ("truncl is unportable - " \ + "use gnulib module truncl for portability"), \ + truncl (x)) +#endif + + +#if @GNULIB_ISFINITE@ +# if @REPLACE_ISFINITE@ +extern int gl_isfinitef (float x); +extern int gl_isfinited (double x); +extern int gl_isfinitel (long double x); +# undef isfinite +# define isfinite(x) \ + (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \ + sizeof (x) == sizeof (double) ? gl_isfinited (x) : \ + gl_isfinitef (x)) +# endif +#elif defined GNULIB_POSIXCHECK + /* How to override a macro? */ +#endif + + +#if @GNULIB_SIGNBIT@ +# if @REPLACE_SIGNBIT_USING_GCC@ +# undef signbit + /* GCC 4.0 and newer provides three built-ins for signbit. */ +# define signbit(x) \ + (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \ + sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \ + __builtin_signbitf (x)) +# endif +# if @REPLACE_SIGNBIT@ +# undef signbit +extern int gl_signbitf (float arg); +extern int gl_signbitd (double arg); +extern int gl_signbitl (long double arg); +# if __GNUC__ >= 2 && !__STRICT_ANSI__ +# if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT +# define gl_signbitf(arg) \ + ({ union { float _value; \ + unsigned int _word[(sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \ + } _m; \ + _m._value = (arg); \ + (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \ + }) +# endif +# if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT +# define gl_signbitd(arg) \ + ({ union { double _value; \ + unsigned int _word[(sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \ + } _m; \ + _m._value = (arg); \ + (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \ + }) +# endif +# if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT +# define gl_signbitl(arg) \ + ({ union { long double _value; \ + unsigned int _word[(sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \ + } _m; \ + _m._value = (arg); \ + (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \ + }) +# endif +# endif +# define signbit(x) \ + (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \ + sizeof (x) == sizeof (double) ? gl_signbitd (x) : \ + gl_signbitf (x)) +# endif +#elif defined GNULIB_POSIXCHECK + /* How to override a macro? */ +#endif + + +#ifdef __cplusplus +} +#endif + +#endif /* _GL_MATH_H */ +#endif /* _GL_MATH_H */ diff --git a/gl/mbchar.c b/gl/mbchar.c deleted file mode 100644 index 95373f5..0000000 --- a/gl/mbchar.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 2001, 2006 Free Software Foundation, Inc. - - 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - - -#include - -#include - -#include "mbchar.h" - -#if IS_BASIC_ASCII - -/* Bit table of characters in the ISO C "basic character set". */ -const unsigned int is_basic_table [UCHAR_MAX / 32 + 1] = -{ - 0x00001a00, /* '\t' '\v' '\f' */ - 0xffffffef, /* ' '...'#' '%'...'?' */ - 0xfffffffe, /* 'A'...'Z' '[' '\\' ']' '^' '_' */ - 0x7ffffffe /* 'a'...'z' '{' '|' '}' '~' */ - /* The remaining bits are 0. */ -}; - -#endif /* IS_BASIC_ASCII */ diff --git a/gl/mbchar.h b/gl/mbchar.h deleted file mode 100644 index f3e28ef..0000000 --- a/gl/mbchar.h +++ /dev/null @@ -1,353 +0,0 @@ -/* Multibyte character data type. - Copyright (C) 2001, 2005-2006 Free Software Foundation, Inc. - - 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Bruno Haible . */ - -/* A multibyte character is a short subsequence of a char* string, - representing a single wide character. - - We use multibyte characters instead of wide characters because of - the following goals: - 1) correct multibyte handling, i.e. operate according to the LC_CTYPE - locale, - 2) ease of maintenance, i.e. the maintainer needs not know all details - of the ISO C 99 standard, - 3) don't fail grossly if the input is not in the encoding set by the - locale, because often different encodings are in use in the same - countries (ISO-8859-1/UTF-8, EUC-JP/Shift_JIS, ...), - 4) fast in the case of ASCII characters, - 5) portability, i.e. don't make unportable assumptions about wchar_t. - - Multibyte characters are only accessed through the mb* macros. - - mb_ptr (mbc) - return a pointer to the beginning of the multibyte sequence. - - mb_len (mbc) - returns the number of bytes occupied by the multibyte sequence. - Always > 0. - - mb_iseq (mbc, sc) - returns true if mbc is the standard ASCII character sc. - - mb_isnul (mbc) - returns true if mbc is the nul character. - - mb_cmp (mbc1, mbc2) - returns a positive, zero, or negative value depending on whether mbc1 - sorts after, same or before mbc2. - - mb_casecmp (mbc1, mbc2) - returns a positive, zero, or negative value depending on whether mbc1 - sorts after, same or before mbc2, modulo upper/lowercase conversion. - - mb_equal (mbc1, mbc2) - returns true if mbc1 and mbc2 are equal. - - mb_caseequal (mbc1, mbc2) - returns true if mbc1 and mbc2 are equal modulo upper/lowercase conversion. - - mb_isalnum (mbc) - returns true if mbc is alphanumeric. - - mb_isalpha (mbc) - returns true if mbc is alphabetic. - - mb_isascii(mbc) - returns true if mbc is plain ASCII. - - mb_isblank (mbc) - returns true if mbc is a blank. - - mb_iscntrl (mbc) - returns true if mbc is a control character. - - mb_isdigit (mbc) - returns true if mbc is a decimal digit. - - mb_isgraph (mbc) - returns true if mbc is a graphic character. - - mb_islower (mbc) - returns true if mbc is lowercase. - - mb_isprint (mbc) - returns true if mbc is a printable character. - - mb_ispunct (mbc) - returns true if mbc is a punctuation character. - - mb_isspace (mbc) - returns true if mbc is a space character. - - mb_isupper (mbc) - returns true if mbc is uppercase. - - mb_isxdigit (mbc) - returns true if mbc is a hexadecimal digit. - - mb_width (mbc) - returns the number of columns on the output device occupied by mbc. - Always >= 0. - - mb_putc (mbc, stream) - outputs mbc on stream, a byte oriented FILE stream opened for output. - - mb_setascii (&mbc, sc) - assigns the standard ASCII character sc to mbc. - - mb_copy (&destmbc, &srcmbc) - copies srcmbc to destmbc. - - Here are the function prototypes of the macros. - - extern const char * mb_ptr (const mbchar_t mbc); - extern size_t mb_len (const mbchar_t mbc); - extern bool mb_iseq (const mbchar_t mbc, char sc); - extern bool mb_isnul (const mbchar_t mbc); - extern int mb_cmp (const mbchar_t mbc1, const mbchar_t mbc2); - extern int mb_casecmp (const mbchar_t mbc1, const mbchar_t mbc2); - extern bool mb_equal (const mbchar_t mbc1, const mbchar_t mbc2); - extern bool mb_caseequal (const mbchar_t mbc1, const mbchar_t mbc2); - extern bool mb_isalnum (const mbchar_t mbc); - extern bool mb_isalpha (const mbchar_t mbc); - extern bool mb_isascii (const mbchar_t mbc); - extern bool mb_isblank (const mbchar_t mbc); - extern bool mb_iscntrl (const mbchar_t mbc); - extern bool mb_isdigit (const mbchar_t mbc); - extern bool mb_isgraph (const mbchar_t mbc); - extern bool mb_islower (const mbchar_t mbc); - extern bool mb_isprint (const mbchar_t mbc); - extern bool mb_ispunct (const mbchar_t mbc); - extern bool mb_isspace (const mbchar_t mbc); - extern bool mb_isupper (const mbchar_t mbc); - extern bool mb_isxdigit (const mbchar_t mbc); - extern int mb_width (const mbchar_t mbc); - extern void mb_putc (const mbchar_t mbc, FILE *stream); - extern void mb_setascii (mbchar_t *new, char sc); - extern void mb_copy (mbchar_t *new, const mbchar_t *old); - */ - -#ifndef _MBCHAR_H -#define _MBCHAR_H 1 - -#include -#include - -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.1 has a bug: and must be included before - . */ -#include -#include -#include -#include - -#include "wcwidth.h" - -#define MBCHAR_BUF_SIZE 24 - -struct mbchar -{ - const char *ptr; /* pointer to current character */ - size_t bytes; /* number of bytes of current character, > 0 */ - bool wc_valid; /* true if wc is a valid wide character */ - wchar_t wc; /* if wc_valid: the current character */ - char buf[MBCHAR_BUF_SIZE]; /* room for the bytes, used for file input only */ -}; - -/* EOF (not a real character) is represented with bytes = 0 and - wc_valid = false. */ - -typedef struct mbchar mbchar_t; - -/* Access the current character. */ -#define mb_ptr(mbc) ((mbc).ptr) -#define mb_len(mbc) ((mbc).bytes) - -/* Comparison of characters. */ -#define mb_iseq(mbc, sc) ((mbc).wc_valid && (mbc).wc == (sc)) -#define mb_isnul(mbc) ((mbc).wc_valid && (mbc).wc == 0) -#define mb_cmp(mbc1, mbc2) \ - ((mbc1).wc_valid \ - ? ((mbc2).wc_valid \ - ? (int) (mbc1).wc - (int) (mbc2).wc \ - : -1) \ - : ((mbc2).wc_valid \ - ? 1 \ - : (mbc1).bytes == (mbc2).bytes \ - ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \ - : (mbc1).bytes < (mbc2).bytes \ - ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \ - : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1))) -#define mb_casecmp(mbc1, mbc2) \ - ((mbc1).wc_valid \ - ? ((mbc2).wc_valid \ - ? (int) towlower ((mbc1).wc) - (int) towlower ((mbc2).wc) \ - : -1) \ - : ((mbc2).wc_valid \ - ? 1 \ - : (mbc1).bytes == (mbc2).bytes \ - ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \ - : (mbc1).bytes < (mbc2).bytes \ - ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \ - : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1))) -#define mb_equal(mbc1, mbc2) \ - ((mbc1).wc_valid && (mbc2).wc_valid \ - ? (mbc1).wc == (mbc2).wc \ - : (mbc1).bytes == (mbc2).bytes \ - && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0) -#define mb_caseequal(mbc1, mbc2) \ - ((mbc1).wc_valid && (mbc2).wc_valid \ - ? towlower ((mbc1).wc) == towlower ((mbc2).wc) \ - : (mbc1).bytes == (mbc2).bytes \ - && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0) - -/* , classification. */ -#define mb_isascii(mbc) \ - ((mbc).wc_valid && (mbc).wc >= 0 && (mbc).wc <= 127) -#define mb_isalnum(mbc) ((mbc).wc_valid && iswalnum ((mbc).wc)) -#define mb_isalpha(mbc) ((mbc).wc_valid && iswalpha ((mbc).wc)) -#define mb_isblank(mbc) ((mbc).wc_valid && iswblank ((mbc).wc)) -#define mb_iscntrl(mbc) ((mbc).wc_valid && iswcntrl ((mbc).wc)) -#define mb_isdigit(mbc) ((mbc).wc_valid && iswdigit ((mbc).wc)) -#define mb_isgraph(mbc) ((mbc).wc_valid && iswgraph ((mbc).wc)) -#define mb_islower(mbc) ((mbc).wc_valid && iswlower ((mbc).wc)) -#define mb_isprint(mbc) ((mbc).wc_valid && iswprint ((mbc).wc)) -#define mb_ispunct(mbc) ((mbc).wc_valid && iswpunct ((mbc).wc)) -#define mb_isspace(mbc) ((mbc).wc_valid && iswspace ((mbc).wc)) -#define mb_isupper(mbc) ((mbc).wc_valid && iswupper ((mbc).wc)) -#define mb_isxdigit(mbc) ((mbc).wc_valid && iswxdigit ((mbc).wc)) - -/* Extra function. */ - -/* Unprintable characters appear as a small box of width 1. */ -#define MB_UNPRINTABLE_WIDTH 1 - -static inline int -mb_width_aux (wint_t wc) -{ - int w = wcwidth (wc); - /* For unprintable characters, arbitrarily return 0 for control characters - and MB_UNPRINTABLE_WIDTH otherwise. */ - return (w >= 0 ? w : iswcntrl (wc) ? 0 : MB_UNPRINTABLE_WIDTH); -} - -#define mb_width(mbc) \ - ((mbc).wc_valid ? mb_width_aux ((mbc).wc) : MB_UNPRINTABLE_WIDTH) - -/* Output. */ -#define mb_putc(mbc, stream) fwrite ((mbc).ptr, 1, (mbc).bytes, (stream)) - -/* Assignment. */ -#define mb_setascii(mbc, sc) \ - ((mbc)->ptr = (mbc)->buf, (mbc)->bytes = 1, (mbc)->wc_valid = 1, \ - (mbc)->wc = (mbc)->buf[0] = (sc)) - -/* Copying a character. */ -static inline void -mb_copy (mbchar_t *new_mbc, const mbchar_t *old_mbc) -{ - if (old_mbc->ptr == &old_mbc->buf[0]) - { - memcpy (&new_mbc->buf[0], &old_mbc->buf[0], old_mbc->bytes); - new_mbc->ptr = &new_mbc->buf[0]; - } - else - new_mbc->ptr = old_mbc->ptr; - new_mbc->bytes = old_mbc->bytes; - if ((new_mbc->wc_valid = old_mbc->wc_valid)) - new_mbc->wc = old_mbc->wc; -} - - -/* is_basic(c) tests whether the single-byte character c is in the - ISO C "basic character set". - This is a convenience function, and is in this file only to share code - between mbiter_multi.h and mbfile_multi.h. */ -#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) -/* The character set is ISO-646, not EBCDIC. */ -# define IS_BASIC_ASCII 1 - -extern const unsigned int is_basic_table[]; - -static inline bool -is_basic (char c) -{ - return (is_basic_table [(unsigned char) c >> 5] >> ((unsigned char) c & 31)) - & 1; -} - -#else - -static inline bool -is_basic (char c) -{ - switch (c) - { - case '\t': case '\v': case '\f': - case ' ': case '!': case '"': case '#': case '%': - case '&': case '\'': case '(': case ')': case '*': - case '+': case ',': case '-': case '.': case '/': - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - case ':': case ';': case '<': case '=': case '>': - case '?': - case 'A': case 'B': case 'C': case 'D': case 'E': - case 'F': case 'G': case 'H': case 'I': case 'J': - case 'K': case 'L': case 'M': case 'N': case 'O': - case 'P': case 'Q': case 'R': case 'S': case 'T': - case 'U': case 'V': case 'W': case 'X': case 'Y': - case 'Z': - case '[': case '\\': case ']': case '^': case '_': - case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': case 'g': case 'h': case 'i': case 'j': - case 'k': case 'l': case 'm': case 'n': case 'o': - case 'p': case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': case '{': case '|': case '}': case '~': - return 1; - default: - return 0; - } -} - -#endif - -#endif /* _MBCHAR_H */ diff --git a/gl/mbuiter.h b/gl/mbuiter.h deleted file mode 100644 index 9da3a6c..0000000 --- a/gl/mbuiter.h +++ /dev/null @@ -1,203 +0,0 @@ -/* Iterating through multibyte strings: macros for multi-byte encodings. - Copyright (C) 2001, 2005 Free Software Foundation, Inc. - - 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Bruno Haible . */ - -/* The macros in this file implement forward iteration through a - multi-byte string, without knowing its length a-priori. - - With these macros, an iteration loop that looks like - - char *iter; - for (iter = buf; *iter != '\0'; iter++) - { - do_something (*iter); - } - - becomes - - mbui_iterator_t iter; - for (mbui_init (iter, buf); mbui_avail (iter); mbui_advance (iter)) - { - do_something (mbui_cur_ptr (iter), mb_len (mbui_cur (iter))); - } - - The benefit of these macros over plain use of mbrtowc is: - - Handling of invalid multibyte sequences is possible without - making the code more complicated, while still preserving the - invalid multibyte sequences. - - Compared to mbiter.h, the macros here don't need to know the string's - length a-priori. The downside is that at each step, the look-ahead - that guards against overrunning the terminating '\0' is more expensive. - The mbui_* macros are therefore suitable when there is a high probability - that only the first few multibyte characters need to be inspected. - Whereas the mbi_* macros are better if usually the iteration runs - through the entire string. - - mbui_iterator_t - is a type usable for variable declarations. - - mbui_init (iter, startptr) - initializes the iterator, starting at startptr. - - mbui_avail (iter) - returns true if there are more multibyte chracters available before - the end of string is reached. In this case, mbui_cur (iter) is - initialized to the next multibyte chracter. - - mbui_advance (iter) - advances the iterator by one multibyte character. - - mbui_cur (iter) - returns the current multibyte character, of type mbchar_t. All the - macros defined in mbchar.h can be used on it. - - mbui_cur_ptr (iter) - return a pointer to the beginning of the current multibyte character. - - mbui_reloc (iter, ptrdiff) - relocates iterator when the string is moved by ptrdiff bytes. - - Here are the function prototypes of the macros. - - extern void mbui_init (mbui_iterator_t iter, const char *startptr); - extern bool mbui_avail (mbui_iterator_t iter); - extern void mbui_advance (mbui_iterator_t iter); - extern mbchar_t mbui_cur (mbui_iterator_t iter); - extern const char * mbui_cur_ptr (mbui_iterator_t iter); - extern void mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff); - */ - -#ifndef _MBUITER_H -#define _MBUITER_H 1 - -#include -#include -#include - -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.1 has a bug: and must be included before - . */ -#include -#include -#include - -#include "mbchar.h" -#include "strnlen1.h" - -struct mbuiter_multi -{ - bool in_shift; /* true if next byte may not be interpreted as ASCII */ - mbstate_t state; /* if in_shift: current shift state */ - bool next_done; /* true if mbui_avail has already filled the following */ - struct mbchar cur; /* the current character: - const char *cur.ptr pointer to current character - The following are only valid after mbui_avail. - size_t cur.bytes number of bytes of current character - bool cur.wc_valid true if wc is a valid wide character - wchar_t cur.wc if wc_valid: the current character - */ -}; - -static inline void -mbuiter_multi_next (struct mbuiter_multi *iter) -{ - if (iter->next_done) - return; - if (iter->in_shift) - goto with_shift; - /* Handle most ASCII characters quickly, without calling mbrtowc(). */ - if (is_basic (*iter->cur.ptr)) - { - /* These characters are part of the basic character set. ISO C 99 - guarantees that their wide character code is identical to their - char code. */ - iter->cur.bytes = 1; - iter->cur.wc = *iter->cur.ptr; - iter->cur.wc_valid = true; - } - else - { - assert (mbsinit (&iter->state)); - iter->in_shift = true; - with_shift: - iter->cur.bytes = mbrtowc (&iter->cur.wc, iter->cur.ptr, - strnlen1 (iter->cur.ptr, MB_CUR_MAX), - &iter->state); - if (iter->cur.bytes == (size_t) -1) - { - /* An invalid multibyte sequence was encountered. */ - iter->cur.bytes = 1; - iter->cur.wc_valid = false; - /* Whether to set iter->in_shift = false and reset iter->state - or not is not very important; the string is bogus anyway. */ - } - else if (iter->cur.bytes == (size_t) -2) - { - /* An incomplete multibyte character at the end. */ - iter->cur.bytes = strlen (iter->cur.ptr); - iter->cur.wc_valid = false; - /* Whether to set iter->in_shift = false and reset iter->state - or not is not important; the string end is reached anyway. */ - } - else - { - if (iter->cur.bytes == 0) - { - /* A null wide character was encountered. */ - iter->cur.bytes = 1; - assert (*iter->cur.ptr == '\0'); - assert (iter->cur.wc == 0); - } - iter->cur.wc_valid = true; - - /* When in the initial state, we can go back treating ASCII - characters more quickly. */ - if (mbsinit (&iter->state)) - iter->in_shift = false; - } - } - iter->next_done = true; -} - -static inline void -mbuiter_multi_reloc (struct mbuiter_multi *iter, ptrdiff_t ptrdiff) -{ - iter->cur.ptr += ptrdiff; -} - -/* Iteration macros. */ -typedef struct mbuiter_multi mbui_iterator_t; -#define mbui_init(iter, startptr) \ - ((iter).cur.ptr = (startptr), \ - (iter).in_shift = false, memset (&(iter).state, '\0', sizeof (mbstate_t)), \ - (iter).next_done = false) -#define mbui_avail(iter) \ - (mbuiter_multi_next (&(iter)), !mb_isnul ((iter).cur)) -#define mbui_advance(iter) \ - ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false) - -/* Access to the current character. */ -#define mbui_cur(iter) (iter).cur -#define mbui_cur_ptr(iter) (iter).cur.ptr - -/* Relocation. */ -#define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff) - -#endif /* _MBUITER_H */ diff --git a/gl/memchr.c b/gl/memchr.c deleted file mode 100644 index d44ad6d..0000000 --- a/gl/memchr.c +++ /dev/null @@ -1,201 +0,0 @@ -/* Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004, 2006 Free - Software Foundation, Inc. - - Based on strlen implementation by Torbjorn Granlund (tege@sics.se), - with help from Dan Sahlin (dan@sics.se) and - commentary by Jim Blandy (jimb@ai.mit.edu); - adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), - and implemented by Roland McGrath (roland@ai.mit.edu). - -NOTE: The canonical source of this file is maintained with the GNU C Library. -Bugs can be reported to bug-glibc@prep.ai.mit.edu. - -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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _LIBC -# include -#endif - -#include - -#include - -#if defined _LIBC -# include -#else -# define reg_char char -#endif - -#include - -#if HAVE_BP_SYM_H || defined _LIBC -# include -#else -# define BP_SYM(sym) sym -#endif - -#undef memchr -#undef __memchr - -/* Search no more than N bytes of S for C. */ -void * -__memchr (void const *s, int c_in, size_t n) -{ - const unsigned char *char_ptr; - const unsigned long int *longword_ptr; - unsigned long int longword, magic_bits, charmask; - unsigned reg_char c; - int i; - - c = (unsigned char) c_in; - - /* Handle the first few characters by reading one character at a time. - Do this until CHAR_PTR is aligned on a longword boundary. */ - for (char_ptr = (const unsigned char *) s; - n > 0 && (size_t) char_ptr % sizeof longword != 0; - --n, ++char_ptr) - if (*char_ptr == c) - return (void *) char_ptr; - - /* All these elucidatory comments refer to 4-byte longwords, - but the theory applies equally well to any size longwords. */ - - longword_ptr = (const unsigned long int *) char_ptr; - - /* Bits 31, 24, 16, and 8 of this number are zero. Call these bits - the "holes." Note that there is a hole just to the left of - each byte, with an extra at the end: - - bits: 01111110 11111110 11111110 11111111 - bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD - - The 1-bits make sure that carries propagate to the next 0-bit. - The 0-bits provide holes for carries to fall into. */ - - /* Set MAGIC_BITS to be this pattern of 1 and 0 bits. - Set CHARMASK to be a longword, each of whose bytes is C. */ - - magic_bits = 0xfefefefe; - charmask = c | (c << 8); - charmask |= charmask << 16; -#if 0xffffffffU < ULONG_MAX - magic_bits |= magic_bits << 32; - charmask |= charmask << 32; - if (8 < sizeof longword) - for (i = 64; i < sizeof longword * 8; i *= 2) - { - magic_bits |= magic_bits << i; - charmask |= charmask << i; - } -#endif - magic_bits = (ULONG_MAX >> 1) & (magic_bits | 1); - - /* Instead of the traditional loop which tests each character, - we will test a longword at a time. The tricky part is testing - if *any of the four* bytes in the longword in question are zero. */ - while (n >= sizeof longword) - { - /* We tentatively exit the loop if adding MAGIC_BITS to - LONGWORD fails to change any of the hole bits of LONGWORD. - - 1) Is this safe? Will it catch all the zero bytes? - Suppose there is a byte with all zeros. Any carry bits - propagating from its left will fall into the hole at its - least significant bit and stop. Since there will be no - carry from its most significant bit, the LSB of the - byte to the left will be unchanged, and the zero will be - detected. - - 2) Is this worthwhile? Will it ignore everything except - zero bytes? Suppose every byte of LONGWORD has a bit set - somewhere. There will be a carry into bit 8. If bit 8 - is set, this will carry into bit 16. If bit 8 is clear, - one of bits 9-15 must be set, so there will be a carry - into bit 16. Similarly, there will be a carry into bit - 24. If one of bits 24-30 is set, there will be a carry - into bit 31, so all of the hole bits will be changed. - - The one misfire occurs when bits 24-30 are clear and bit - 31 is set; in this case, the hole at bit 31 is not - changed. If we had access to the processor carry flag, - we could close this loophole by putting the fourth hole - at bit 32! - - So it ignores everything except 128's, when they're aligned - properly. - - 3) But wait! Aren't we looking for C, not zero? - Good point. So what we do is XOR LONGWORD with a longword, - each of whose bytes is C. This turns each byte that is C - into a zero. */ - - longword = *longword_ptr++ ^ charmask; - - /* Add MAGIC_BITS to LONGWORD. */ - if ((((longword + magic_bits) - - /* Set those bits that were unchanged by the addition. */ - ^ ~longword) - - /* Look at only the hole bits. If any of the hole bits - are unchanged, most likely one of the bytes was a - zero. */ - & ~magic_bits) != 0) - { - /* Which of the bytes was C? If none of them were, it was - a misfire; continue the search. */ - - const unsigned char *cp = (const unsigned char *) (longword_ptr - 1); - - if (cp[0] == c) - return (void *) cp; - if (cp[1] == c) - return (void *) &cp[1]; - if (cp[2] == c) - return (void *) &cp[2]; - if (cp[3] == c) - return (void *) &cp[3]; - if (4 < sizeof longword && cp[4] == c) - return (void *) &cp[4]; - if (5 < sizeof longword && cp[5] == c) - return (void *) &cp[5]; - if (6 < sizeof longword && cp[6] == c) - return (void *) &cp[6]; - if (7 < sizeof longword && cp[7] == c) - return (void *) &cp[7]; - if (8 < sizeof longword) - for (i = 8; i < sizeof longword; i++) - if (cp[i] == c) - return (void *) &cp[i]; - } - - n -= sizeof longword; - } - - char_ptr = (const unsigned char *) longword_ptr; - - while (n-- > 0) - { - if (*char_ptr == c) - return (void *) char_ptr; - else - ++char_ptr; - } - - return 0; -} -#ifdef weak_alias -weak_alias (__memchr, BP_SYM (memchr)) -#endif diff --git a/gl/minmax.h b/gl/minmax.h deleted file mode 100644 index 975ea76..0000000 --- a/gl/minmax.h +++ /dev/null @@ -1,60 +0,0 @@ -/* MIN, MAX macros. - Copyright (C) 1995, 1998, 2001, 2003, 2005 Free Software Foundation, Inc. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _MINMAX_H -#define _MINMAX_H - -/* Note: MIN, MAX are also defined in on some systems - (glibc, IRIX, HP-UX, OSF/1). Therefore you might get warnings about - MIN, MAX macro redefinitions on some systems; the workaround is to - #include this file as the last one among the #include list. */ - -/* Before we define the following symbols we get the file - since otherwise we get redefinitions on some systems if is - included after this file. Likewise for . - If more than one of these system headers define MIN and MAX, pick just - one of the headers (because the definitions most likely are the same). */ -#if HAVE_MINMAX_IN_LIMITS_H -# include -#elif HAVE_MINMAX_IN_SYS_PARAM_H -# include -#endif - -/* Note: MIN and MAX should be used with two arguments of the - same type. They might not return the minimum and maximum of their two - arguments, if the arguments have different types or have unusual - floating-point values. For example, on a typical host with 32-bit 'int', - 64-bit 'long long', and 64-bit IEEE 754 'double' types: - - MAX (-1, 2147483648) returns 4294967295. - MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0. - MAX (NaN, 0.0) returns 0.0. - MAX (+0.0, -0.0) returns -0.0. - - and in each case the answer is in some sense bogus. */ - -/* MAX(a,b) returns the maximum of A and B. */ -#ifndef MAX -# define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif - -/* MIN(a,b) returns the minimum of A and B. */ -#ifndef MIN -# define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif - -#endif /* _MINMAX_H */ diff --git a/gl/mountlist.c b/gl/mountlist.c index bb01f91..4c975c6 100644 --- a/gl/mountlist.c +++ b/gl/mountlist.c @@ -1,12 +1,12 @@ /* mountlist.c -- return a list of mounted file systems Copyright (C) 1991, 1992, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006 Free Software Foundation, Inc. + 2004, 2005, 2006, 2007 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,8 +14,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include @@ -28,10 +27,6 @@ #include "xalloc.h" -#ifndef strstr -char *strstr (); -#endif - #include #include diff --git a/gl/mountlist.h b/gl/mountlist.h index 7f5a6f7..e54bb49 100644 --- a/gl/mountlist.h +++ b/gl/mountlist.h @@ -3,10 +3,10 @@ Copyright (C) 1991, 1992, 1998, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,8 +14,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #ifndef MOUNTLIST_H_ # define MOUNTLIST_H_ diff --git a/gl/strnlen1.h b/gl/netinet_in.in.h similarity index 51% rename from gl/strnlen1.h rename to gl/netinet_in.in.h index 7ce7d0c..c45e53b 100644 --- a/gl/strnlen1.h +++ b/gl/netinet_in.in.h @@ -1,9 +1,9 @@ -/* Find the length of STRING + 1, but scan at most MAXLEN bytes. - Copyright (C) 2005 Free Software Foundation, Inc. +/* Substitute for . + Copyright (C) 2007 Free Software Foundation, Inc. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -15,26 +15,29 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#ifndef _STRNLEN1_H -#define _STRNLEN1_H +#ifndef _GL_NETINET_IN_H -#include +#if @HAVE_NETINET_IN_H@ +/* On many platforms, assumes prior inclusion of + . */ +# include + +/* The include_next requires a split double-inclusion guard. */ +# @INCLUDE_NEXT@ @NEXT_NETINET_IN_H@ -#ifdef __cplusplus -extern "C" { #endif +#ifndef _GL_NETINET_IN_H +#define _GL_NETINET_IN_H -/* Find the length of STRING + 1, but scan at most MAXLEN bytes. - If no '\0' terminator is found in that many characters, return MAXLEN. */ -/* This is the same as strnlen (string, maxlen - 1) + 1. */ -extern size_t strnlen1 (const char *string, size_t maxlen); +#if !@HAVE_NETINET_IN_H@ +/* A platform that lacks . */ + +# include -#ifdef __cplusplus -} #endif - -#endif /* _STRNLEN1_H */ +#endif /* _GL_NETINET_IN_H */ +#endif /* _GL_NETINET_IN_H */ diff --git a/gl/open-safer.c b/gl/open-safer.c index 04a72eb..ce493d5 100644 --- a/gl/open-safer.c +++ b/gl/open-safer.c @@ -2,10 +2,10 @@ Copyright (C) 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Paul Eggert. */ diff --git a/gl/pipe-safer.c b/gl/pipe-safer.c index e4431b3..0fc6850 100644 --- a/gl/pipe-safer.c +++ b/gl/pipe-safer.c @@ -1,10 +1,10 @@ /* Invoke pipe, but avoid some glitches. Copyright (C) 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Jim Meyering. */ diff --git a/gl/printf-args.c b/gl/printf-args.c index 358801c..871c720 100644 --- a/gl/printf-args.c +++ b/gl/printf-args.c @@ -1,9 +1,9 @@ /* Decomposed printf argument list. - Copyright (C) 1999, 2002-2003, 2005-2006 Free Software Foundation, Inc. + Copyright (C) 1999, 2002-2003, 2005-2007 Free Software Foundation, Inc. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -15,16 +15,25 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#include +/* This file can be parametrized with the following macros: + ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. + PRINTF_FETCHARGS Name of the function to be defined. + STATIC Set to 'static' to declare the function static. */ + +#ifndef PRINTF_FETCHARGS +# include +#endif /* Specification. */ -#include "printf-args.h" +#ifndef PRINTF_FETCHARGS +# include "printf-args.h" +#endif #ifdef STATIC STATIC #endif int -printf_fetchargs (va_list args, arguments *a) +PRINTF_FETCHARGS (va_list args, arguments *a) { size_t i; argument *ap; @@ -56,7 +65,7 @@ printf_fetchargs (va_list args, arguments *a) case TYPE_ULONGINT: ap->a.a_ulongint = va_arg (args, unsigned long int); break; -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: ap->a.a_longlongint = va_arg (args, long long int); break; @@ -67,15 +76,13 @@ printf_fetchargs (va_list args, arguments *a) case TYPE_DOUBLE: ap->a.a_double = va_arg (args, double); break; -#ifdef HAVE_LONG_DOUBLE case TYPE_LONGDOUBLE: ap->a.a_longdouble = va_arg (args, long double); break; -#endif case TYPE_CHAR: ap->a.a_char = va_arg (args, int); break; -#ifdef HAVE_WINT_T +#if HAVE_WINT_T case TYPE_WIDE_CHAR: /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by default argument promotions", this is not the case in mingw32, @@ -94,7 +101,7 @@ printf_fetchargs (va_list args, arguments *a) if (ap->a.a_string == NULL) ap->a.a_string = "(NULL)"; break; -#ifdef HAVE_WCHAR_T +#if HAVE_WCHAR_T case TYPE_WIDE_STRING: ap->a.a_wide_string = va_arg (args, const wchar_t *); /* A null pointer is an invalid argument for "%ls", but in practice @@ -128,10 +135,49 @@ printf_fetchargs (va_list args, arguments *a) case TYPE_COUNT_LONGINT_POINTER: ap->a.a_count_longint_pointer = va_arg (args, long int *); break; -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: ap->a.a_count_longlongint_pointer = va_arg (args, long long int *); break; +#endif +#if ENABLE_UNISTDIO + /* The unistdio extensions. */ + case TYPE_U8_STRING: + ap->a.a_u8_string = va_arg (args, const uint8_t *); + /* A null pointer is an invalid argument for "%U", but in practice + it occurs quite frequently in printf statements that produce + debug output. Use a fallback in this case. */ + if (ap->a.a_u8_string == NULL) + { + static const uint8_t u8_null_string[] = + { '(', 'N', 'U', 'L', 'L', ')', 0 }; + ap->a.a_u8_string = u8_null_string; + } + break; + case TYPE_U16_STRING: + ap->a.a_u16_string = va_arg (args, const uint16_t *); + /* A null pointer is an invalid argument for "%lU", but in practice + it occurs quite frequently in printf statements that produce + debug output. Use a fallback in this case. */ + if (ap->a.a_u16_string == NULL) + { + static const uint16_t u16_null_string[] = + { '(', 'N', 'U', 'L', 'L', ')', 0 }; + ap->a.a_u16_string = u16_null_string; + } + break; + case TYPE_U32_STRING: + ap->a.a_u32_string = va_arg (args, const uint32_t *); + /* A null pointer is an invalid argument for "%llU", but in practice + it occurs quite frequently in printf statements that produce + debug output. Use a fallback in this case. */ + if (ap->a.a_u32_string == NULL) + { + static const uint32_t u32_null_string[] = + { '(', 'N', 'U', 'L', 'L', ')', 0 }; + ap->a.a_u32_string = u32_null_string; + } + break; #endif default: /* Unknown type. */ diff --git a/gl/printf-args.h b/gl/printf-args.h index 5759da0..67cb990 100644 --- a/gl/printf-args.h +++ b/gl/printf-args.h @@ -1,9 +1,9 @@ /* Decomposed printf argument list. - Copyright (C) 1999, 2002-2003, 2006 Free Software Foundation, Inc. + Copyright (C) 1999, 2002-2003, 2006-2007 Free Software Foundation, Inc. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -18,16 +18,26 @@ #ifndef _PRINTF_ARGS_H #define _PRINTF_ARGS_H +/* This file can be parametrized with the following macros: + ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. + PRINTF_FETCHARGS Name of the function to be declared. + STATIC Set to 'static' to declare the function static. */ + +/* Default parameters. */ +#ifndef PRINTF_FETCHARGS +# define PRINTF_FETCHARGS printf_fetchargs +#endif + /* Get size_t. */ #include /* Get wchar_t. */ -#ifdef HAVE_WCHAR_T +#if HAVE_WCHAR_T # include #endif /* Get wint_t. */ -#ifdef HAVE_WINT_T +#if HAVE_WINT_T # include #endif @@ -47,20 +57,18 @@ typedef enum TYPE_UINT, TYPE_LONGINT, TYPE_ULONGINT, -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT TYPE_LONGLONGINT, TYPE_ULONGLONGINT, #endif TYPE_DOUBLE, -#ifdef HAVE_LONG_DOUBLE TYPE_LONGDOUBLE, -#endif TYPE_CHAR, -#ifdef HAVE_WINT_T +#if HAVE_WINT_T TYPE_WIDE_CHAR, #endif TYPE_STRING, -#ifdef HAVE_WCHAR_T +#if HAVE_WCHAR_T TYPE_WIDE_STRING, #endif TYPE_POINTER, @@ -68,9 +76,15 @@ typedef enum TYPE_COUNT_SHORT_POINTER, TYPE_COUNT_INT_POINTER, TYPE_COUNT_LONGINT_POINTER -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT , TYPE_COUNT_LONGLONGINT_POINTER #endif +#if ENABLE_UNISTDIO + /* The unistdio extensions. */ +, TYPE_U8_STRING +, TYPE_U16_STRING +, TYPE_U32_STRING +#endif } arg_type; /* Polymorphic argument */ @@ -87,21 +101,19 @@ typedef struct unsigned int a_uint; long int a_longint; unsigned long int a_ulongint; -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT long long int a_longlongint; unsigned long long int a_ulonglongint; #endif float a_float; double a_double; -#ifdef HAVE_LONG_DOUBLE long double a_longdouble; -#endif int a_char; -#ifdef HAVE_WINT_T +#if HAVE_WINT_T wint_t a_wide_char; #endif const char* a_string; -#ifdef HAVE_WCHAR_T +#if HAVE_WCHAR_T const wchar_t* a_wide_string; #endif void* a_pointer; @@ -109,8 +121,14 @@ typedef struct short * a_count_short_pointer; int * a_count_int_pointer; long int * a_count_longint_pointer; -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT long long int * a_count_longlongint_pointer; +#endif +#if ENABLE_UNISTDIO + /* The unistdio extensions. */ + const uint8_t * a_u8_string; + const uint16_t * a_u16_string; + const uint32_t * a_u32_string; #endif } a; @@ -131,6 +149,6 @@ STATIC #else extern #endif -int printf_fetchargs (va_list args, arguments *a); +int PRINTF_FETCHARGS (va_list args, arguments *a); #endif /* _PRINTF_ARGS_H */ diff --git a/gl/printf-parse.c b/gl/printf-parse.c index 9a86f77..28b9bd4 100644 --- a/gl/printf-parse.c +++ b/gl/printf-parse.c @@ -1,9 +1,9 @@ /* Formatted output to strings. - Copyright (C) 1999-2000, 2002-2003, 2006 Free Software Foundation, Inc. + Copyright (C) 1999-2000, 2002-2003, 2006-2008 Free Software Foundation, Inc. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -15,42 +15,63 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#include +/* This file can be parametrized with the following macros: + CHAR_T The element type of the format string. + CHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters + in the format string are ASCII. + DIRECTIVE Structure denoting a format directive. + Depends on CHAR_T. + DIRECTIVES Structure denoting the set of format directives of a + format string. Depends on CHAR_T. + PRINTF_PARSE Function that parses a format string. + Depends on CHAR_T. + STATIC Set to 'static' to declare the function static. + ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. */ + +#ifndef PRINTF_PARSE +# include +#endif /* Specification. */ -#if WIDE_CHAR_VERSION -# include "wprintf-parse.h" -#else +#ifndef PRINTF_PARSE # include "printf-parse.h" #endif +/* Default parameters. */ +#ifndef PRINTF_PARSE +# define PRINTF_PARSE printf_parse +# define CHAR_T char +# define DIRECTIVE char_directive +# define DIRECTIVES char_directives +#endif + /* Get size_t, NULL. */ #include /* Get intmax_t. */ -#if HAVE_STDINT_H_WITH_UINTMAX +#if defined IN_LIBINTL || defined IN_LIBASPRINTF +# if HAVE_STDINT_H_WITH_UINTMAX +# include +# endif +# if HAVE_INTTYPES_H_WITH_UINTMAX +# include +# endif +#else # include #endif -#if HAVE_INTTYPES_H_WITH_UINTMAX -# include -#endif /* malloc(), realloc(), free(). */ #include +/* errno. */ +#include + /* Checked size_t computations. */ #include "xsize.h" -#if WIDE_CHAR_VERSION -# define PRINTF_PARSE wprintf_parse -# define CHAR_T wchar_t -# define DIRECTIVE wchar_t_directive -# define DIRECTIVES wchar_t_directives -#else -# define PRINTF_PARSE printf_parse -# define CHAR_T char -# define DIRECTIVE char_directive -# define DIRECTIVES char_directives +#if CHAR_T_ONLY_ASCII +/* c_isascii(). */ +# include "c-ctype.h" #endif #ifdef STATIC @@ -71,7 +92,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) d->dir = (DIRECTIVE *) malloc (d_allocated * sizeof (DIRECTIVE)); if (d->dir == NULL) /* Out of memory. */ - return -1; + goto out_of_memory_1; a->count = 0; a_allocated = 0; @@ -91,13 +112,13 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) memory_size = xtimes (a_allocated, sizeof (argument)); \ if (size_overflow_p (memory_size)) \ /* Overflow, would lead to out of memory. */ \ - goto error; \ + goto out_of_memory; \ memory = (argument *) (a->arg \ ? realloc (a->arg, memory_size) \ : malloc (memory_size)); \ if (memory == NULL) \ /* Out of memory. */ \ - goto error; \ + goto out_of_memory; \ a->arg = memory; \ } \ while (a->count <= n) \ @@ -115,7 +136,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) if (c == '%') { size_t arg_index = ARG_NONE; - DIRECTIVE *dp = &d->dir[d->count];/* pointer to next directive */ + DIRECTIVE *dp = &d->dir[d->count]; /* pointer to next directive */ /* Initialize the next directive. */ dp->dir_start = cp - 1; @@ -326,7 +347,6 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) flags += 8; cp++; } -#ifdef HAVE_INTMAX_T else if (*cp == 'j') { if (sizeof (intmax_t) > sizeof (long)) @@ -341,7 +361,6 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) } cp++; } -#endif else if (*cp == 'z' || *cp == 'Z') { /* 'z' is standardized in ISO C 99, but glibc uses 'Z' @@ -373,6 +392,44 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) } cp++; } +#if defined __APPLE__ && defined __MACH__ + /* On MacOS X 10.3, PRIdMAX is defined as "qd". + We cannot change it to "lld" because PRIdMAX must also + be understood by the system's printf routines. */ + else if (*cp == 'q') + { + if (64 / 8 > sizeof (long)) + { + /* int64_t = long long */ + flags += 16; + } + else + { + /* int64_t = long */ + flags += 8; + } + cp++; + } +#endif +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + /* On native Win32, PRIdMAX is defined as "I64d". + We cannot change it to "lld" because PRIdMAX must also + be understood by the system's printf routines. */ + else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4') + { + if (64 / 8 > sizeof (long)) + { + /* __int64 = long long */ + flags += 16; + } + else + { + /* __int64 = long */ + flags += 8; + } + cp += 3; + } +#endif else break; } @@ -382,7 +439,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) switch (c) { case 'd': case 'i': -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_LONGLONGINT; @@ -400,7 +457,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) type = TYPE_INT; break; case 'o': case 'u': case 'x': case 'X': -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_ULONGLONGINT; @@ -419,16 +476,14 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) break; case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': case 'a': case 'A': -#ifdef HAVE_LONG_DOUBLE if (flags >= 16 || (flags & 4)) type = TYPE_LONGDOUBLE; else -#endif - type = TYPE_DOUBLE; + type = TYPE_DOUBLE; break; case 'c': if (flags >= 8) -#ifdef HAVE_WINT_T +#if HAVE_WINT_T type = TYPE_WIDE_CHAR; #else goto error; @@ -436,7 +491,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) else type = TYPE_CHAR; break; -#ifdef HAVE_WINT_T +#if HAVE_WINT_T case 'C': type = TYPE_WIDE_CHAR; c = 'c'; @@ -444,7 +499,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) #endif case 's': if (flags >= 8) -#ifdef HAVE_WCHAR_T +#if HAVE_WCHAR_T type = TYPE_WIDE_STRING; #else goto error; @@ -452,7 +507,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) else type = TYPE_STRING; break; -#ifdef HAVE_WCHAR_T +#if HAVE_WCHAR_T case 'S': type = TYPE_WIDE_STRING; c = 's'; @@ -462,7 +517,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) type = TYPE_POINTER; break; case 'n': -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_COUNT_LONGLONGINT_POINTER; @@ -479,6 +534,17 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) else type = TYPE_COUNT_INT_POINTER; break; +#if ENABLE_UNISTDIO + /* The unistdio extensions. */ + case 'U': + if (flags >= 16) + type = TYPE_U32_STRING; + else if (flags >= 8) + type = TYPE_U16_STRING; + else + type = TYPE_U8_STRING; + break; +#endif case '%': type = TYPE_NONE; break; @@ -514,14 +580,21 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) memory_size = xtimes (d_allocated, sizeof (DIRECTIVE)); if (size_overflow_p (memory_size)) /* Overflow, would lead to out of memory. */ - goto error; + goto out_of_memory; memory = (DIRECTIVE *) realloc (d->dir, memory_size); if (memory == NULL) /* Out of memory. */ - goto error; + goto out_of_memory; d->dir = memory; } } +#if CHAR_T_ONLY_ASCII + else if (!c_isascii (c)) + { + /* Non-ASCII character. Not supported. */ + goto error; + } +#endif } d->dir[d->count].dir_start = cp; @@ -534,10 +607,21 @@ error: free (a->arg); if (d->dir) free (d->dir); + errno = EINVAL; + return -1; + +out_of_memory: + if (a->arg) + free (a->arg); + if (d->dir) + free (d->dir); +out_of_memory_1: + errno = ENOMEM; return -1; } +#undef PRINTF_PARSE #undef DIRECTIVES #undef DIRECTIVE +#undef CHAR_T_ONLY_ASCII #undef CHAR_T -#undef PRINTF_PARSE diff --git a/gl/printf-parse.h b/gl/printf-parse.h index 82a0d37..e5d68d7 100644 --- a/gl/printf-parse.h +++ b/gl/printf-parse.h @@ -1,9 +1,9 @@ /* Parse printf format string. - Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc. + Copyright (C) 1999, 2002-2003, 2005, 2007 Free Software Foundation, Inc. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -18,6 +18,10 @@ #ifndef _PRINTF_PARSE_H #define _PRINTF_PARSE_H +/* This file can be parametrized with the following macros: + ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. + STATIC Set to 'static' to declare the function static. */ + #include "printf-args.h" @@ -32,6 +36,9 @@ /* arg_index value indicating that no argument is consumed. */ #define ARG_NONE (~(size_t)0) +/* xxx_directive: A parsed directive. + xxx_directives: A parsed format string. */ + /* A parsed directive. */ typedef struct { @@ -44,7 +51,7 @@ typedef struct const char* precision_start; const char* precision_end; size_t precision_arg_index; - char conversion; /* d i o u x X f e E g G c s p n U % but not C S */ + char conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } char_directive; @@ -59,16 +66,114 @@ typedef struct } char_directives; +#if ENABLE_UNISTDIO + +/* A parsed directive. */ +typedef struct +{ + const uint8_t* dir_start; + const uint8_t* dir_end; + int flags; + const uint8_t* width_start; + const uint8_t* width_end; + size_t width_arg_index; + const uint8_t* precision_start; + const uint8_t* precision_end; + size_t precision_arg_index; + uint8_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ + size_t arg_index; +} +u8_directive; + +/* A parsed format string. */ +typedef struct +{ + size_t count; + u8_directive *dir; + size_t max_width_length; + size_t max_precision_length; +} +u8_directives; + +/* A parsed directive. */ +typedef struct +{ + const uint16_t* dir_start; + const uint16_t* dir_end; + int flags; + const uint16_t* width_start; + const uint16_t* width_end; + size_t width_arg_index; + const uint16_t* precision_start; + const uint16_t* precision_end; + size_t precision_arg_index; + uint16_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ + size_t arg_index; +} +u16_directive; + +/* A parsed format string. */ +typedef struct +{ + size_t count; + u16_directive *dir; + size_t max_width_length; + size_t max_precision_length; +} +u16_directives; + +/* A parsed directive. */ +typedef struct +{ + const uint32_t* dir_start; + const uint32_t* dir_end; + int flags; + const uint32_t* width_start; + const uint32_t* width_end; + size_t width_arg_index; + const uint32_t* precision_start; + const uint32_t* precision_end; + size_t precision_arg_index; + uint32_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ + size_t arg_index; +} +u32_directive; + +/* A parsed format string. */ +typedef struct +{ + size_t count; + u32_directive *dir; + size_t max_width_length; + size_t max_precision_length; +} +u32_directives; + +#endif + /* Parses the format string. Fills in the number N of directives, and fills in directives[0], ..., directives[N-1], and sets directives[N].dir_start to the end of the format string. Also fills in the arg_type fields of the arguments and the needed count of arguments. */ -#ifdef STATIC -STATIC +#if ENABLE_UNISTDIO +extern int + ulc_printf_parse (const char *format, char_directives *d, arguments *a); +extern int + u8_printf_parse (const uint8_t *format, u8_directives *d, arguments *a); +extern int + u16_printf_parse (const uint16_t *format, u16_directives *d, + arguments *a); +extern int + u32_printf_parse (const uint32_t *format, u32_directives *d, + arguments *a); #else +# ifdef STATIC +STATIC +# else extern -#endif +# endif int printf_parse (const char *format, char_directives *d, arguments *a); +#endif #endif /* _PRINTF_PARSE_H */ diff --git a/gl/ref-add.sin b/gl/ref-add.sin new file mode 100644 index 0000000..222d752 --- /dev/null +++ b/gl/ref-add.sin @@ -0,0 +1,30 @@ +# Add this package to a list of references stored in a text file. +# +# Copyright (C) 2000 Free Software Foundation, Inc. +# +# 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Written by Bruno Haible . +# +/^# Packages using this file: / { + s/# Packages using this file:// + ta + :a + s/ @PACKAGE@ / @PACKAGE@ / + tb + s/ $/ @PACKAGE@ / + :b + s/^/# Packages using this file:/ +} diff --git a/gl/ref-del.sin b/gl/ref-del.sin new file mode 100644 index 0000000..1bf073e --- /dev/null +++ b/gl/ref-del.sin @@ -0,0 +1,25 @@ +# Remove this package from a list of references stored in a text file. +# +# Copyright (C) 2000 Free Software Foundation, Inc. +# +# 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Written by Bruno Haible . +# +/^# Packages using this file: / { + s/# Packages using this file:// + s/ @PACKAGE@ / / + s/^/# Packages using this file:/ +} diff --git a/gl/regcomp.c b/gl/regcomp.c index 8df6bb8..8827e03 100644 --- a/gl/regcomp.c +++ b/gl/regcomp.c @@ -1,11 +1,11 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002,2003,2004,2005,2006 Free Software Foundation, Inc. + Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -451,8 +451,8 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, int regcomp (preg, pattern, cflags) - regex_t *__restrict preg; - const char *__restrict pattern; + regex_t *_Restrict_ preg; + const char *_Restrict_ pattern; int cflags; { reg_errcode_t ret; @@ -515,13 +515,13 @@ weak_alias (__regcomp, regcomp) size_t regerror (errcode, preg, errbuf, errbuf_size) int errcode; - const regex_t *__restrict preg; - char *__restrict errbuf; + const regex_t *_Restrict_ preg; + char *_Restrict_ errbuf; size_t errbuf_size; #else /* size_t might promote */ size_t -regerror (int errcode, const regex_t *__restrict preg, - char *__restrict errbuf, size_t errbuf_size) +regerror (int errcode, const regex_t *_Restrict_ preg, + char *_Restrict_ errbuf, size_t errbuf_size) #endif { const char *msg; @@ -542,17 +542,13 @@ regerror (int errcode, const regex_t *__restrict preg, if (BE (errbuf_size != 0, 1)) { + size_t cpy_size = msg_size; if (BE (msg_size > errbuf_size, 0)) { -#if defined HAVE_MEMPCPY || defined _LIBC - *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0'; -#else - memcpy (errbuf, msg, errbuf_size - 1); - errbuf[errbuf_size - 1] = 0; -#endif + cpy_size = errbuf_size - 1; + errbuf[cpy_size] = '\0'; } - else - memcpy (errbuf, msg, msg_size); + memcpy (errbuf, msg, cpy_size); } return msg_size; @@ -833,9 +829,6 @@ static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len) { __re_size_t table_size; -#ifndef _LIBC - char *codeset_name; -#endif #ifdef RE_ENABLE_I18N size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t)); #else @@ -879,22 +872,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII) != 0); #else -# ifdef HAVE_LANGINFO_CODESET - codeset_name = nl_langinfo (CODESET); -# else - codeset_name = getenv ("LC_ALL"); - if (codeset_name == NULL || codeset_name[0] == '\0') - codeset_name = getenv ("LC_CTYPE"); - if (codeset_name == NULL || codeset_name[0] == '\0') - codeset_name = getenv ("LANG"); - if (codeset_name == NULL) - codeset_name = ""; - else if (strchr (codeset_name, '.') != NULL) - codeset_name = strchr (codeset_name, '.') + 1; -# endif - - if (strcasecmp (codeset_name, "UTF-8") == 0 - || strcasecmp (codeset_name, "UTF8") == 0) + if (strcmp (locale_charset (), "UTF-8") == 0) dfa->is_utf8 = 1; /* We check exhaustively in the loop below if this charset is a @@ -1071,7 +1049,7 @@ optimize_utf8 (re_dfa_t *dfa) mb_chars = true; break; case ANCHOR: - switch (dfa->nodes[node].opr.idx) + switch (dfa->nodes[node].opr.ctx_type) { case LINE_FIRST: case LINE_LAST: @@ -3074,7 +3052,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, #endif /* not RE_ENABLE_I18N */ non_match = true; if (syntax & RE_HAT_LISTS_NOT_NEWLINE) - bitset_set (sbcset, '\0'); + bitset_set (sbcset, '\n'); re_string_skip_bytes (regexp, token_len); /* Skip a token. */ token_len = peek_token_bracket (token, regexp, syntax); if (BE (token->type == END_OF_RE, 0)) @@ -3605,10 +3583,6 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, if (non_match) { #ifdef RE_ENABLE_I18N - /* - if (syntax & RE_HAT_LISTS_NOT_NEWLINE) - bitset_set(cset->sbcset, '\0'); - */ mbcset->non_match = 1; #endif /* not RE_ENABLE_I18N */ } diff --git a/gl/regex.c b/gl/regex.c index d4eb726..ee36378 100644 --- a/gl/regex.c +++ b/gl/regex.c @@ -5,7 +5,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, diff --git a/gl/regex.h b/gl/regex.h index 6885ebd..a531283 100644 --- a/gl/regex.h +++ b/gl/regex.h @@ -6,7 +6,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -625,41 +625,45 @@ extern int re_exec (const char *); #endif /* GCC 2.95 and later have "__restrict"; C99 compilers have - "restrict", and "configure" may have defined "restrict". */ -#ifndef __restrict -# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)) -# if defined restrict || 199901L <= __STDC_VERSION__ -# define __restrict restrict -# else -# define __restrict -# endif + "restrict", and "configure" may have defined "restrict". + Other compilers use __restrict, __restrict__, and _Restrict, and + 'configure' might #define 'restrict' to those words, so pick a + different name. */ +#ifndef _Restrict_ +# if 199901L <= __STDC_VERSION__ +# define _Restrict_ restrict +# elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__) +# define _Restrict_ __restrict +# else +# define _Restrict_ # endif #endif /* gcc 3.1 and up support the [restrict] syntax. Don't trust sys/cdefs.h's definition of __restrict_arr, though, as it mishandles gcc -ansi -pedantic. */ -#undef __restrict_arr -#if ((199901L <= __STDC_VERSION__ \ - || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) \ - && !__STRICT_ANSI__)) \ - && !defined __GNUG__) -# define __restrict_arr __restrict -#else -# define __restrict_arr +#ifndef _Restrict_arr_ +# if ((199901L <= __STDC_VERSION__ \ + || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) \ + && !__STRICT_ANSI__)) \ + && !defined __GNUG__) +# define _Restrict_arr_ _Restrict_ +# else +# define _Restrict_arr_ +# endif #endif /* POSIX compatibility. */ -extern int regcomp (regex_t *__restrict __preg, - const char *__restrict __pattern, +extern int regcomp (regex_t *_Restrict_ __preg, + const char *_Restrict_ __pattern, int __cflags); -extern int regexec (const regex_t *__restrict __preg, - const char *__restrict __string, size_t __nmatch, - regmatch_t __pmatch[__restrict_arr], +extern int regexec (const regex_t *_Restrict_ __preg, + const char *_Restrict_ __string, size_t __nmatch, + regmatch_t __pmatch[_Restrict_arr_], int __eflags); -extern size_t regerror (int __errcode, const regex_t *__restrict __preg, - char *__restrict __errbuf, size_t __errbuf_size); +extern size_t regerror (int __errcode, const regex_t *_Restrict_ __preg, + char *_Restrict_ __errbuf, size_t __errbuf_size); extern void regfree (regex_t *__preg); diff --git a/gl/regex_internal.c b/gl/regex_internal.c index 78e16f3..cf3bf1b 100644 --- a/gl/regex_internal.c +++ b/gl/regex_internal.c @@ -1,11 +1,12 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software + Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -706,7 +707,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) if (pstr->is_utf8) { - const unsigned char *raw, *p, *q, *end; + const unsigned char *raw, *p, *end; /* Special case UTF-8. Multi-byte chars start with any byte other than 0x80 - 0xbf. */ @@ -735,13 +736,11 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) unsigned char buf[6]; size_t mbclen; - q = p; if (BE (pstr->trans != NULL, 0)) { int i = mlen < 6 ? mlen : 6; while (--i >= 0) buf[i] = pstr->trans[p[i]]; - q = buf; } /* XXX Don't use mbrtowc, we know which conversion to use (UTF-8 -> UCS4). */ diff --git a/gl/regex_internal.h b/gl/regex_internal.h index b0f7e65..f96291d 100644 --- a/gl/regex_internal.h +++ b/gl/regex_internal.h @@ -5,7 +5,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -27,12 +27,10 @@ #include #include -#ifndef _LIBC -# include "strcase.h" -#endif - -#if defined HAVE_LANGINFO_H || defined HAVE_LANGINFO_CODESET || defined _LIBC +#ifdef _LIBC # include +#else +# include "localcharset.h" #endif #if defined HAVE_LOCALE_H || defined _LIBC # include @@ -50,7 +48,7 @@ #endif /* In case that the system doesn't have isblank(). */ -#if !defined _LIBC && !HAVE_DECL_ISBLANK && !defined isblank +#if !defined _LIBC && ! (defined isblank || (HAVE_ISBLANK && HAVE_DECL_ISBLANK)) # define isblank(ch) ((ch) == ' ' || (ch) == '\t') #endif @@ -116,9 +114,6 @@ # define __wctype wctype # define __iswctype iswctype # define __btowc btowc -# ifndef __mempcpy -# define __mempcpy mempcpy -# endif # define __wcrtomb wcrtomb # define __regfree regfree # define attribute_hidden diff --git a/gl/regexec.c b/gl/regexec.c index 7c186aa..ac6c258 100644 --- a/gl/regexec.c +++ b/gl/regexec.c @@ -1,11 +1,12 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, + Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -221,10 +222,10 @@ static reg_errcode_t extend_buffers (re_match_context_t *mctx) int regexec (preg, string, nmatch, pmatch, eflags) - const regex_t *__restrict preg; - const char *__restrict string; + const regex_t *_Restrict_ preg; + const char *_Restrict_ string; size_t nmatch; - regmatch_t pmatch[]; + regmatch_t pmatch[_Restrict_arr_]; int eflags; { reg_errcode_t err; @@ -267,8 +268,8 @@ __typeof__ (__regexec) __compat_regexec; int attribute_compat_text_section -__compat_regexec (const regex_t *__restrict preg, - const char *__restrict string, size_t nmatch, +__compat_regexec (const regex_t *_Restrict_ preg, + const char *_Restrict_ string, size_t nmatch, regmatch_t pmatch[], int eflags) { return regexec (preg, string, nmatch, pmatch, @@ -2338,7 +2339,7 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx, } /* Update the state_log if we need */ -re_dfastate_t * +static re_dfastate_t * internal_function merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *next_state) diff --git a/gl/safe-read.c b/gl/safe-read.c index b7bf1d5..0cb1ede 100644 --- a/gl/safe-read.c +++ b/gl/safe-read.c @@ -3,10 +3,10 @@ Copyright (C) 1993, 1994, 1998, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,8 +14,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/safe-read.h b/gl/safe-read.h index 3451955..ba19171 100644 --- a/gl/safe-read.h +++ b/gl/safe-read.h @@ -1,10 +1,10 @@ /* An interface to read() that retries after interrupts. Copyright (C) 2002, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/safe-write.c b/gl/safe-write.c index 4c375a6..b644f7c 100644 --- a/gl/safe-write.c +++ b/gl/safe-write.c @@ -1,10 +1,10 @@ /* An interface to write that retries after interrupts. Copyright (C) 2002 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #define SAFE_WRITE #include "safe-read.c" diff --git a/gl/safe-write.h b/gl/safe-write.h index c194636..da036a9 100644 --- a/gl/safe-write.h +++ b/gl/safe-write.h @@ -1,10 +1,10 @@ /* An interface to write() that retries after interrupts. Copyright (C) 2002 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/size_max.h b/gl/size_max.h index ed0bc13..2ccc5f0 100644 --- a/gl/size_max.h +++ b/gl/size_max.h @@ -4,7 +4,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, diff --git a/gl/snprintf.c b/gl/snprintf.c index db1ca9a..960cfdb 100644 --- a/gl/snprintf.c +++ b/gl/snprintf.c @@ -1,10 +1,10 @@ /* Formatted output to strings. - Copyright (C) 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 2004, 2006-2007 Free Software Foundation, Inc. Written by Simon Josefsson and Paul Eggert. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -18,7 +18,8 @@ #include -#include "snprintf.h" +/* Specification. */ +#include #include #include @@ -37,7 +38,7 @@ additional length SIZE limit how much is written into STR. Returns string length of formatted string (which may be larger than SIZE). STR may be NULL, in which case nothing will be written. On error, - return a negative value. */ + return a negative value. */ int snprintf (char *str, size_t size, const char *format, ...) { diff --git a/gl/snprintf.h b/gl/snprintf.h deleted file mode 100644 index 5032b9e..0000000 --- a/gl/snprintf.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Formatted output to strings. - Copyright (C) 2004 Free Software Foundation, Inc. - Written by Simon Josefsson. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef SNPRINTF_H -#define SNPRINTF_H - -/* Get snprintf declaration, if available. */ -#include - -#if defined HAVE_DECL_SNPRINTF && !HAVE_DECL_SNPRINTF -int snprintf (char *str, size_t size, const char *format, ...); -#endif - -#endif /* SNPRINTF_H */ diff --git a/gl/stdbool_.h b/gl/stdbool.in.h similarity index 87% rename from gl/stdbool_.h rename to gl/stdbool.in.h index efa80ba..171d70a 100644 --- a/gl/stdbool_.h +++ b/gl/stdbool.in.h @@ -1,9 +1,9 @@ -/* Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2002, 2003, 2006, 2007 Free Software Foundation, Inc. Written by Bruno Haible , 2001. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -15,8 +15,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#ifndef _STDBOOL_H -#define _STDBOOL_H +#ifndef _GL_STDBOOL_H +#define _GL_STDBOOL_H /* ISO C 99 for platforms that lack it. */ @@ -41,6 +41,9 @@ - You cannot assume that _Bool is a typedef; it might be a macro. + - Bit-fields of type 'bool' are not supported. Portable code + should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. + - In C99, casts and automatic conversions to '_Bool' or 'bool' are performed in such a way that every nonzero value gets converted to 'true', and zero gets converted to 'false'. This doesn't work @@ -94,10 +97,11 @@ typedef bool _Bool; "warning: _Bool is a keyword in ISO C99". Use of an enum type, with IRIX cc, leads to a stupid "warning(1185): enumerated type mixed with another type". - The only benefit of the enum type, debuggability, is not important - with these compilers. So use 'signed char' and no typedef. */ + Even the existence of an enum type, without a typedef, + "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. + The only benefit of the enum, debuggability, is not important + with these compilers. So use 'signed char' and no enum. */ # define _Bool signed char -enum { false = 0, true = 1 }; # else /* With this compiler, trust the _Bool type if the compiler has it. */ # if !@HAVE__BOOL@ @@ -112,4 +116,4 @@ typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; #define true 1 #define __bool_true_false_are_defined 1 -#endif /* _STDBOOL_H */ +#endif /* _GL_STDBOOL_H */ diff --git a/gl/stdint_.h b/gl/stdint.in.h similarity index 85% rename from gl/stdint_.h rename to gl/stdint.in.h index 64ec8c5..67baceb 100644 --- a/gl/stdint_.h +++ b/gl/stdint.in.h @@ -4,7 +4,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -16,14 +16,19 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#ifndef _GL_STDINT_H -#define _GL_STDINT_H - /* * ISO C 99 for platforms that lack it. * */ +#ifndef _GL_STDINT_H + +/* When including a system file that in turn includes , + use the system , not our substitute. This avoids + problems with (for example) VMS, whose includes + . */ +#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H + /* Get those types that are already defined in other system include files, so that we can "#define int8_t signed char" below without worrying about a later system include file containing a "typedef @@ -42,16 +47,20 @@ /* Other systems may have an incomplete or buggy . Include it before , since any "#include " in would reinclude us, skipping our contents because - _GL_STDINT_H is defined. */ -# include @ABSOLUTE_STDINT_H@ + _GL_STDINT_H is defined. + The include_next requires a split double-inclusion guard. */ +# @INCLUDE_NEXT@ @NEXT_STDINT_H@ #endif +#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H +#define _GL_STDINT_H + /* defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via ). AIX 5.2 isn't needed and causes troubles. MacOS X 10.4.6 includes (which is us), but relies on the system definitions, so include - after @ABSOLUTE_STDINT_H@. */ + after @NEXT_STDINT_H@. */ #if @HAVE_SYS_TYPES_H@ && ! defined _AIX # include #endif @@ -63,9 +72,7 @@ /* In OpenBSD 3.8, includes , which defines int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. also defines intptr_t and uintptr_t. */ -# define _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H # include -# undef _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H #elif @HAVE_SYS_INTTYPES_H@ /* Solaris 7 has the types except the *_fast*_t types, and the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ @@ -88,6 +95,8 @@ #endif +#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H + /* Minimum and maximum values for a integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ @@ -98,7 +107,10 @@ #define _STDINT_MAX(signed, bits, zero) \ ((signed) \ ? ~ _STDINT_MIN (signed, bits, zero) \ - : ((((zero) + 1) << ((bits) ? (bits) - 1 : 0)) - 1) * 2 + 1) + : /* The expression for the unsigned case. The subtraction of (signed) \ + is a nop in the unsigned case and avoids "signed integer overflow" \ + warnings in the signed case. */ \ + ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) /* 7.18.1.1. Exact-width integer types */ @@ -120,22 +132,34 @@ #define int32_t int #define uint32_t unsigned int -#undef int64_t +/* Do not undefine int64_t if gnulib is not being used with 64-bit + types, since otherwise it breaks platforms like Tandem/NSK. */ #if LONG_MAX >> 31 >> 31 == 1 +# undef int64_t # define int64_t long int +# define GL_INT64_T #elif defined _MSC_VER +# undef int64_t # define int64_t __int64 +# define GL_INT64_T #elif @HAVE_LONG_LONG_INT@ +# undef int64_t # define int64_t long long int +# define GL_INT64_T #endif -#undef uint64_t #if ULONG_MAX >> 31 >> 31 >> 1 == 1 +# undef uint64_t # define uint64_t unsigned long int +# define GL_UINT64_T #elif defined _MSC_VER +# undef uint64_t # define uint64_t unsigned __int64 +# define GL_UINT64_T #elif @HAVE_UNSIGNED_LONG_LONG_INT@ +# undef uint64_t # define uint64_t unsigned long long int +# define GL_UINT64_T #endif /* Avoid collision with Solaris 2.5.1 etc. */ @@ -164,10 +188,10 @@ #define uint_least16_t uint16_t #define int_least32_t int32_t #define uint_least32_t uint32_t -#ifdef int64_t +#ifdef GL_INT64_T # define int_least64_t int64_t #endif -#ifdef uint64_t +#ifdef GL_UINT64_T # define uint_least64_t uint64_t #endif @@ -195,10 +219,10 @@ #define uint_fast16_t unsigned int_fast16_t #define int_fast32_t long int #define uint_fast32_t unsigned int_fast32_t -#ifdef int64_t +#ifdef GL_INT64_T # define int_fast64_t int64_t #endif -#ifdef uint64_t +#ifdef GL_UINT64_T # define uint_fast64_t uint64_t #endif @@ -217,7 +241,7 @@ #undef intmax_t #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define intmax_t long long int -#elif defined int64_t +#elif defined GL_INT64_T # define intmax_t int64_t #else # define intmax_t long int @@ -226,12 +250,17 @@ #undef uintmax_t #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define uintmax_t unsigned long long int -#elif defined uint64_t +#elif defined GL_UINT64_T # define uintmax_t uint64_t #else # define uintmax_t unsigned long int #endif +/* Verify that intmax_t and uintmax_t have the same size. Too much code + breaks if this is not the case. If this check fails, the reason is likely + to be found in the autoconf macros. */ +typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1]; + /* 7.18.2. Limits of specified-width integer types */ #if ! defined __cplusplus || defined __STDC_LIMIT_MACROS @@ -264,13 +293,15 @@ #undef INT64_MIN #undef INT64_MAX -#ifdef int64_t -# define INT64_MIN (~ INT64_MAX) +#ifdef GL_INT64_T +/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 + evaluates the latter incorrectly in preprocessor expressions. */ +# define INT64_MIN (- INTMAX_C (1) << 63) # define INT64_MAX INTMAX_C (9223372036854775807) #endif #undef UINT64_MAX -#ifdef uint64_t +#ifdef GL_UINT64_T # define UINT64_MAX UINTMAX_C (18446744073709551615) #endif @@ -303,13 +334,13 @@ #undef INT_LEAST64_MIN #undef INT_LEAST64_MAX -#ifdef int64_t +#ifdef GL_INT64_T # define INT_LEAST64_MIN INT64_MIN # define INT_LEAST64_MAX INT64_MAX #endif #undef UINT_LEAST64_MAX -#ifdef uint64_t +#ifdef GL_UINT64_T # define UINT_LEAST64_MAX UINT64_MAX #endif @@ -342,13 +373,13 @@ #undef INT_FAST64_MIN #undef INT_FAST64_MAX -#ifdef int64_t +#ifdef GL_INT64_T # define INT_FAST64_MIN INT64_MIN # define INT_FAST64_MAX INT64_MAX #endif #undef UINT_FAST64_MAX -#ifdef uint64_t +#ifdef GL_UINT64_T # define UINT_FAST64_MAX UINT64_MAX #endif @@ -365,10 +396,11 @@ #undef INTMAX_MIN #undef INTMAX_MAX -#define INTMAX_MIN (~ INTMAX_MAX) #ifdef INT64_MAX +# define INTMAX_MIN INT64_MIN # define INTMAX_MAX INT64_MAX #else +# define INTMAX_MIN INT32_MIN # define INTMAX_MAX INT32_MAX #endif @@ -469,7 +501,7 @@ #undef INTMAX_C #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define INTMAX_C(x) x##LL -#elif defined int64_t +#elif defined GL_INT64_T # define INTMAX_C(x) INT64_C(x) #else # define INTMAX_C(x) x##L @@ -478,7 +510,7 @@ #undef UINTMAX_C #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define UINTMAX_C(x) x##ULL -#elif defined uint64_t +#elif defined GL_UINT64_T # define UINTMAX_C(x) UINT64_C(x) #else # define UINTMAX_C(x) x##UL @@ -487,3 +519,4 @@ #endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */ #endif /* _GL_STDINT_H */ +#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ diff --git a/gl/stdio.in.h b/gl/stdio.in.h new file mode 100644 index 0000000..434fa8e --- /dev/null +++ b/gl/stdio.in.h @@ -0,0 +1,382 @@ +/* A GNU-like . + + Copyright (C) 2004, 2007-2008 Free Software Foundation, Inc. + + 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#if defined __need_FILE || defined __need___FILE +/* Special invocation convention inside glibc header files. */ + +#@INCLUDE_NEXT@ @NEXT_STDIO_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _GL_STDIO_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_STDIO_H@ + +#ifndef _GL_STDIO_H +#define _GL_STDIO_H + +#include +#include + +#if (@GNULIB_FSEEKO@ && @REPLACE_FSEEKO@) \ + || (@GNULIB_FTELLO@ && @REPLACE_FTELLO@) \ + || (@GNULIB_GETDELIM@ && !@HAVE_DECL_GETDELIM@) \ + || (@GNULIB_GETLINE@ && (!@HAVE_DECL_GETLINE@ || @REPLACE_GETLINE@)) +/* Get off_t and ssize_t. */ +# include +#endif + +#ifndef __attribute__ +/* This feature is available in gcc versions 2.5 and later. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) +# define __attribute__(Spec) /* empty */ +# endif +/* The __-protected variants of `format' and `printf' attributes + are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) +# define __format__ format +# define __printf__ printf +# endif +#endif + + +/* The definition of GL_LINK_WARNING is copied here. */ + + +#ifdef __cplusplus +extern "C" { +#endif + + +#if @GNULIB_FPRINTF_POSIX@ +# if @REPLACE_FPRINTF@ +# define fprintf rpl_fprintf +extern int fprintf (FILE *fp, const char *format, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); +# endif +#elif defined GNULIB_POSIXCHECK +# undef fprintf +# define fprintf \ + (GL_LINK_WARNING ("fprintf is not always POSIX compliant - " \ + "use gnulib module fprintf-posix for portable " \ + "POSIX compliance"), \ + fprintf) +#endif + +#if @GNULIB_VFPRINTF_POSIX@ +# if @REPLACE_VFPRINTF@ +# define vfprintf rpl_vfprintf +extern int vfprintf (FILE *fp, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 2, 0))); +# endif +#elif defined GNULIB_POSIXCHECK +# undef vfprintf +# define vfprintf(s,f,a) \ + (GL_LINK_WARNING ("vfprintf is not always POSIX compliant - " \ + "use gnulib module vfprintf-posix for portable " \ + "POSIX compliance"), \ + vfprintf (s, f, a)) +#endif + +#if @GNULIB_PRINTF_POSIX@ +# if @REPLACE_PRINTF@ +/* Don't break __attribute__((format(printf,M,N))). */ +# define printf __printf__ +extern int printf (const char *format, ...) + __attribute__ ((__format__ (__printf__, 1, 2))); +# endif +#elif defined GNULIB_POSIXCHECK +# undef printf +# define printf \ + (GL_LINK_WARNING ("printf is not always POSIX compliant - " \ + "use gnulib module printf-posix for portable " \ + "POSIX compliance"), \ + printf) +/* Don't break __attribute__((format(printf,M,N))). */ +# define format(kind,m,n) format (__##kind##__, m, n) +# define __format__(kind,m,n) __format__ (__##kind##__, m, n) +# define ____printf____ __printf__ +# define ____scanf____ __scanf__ +# define ____strftime____ __strftime__ +# define ____strfmon____ __strfmon__ +#endif + +#if @GNULIB_VPRINTF_POSIX@ +# if @REPLACE_VPRINTF@ +# define vprintf rpl_vprintf +extern int vprintf (const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 1, 0))); +# endif +#elif defined GNULIB_POSIXCHECK +# undef vprintf +# define vprintf(f,a) \ + (GL_LINK_WARNING ("vprintf is not always POSIX compliant - " \ + "use gnulib module vprintf-posix for portable " \ + "POSIX compliance"), \ + vprintf (f, a)) +#endif + +#if @GNULIB_SNPRINTF@ +# if @REPLACE_SNPRINTF@ +# define snprintf rpl_snprintf +# endif +# if @REPLACE_SNPRINTF@ || !@HAVE_DECL_SNPRINTF@ +extern int snprintf (char *str, size_t size, const char *format, ...) + __attribute__ ((__format__ (__printf__, 3, 4))); +# endif +#elif defined GNULIB_POSIXCHECK +# undef snprintf +# define snprintf \ + (GL_LINK_WARNING ("snprintf is unportable - " \ + "use gnulib module snprintf for portability"), \ + snprintf) +#endif + +#if @GNULIB_VSNPRINTF@ +# if @REPLACE_VSNPRINTF@ +# define vsnprintf rpl_vsnprintf +# endif +# if @REPLACE_VSNPRINTF@ || !@HAVE_DECL_VSNPRINTF@ +extern int vsnprintf (char *str, size_t size, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 3, 0))); +# endif +#elif defined GNULIB_POSIXCHECK +# undef vsnprintf +# define vsnprintf(b,s,f,a) \ + (GL_LINK_WARNING ("vsnprintf is unportable - " \ + "use gnulib module vsnprintf for portability"), \ + vsnprintf (b, s, f, a)) +#endif + +#if @GNULIB_SPRINTF_POSIX@ +# if @REPLACE_SPRINTF@ +# define sprintf rpl_sprintf +extern int sprintf (char *str, const char *format, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); +# endif +#elif defined GNULIB_POSIXCHECK +# undef sprintf +# define sprintf \ + (GL_LINK_WARNING ("sprintf is not always POSIX compliant - " \ + "use gnulib module sprintf-posix for portable " \ + "POSIX compliance"), \ + sprintf) +#endif + +#if @GNULIB_VSPRINTF_POSIX@ +# if @REPLACE_VSPRINTF@ +# define vsprintf rpl_vsprintf +extern int vsprintf (char *str, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 2, 0))); +# endif +#elif defined GNULIB_POSIXCHECK +# undef vsprintf +# define vsprintf(b,f,a) \ + (GL_LINK_WARNING ("vsprintf is not always POSIX compliant - " \ + "use gnulib module vsprintf-posix for portable " \ + "POSIX compliance"), \ + vsprintf (b, f, a)) +#endif + +#if @GNULIB_VASPRINTF@ +# if @REPLACE_VASPRINTF@ +# define asprintf rpl_asprintf +# define vasprintf rpl_vasprintf +# endif +# if @REPLACE_VASPRINTF@ || !@HAVE_VASPRINTF@ + /* Write formatted output to a string dynamically allocated with malloc(). + If the memory allocation succeeds, store the address of the string in + *RESULT and return the number of resulting bytes, excluding the trailing + NUL. Upon memory allocation error, or some other error, return -1. */ + extern int asprintf (char **result, const char *format, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); + extern int vasprintf (char **result, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 2, 0))); +# endif +#endif + +#if @GNULIB_FOPEN@ +# if @REPLACE_FOPEN@ +# define fopen rpl_fopen +extern FILE * fopen (const char *filename, const char *mode); +# endif +#elif defined GNULIB_POSIXCHECK +# undef fopen +# define fopen(f,m) \ + (GL_LINK_WARNING ("fopen on Win32 platforms is not POSIX compatible - " \ + "use gnulib module fopen for portability"), \ + fopen (f, m)) +#endif + +#if @GNULIB_FREOPEN@ +# if @REPLACE_FREOPEN@ +# define freopen rpl_freopen +extern FILE * freopen (const char *filename, const char *mode, FILE *stream); +# endif +#elif defined GNULIB_POSIXCHECK +# undef freopen +# define freopen(f,m,s) \ + (GL_LINK_WARNING ("freopen on Win32 platforms is not POSIX compatible - " \ + "use gnulib module freopen for portability"), \ + freopen (f, m, s)) +#endif + +#if @GNULIB_FSEEKO@ +# if @REPLACE_FSEEKO@ +/* Provide fseek, fseeko functions that are aware of a preceding + fflush(), and which detect pipes. */ +# define fseeko rpl_fseeko +extern int fseeko (FILE *fp, off_t offset, int whence); +# define fseek(fp, offset, whence) fseeko (fp, (off_t)(offset), whence) +# endif +#elif defined GNULIB_POSIXCHECK +# undef fseeko +# define fseeko(f,o,w) \ + (GL_LINK_WARNING ("fseeko is unportable - " \ + "use gnulib module fseeko for portability"), \ + fseeko (f, o, w)) +#endif + +#if @GNULIB_FSEEK@ && @REPLACE_FSEEK@ +extern int rpl_fseek (FILE *fp, long offset, int whence); +# undef fseek +# if defined GNULIB_POSIXCHECK +# define fseek(f,o,w) \ + (GL_LINK_WARNING ("fseek cannot handle files larger than 4 GB " \ + "on 32-bit platforms - " \ + "use fseeko function for handling of large files"), \ + rpl_fseek (f, o, w)) +# else +# define fseek rpl_fseek +# endif +#elif defined GNULIB_POSIXCHECK +# ifndef fseek +# define fseek(f,o,w) \ + (GL_LINK_WARNING ("fseek cannot handle files larger than 4 GB " \ + "on 32-bit platforms - " \ + "use fseeko function for handling of large files"), \ + fseek (f, o, w)) +# endif +#endif + +#if @GNULIB_FTELLO@ +# if @REPLACE_FTELLO@ +# define ftello rpl_ftello +extern off_t ftello (FILE *fp); +# define ftell(fp) ftello (fp) +# endif +#elif defined GNULIB_POSIXCHECK +# undef ftello +# define ftello(f) \ + (GL_LINK_WARNING ("ftello is unportable - " \ + "use gnulib module ftello for portability"), \ + ftello (f)) +#endif + +#if @GNULIB_FTELL@ && @REPLACE_FTELL@ +extern long rpl_ftell (FILE *fp); +# undef ftell +# if GNULIB_POSIXCHECK +# define ftell(f) \ + (GL_LINK_WARNING ("ftell cannot handle files larger than 4 GB " \ + "on 32-bit platforms - " \ + "use ftello function for handling of large files"), \ + rpl_ftell (f)) +# else +# define ftell rpl_ftell +# endif +#elif defined GNULIB_POSIXCHECK +# ifndef ftell +# define ftell(f) \ + (GL_LINK_WARNING ("ftell cannot handle files larger than 4 GB " \ + "on 32-bit platforms - " \ + "use ftello function for handling of large files"), \ + ftell (f)) +# endif +#endif + +#if @GNULIB_FFLUSH@ +# if @REPLACE_FFLUSH@ +# define fflush rpl_fflush + /* Flush all pending data on STREAM according to POSIX rules. Both + output and seekable input streams are supported. + Note! LOSS OF DATA can occur if fflush is applied on an input stream + that is _not_seekable_ or on an update stream that is _not_seekable_ + and in which the most recent operation was input. Seekability can + be tested with lseek(fileno(fp),0,SEEK_CUR). */ + extern int fflush (FILE *gl_stream); +# endif +#elif defined GNULIB_POSIXCHECK +# undef fflush +# define fflush(f) \ + (GL_LINK_WARNING ("fflush is not always POSIX compliant - " \ + "use gnulib module fflush for portable " \ + "POSIX compliance"), \ + fflush (f)) +#endif + +#if @GNULIB_GETDELIM@ +# if !@HAVE_DECL_GETDELIM@ +/* Read input, up to (and including) the next occurrence of DELIMITER, from + STREAM, store it in *LINEPTR (and NUL-terminate it). + *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE + bytes of space. It is realloc'd as necessary. + Return the number of bytes read and stored at *LINEPTR (not including the + NUL terminator), or -1 on error or EOF. */ +extern ssize_t getdelim (char **lineptr, size_t *linesize, int delimiter, + FILE *stream); +# endif +#elif defined GNULIB_POSIXCHECK +# undef getdelim +# define getdelim(l, s, d, f) \ + (GL_LINK_WARNING ("getdelim is unportable - " \ + "use gnulib module getdelim for portability"), \ + getdelim (l, s, d, f)) +#endif + +#if @GNULIB_GETLINE@ +# if @REPLACE_GETLINE@ +# undef getline +# define getline rpl_getline +# endif +# if !@HAVE_DECL_GETLINE@ || @REPLACE_GETLINE@ +/* Read a line, up to (and including) the next newline, from STREAM, store it + in *LINEPTR (and NUL-terminate it). + *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE + bytes of space. It is realloc'd as necessary. + Return the number of bytes read and stored at *LINEPTR (not including the + NUL terminator), or -1 on error or EOF. */ +extern ssize_t getline (char **lineptr, size_t *linesize, FILE *stream); +# endif +#elif defined GNULIB_POSIXCHECK +# undef getline +# define getline(l, s, f) \ + (GL_LINK_WARNING ("getline is unportable - " \ + "use gnulib module getline for portability"), \ + getline (l, s, f)) +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _GL_STDIO_H */ +#endif /* _GL_STDIO_H */ +#endif diff --git a/gl/stdlib.in.h b/gl/stdlib.in.h new file mode 100644 index 0000000..100ff52 --- /dev/null +++ b/gl/stdlib.in.h @@ -0,0 +1,208 @@ +/* A GNU-like . + + Copyright (C) 1995, 2001-2004, 2006-2007 Free Software Foundation, Inc. + + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#if defined __need_malloc_and_calloc +/* Special invocation convention inside glibc header files. */ + +#@INCLUDE_NEXT@ @NEXT_STDLIB_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _GL_STDLIB_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_STDLIB_H@ + +#ifndef _GL_STDLIB_H +#define _GL_STDLIB_H + + +/* The definition of GL_LINK_WARNING is copied here. */ + + +/* Some systems do not define EXIT_*, despite otherwise supporting C89. */ +#ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +#endif +/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere + with proper operation of xargs. */ +#ifndef EXIT_FAILURE +# define EXIT_FAILURE 1 +#elif EXIT_FAILURE != 1 +# undef EXIT_FAILURE +# define EXIT_FAILURE 1 +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + + +#if @GNULIB_MALLOC_POSIX@ +# if !@HAVE_MALLOC_POSIX@ +# undef malloc +# define malloc rpl_malloc +extern void * malloc (size_t size); +# endif +#elif defined GNULIB_POSIXCHECK +# undef malloc +# define malloc(s) \ + (GL_LINK_WARNING ("malloc is not POSIX compliant everywhere - " \ + "use gnulib module malloc-posix for portability"), \ + malloc (s)) +#endif + + +#if @GNULIB_REALLOC_POSIX@ +# if !@HAVE_REALLOC_POSIX@ +# undef realloc +# define realloc rpl_realloc +extern void * realloc (void *ptr, size_t size); +# endif +#elif defined GNULIB_POSIXCHECK +# undef realloc +# define realloc(p,s) \ + (GL_LINK_WARNING ("realloc is not POSIX compliant everywhere - " \ + "use gnulib module realloc-posix for portability"), \ + realloc (p, s)) +#endif + + +#if @GNULIB_CALLOC_POSIX@ +# if !@HAVE_CALLOC_POSIX@ +# undef calloc +# define calloc rpl_calloc +extern void * calloc (size_t nmemb, size_t size); +# endif +#elif defined GNULIB_POSIXCHECK +# undef calloc +# define calloc(n,s) \ + (GL_LINK_WARNING ("calloc is not POSIX compliant everywhere - " \ + "use gnulib module calloc-posix for portability"), \ + calloc (n, s)) +#endif + + +#if @GNULIB_GETSUBOPT@ +/* Assuming *OPTIONP is a comma separated list of elements of the form + "token" or "token=value", getsubopt parses the first of these elements. + If the first element refers to a "token" that is member of the given + NULL-terminated array of tokens: + - It replaces the comma with a NUL byte, updates *OPTIONP to point past + the first option and the comma, sets *VALUEP to the value of the + element (or NULL if it doesn't contain an "=" sign), + - It returns the index of the "token" in the given array of tokens. + Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. + For more details see the POSIX:2001 specification. + http://www.opengroup.org/susv3xsh/getsubopt.html */ +# if !@HAVE_GETSUBOPT@ +extern int getsubopt (char **optionp, char *const *tokens, char **valuep); +# endif +#elif defined GNULIB_POSIXCHECK +# undef getsubopt +# define getsubopt(o,t,v) \ + (GL_LINK_WARNING ("getsubopt is unportable - " \ + "use gnulib module getsubopt for portability"), \ + getsubopt (o, t, v)) +#endif + + +#if @GNULIB_MKDTEMP@ +# if !@HAVE_MKDTEMP@ +/* Create a unique temporary directory from TEMPLATE. + The last six characters of TEMPLATE must be "XXXXXX"; + they are replaced with a string that makes the directory name unique. + Returns TEMPLATE, or a null pointer if it cannot get a unique name. + The directory is created mode 700. */ +extern char * mkdtemp (char * /*template*/); +# endif +#elif defined GNULIB_POSIXCHECK +# undef mkdtemp +# define mkdtemp(t) \ + (GL_LINK_WARNING ("mkdtemp is unportable - " \ + "use gnulib module mkdtemp for portability"), \ + mkdtemp (t)) +#endif + + +#if @GNULIB_MKSTEMP@ +# if @REPLACE_MKSTEMP@ +/* Create a unique temporary file from TEMPLATE. + The last six characters of TEMPLATE must be "XXXXXX"; + they are replaced with a string that makes the file name unique. + The file is then created, ensuring it didn't exist before. + The file is created read-write (mask at least 0600 & ~umask), but it may be + world-readable and world-writable (mask 0666 & ~umask), depending on the + implementation. + Returns the open file descriptor if successful, otherwise -1 and errno + set. */ +# define mkstemp rpl_mkstemp +extern int mkstemp (char * /*template*/); +# else +/* On MacOS X 10.3, only declares mkstemp. */ +# include +# endif +#elif defined GNULIB_POSIXCHECK +# undef mkstemp +# define mkstemp(t) \ + (GL_LINK_WARNING ("mkstemp is unportable - " \ + "use gnulib module mkstemp for portability"), \ + mkstemp (t)) +#endif + + +#if @GNULIB_PUTENV@ +# if @REPLACE_PUTENV@ +# undef putenv +# define putenv rpl_putenv +extern int putenv (char *string); +# endif +#endif + + +#if @GNULIB_SETENV@ +# if !@HAVE_SETENV@ +/* Set NAME to VALUE in the environment. + If REPLACE is nonzero, overwrite an existing value. */ +extern int setenv (const char *name, const char *value, int replace); +# endif +#endif + + +#if @GNULIB_UNSETENV@ +# if @HAVE_UNSETENV@ +# if @VOID_UNSETENV@ +/* On some systems, unsetenv() returns void. + This is the case for MacOS X 10.3, FreeBSD 4.8, NetBSD 1.6, OpenBSD 3.4. */ +# define unsetenv(name) ((unsetenv)(name), 0) +# endif +# else +/* Remove the variable NAME from the environment. */ +extern int unsetenv (const char *name); +# endif +#endif + + +#ifdef __cplusplus +} +#endif + +#endif /* _GL_STDLIB_H */ +#endif /* _GL_STDLIB_H */ +#endif diff --git a/gl/strcase.h b/gl/strcase.h deleted file mode 100644 index 07d4c9a..0000000 --- a/gl/strcase.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Case-insensitive string comparison functions. - Copyright (C) 1995-1996, 2001, 2003, 2005-2006 Free Software Foundation, Inc. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _STRCASE_H -#define _STRCASE_H - -#include -/* Include header files with a possibly conflicting declarations of strcasecmp - before we define it as a macro, so that they will be no-ops if included - after strcasecmp is defined as a macro. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* No known system has a strcasecmp() function that works correctly in - multibyte locales. Therefore we use our version always. */ -#define strcasecmp rpl_strcasecmp -/* Compare strings S1 and S2, ignoring case, returning less than, equal to or - greater than zero if S1 is lexicographically less than, equal to or greater - than S2. - Note: This function may, in multibyte locales, return 0 for strings of - different lengths! */ -extern int strcasecmp (const char *s1, const char *s2); - -/* Compare no more than N characters of strings S1 and S2, ignoring case, - returning less than, equal to or greater than zero if S1 is - lexicographically less than, equal to or greater than S2. - Note: This function can not work correctly in multibyte locales. */ -#if ! HAVE_DECL_STRNCASECMP -extern int strncasecmp (const char *s1, const char *s2, size_t n); -#endif - - -#ifdef __cplusplus -} -#endif - - -#endif /* _STRCASE_H */ diff --git a/gl/strcasecmp.c b/gl/strcasecmp.c deleted file mode 100644 index 99d5dd2..0000000 --- a/gl/strcasecmp.c +++ /dev/null @@ -1,103 +0,0 @@ -/* Case-insensitive string comparison function. - Copyright (C) 1998-1999, 2005-2006 Free Software Foundation, Inc. - Written by Bruno Haible , 2005, - based on earlier glibc code. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#include - -/* Specification. */ -#include "strcase.h" - -#include -#include - -#if HAVE_MBRTOWC -# include "mbuiter.h" -#endif - -#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) - -/* Compare strings S1 and S2, ignoring case, returning less than, equal to or - greater than zero if S1 is lexicographically less than, equal to or greater - than S2. - Note: This function may, in multibyte locales, return 0 for strings of - different lengths! */ -int -strcasecmp (const char *s1, const char *s2) -{ - if (s1 == s2) - return 0; - - /* Be careful not to look at the entire extent of s1 or s2 until needed. - This is useful because when two strings differ, the difference is - most often already in the very few first characters. */ -#if HAVE_MBRTOWC - if (MB_CUR_MAX > 1) - { - mbui_iterator_t iter1; - mbui_iterator_t iter2; - - mbui_init (iter1, s1); - mbui_init (iter2, s2); - - while (mbui_avail (iter1) && mbui_avail (iter2)) - { - int cmp = mb_casecmp (mbui_cur (iter1), mbui_cur (iter2)); - - if (cmp != 0) - return cmp; - - mbui_advance (iter1); - mbui_advance (iter2); - } - if (mbui_avail (iter1)) - /* s2 terminated before s1. */ - return 1; - if (mbui_avail (iter2)) - /* s1 terminated before s2. */ - return -1; - return 0; - } - else -#endif - { - const unsigned char *p1 = (const unsigned char *) s1; - const unsigned char *p2 = (const unsigned char *) s2; - unsigned char c1, c2; - - do - { - c1 = TOLOWER (*p1); - c2 = TOLOWER (*p2); - - if (c1 == '\0') - break; - - ++p1; - ++p2; - } - while (c1 == c2); - - if (UCHAR_MAX <= INT_MAX) - return c1 - c2; - else - /* On machines where 'char' and 'int' are types of the same size, the - difference of two 'unsigned char' values - including the sign bit - - doesn't fit in an 'int'. */ - return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); - } -} diff --git a/gl/strdup.c b/gl/strdup.c index 17d40d6..bebe5c8 100644 --- a/gl/strdup.c +++ b/gl/strdup.c @@ -1,11 +1,11 @@ -/* Copyright (C) 1991, 1996, 1997, 1998, 2002, 2003, 2004, 2006 Free +/* Copyright (C) 1991, 1996, 1997, 1998, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -19,13 +19,13 @@ #ifndef _LIBC # include -/* Get specification. */ -# include "strdup.h" #endif -#include +/* Get specification. */ #include +#include + #undef __strdup #ifdef _LIBC # undef strdup diff --git a/gl/strdup.h b/gl/strdup.h deleted file mode 100644 index 73e66e3..0000000 --- a/gl/strdup.h +++ /dev/null @@ -1,39 +0,0 @@ -/* strdup.h -- duplicate a string - Copyright (C) 2004, 2006 Free Software Foundation, Inc. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef STRDUP_H_ -#define STRDUP_H_ - -/* Get strdup declaration, if available. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#if defined HAVE_DECL_STRDUP && !HAVE_DECL_STRDUP && !defined strdup -/* Duplicate S, returning an identical malloc'd string. */ -extern char *strdup (const char *s); -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* STRDUP_H_ */ diff --git a/gl/strerror.c b/gl/strerror.c new file mode 100644 index 0000000..9fe437d --- /dev/null +++ b/gl/strerror.c @@ -0,0 +1,49 @@ +/* strerror.c --- POSIX compatible system error routine + + Copyright (C) 2007 Free Software Foundation, Inc. + + 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include + +#include + +#if REPLACE_STRERROR + +# include + +# include "intprops.h" + +# undef strerror +# if ! HAVE_DECL_STRERROR +# define strerror(n) NULL +# endif + +char * +rpl_strerror (int n) +{ + char *result = strerror (n); + + if (result == NULL || result[0] == '\0') + { + static char const fmt[] = "Unknown error (%d)"; + static char mesg[sizeof fmt + INT_STRLEN_BOUND (n)]; + sprintf (mesg, fmt, n); + return mesg; + } + + return result; +} + +#endif diff --git a/gl/string.in.h b/gl/string.in.h new file mode 100644 index 0000000..5c7597c --- /dev/null +++ b/gl/string.in.h @@ -0,0 +1,569 @@ +/* A GNU-like . + + Copyright (C) 1995-1996, 2001-2008 Free Software Foundation, Inc. + + 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#ifndef _GL_STRING_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_STRING_H@ + +#ifndef _GL_STRING_H +#define _GL_STRING_H + + +#ifndef __attribute__ +/* This feature is available in gcc versions 2.5 and later. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) +# define __attribute__(Spec) /* empty */ +# endif +/* The attribute __pure__ was added in gcc 2.96. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) +# define __pure__ /* empty */ +# endif +#endif + + +/* The definition of GL_LINK_WARNING is copied here. */ + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Return the first occurrence of NEEDLE in HAYSTACK. */ +#if @GNULIB_MEMMEM@ +# if @REPLACE_MEMMEM@ +# define memmem rpl_memmem +# endif +# if ! @HAVE_DECL_MEMMEM@ || @REPLACE_MEMMEM@ +extern void *memmem (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len) + __attribute__ ((__pure__)); +# endif +#elif defined GNULIB_POSIXCHECK +# undef memmem +# define memmem(a,al,b,bl) \ + (GL_LINK_WARNING ("memmem is unportable and often quadratic - " \ + "use gnulib module memmem-simple for portability, " \ + "and module memmem for speed" ), \ + memmem (a, al, b, bl)) +#endif + +/* Copy N bytes of SRC to DEST, return pointer to bytes after the + last written byte. */ +#if @GNULIB_MEMPCPY@ +# if ! @HAVE_MEMPCPY@ +extern void *mempcpy (void *restrict __dest, void const *restrict __src, + size_t __n); +# endif +#elif defined GNULIB_POSIXCHECK +# undef mempcpy +# define mempcpy(a,b,n) \ + (GL_LINK_WARNING ("mempcpy is unportable - " \ + "use gnulib module mempcpy for portability"), \ + mempcpy (a, b, n)) +#endif + +/* Search backwards through a block for a byte (specified as an int). */ +#if @GNULIB_MEMRCHR@ +# if ! @HAVE_DECL_MEMRCHR@ +extern void *memrchr (void const *, int, size_t) + __attribute__ ((__pure__)); +# endif +#elif defined GNULIB_POSIXCHECK +# undef memrchr +# define memrchr(a,b,c) \ + (GL_LINK_WARNING ("memrchr is unportable - " \ + "use gnulib module memrchr for portability"), \ + memrchr (a, b, c)) +#endif + +/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ +#if @GNULIB_STPCPY@ +# if ! @HAVE_STPCPY@ +extern char *stpcpy (char *restrict __dst, char const *restrict __src); +# endif +#elif defined GNULIB_POSIXCHECK +# undef stpcpy +# define stpcpy(a,b) \ + (GL_LINK_WARNING ("stpcpy is unportable - " \ + "use gnulib module stpcpy for portability"), \ + stpcpy (a, b)) +#endif + +/* Copy no more than N bytes of SRC to DST, returning a pointer past the + last non-NUL byte written into DST. */ +#if @GNULIB_STPNCPY@ +# if ! @HAVE_STPNCPY@ +# define stpncpy gnu_stpncpy +extern char *stpncpy (char *restrict __dst, char const *restrict __src, + size_t __n); +# endif +#elif defined GNULIB_POSIXCHECK +# undef stpncpy +# define stpncpy(a,b,n) \ + (GL_LINK_WARNING ("stpncpy is unportable - " \ + "use gnulib module stpncpy for portability"), \ + stpncpy (a, b, n)) +#endif + +#if defined GNULIB_POSIXCHECK +/* strchr() does not work with multibyte strings if the locale encoding is + GB18030 and the character to be searched is a digit. */ +# undef strchr +# define strchr(s,c) \ + (GL_LINK_WARNING ("strchr cannot work correctly on character strings " \ + "in some multibyte locales - " \ + "use mbschr if you care about internationalization"), \ + strchr (s, c)) +#endif + +/* Find the first occurrence of C in S or the final NUL byte. */ +#if @GNULIB_STRCHRNUL@ +# if ! @HAVE_STRCHRNUL@ +extern char *strchrnul (char const *__s, int __c_in) + __attribute__ ((__pure__)); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strchrnul +# define strchrnul(a,b) \ + (GL_LINK_WARNING ("strchrnul is unportable - " \ + "use gnulib module strchrnul for portability"), \ + strchrnul (a, b)) +#endif + +/* Duplicate S, returning an identical malloc'd string. */ +#if @GNULIB_STRDUP@ +# if ! @HAVE_DECL_STRDUP@ && ! defined strdup +extern char *strdup (char const *__s); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strdup +# define strdup(a) \ + (GL_LINK_WARNING ("strdup is unportable - " \ + "use gnulib module strdup for portability"), \ + strdup (a)) +#endif + +/* Return a newly allocated copy of at most N bytes of STRING. */ +#if @GNULIB_STRNDUP@ +# if ! @HAVE_STRNDUP@ +# undef strndup +# define strndup rpl_strndup +# endif +# if ! @HAVE_STRNDUP@ || ! @HAVE_DECL_STRNDUP@ +extern char *strndup (char const *__string, size_t __n); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strndup +# define strndup(a,n) \ + (GL_LINK_WARNING ("strndup is unportable - " \ + "use gnulib module strndup for portability"), \ + strndup (a, n)) +#endif + +/* Find the length (number of bytes) of STRING, but scan at most + MAXLEN bytes. If no '\0' terminator is found in that many bytes, + return MAXLEN. */ +#if @GNULIB_STRNLEN@ +# if ! @HAVE_DECL_STRNLEN@ +extern size_t strnlen (char const *__string, size_t __maxlen) + __attribute__ ((__pure__)); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strnlen +# define strnlen(a,n) \ + (GL_LINK_WARNING ("strnlen is unportable - " \ + "use gnulib module strnlen for portability"), \ + strnlen (a, n)) +#endif + +#if defined GNULIB_POSIXCHECK +/* strcspn() assumes the second argument is a list of single-byte characters. + Even in this simple case, it does not work with multibyte strings if the + locale encoding is GB18030 and one of the characters to be searched is a + digit. */ +# undef strcspn +# define strcspn(s,a) \ + (GL_LINK_WARNING ("strcspn cannot work correctly on character strings " \ + "in multibyte locales - " \ + "use mbscspn if you care about internationalization"), \ + strcspn (s, a)) +#endif + +/* Find the first occurrence in S of any character in ACCEPT. */ +#if @GNULIB_STRPBRK@ +# if ! @HAVE_STRPBRK@ +extern char *strpbrk (char const *__s, char const *__accept) + __attribute__ ((__pure__)); +# endif +# if defined GNULIB_POSIXCHECK +/* strpbrk() assumes the second argument is a list of single-byte characters. + Even in this simple case, it does not work with multibyte strings if the + locale encoding is GB18030 and one of the characters to be searched is a + digit. */ +# undef strpbrk +# define strpbrk(s,a) \ + (GL_LINK_WARNING ("strpbrk cannot work correctly on character strings " \ + "in multibyte locales - " \ + "use mbspbrk if you care about internationalization"), \ + strpbrk (s, a)) +# endif +#elif defined GNULIB_POSIXCHECK +# undef strpbrk +# define strpbrk(s,a) \ + (GL_LINK_WARNING ("strpbrk is unportable - " \ + "use gnulib module strpbrk for portability"), \ + strpbrk (s, a)) +#endif + +#if defined GNULIB_POSIXCHECK +/* strspn() assumes the second argument is a list of single-byte characters. + Even in this simple case, it cannot work with multibyte strings. */ +# undef strspn +# define strspn(s,a) \ + (GL_LINK_WARNING ("strspn cannot work correctly on character strings " \ + "in multibyte locales - " \ + "use mbsspn if you care about internationalization"), \ + strspn (s, a)) +#endif + +#if defined GNULIB_POSIXCHECK +/* strrchr() does not work with multibyte strings if the locale encoding is + GB18030 and the character to be searched is a digit. */ +# undef strrchr +# define strrchr(s,c) \ + (GL_LINK_WARNING ("strrchr cannot work correctly on character strings " \ + "in some multibyte locales - " \ + "use mbsrchr if you care about internationalization"), \ + strrchr (s, c)) +#endif + +/* Search the next delimiter (char listed in DELIM) starting at *STRINGP. + If one is found, overwrite it with a NUL, and advance *STRINGP + to point to the next char after it. Otherwise, set *STRINGP to NULL. + If *STRINGP was already NULL, nothing happens. + Return the old value of *STRINGP. + + This is a variant of strtok() that is multithread-safe and supports + empty fields. + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + Caveat: It doesn't work with multibyte strings unless all of the delimiter + characters are ASCII characters < 0x30. + + See also strtok_r(). */ +#if @GNULIB_STRSEP@ +# if ! @HAVE_STRSEP@ +extern char *strsep (char **restrict __stringp, char const *restrict __delim); +# endif +# if defined GNULIB_POSIXCHECK +# undef strsep +# define strsep(s,d) \ + (GL_LINK_WARNING ("strsep cannot work correctly on character strings " \ + "in multibyte locales - " \ + "use mbssep if you care about internationalization"), \ + strsep (s, d)) +# endif +#elif defined GNULIB_POSIXCHECK +# undef strsep +# define strsep(s,d) \ + (GL_LINK_WARNING ("strsep is unportable - " \ + "use gnulib module strsep for portability"), \ + strsep (s, d)) +#endif + +#if @GNULIB_STRSTR@ +# if @REPLACE_STRSTR@ +# define strstr rpl_strstr +char *strstr (const char *haystack, const char *needle) + __attribute__ ((__pure__)); +# endif +#elif defined GNULIB_POSIXCHECK +/* strstr() does not work with multibyte strings if the locale encoding is + different from UTF-8: + POSIX says that it operates on "strings", and "string" in POSIX is defined + as a sequence of bytes, not of characters. */ +# undef strstr +# define strstr(a,b) \ + (GL_LINK_WARNING ("strstr is quadratic on many systems, and cannot " \ + "work correctly on character strings in most " \ + "multibyte locales - " \ + "use mbsstr if you care about internationalization, " \ + "or use strstr if you care about speed"), \ + strstr (a, b)) +#endif + +/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive + comparison. */ +#if @GNULIB_STRCASESTR@ +# if @REPLACE_STRCASESTR@ +# define strcasestr rpl_strcasestr +# endif +# if ! @HAVE_STRCASESTR@ || @REPLACE_STRCASESTR@ +extern char *strcasestr (const char *haystack, const char *needle) + __attribute__ ((__pure__)); +# endif +#elif defined GNULIB_POSIXCHECK +/* strcasestr() does not work with multibyte strings: + It is a glibc extension, and glibc implements it only for unibyte + locales. */ +# undef strcasestr +# define strcasestr(a,b) \ + (GL_LINK_WARNING ("strcasestr does work correctly on character strings " \ + "in multibyte locales - " \ + "use mbscasestr if you care about " \ + "internationalization, or use c-strcasestr if you want " \ + "a locale independent function"), \ + strcasestr (a, b)) +#endif + +/* Parse S into tokens separated by characters in DELIM. + If S is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = strtok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" + + This is a variant of strtok() that is multithread-safe. + + For the POSIX documentation for this function, see: + http://www.opengroup.org/susv3xsh/strtok.html + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + Caveat: It doesn't work with multibyte strings unless all of the delimiter + characters are ASCII characters < 0x30. + + See also strsep(). */ +#if @GNULIB_STRTOK_R@ +# if ! @HAVE_DECL_STRTOK_R@ +extern char *strtok_r (char *restrict s, char const *restrict delim, + char **restrict save_ptr); +# endif +# if defined GNULIB_POSIXCHECK +# undef strtok_r +# define strtok_r(s,d,p) \ + (GL_LINK_WARNING ("strtok_r cannot work correctly on character strings " \ + "in multibyte locales - " \ + "use mbstok_r if you care about internationalization"), \ + strtok_r (s, d, p)) +# endif +#elif defined GNULIB_POSIXCHECK +# undef strtok_r +# define strtok_r(s,d,p) \ + (GL_LINK_WARNING ("strtok_r is unportable - " \ + "use gnulib module strtok_r for portability"), \ + strtok_r (s, d, p)) +#endif + + +/* The following functions are not specified by POSIX. They are gnulib + extensions. */ + +#if @GNULIB_MBSLEN@ +/* Return the number of multibyte characters in the character string STRING. + This considers multibyte characters, unlike strlen, which counts bytes. */ +extern size_t mbslen (const char *string); +#endif + +#if @GNULIB_MBSNLEN@ +/* Return the number of multibyte characters in the character string starting + at STRING and ending at STRING + LEN. */ +extern size_t mbsnlen (const char *string, size_t len); +#endif + +#if @GNULIB_MBSCHR@ +/* Locate the first single-byte character C in the character string STRING, + and return a pointer to it. Return NULL if C is not found in STRING. + Unlike strchr(), this function works correctly in multibyte locales with + encodings such as GB18030. */ +# define mbschr rpl_mbschr /* avoid collision with HP-UX function */ +extern char * mbschr (const char *string, int c); +#endif + +#if @GNULIB_MBSRCHR@ +/* Locate the last single-byte character C in the character string STRING, + and return a pointer to it. Return NULL if C is not found in STRING. + Unlike strrchr(), this function works correctly in multibyte locales with + encodings such as GB18030. */ +# define mbsrchr rpl_mbsrchr /* avoid collision with HP-UX function */ +extern char * mbsrchr (const char *string, int c); +#endif + +#if @GNULIB_MBSSTR@ +/* Find the first occurrence of the character string NEEDLE in the character + string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. + Unlike strstr(), this function works correctly in multibyte locales with + encodings different from UTF-8. */ +extern char * mbsstr (const char *haystack, const char *needle); +#endif + +#if @GNULIB_MBSCASECMP@ +/* Compare the character strings S1 and S2, ignoring case, returning less than, + equal to or greater than zero if S1 is lexicographically less than, equal to + or greater than S2. + Note: This function may, in multibyte locales, return 0 for strings of + different lengths! + Unlike strcasecmp(), this function works correctly in multibyte locales. */ +extern int mbscasecmp (const char *s1, const char *s2); +#endif + +#if @GNULIB_MBSNCASECMP@ +/* Compare the initial segment of the character string S1 consisting of at most + N characters with the initial segment of the character string S2 consisting + of at most N characters, ignoring case, returning less than, equal to or + greater than zero if the initial segment of S1 is lexicographically less + than, equal to or greater than the initial segment of S2. + Note: This function may, in multibyte locales, return 0 for initial segments + of different lengths! + Unlike strncasecmp(), this function works correctly in multibyte locales. + But beware that N is not a byte count but a character count! */ +extern int mbsncasecmp (const char *s1, const char *s2, size_t n); +#endif + +#if @GNULIB_MBSPCASECMP@ +/* Compare the initial segment of the character string STRING consisting of + at most mbslen (PREFIX) characters with the character string PREFIX, + ignoring case, returning less than, equal to or greater than zero if this + initial segment is lexicographically less than, equal to or greater than + PREFIX. + Note: This function may, in multibyte locales, return 0 if STRING is of + smaller length than PREFIX! + Unlike strncasecmp(), this function works correctly in multibyte + locales. */ +extern char * mbspcasecmp (const char *string, const char *prefix); +#endif + +#if @GNULIB_MBSCASESTR@ +/* Find the first occurrence of the character string NEEDLE in the character + string HAYSTACK, using case-insensitive comparison. + Note: This function may, in multibyte locales, return success even if + strlen (haystack) < strlen (needle) ! + Unlike strcasestr(), this function works correctly in multibyte locales. */ +extern char * mbscasestr (const char *haystack, const char *needle); +#endif + +#if @GNULIB_MBSCSPN@ +/* Find the first occurrence in the character string STRING of any character + in the character string ACCEPT. Return the number of bytes from the + beginning of the string to this occurrence, or to the end of the string + if none exists. + Unlike strcspn(), this function works correctly in multibyte locales. */ +extern size_t mbscspn (const char *string, const char *accept); +#endif + +#if @GNULIB_MBSPBRK@ +/* Find the first occurrence in the character string STRING of any character + in the character string ACCEPT. Return the pointer to it, or NULL if none + exists. + Unlike strpbrk(), this function works correctly in multibyte locales. */ +# define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ +extern char * mbspbrk (const char *string, const char *accept); +#endif + +#if @GNULIB_MBSSPN@ +/* Find the first occurrence in the character string STRING of any character + not in the character string REJECT. Return the number of bytes from the + beginning of the string to this occurrence, or to the end of the string + if none exists. + Unlike strspn(), this function works correctly in multibyte locales. */ +extern size_t mbsspn (const char *string, const char *reject); +#endif + +#if @GNULIB_MBSSEP@ +/* Search the next delimiter (multibyte character listed in the character + string DELIM) starting at the character string *STRINGP. + If one is found, overwrite it with a NUL, and advance *STRINGP to point + to the next multibyte character after it. Otherwise, set *STRINGP to NULL. + If *STRINGP was already NULL, nothing happens. + Return the old value of *STRINGP. + + This is a variant of mbstok_r() that supports empty fields. + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + + See also mbstok_r(). */ +extern char * mbssep (char **stringp, const char *delim); +#endif + +#if @GNULIB_MBSTOK_R@ +/* Parse the character string STRING into tokens separated by characters in + the character string DELIM. + If STRING is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = mbstok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + + See also mbssep(). */ +extern char * mbstok_r (char *string, const char *delim, char **save_ptr); +#endif + +/* Map any int, typically from errno, into an error message. */ +#if @GNULIB_STRERROR@ +# if @REPLACE_STRERROR@ +# undef strerror +# define strerror rpl_strerror +extern char *strerror (int); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strerror +# define strerror(e) \ + (GL_LINK_WARNING ("strerror is unportable - " \ + "use gnulib module strerror to guarantee non-NULL result"), \ + strerror (e)) +#endif + +#if @GNULIB_STRSIGNAL@ +# if @REPLACE_STRSIGNAL@ +# define strsignal rpl_strsignal +# endif +# if ! @HAVE_DECL_STRSIGNAL@ || @REPLACE_STRSIGNAL@ +extern char *strsignal (int __sig); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strsignal +# define strsignal(a) \ + (GL_LINK_WARNING ("strsignal is unportable - " \ + "use gnulib module strsignal for portability"), \ + strsignal (a)) +#endif + + +#ifdef __cplusplus +} +#endif + +#endif /* _GL_STRING_H */ +#endif /* _GL_STRING_H */ diff --git a/gl/stripslash.c b/gl/stripslash.c index 342d497..4084410 100644 --- a/gl/stripslash.c +++ b/gl/stripslash.c @@ -2,10 +2,10 @@ Copyright (C) 1990, 2001, 2003-2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/strncasecmp.c b/gl/strncasecmp.c deleted file mode 100644 index f59b953..0000000 --- a/gl/strncasecmp.c +++ /dev/null @@ -1,63 +0,0 @@ -/* strncasecmp.c -- case insensitive string comparator - Copyright (C) 1998-1999, 2005-2006 Free Software Foundation, Inc. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#include - -/* Specification. */ -#include "strcase.h" - -#include -#include - -#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) - -/* Compare no more than N bytes of strings S1 and S2, - ignoring case, returning less than, equal to or - greater than zero if S1 is lexicographically less - than, equal to or greater than S2. */ - -int -strncasecmp (const char *s1, const char *s2, size_t n) -{ - register const unsigned char *p1 = (const unsigned char *) s1; - register const unsigned char *p2 = (const unsigned char *) s2; - unsigned char c1, c2; - - if (p1 == p2 || n == 0) - return 0; - - do - { - c1 = TOLOWER (*p1); - c2 = TOLOWER (*p2); - - if (--n == 0 || c1 == '\0') - break; - - ++p1; - ++p2; - } - while (c1 == c2); - - if (UCHAR_MAX <= INT_MAX) - return c1 - c2; - else - /* On machines where 'char' and 'int' are types of the same size, the - difference of two 'unsigned char' values - including the sign bit - - doesn't fit in an 'int'. */ - return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); -} diff --git a/gl/strndup.c b/gl/strndup.c index 290f494..507e9c0 100644 --- a/gl/strndup.c +++ b/gl/strndup.c @@ -1,11 +1,11 @@ /* A replacement function, for systems that lack strndup. - Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2005, 2006 Free - Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2005, 2006, 2007 + Free Software Foundation, Inc. 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, or (at your option) any + Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -18,12 +18,10 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include -#include "strndup.h" -#include #include -#include "strnlen.h" +#include char * strndup (char const *s, size_t n) diff --git a/gl/strndup.h b/gl/strndup.h deleted file mode 100644 index b983dd2..0000000 --- a/gl/strndup.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Duplicate a size-bounded string. - Copyright (C) 2003, 2006 Free Software Foundation, Inc. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Get size_t. */ -#include -/* If HAVE_STRNDUP, get the strndup declaration. - If !HAVE_STRNDUP, include now so that it doesn't cause - trouble if included later. */ -#include - -#if !HAVE_STRNDUP -# undef strndup -# define strndup rpl_strndup -# if !HAVE_DECL_STRNDUP /* Don't risk conflicting declarations. */ -/* Return a newly allocated copy of at most N bytes of STRING. */ -extern char *strndup (const char *string, size_t n); -# endif -#endif diff --git a/gl/strnlen.c b/gl/strnlen.c index 593fd1b..93d1ac1 100644 --- a/gl/strnlen.c +++ b/gl/strnlen.c @@ -1,10 +1,10 @@ /* Find the length of STRING, but scan at most MAXLEN characters. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. Written by Simon Josefsson. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -18,7 +18,7 @@ #include -#include "strnlen.h" +#include /* Find the length of STRING, but scan at most MAXLEN characters. If no '\0' terminator is found in that many characters, return MAXLEN. */ diff --git a/gl/strnlen.h b/gl/strnlen.h deleted file mode 100644 index ba74dba..0000000 --- a/gl/strnlen.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Find the length of STRING, but scan at most MAXLEN characters. - Copyright (C) 2005 Free Software Foundation, Inc. - Written by Simon Josefsson. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef STRNLEN_H -#define STRNLEN_H - -/* Get strnlen declaration, if available. */ -#include - -#if defined HAVE_DECL_STRNLEN && !HAVE_DECL_STRNLEN -/* Find the length (number of bytes) of STRING, but scan at most - MAXLEN bytes. If no '\0' terminator is found in that many bytes, - return MAXLEN. */ -extern size_t strnlen(const char *string, size_t maxlen); -#endif - -#endif /* STRNLEN_H */ diff --git a/gl/strnlen1.c b/gl/strnlen1.c deleted file mode 100644 index 422ed9e..0000000 --- a/gl/strnlen1.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Find the length of STRING + 1, but scan at most MAXLEN bytes. - Copyright (C) 2005-2006 Free Software Foundation, Inc. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#include - -/* Specification. */ -#include "strnlen1.h" - -#include - -/* Find the length of STRING + 1, but scan at most MAXLEN bytes. - If no '\0' terminator is found in that many characters, return MAXLEN. */ -/* This is the same as strnlen (string, maxlen - 1) + 1. */ -size_t -strnlen1 (const char *string, size_t maxlen) -{ - const char *end = (const char *) memchr (string, '\0', maxlen); - if (end != NULL) - return end - string + 1; - else - return maxlen; -} diff --git a/gl/socket_.h b/gl/sys_socket.in.h similarity index 51% rename from gl/socket_.h rename to gl/sys_socket.in.h index 8b28b5e..5e0b097 100644 --- a/gl/socket_.h +++ b/gl/sys_socket.in.h @@ -1,10 +1,10 @@ /* Provide a sys/socket header file for systems lacking it (read: MinGW). - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. Written by Simon Josefsson. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -16,12 +16,30 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#ifndef _SYS_SOCKET_H -#define _SYS_SOCKET_H +/* This file is supposed to be used on platforms that lack + and on platforms where cannot be included standalone. + It is intended to provide definitions and prototypes needed by an + application. */ -/* This file is supposed to be used on platforms that lack - sys/socket.h. It is intended to provide definitions and prototypes - needed by an application. +#ifndef _GL_SYS_SOCKET_H + +#if @HAVE_SYS_SOCKET_H@ + +/* On many platforms, assumes prior inclusion of + . */ +# include + +/* The include_next requires a split double-inclusion guard. */ +# @INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@ + +#endif + +#ifndef _GL_SYS_SOCKET_H +#define _GL_SYS_SOCKET_H + +#if !@HAVE_SYS_SOCKET_H@ + +/* A platform that lacks . Currently only MinGW is supported. See the gnulib manual regarding Windows sockets. MinGW has the header files winsock2.h and @@ -39,32 +57,35 @@ releases. */ -#if HAVE_WINSOCK2_H -# include -#endif -#if HAVE_WS2TCPIP_H -# include -#endif +# if @HAVE_WINSOCK2_H@ +# include +# endif +# if @HAVE_WS2TCPIP_H@ +# include +# endif /* For shutdown(). */ -#if !defined SHUT_RD && defined SD_RECEIVE -# define SHUT_RD SD_RECEIVE -#endif -#if !defined SHUT_WR && defined SD_SEND -# define SHUT_WR SD_SEND -#endif -#if !defined SHUT_RDWR && defined SD_BOTH -# define SHUT_RDWR SD_BOTH -#endif +# if !defined SHUT_RD && defined SD_RECEIVE +# define SHUT_RD SD_RECEIVE +# endif +# if !defined SHUT_WR && defined SD_SEND +# define SHUT_WR SD_SEND +# endif +# if !defined SHUT_RDWR && defined SD_BOTH +# define SHUT_RDWR SD_BOTH +# endif -#if defined _WIN32 || defined __WIN32__ -# define ENOTSOCK WSAENOTSOCK -# define EADDRINUSE WSAEADDRINUSE -# define ENETRESET WSAENETRESET -# define ECONNABORTED WSAECONNABORTED -# define ECONNRESET WSAECONNRESET -# define ENOTCONN WSAENOTCONN -# define ESHUTDOWN WSAESHUTDOWN -#endif +# if defined _WIN32 || defined __WIN32__ +# define ENOTSOCK WSAENOTSOCK +# define EADDRINUSE WSAEADDRINUSE +# define ENETRESET WSAENETRESET +# define ECONNABORTED WSAECONNABORTED +# define ECONNRESET WSAECONNRESET +# define ENOTCONN WSAENOTCONN +# define ESHUTDOWN WSAESHUTDOWN +# endif -#endif /* _SYS_SOCKET_H */ +#endif /* HAVE_SYS_SOCKET_H */ + +#endif /* _GL_SYS_SOCKET_H */ +#endif /* _GL_SYS_SOCKET_H */ diff --git a/gl/unistd--.h b/gl/unistd--.h index 1fe6ce8..1a7fd78 100644 --- a/gl/unistd--.h +++ b/gl/unistd--.h @@ -2,10 +2,10 @@ Copyright (C) 2005 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Paul Eggert. */ diff --git a/gl/unistd-safer.h b/gl/unistd-safer.h index f95999d..033e857 100644 --- a/gl/unistd-safer.h +++ b/gl/unistd-safer.h @@ -2,10 +2,10 @@ Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Paul Eggert. */ diff --git a/gl/unistd.in.h b/gl/unistd.in.h new file mode 100644 index 0000000..a5dc04c --- /dev/null +++ b/gl/unistd.in.h @@ -0,0 +1,320 @@ +/* Substitute for and wrapper around . + Copyright (C) 2004-2007 Free Software Foundation, Inc. + + 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#ifndef _GL_UNISTD_H + +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_UNISTD_H@ +# @INCLUDE_NEXT@ @NEXT_UNISTD_H@ +#endif + +#ifndef _GL_UNISTD_H +#define _GL_UNISTD_H + +/* mingw doesn't define the SEEK_* macros in . */ +#if !(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) +# include +#endif + +/* mingw fails to declare _exit in . */ +#include + +/* The definition of GL_LINK_WARNING is copied here. */ + + +/* Declare overridden functions. */ + +#ifdef __cplusplus +extern "C" { +#endif + + +#if @GNULIB_CHOWN@ +# if @REPLACE_CHOWN@ +# ifndef REPLACE_CHOWN +# define REPLACE_CHOWN 1 +# endif +# if REPLACE_CHOWN +/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE + to GID (if GID is not -1). Follow symbolic links. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + . */ +# define chown rpl_chown +extern int chown (const char *file, uid_t uid, gid_t gid); +# endif +# endif +#elif defined GNULIB_POSIXCHECK +# undef chown +# define chown(f,u,g) \ + (GL_LINK_WARNING ("chown fails to follow symlinks on some systems and " \ + "doesn't treat a uid or gid of -1 on some systems - " \ + "use gnulib module chown for portability"), \ + chown (f, u, g)) +#endif + + +#if @GNULIB_DUP2@ +# if !@HAVE_DUP2@ +/* Copy the file descriptor OLDFD into file descriptor NEWFD. Do nothing if + NEWFD = OLDFD, otherwise close NEWFD first if it is open. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + . */ +extern int dup2 (int oldfd, int newfd); +# endif +#elif defined GNULIB_POSIXCHECK +# undef dup2 +# define dup2(o,n) \ + (GL_LINK_WARNING ("dup2 is unportable - " \ + "use gnulib module dup2 for portability"), \ + dup2 (o, n)) +#endif + + +#if @GNULIB_FCHDIR@ +# if @REPLACE_FCHDIR@ + +/* Change the process' current working directory to the directory on which + the given file descriptor is open. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + . */ +extern int fchdir (int /*fd*/); + +# define close rpl_close +extern int close (int); +# define dup rpl_dup +extern int dup (int); +# define dup2 rpl_dup2 +extern int dup2 (int, int); + +# endif +#elif defined GNULIB_POSIXCHECK +# undef fchdir +# define fchdir(f) \ + (GL_LINK_WARNING ("fchdir is unportable - " \ + "use gnulib module fchdir for portability"), \ + fchdir (f)) +#endif + + +#if @GNULIB_FTRUNCATE@ +# if !@HAVE_FTRUNCATE@ +/* Change the size of the file to which FD is opened to become equal to LENGTH. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + . */ +extern int ftruncate (int fd, off_t length); +# endif +#elif defined GNULIB_POSIXCHECK +# undef ftruncate +# define ftruncate(f,l) \ + (GL_LINK_WARNING ("ftruncate is unportable - " \ + "use gnulib module ftruncate for portability"), \ + ftruncate (f, l)) +#endif + + +#if @GNULIB_GETCWD@ +/* Include the headers that might declare getcwd so that they will not + cause confusion if included after this file. */ +# include +# if @REPLACE_GETCWD@ +/* Get the name of the current working directory, and put it in SIZE bytes + of BUF. + Return BUF if successful, or NULL if the directory couldn't be determined + or SIZE was too small. + See the POSIX:2001 specification + . + Additionally, the gnulib module 'getcwd' guarantees the following GNU + extension: If BUF is NULL, an array is allocated with 'malloc'; the array + is SIZE bytes long, unless SIZE == 0, in which case it is as big as + necessary. */ +# define getcwd rpl_getcwd +extern char * getcwd (char *buf, size_t size); +# endif +#elif defined GNULIB_POSIXCHECK +# undef getcwd +# define getcwd(b,s) \ + (GL_LINK_WARNING ("getcwd is unportable - " \ + "use gnulib module getcwd for portability"), \ + getcwd (b, s)) +#endif + + +#if @GNULIB_GETLOGIN_R@ +/* Copies the user's login name to NAME. + The array pointed to by NAME has room for SIZE bytes. + + Returns 0 if successful. Upon error, an error number is returned, or -1 in + the case that the login name cannot be found but no specific error is + provided (this case is hopefully rare but is left open by the POSIX spec). + + See . + */ +# if !@HAVE_DECL_GETLOGIN_R@ +# include +extern int getlogin_r (char *name, size_t size); +# endif +#elif defined GNULIB_POSIXCHECK +# undef getlogin_r +# define getlogin_r(n,s) \ + (GL_LINK_WARNING ("getlogin_r is unportable - " \ + "use gnulib module getlogin_r for portability"), \ + getlogin_r (n, s)) +#endif + + +#if @GNULIB_GETPAGESIZE@ +# if @REPLACE_GETPAGESIZE@ +# define getpagesize rpl_getpagesize +extern int getpagesize (void); +# elif !@HAVE_GETPAGESIZE@ +/* This is for POSIX systems. */ +# if !defined getpagesize && defined _SC_PAGESIZE +# if ! (defined __VMS && __VMS_VER < 70000000) +# define getpagesize() sysconf (_SC_PAGESIZE) +# endif +# endif +/* This is for older VMS. */ +# if !defined getpagesize && defined __VMS +# ifdef __ALPHA +# define getpagesize() 8192 +# else +# define getpagesize() 512 +# endif +# endif +/* This is for BeOS. */ +# if !defined getpagesize && @HAVE_OS_H@ +# include +# if defined B_PAGE_SIZE +# define getpagesize() B_PAGE_SIZE +# endif +# endif +/* This is for AmigaOS4.0. */ +# if !defined getpagesize && defined __amigaos4__ +# define getpagesize() 2048 +# endif +/* This is for older Unix systems. */ +# if !defined getpagesize && @HAVE_SYS_PARAM_H@ +# include +# ifdef EXEC_PAGESIZE +# define getpagesize() EXEC_PAGESIZE +# else +# ifdef NBPG +# ifndef CLSIZE +# define CLSIZE 1 +# endif +# define getpagesize() (NBPG * CLSIZE) +# else +# ifdef NBPC +# define getpagesize() NBPC +# endif +# endif +# endif +# endif +# endif +#elif defined GNULIB_POSIXCHECK +# undef getpagesize +# define getpagesize() \ + (GL_LINK_WARNING ("getpagesize is unportable - " \ + "use gnulib module getpagesize for portability"), \ + getpagesize ()) +#endif + + +#if @GNULIB_LCHOWN@ +# if @REPLACE_LCHOWN@ +/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE + to GID (if GID is not -1). Do not follow symbolic links. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + . */ +# define lchown rpl_lchown +extern int lchown (char const *file, uid_t owner, gid_t group); +# endif +#elif defined GNULIB_POSIXCHECK +# undef lchown +# define lchown(f,u,g) \ + (GL_LINK_WARNING ("lchown is unportable to pre-POSIX.1-2001 " \ + "systems - use gnulib module lchown for portability"), \ + lchown (f, u, g)) +#endif + + +#if @GNULIB_LSEEK@ +# if @REPLACE_LSEEK@ +/* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. + Return the new offset if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + . */ +# define lseek rpl_lseek + extern off_t lseek (int fd, off_t offset, int whence); +# endif +#elif defined GNULIB_POSIXCHECK +# undef lseek +# define lseek(f,o,w) \ + (GL_LINK_WARNING ("lseek does not fail with ESPIPE on pipes on some " \ + "systems - use gnulib module lseek for portability"), \ + lseek (f, o, w)) +#endif + + +#if @GNULIB_READLINK@ +/* Read the contents of the symbolic link FILE and place the first BUFSIZE + bytes of it into BUF. Return the number of bytes placed into BUF if + successful, otherwise -1 and errno set. + See the POSIX:2001 specification + . */ +# if !@HAVE_READLINK@ +# include +extern int readlink (const char *file, char *buf, size_t bufsize); +# endif +#elif defined GNULIB_POSIXCHECK +# undef readlink +# define readlink(f,b,s) \ + (GL_LINK_WARNING ("readlink is unportable - " \ + "use gnulib module readlink for portability"), \ + readlink (f, b, s)) +#endif + + +#if @GNULIB_SLEEP@ +/* Pause the execution of the current thread for N seconds. + Returns the number of seconds left to sleep. + See the POSIX:2001 specification + . */ +# if !@HAVE_SLEEP@ +extern unsigned int sleep (unsigned int n); +# endif +#elif defined GNULIB_POSIXCHECK +# undef sleep +# define sleep(n) \ + (GL_LINK_WARNING ("sleep is unportable - " \ + "use gnulib module sleep for portability"), \ + sleep (n)) +#endif + + +#ifdef __cplusplus +} +#endif + + +#endif /* _GL_UNISTD_H */ +#endif /* _GL_UNISTD_H */ diff --git a/gl/unistd_.h b/gl/unistd_.h deleted file mode 100644 index 36fa673..0000000 --- a/gl/unistd_.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Substitute for and wrapper around . - Copyright (C) 2006 Free Software Foundation, Inc. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _GL_UNISTD_H -#define _GL_UNISTD_H - -#if HAVE_UNISTD_H -# include @ABSOLUTE_UNISTD_H@ -#endif - - -/* Declare overridden functions. */ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef FCHDIR_REPLACEMENT - -/* Change the process' current working directory to the directory on which - the given file descriptor is open. */ -extern int fchdir (int /*fd*/); - -# define close rpl_close -extern int close (int); -# define dup rpl_dup -extern int dup (int); -# define dup2 rpl_dup2 -extern int dup2 (int, int); - -#endif - -#ifdef __cplusplus -} -#endif - - -#endif /* _GL_UNISTD_H */ diff --git a/gl/vasnprintf.c b/gl/vasnprintf.c index 0fe2aad..d5b4028 100644 --- a/gl/vasnprintf.c +++ b/gl/vasnprintf.c @@ -1,9 +1,9 @@ /* vsprintf with automatic memory allocation. - Copyright (C) 1999, 2002-2006 Free Software Foundation, Inc. + Copyright (C) 1999, 2002-2008 Free Software Foundation, Inc. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -15,6 +15,35 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +/* This file can be parametrized with the following macros: + VASNPRINTF The name of the function being defined. + FCHAR_T The element type of the format string. + DCHAR_T The element type of the destination (result) string. + FCHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters + in the format string are ASCII. MUST be set if + FCHAR_T and DCHAR_T are not the same type. + DIRECTIVE Structure denoting a format directive. + Depends on FCHAR_T. + DIRECTIVES Structure denoting the set of format directives of a + format string. Depends on FCHAR_T. + PRINTF_PARSE Function that parses a format string. + Depends on FCHAR_T. + DCHAR_CPY memcpy like function for DCHAR_T[] arrays. + DCHAR_SET memset like function for DCHAR_T[] arrays. + DCHAR_MBSNLEN mbsnlen like function for DCHAR_T[] arrays. + SNPRINTF The system's snprintf (or similar) function. + This may be either snprintf or swprintf. + TCHAR_T The element type of the argument and result string + of the said SNPRINTF function. This may be either + char or wchar_t. The code exploits that + sizeof (TCHAR_T) | sizeof (DCHAR_T) and + alignof (TCHAR_T) <= alignof (DCHAR_T). + DCHAR_IS_TCHAR Set to 1 if DCHAR_T and TCHAR_T are the same type. + DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[]. + DCHAR_IS_UINT8_T Set to 1 if DCHAR_T is uint8_t. + DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t. + DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */ + /* Tell glibc's to provide a prototype for snprintf(). This must come before because may include , and once has been included, it's too late. */ @@ -22,35 +51,79 @@ # define _GNU_SOURCE 1 #endif -#include +#ifndef VASNPRINTF +# include +#endif #ifndef IN_LIBINTL # include #endif /* Specification. */ -#if WIDE_CHAR_VERSION -# include "vasnwprintf.h" -#else -# include "vasnprintf.h" +#ifndef VASNPRINTF +# if WIDE_CHAR_VERSION +# include "vasnwprintf.h" +# else +# include "vasnprintf.h" +# endif #endif +#include /* localeconv() */ #include /* snprintf(), sprintf() */ #include /* abort(), malloc(), realloc(), free() */ #include /* memcpy(), strlen() */ #include /* errno */ #include /* CHAR_BIT */ #include /* DBL_MAX_EXP, LDBL_MAX_EXP */ -#if WIDE_CHAR_VERSION -# include "wprintf-parse.h" -#else -# include "printf-parse.h" +#if HAVE_NL_LANGINFO +# include +#endif +#ifndef VASNPRINTF +# if WIDE_CHAR_VERSION +# include "wprintf-parse.h" +# else +# include "printf-parse.h" +# endif #endif /* Checked size_t computations. */ #include "xsize.h" -#ifdef HAVE_WCHAR_T -# ifdef HAVE_WCSLEN +#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL +# include +# include "float+.h" +#endif + +#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL +# include +# include "isnand.h" +#endif + +#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL +# include +# include "isnanl-nolibm.h" +# include "fpucw.h" +#endif + +#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL +# include +# include "isnand.h" +# include "printf-frexp.h" +#endif + +#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL +# include +# include "isnanl-nolibm.h" +# include "printf-frexpl.h" +# include "fpucw.h" +#endif + +/* Some systems, like OSF/1 4.0 and Woe32, don't have EOVERFLOW. */ +#ifndef EOVERFLOW +# define EOVERFLOW E2BIG +#endif + +#if HAVE_WCHAR_T +# if HAVE_WCSLEN # define local_wcslen wcslen # else /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid @@ -72,12 +145,32 @@ local_wcslen (const wchar_t *s) # endif #endif +/* Default parameters. */ +#ifndef VASNPRINTF +# if WIDE_CHAR_VERSION +# define VASNPRINTF vasnwprintf +# define FCHAR_T wchar_t +# define DCHAR_T wchar_t +# define TCHAR_T wchar_t +# define DCHAR_IS_TCHAR 1 +# define DIRECTIVE wchar_t_directive +# define DIRECTIVES wchar_t_directives +# define PRINTF_PARSE wprintf_parse +# define DCHAR_CPY wmemcpy +# else +# define VASNPRINTF vasnprintf +# define FCHAR_T char +# define DCHAR_T char +# define TCHAR_T char +# define DCHAR_IS_TCHAR 1 +# define DIRECTIVE char_directive +# define DIRECTIVES char_directives +# define PRINTF_PARSE printf_parse +# define DCHAR_CPY memcpy +# endif +#endif #if WIDE_CHAR_VERSION -# define VASNPRINTF vasnwprintf -# define CHAR_T wchar_t -# define DIRECTIVE wchar_t_directive -# define DIRECTIVES wchar_t_directives -# define PRINTF_PARSE wprintf_parse + /* TCHAR_T is wchar_t. */ # define USE_SNPRINTF 1 # if HAVE_DECL__SNWPRINTF /* On Windows, the function swprintf() has a different signature than @@ -88,39 +181,1253 @@ local_wcslen (const wchar_t *s) # define SNPRINTF swprintf # endif #else -# define VASNPRINTF vasnprintf -# define CHAR_T char -# define DIRECTIVE char_directive -# define DIRECTIVES char_directives -# define PRINTF_PARSE printf_parse -# define USE_SNPRINTF (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) + /* TCHAR_T is char. */ +# /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'. + But don't use it on BeOS, since BeOS snprintf produces no output if the + size argument is >= 0x3000000. */ +# if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__ +# define USE_SNPRINTF 1 +# else +# define USE_SNPRINTF 0 +# endif # if HAVE_DECL__SNPRINTF /* Windows. */ # define SNPRINTF _snprintf # else /* Unix. */ # define SNPRINTF snprintf + /* Here we need to call the native snprintf, not rpl_snprintf. */ +# undef snprintf +# endif +#endif +/* Here we need to call the native sprintf, not rpl_sprintf. */ +#undef sprintf + +#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL +/* Determine the decimal-point character according to the current locale. */ +# ifndef decimal_point_char_defined +# define decimal_point_char_defined 1 +static char +decimal_point_char () +{ + const char *point; + /* Determine it in a multithread-safe way. We know nl_langinfo is + multithread-safe on glibc systems, but is not required to be multithread- + safe by POSIX. sprintf(), however, is multithread-safe. localeconv() + is rarely multithread-safe. */ +# if HAVE_NL_LANGINFO && __GLIBC__ + point = nl_langinfo (RADIXCHAR); +# elif 1 + char pointbuf[5]; + sprintf (pointbuf, "%#.0f", 1.0); + point = &pointbuf[1]; +# else + point = localeconv () -> decimal_point; +# endif + /* The decimal point is always a single byte: either '.' or ','. */ + return (point[0] != '\0' ? point[0] : '.'); +} # endif #endif -CHAR_T * -VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list args) +#if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL + +/* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ +static int +is_infinite_or_zero (double x) +{ + return isnand (x) || x + x == x; +} + +#endif + +#if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL + +/* Equivalent to !isfinite(x), but does not require libm. */ +static int +is_infinitel (long double x) +{ + return isnanl (x) || (x + x == x && x != 0.0L); +} + +#endif + +#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL + +/* Converting 'long double' to decimal without rare rounding bugs requires + real bignums. We use the naming conventions of GNU gmp, but vastly simpler + (and slower) algorithms. */ + +typedef unsigned int mp_limb_t; +# define GMP_LIMB_BITS 32 +typedef int mp_limb_verify[2 * (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS) - 1]; + +typedef unsigned long long mp_twolimb_t; +# define GMP_TWOLIMB_BITS 64 +typedef int mp_twolimb_verify[2 * (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS) - 1]; + +/* Representation of a bignum >= 0. */ +typedef struct +{ + size_t nlimbs; + mp_limb_t *limbs; /* Bits in little-endian order, allocated with malloc(). */ +} mpn_t; + +/* Compute the product of two bignums >= 0. + Return the allocated memory in case of success, NULL in case of memory + allocation failure. */ +static void * +multiply (mpn_t src1, mpn_t src2, mpn_t *dest) +{ + const mp_limb_t *p1; + const mp_limb_t *p2; + size_t len1; + size_t len2; + + if (src1.nlimbs <= src2.nlimbs) + { + len1 = src1.nlimbs; + p1 = src1.limbs; + len2 = src2.nlimbs; + p2 = src2.limbs; + } + else + { + len1 = src2.nlimbs; + p1 = src2.limbs; + len2 = src1.nlimbs; + p2 = src1.limbs; + } + /* Now 0 <= len1 <= len2. */ + if (len1 == 0) + { + /* src1 or src2 is zero. */ + dest->nlimbs = 0; + dest->limbs = (mp_limb_t *) malloc (1); + } + else + { + /* Here 1 <= len1 <= len2. */ + size_t dlen; + mp_limb_t *dp; + size_t k, i, j; + + dlen = len1 + len2; + dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t)); + if (dp == NULL) + return NULL; + for (k = len2; k > 0; ) + dp[--k] = 0; + for (i = 0; i < len1; i++) + { + mp_limb_t digit1 = p1[i]; + mp_twolimb_t carry = 0; + for (j = 0; j < len2; j++) + { + mp_limb_t digit2 = p2[j]; + carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; + carry += dp[i + j]; + dp[i + j] = (mp_limb_t) carry; + carry = carry >> GMP_LIMB_BITS; + } + dp[i + len2] = (mp_limb_t) carry; + } + /* Normalise. */ + while (dlen > 0 && dp[dlen - 1] == 0) + dlen--; + dest->nlimbs = dlen; + dest->limbs = dp; + } + return dest->limbs; +} + +/* Compute the quotient of a bignum a >= 0 and a bignum b > 0. + a is written as a = q * b + r with 0 <= r < b. q is the quotient, r + the remainder. + Finally, round-to-even is performed: If r > b/2 or if r = b/2 and q is odd, + q is incremented. + Return the allocated memory in case of success, NULL in case of memory + allocation failure. */ +static void * +divide (mpn_t a, mpn_t b, mpn_t *q) +{ + /* Algorithm: + First normalise a and b: a=[a[m-1],...,a[0]], b=[b[n-1],...,b[0]] + with m>=0 and n>0 (in base beta = 2^GMP_LIMB_BITS). + If m=n=1, perform a single-precision division: + r:=0, j:=m, + while j>0 do + {Here (q[m-1]*beta^(m-1)+...+q[j]*beta^j) * b[0] + r*beta^j = + = a[m-1]*beta^(m-1)+...+a[j]*beta^j und 0<=r=n>1, perform a multiple-precision division: + We have a/b < beta^(m-n+1). + s:=intDsize-1-(hightest bit in b[n-1]), 0<=s=beta/2. + For j=m-n,...,0: {Here 0 <= r < b*beta^(j+1).} + Compute q* : + q* := floor((r[j+n]*beta+r[j+n-1])/b[n-1]). + In case of overflow (q* >= beta) set q* := beta-1. + Compute c2 := ((r[j+n]*beta+r[j+n-1]) - q* * b[n-1])*beta + r[j+n-2] + and c3 := b[n-2] * q*. + {We have 0 <= c2 < 2*beta^2, even 0 <= c2 < beta^2 if no overflow + occurred. Furthermore 0 <= c3 < beta^2. + If there was overflow and + r[j+n]*beta+r[j+n-1] - q* * b[n-1] >= beta, i.e. c2 >= beta^2, + the next test can be skipped.} + While c3 > c2, {Here 0 <= c2 < c3 < beta^2} + Put q* := q* - 1, c2 := c2 + b[n-1]*beta, c3 := c3 - b[n-2]. + If q* > 0: + Put r := r - b * q* * beta^j. In detail: + [r[n+j],...,r[j]] := [r[n+j],...,r[j]] - q* * [b[n-1],...,b[0]]. + hence: u:=0, for i:=0 to n-1 do + u := u + q* * b[i], + r[j+i]:=r[j+i]-(u mod beta) (+ beta, if carry), + u:=u div beta (+ 1, if carry in subtraction) + r[n+j]:=r[n+j]-u. + {Since always u = (q* * [b[i-1],...,b[0]] div beta^i) + 1 + < q* + 1 <= beta, + the carry u does not overflow.} + If a negative carry occurs, put q* := q* - 1 + and [r[n+j],...,r[j]] := [r[n+j],...,r[j]] + [0,b[n-1],...,b[0]]. + Set q[j] := q*. + Normalise [q[m-n],..,q[0]]; this yields the quotient q. + Shift [r[n-1],...,r[0]] right by s bits and normalise; this yields the + rest r. + The room for q[j] can be allocated at the memory location of r[n+j]. + Finally, round-to-even: + Shift r left by 1 bit. + If r > b or if r = b and q[0] is odd, q := q+1. + */ + const mp_limb_t *a_ptr = a.limbs; + size_t a_len = a.nlimbs; + const mp_limb_t *b_ptr = b.limbs; + size_t b_len = b.nlimbs; + mp_limb_t *roomptr; + mp_limb_t *tmp_roomptr = NULL; + mp_limb_t *q_ptr; + size_t q_len; + mp_limb_t *r_ptr; + size_t r_len; + + /* Allocate room for a_len+2 digits. + (Need a_len+1 digits for the real division and 1 more digit for the + final rounding of q.) */ + roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t)); + if (roomptr == NULL) + return NULL; + + /* Normalise a. */ + while (a_len > 0 && a_ptr[a_len - 1] == 0) + a_len--; + + /* Normalise b. */ + for (;;) + { + if (b_len == 0) + /* Division by zero. */ + abort (); + if (b_ptr[b_len - 1] == 0) + b_len--; + else + break; + } + + /* Here m = a_len >= 0 and n = b_len > 0. */ + + if (a_len < b_len) + { + /* m beta^(m-2) <= a/b < beta^m */ + r_ptr = roomptr; + q_ptr = roomptr + 1; + { + mp_limb_t den = b_ptr[0]; + mp_limb_t remainder = 0; + const mp_limb_t *sourceptr = a_ptr + a_len; + mp_limb_t *destptr = q_ptr + a_len; + size_t count; + for (count = a_len; count > 0; count--) + { + mp_twolimb_t num = + ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr; + *--destptr = num / den; + remainder = num % den; + } + /* Normalise and store r. */ + if (remainder > 0) + { + r_ptr[0] = remainder; + r_len = 1; + } + else + r_len = 0; + /* Normalise q. */ + q_len = a_len; + if (q_ptr[q_len - 1] == 0) + q_len--; + } + } + else + { + /* n>1: multiple precision division. + beta^(m-1) <= a < beta^m, beta^(n-1) <= b < beta^n ==> + beta^(m-n-1) <= a/b < beta^(m-n+1). */ + /* Determine s. */ + size_t s; + { + mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */ + s = 31; + if (msd >= 0x10000) + { + msd = msd >> 16; + s -= 16; + } + if (msd >= 0x100) + { + msd = msd >> 8; + s -= 8; + } + if (msd >= 0x10) + { + msd = msd >> 4; + s -= 4; + } + if (msd >= 0x4) + { + msd = msd >> 2; + s -= 2; + } + if (msd >= 0x2) + { + msd = msd >> 1; + s -= 1; + } + } + /* 0 <= s < GMP_LIMB_BITS. + Copy b, shifting it left by s bits. */ + if (s > 0) + { + tmp_roomptr = (mp_limb_t *) malloc (b_len * sizeof (mp_limb_t)); + if (tmp_roomptr == NULL) + { + free (roomptr); + return NULL; + } + { + const mp_limb_t *sourceptr = b_ptr; + mp_limb_t *destptr = tmp_roomptr; + mp_twolimb_t accu = 0; + size_t count; + for (count = b_len; count > 0; count--) + { + accu += (mp_twolimb_t) *sourceptr++ << s; + *destptr++ = (mp_limb_t) accu; + accu = accu >> GMP_LIMB_BITS; + } + /* accu must be zero, since that was how s was determined. */ + if (accu != 0) + abort (); + } + b_ptr = tmp_roomptr; + } + /* Copy a, shifting it left by s bits, yields r. + Memory layout: + At the beginning: r = roomptr[0..a_len], + at the end: r = roomptr[0..b_len-1], q = roomptr[b_len..a_len] */ + r_ptr = roomptr; + if (s == 0) + { + memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t)); + r_ptr[a_len] = 0; + } + else + { + const mp_limb_t *sourceptr = a_ptr; + mp_limb_t *destptr = r_ptr; + mp_twolimb_t accu = 0; + size_t count; + for (count = a_len; count > 0; count--) + { + accu += (mp_twolimb_t) *sourceptr++ << s; + *destptr++ = (mp_limb_t) accu; + accu = accu >> GMP_LIMB_BITS; + } + *destptr++ = (mp_limb_t) accu; + } + q_ptr = roomptr + b_len; + q_len = a_len - b_len + 1; /* q will have m-n+1 limbs */ + { + size_t j = a_len - b_len; /* m-n */ + mp_limb_t b_msd = b_ptr[b_len - 1]; /* b[n-1] */ + mp_limb_t b_2msd = b_ptr[b_len - 2]; /* b[n-2] */ + mp_twolimb_t b_msdd = /* b[n-1]*beta+b[n-2] */ + ((mp_twolimb_t) b_msd << GMP_LIMB_BITS) | b_2msd; + /* Division loop, traversed m-n+1 times. + j counts down, b is unchanged, beta/2 <= b[n-1] < beta. */ + for (;;) + { + mp_limb_t q_star; + mp_limb_t c1; + if (r_ptr[j + b_len] < b_msd) /* r[j+n] < b[n-1] ? */ + { + /* Divide r[j+n]*beta+r[j+n-1] by b[n-1], no overflow. */ + mp_twolimb_t num = + ((mp_twolimb_t) r_ptr[j + b_len] << GMP_LIMB_BITS) + | r_ptr[j + b_len - 1]; + q_star = num / b_msd; + c1 = num % b_msd; + } + else + { + /* Overflow, hence r[j+n]*beta+r[j+n-1] >= beta*b[n-1]. */ + q_star = (mp_limb_t)~(mp_limb_t)0; /* q* = beta-1 */ + /* Test whether r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] >= beta + <==> r[j+n]*beta+r[j+n-1] + b[n-1] >= beta*b[n-1]+beta + <==> b[n-1] < floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) + {<= beta !}. + If yes, jump directly to the subtraction loop. + (Otherwise, r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] < beta + <==> floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) = b[n-1] ) */ + if (r_ptr[j + b_len] > b_msd + || (c1 = r_ptr[j + b_len - 1] + b_msd) < b_msd) + /* r[j+n] >= b[n-1]+1 or + r[j+n] = b[n-1] and the addition r[j+n-1]+b[n-1] gives a + carry. */ + goto subtract; + } + /* q_star = q*, + c1 = (r[j+n]*beta+r[j+n-1]) - q* * b[n-1] (>=0, 0, decrease it by + b[n-1]*beta+b[n-2]. Because of b[n-1]*beta+b[n-2] >= beta^2/2 + this can happen only twice. */ + if (c3 > c2) + { + q_star = q_star - 1; /* q* := q* - 1 */ + if (c3 - c2 > b_msdd) + q_star = q_star - 1; /* q* := q* - 1 */ + } + } + if (q_star > 0) + subtract: + { + /* Subtract r := r - b * q* * beta^j. */ + mp_limb_t cr; + { + const mp_limb_t *sourceptr = b_ptr; + mp_limb_t *destptr = r_ptr + j; + mp_twolimb_t carry = 0; + size_t count; + for (count = b_len; count > 0; count--) + { + /* Here 0 <= carry <= q*. */ + carry = + carry + + (mp_twolimb_t) q_star * (mp_twolimb_t) *sourceptr++ + + (mp_limb_t) ~(*destptr); + /* Here 0 <= carry <= beta*q* + beta-1. */ + *destptr++ = ~(mp_limb_t) carry; + carry = carry >> GMP_LIMB_BITS; /* <= q* */ + } + cr = (mp_limb_t) carry; + } + /* Subtract cr from r_ptr[j + b_len], then forget about + r_ptr[j + b_len]. */ + if (cr > r_ptr[j + b_len]) + { + /* Subtraction gave a carry. */ + q_star = q_star - 1; /* q* := q* - 1 */ + /* Add b back. */ + { + const mp_limb_t *sourceptr = b_ptr; + mp_limb_t *destptr = r_ptr + j; + mp_limb_t carry = 0; + size_t count; + for (count = b_len; count > 0; count--) + { + mp_limb_t source1 = *sourceptr++; + mp_limb_t source2 = *destptr; + *destptr++ = source1 + source2 + carry; + carry = + (carry + ? source1 >= (mp_limb_t) ~source2 + : source1 > (mp_limb_t) ~source2); + } + } + /* Forget about the carry and about r[j+n]. */ + } + } + /* q* is determined. Store it as q[j]. */ + q_ptr[j] = q_star; + if (j == 0) + break; + j--; + } + } + r_len = b_len; + /* Normalise q. */ + if (q_ptr[q_len - 1] == 0) + q_len--; +# if 0 /* Not needed here, since we need r only to compare it with b/2, and + b is shifted left by s bits. */ + /* Shift r right by s bits. */ + if (s > 0) + { + mp_limb_t ptr = r_ptr + r_len; + mp_twolimb_t accu = 0; + size_t count; + for (count = r_len; count > 0; count--) + { + accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS; + accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s); + *ptr = (mp_limb_t) (accu >> GMP_LIMB_BITS); + } + } +# endif + /* Normalise r. */ + while (r_len > 0 && r_ptr[r_len - 1] == 0) + r_len--; + } + /* Compare r << 1 with b. */ + if (r_len > b_len) + goto increment_q; + { + size_t i; + for (i = b_len;;) + { + mp_limb_t r_i = + (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0) + | (i < r_len ? r_ptr[i] << 1 : 0); + mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0); + if (r_i > b_i) + goto increment_q; + if (r_i < b_i) + goto keep_q; + if (i == 0) + break; + i--; + } + } + if (q_len > 0 && ((q_ptr[0] & 1) != 0)) + /* q is odd. */ + increment_q: + { + size_t i; + for (i = 0; i < q_len; i++) + if (++(q_ptr[i]) != 0) + goto keep_q; + q_ptr[q_len++] = 1; + } + keep_q: + if (tmp_roomptr != NULL) + free (tmp_roomptr); + q->limbs = q_ptr; + q->nlimbs = q_len; + return roomptr; +} + +/* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal + representation. + Destroys the contents of a. + Return the allocated memory - containing the decimal digits in low-to-high + order, terminated with a NUL character - in case of success, NULL in case + of memory allocation failure. */ +static char * +convert_to_decimal (mpn_t a, size_t extra_zeroes) +{ + mp_limb_t *a_ptr = a.limbs; + size_t a_len = a.nlimbs; + /* 0.03345 is slightly larger than log(2)/(9*log(10)). */ + size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1); + char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes)); + if (c_ptr != NULL) + { + char *d_ptr = c_ptr; + for (; extra_zeroes > 0; extra_zeroes--) + *d_ptr++ = '0'; + while (a_len > 0) + { + /* Divide a by 10^9, in-place. */ + mp_limb_t remainder = 0; + mp_limb_t *ptr = a_ptr + a_len; + size_t count; + for (count = a_len; count > 0; count--) + { + mp_twolimb_t num = + ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr; + *ptr = num / 1000000000; + remainder = num % 1000000000; + } + /* Store the remainder as 9 decimal digits. */ + for (count = 9; count > 0; count--) + { + *d_ptr++ = '0' + (remainder % 10); + remainder = remainder / 10; + } + /* Normalize a. */ + if (a_ptr[a_len - 1] == 0) + a_len--; + } + /* Remove leading zeroes. */ + while (d_ptr > c_ptr && d_ptr[-1] == '0') + d_ptr--; + /* But keep at least one zero. */ + if (d_ptr == c_ptr) + *d_ptr++ = '0'; + /* Terminate the string. */ + *d_ptr = '\0'; + } + return c_ptr; +} + +# if NEED_PRINTF_LONG_DOUBLE + +/* Assuming x is finite and >= 0: + write x as x = 2^e * m, where m is a bignum. + Return the allocated memory in case of success, NULL in case of memory + allocation failure. */ +static void * +decode_long_double (long double x, int *ep, mpn_t *mp) +{ + mpn_t m; + int exp; + long double y; + size_t i; + + /* Allocate memory for result. */ + m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; + m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); + if (m.limbs == NULL) + return NULL; + /* Split into exponential part and mantissa. */ + y = frexpl (x, &exp); + if (!(y >= 0.0L && y < 1.0L)) + abort (); + /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * LDBL_MANT_BIT), and the + latter is an integer. */ + /* Convert the mantissa (y * LDBL_MANT_BIT) to a sequence of limbs. + I'm not sure whether it's safe to cast a 'long double' value between + 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only + 'long double' values between 0 and 2^16 (to 'unsigned int' or 'int', + doesn't matter). */ +# if (LDBL_MANT_BIT % GMP_LIMB_BITS) != 0 +# if (LDBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 + { + mp_limb_t hi, lo; + y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % (GMP_LIMB_BITS / 2)); + hi = (int) y; + y -= hi; + if (!(y >= 0.0L && y < 1.0L)) + abort (); + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + lo = (int) y; + y -= lo; + if (!(y >= 0.0L && y < 1.0L)) + abort (); + m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; + } +# else + { + mp_limb_t d; + y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % GMP_LIMB_BITS); + d = (int) y; + y -= d; + if (!(y >= 0.0L && y < 1.0L)) + abort (); + m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = d; + } +# endif +# endif + for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) + { + mp_limb_t hi, lo; + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + hi = (int) y; + y -= hi; + if (!(y >= 0.0L && y < 1.0L)) + abort (); + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + lo = (int) y; + y -= lo; + if (!(y >= 0.0L && y < 1.0L)) + abort (); + m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; + } +#if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess + precision. */ + if (!(y == 0.0L)) + abort (); +#endif + /* Normalise. */ + while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) + m.nlimbs--; + *mp = m; + *ep = exp - LDBL_MANT_BIT; + return m.limbs; +} + +# endif + +# if NEED_PRINTF_DOUBLE + +/* Assuming x is finite and >= 0: + write x as x = 2^e * m, where m is a bignum. + Return the allocated memory in case of success, NULL in case of memory + allocation failure. */ +static void * +decode_double (double x, int *ep, mpn_t *mp) +{ + mpn_t m; + int exp; + double y; + size_t i; + + /* Allocate memory for result. */ + m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; + m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); + if (m.limbs == NULL) + return NULL; + /* Split into exponential part and mantissa. */ + y = frexp (x, &exp); + if (!(y >= 0.0 && y < 1.0)) + abort (); + /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * DBL_MANT_BIT), and the + latter is an integer. */ + /* Convert the mantissa (y * DBL_MANT_BIT) to a sequence of limbs. + I'm not sure whether it's safe to cast a 'double' value between + 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only + 'double' values between 0 and 2^16 (to 'unsigned int' or 'int', + doesn't matter). */ +# if (DBL_MANT_BIT % GMP_LIMB_BITS) != 0 +# if (DBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 + { + mp_limb_t hi, lo; + y *= (mp_limb_t) 1 << (DBL_MANT_BIT % (GMP_LIMB_BITS / 2)); + hi = (int) y; + y -= hi; + if (!(y >= 0.0 && y < 1.0)) + abort (); + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + lo = (int) y; + y -= lo; + if (!(y >= 0.0 && y < 1.0)) + abort (); + m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; + } +# else + { + mp_limb_t d; + y *= (mp_limb_t) 1 << (DBL_MANT_BIT % GMP_LIMB_BITS); + d = (int) y; + y -= d; + if (!(y >= 0.0 && y < 1.0)) + abort (); + m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = d; + } +# endif +# endif + for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) + { + mp_limb_t hi, lo; + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + hi = (int) y; + y -= hi; + if (!(y >= 0.0 && y < 1.0)) + abort (); + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + lo = (int) y; + y -= lo; + if (!(y >= 0.0 && y < 1.0)) + abort (); + m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; + } + if (!(y == 0.0)) + abort (); + /* Normalise. */ + while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) + m.nlimbs--; + *mp = m; + *ep = exp - DBL_MANT_BIT; + return m.limbs; +} + +# endif + +/* Assuming x = 2^e * m is finite and >= 0, and n is an integer: + Returns the decimal representation of round (x * 10^n). + Return the allocated memory - containing the decimal digits in low-to-high + order, terminated with a NUL character - in case of success, NULL in case + of memory allocation failure. */ +static char * +scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n) +{ + int s; + size_t extra_zeroes; + unsigned int abs_n; + unsigned int abs_s; + mp_limb_t *pow5_ptr; + size_t pow5_len; + unsigned int s_limbs; + unsigned int s_bits; + mpn_t pow5; + mpn_t z; + void *z_memory; + char *digits; + + if (memory == NULL) + return NULL; + /* x = 2^e * m, hence + y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m) + = round (2^s * 5^n * m). */ + s = e + n; + extra_zeroes = 0; + /* Factor out a common power of 10 if possible. */ + if (s > 0 && n > 0) + { + extra_zeroes = (s < n ? s : n); + s -= extra_zeroes; + n -= extra_zeroes; + } + /* Here y = round (2^s * 5^n * m) * 10^extra_zeroes. + Before converting to decimal, we need to compute + z = round (2^s * 5^n * m). */ + /* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same + sign. 2.322 is slightly larger than log(5)/log(2). */ + abs_n = (n >= 0 ? n : -n); + abs_s = (s >= 0 ? s : -s); + pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1 + + abs_s / GMP_LIMB_BITS + 1) + * sizeof (mp_limb_t)); + if (pow5_ptr == NULL) + { + free (memory); + return NULL; + } + /* Initialize with 1. */ + pow5_ptr[0] = 1; + pow5_len = 1; + /* Multiply with 5^|n|. */ + if (abs_n > 0) + { + static mp_limb_t const small_pow5[13 + 1] = + { + 1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, + 48828125, 244140625, 1220703125 + }; + unsigned int n13; + for (n13 = 0; n13 <= abs_n; n13 += 13) + { + mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13]; + size_t j; + mp_twolimb_t carry = 0; + for (j = 0; j < pow5_len; j++) + { + mp_limb_t digit2 = pow5_ptr[j]; + carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; + pow5_ptr[j] = (mp_limb_t) carry; + carry = carry >> GMP_LIMB_BITS; + } + if (carry > 0) + pow5_ptr[pow5_len++] = (mp_limb_t) carry; + } + } + s_limbs = abs_s / GMP_LIMB_BITS; + s_bits = abs_s % GMP_LIMB_BITS; + if (n >= 0 ? s >= 0 : s <= 0) + { + /* Multiply with 2^|s|. */ + if (s_bits > 0) + { + mp_limb_t *ptr = pow5_ptr; + mp_twolimb_t accu = 0; + size_t count; + for (count = pow5_len; count > 0; count--) + { + accu += (mp_twolimb_t) *ptr << s_bits; + *ptr++ = (mp_limb_t) accu; + accu = accu >> GMP_LIMB_BITS; + } + if (accu > 0) + { + *ptr = (mp_limb_t) accu; + pow5_len++; + } + } + if (s_limbs > 0) + { + size_t count; + for (count = pow5_len; count > 0;) + { + count--; + pow5_ptr[s_limbs + count] = pow5_ptr[count]; + } + for (count = s_limbs; count > 0;) + { + count--; + pow5_ptr[count] = 0; + } + pow5_len += s_limbs; + } + pow5.limbs = pow5_ptr; + pow5.nlimbs = pow5_len; + if (n >= 0) + { + /* Multiply m with pow5. No division needed. */ + z_memory = multiply (m, pow5, &z); + } + else + { + /* Divide m by pow5 and round. */ + z_memory = divide (m, pow5, &z); + } + } + else + { + pow5.limbs = pow5_ptr; + pow5.nlimbs = pow5_len; + if (n >= 0) + { + /* n >= 0, s < 0. + Multiply m with pow5, then divide by 2^|s|. */ + mpn_t numerator; + mpn_t denominator; + void *tmp_memory; + tmp_memory = multiply (m, pow5, &numerator); + if (tmp_memory == NULL) + { + free (pow5_ptr); + free (memory); + return NULL; + } + /* Construct 2^|s|. */ + { + mp_limb_t *ptr = pow5_ptr + pow5_len; + size_t i; + for (i = 0; i < s_limbs; i++) + ptr[i] = 0; + ptr[s_limbs] = (mp_limb_t) 1 << s_bits; + denominator.limbs = ptr; + denominator.nlimbs = s_limbs + 1; + } + z_memory = divide (numerator, denominator, &z); + free (tmp_memory); + } + else + { + /* n < 0, s > 0. + Multiply m with 2^s, then divide by pow5. */ + mpn_t numerator; + mp_limb_t *num_ptr; + num_ptr = (mp_limb_t *) malloc ((m.nlimbs + s_limbs + 1) + * sizeof (mp_limb_t)); + if (num_ptr == NULL) + { + free (pow5_ptr); + free (memory); + return NULL; + } + { + mp_limb_t *destptr = num_ptr; + { + size_t i; + for (i = 0; i < s_limbs; i++) + *destptr++ = 0; + } + if (s_bits > 0) + { + const mp_limb_t *sourceptr = m.limbs; + mp_twolimb_t accu = 0; + size_t count; + for (count = m.nlimbs; count > 0; count--) + { + accu += (mp_twolimb_t) *sourceptr++ << s_bits; + *destptr++ = (mp_limb_t) accu; + accu = accu >> GMP_LIMB_BITS; + } + if (accu > 0) + *destptr++ = (mp_limb_t) accu; + } + else + { + const mp_limb_t *sourceptr = m.limbs; + size_t count; + for (count = m.nlimbs; count > 0; count--) + *destptr++ = *sourceptr++; + } + numerator.limbs = num_ptr; + numerator.nlimbs = destptr - num_ptr; + } + z_memory = divide (numerator, pow5, &z); + free (num_ptr); + } + } + free (pow5_ptr); + free (memory); + + /* Here y = round (x * 10^n) = z * 10^extra_zeroes. */ + + if (z_memory == NULL) + return NULL; + digits = convert_to_decimal (z, extra_zeroes); + free (z_memory); + return digits; +} + +# if NEED_PRINTF_LONG_DOUBLE + +/* Assuming x is finite and >= 0, and n is an integer: + Returns the decimal representation of round (x * 10^n). + Return the allocated memory - containing the decimal digits in low-to-high + order, terminated with a NUL character - in case of success, NULL in case + of memory allocation failure. */ +static char * +scale10_round_decimal_long_double (long double x, int n) +{ + int e; + mpn_t m; + void *memory = decode_long_double (x, &e, &m); + return scale10_round_decimal_decoded (e, m, memory, n); +} + +# endif + +# if NEED_PRINTF_DOUBLE + +/* Assuming x is finite and >= 0, and n is an integer: + Returns the decimal representation of round (x * 10^n). + Return the allocated memory - containing the decimal digits in low-to-high + order, terminated with a NUL character - in case of success, NULL in case + of memory allocation failure. */ +static char * +scale10_round_decimal_double (double x, int n) +{ + int e; + mpn_t m; + void *memory = decode_double (x, &e, &m); + return scale10_round_decimal_decoded (e, m, memory, n); +} + +# endif + +# if NEED_PRINTF_LONG_DOUBLE + +/* Assuming x is finite and > 0: + Return an approximation for n with 10^n <= x < 10^(n+1). + The approximation is usually the right n, but may be off by 1 sometimes. */ +static int +floorlog10l (long double x) +{ + int exp; + long double y; + double z; + double l; + + /* Split into exponential part and mantissa. */ + y = frexpl (x, &exp); + if (!(y >= 0.0L && y < 1.0L)) + abort (); + if (y == 0.0L) + return INT_MIN; + if (y < 0.5L) + { + while (y < (1.0L / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) + { + y *= 1.0L * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); + exp -= GMP_LIMB_BITS; + } + if (y < (1.0L / (1 << 16))) + { + y *= 1.0L * (1 << 16); + exp -= 16; + } + if (y < (1.0L / (1 << 8))) + { + y *= 1.0L * (1 << 8); + exp -= 8; + } + if (y < (1.0L / (1 << 4))) + { + y *= 1.0L * (1 << 4); + exp -= 4; + } + if (y < (1.0L / (1 << 2))) + { + y *= 1.0L * (1 << 2); + exp -= 2; + } + if (y < (1.0L / (1 << 1))) + { + y *= 1.0L * (1 << 1); + exp -= 1; + } + } + if (!(y >= 0.5L && y < 1.0L)) + abort (); + /* Compute an approximation for l = log2(x) = exp + log2(y). */ + l = exp; + z = y; + if (z < 0.70710678118654752444) + { + z *= 1.4142135623730950488; + l -= 0.5; + } + if (z < 0.8408964152537145431) + { + z *= 1.1892071150027210667; + l -= 0.25; + } + if (z < 0.91700404320467123175) + { + z *= 1.0905077326652576592; + l -= 0.125; + } + if (z < 0.9576032806985736469) + { + z *= 1.0442737824274138403; + l -= 0.0625; + } + /* Now 0.95 <= z <= 1.01. */ + z = 1 - z; + /* log(1-z) = - z - z^2/2 - z^3/3 - z^4/4 - ... + Four terms are enough to get an approximation with error < 10^-7. */ + l -= z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); + /* Finally multiply with log(2)/log(10), yields an approximation for + log10(x). */ + l *= 0.30102999566398119523; + /* Round down to the next integer. */ + return (int) l + (l < 0 ? -1 : 0); +} + +# endif + +# if NEED_PRINTF_DOUBLE + +/* Assuming x is finite and > 0: + Return an approximation for n with 10^n <= x < 10^(n+1). + The approximation is usually the right n, but may be off by 1 sometimes. */ +static int +floorlog10 (double x) +{ + int exp; + double y; + double z; + double l; + + /* Split into exponential part and mantissa. */ + y = frexp (x, &exp); + if (!(y >= 0.0 && y < 1.0)) + abort (); + if (y == 0.0) + return INT_MIN; + if (y < 0.5) + { + while (y < (1.0 / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) + { + y *= 1.0 * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); + exp -= GMP_LIMB_BITS; + } + if (y < (1.0 / (1 << 16))) + { + y *= 1.0 * (1 << 16); + exp -= 16; + } + if (y < (1.0 / (1 << 8))) + { + y *= 1.0 * (1 << 8); + exp -= 8; + } + if (y < (1.0 / (1 << 4))) + { + y *= 1.0 * (1 << 4); + exp -= 4; + } + if (y < (1.0 / (1 << 2))) + { + y *= 1.0 * (1 << 2); + exp -= 2; + } + if (y < (1.0 / (1 << 1))) + { + y *= 1.0 * (1 << 1); + exp -= 1; + } + } + if (!(y >= 0.5 && y < 1.0)) + abort (); + /* Compute an approximation for l = log2(x) = exp + log2(y). */ + l = exp; + z = y; + if (z < 0.70710678118654752444) + { + z *= 1.4142135623730950488; + l -= 0.5; + } + if (z < 0.8408964152537145431) + { + z *= 1.1892071150027210667; + l -= 0.25; + } + if (z < 0.91700404320467123175) + { + z *= 1.0905077326652576592; + l -= 0.125; + } + if (z < 0.9576032806985736469) + { + z *= 1.0442737824274138403; + l -= 0.0625; + } + /* Now 0.95 <= z <= 1.01. */ + z = 1 - z; + /* log(1-z) = - z - z^2/2 - z^3/3 - z^4/4 - ... + Four terms are enough to get an approximation with error < 10^-7. */ + l -= z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); + /* Finally multiply with log(2)/log(10), yields an approximation for + log10(x). */ + l *= 0.30102999566398119523; + /* Round down to the next integer. */ + return (int) l + (l < 0 ? -1 : 0); +} + +# endif + +#endif + +DCHAR_T * +VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, + const FCHAR_T *format, va_list args) { DIRECTIVES d; arguments a; if (PRINTF_PARSE (format, &d, &a) < 0) - { - errno = EINVAL; - return NULL; - } + /* errno is already set. */ + return NULL; #define CLEANUP() \ free (d.dir); \ if (a.arg) \ free (a.arg); - if (printf_fetchargs (args, &a) < 0) + if (PRINTF_FETCHARGS (args, &a) < 0) { CLEANUP (); errno = EINVAL; @@ -129,13 +1436,13 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar { size_t buf_neededlength; - CHAR_T *buf; - CHAR_T *buf_malloced; - const CHAR_T *cp; + TCHAR_T *buf; + TCHAR_T *buf_malloced; + const FCHAR_T *cp; size_t i; DIRECTIVE *dp; /* Output string accumulator. */ - CHAR_T *result; + DCHAR_T *result; size_t allocated; size_t length; @@ -144,18 +1451,18 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar buf_neededlength = xsum4 (7, d.max_width_length, d.max_precision_length, 6); #if HAVE_ALLOCA - if (buf_neededlength < 4000 / sizeof (CHAR_T)) + if (buf_neededlength < 4000 / sizeof (TCHAR_T)) { - buf = (CHAR_T *) alloca (buf_neededlength * sizeof (CHAR_T)); + buf = (TCHAR_T *) alloca (buf_neededlength * sizeof (TCHAR_T)); buf_malloced = NULL; } else #endif { - size_t buf_memsize = xtimes (buf_neededlength, sizeof (CHAR_T)); + size_t buf_memsize = xtimes (buf_neededlength, sizeof (TCHAR_T)); if (size_overflow_p (buf_memsize)) goto out_of_memory_1; - buf = (CHAR_T *) malloc (buf_memsize); + buf = (TCHAR_T *) malloc (buf_memsize); if (buf == NULL) goto out_of_memory_1; buf_malloced = buf; @@ -182,22 +1489,22 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar if ((needed) > allocated) \ { \ size_t memory_size; \ - CHAR_T *memory; \ + DCHAR_T *memory; \ \ allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \ if ((needed) > allocated) \ allocated = (needed); \ - memory_size = xtimes (allocated, sizeof (CHAR_T)); \ + memory_size = xtimes (allocated, sizeof (DCHAR_T)); \ if (size_overflow_p (memory_size)) \ goto out_of_memory; \ if (result == resultbuf || result == NULL) \ - memory = (CHAR_T *) malloc (memory_size); \ + memory = (DCHAR_T *) malloc (memory_size); \ else \ - memory = (CHAR_T *) realloc (result, memory_size); \ + memory = (DCHAR_T *) realloc (result, memory_size); \ if (memory == NULL) \ goto out_of_memory; \ if (result == resultbuf && length > 0) \ - memcpy (memory, result, length * sizeof (CHAR_T)); \ + DCHAR_CPY (memory, result, length); \ result = memory; \ } @@ -209,8 +1516,20 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar size_t augmented_length = xsum (length, n); ENSURE_ALLOCATION (augmented_length); - memcpy (result + length, cp, n * sizeof (CHAR_T)); - length = augmented_length; + /* This copies a piece of FCHAR_T[] into a DCHAR_T[]. Here we + need that the format string contains only ASCII characters + if FCHAR_T and DCHAR_T are not the same type. */ + if (sizeof (FCHAR_T) == sizeof (DCHAR_T)) + { + DCHAR_CPY (result + length, (const DCHAR_T *) cp, n); + length = augmented_length; + } + else + { + do + result[length++] = (unsigned char) *cp++; + while (--n > 0); + } } if (i == d.count) break; @@ -248,7 +1567,7 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar case TYPE_COUNT_LONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longint_pointer = length; break; -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length; break; @@ -257,72 +1576,2100 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar abort (); } } +#if ENABLE_UNISTDIO + /* The unistdio extensions. */ + else if (dp->conversion == 'U') + { + arg_type type = a.arg[dp->arg_index].type; + int flags = dp->flags; + int has_width; + size_t width; + int has_precision; + size_t precision; + + has_width = 0; + width = 0; + if (dp->width_start != dp->width_end) + { + if (dp->width_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->width_arg_index].a.a_int; + if (arg < 0) + { + /* "A negative field width is taken as a '-' flag + followed by a positive field width." */ + flags |= FLAG_LEFT; + width = (unsigned int) (-arg); + } + else + width = arg; + } + else + { + const FCHAR_T *digitp = dp->width_start; + + do + width = xsum (xtimes (width, 10), *digitp++ - '0'); + while (digitp != dp->width_end); + } + has_width = 1; + } + + has_precision = 0; + precision = 0; + if (dp->precision_start != dp->precision_end) + { + if (dp->precision_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->precision_arg_index].a.a_int; + /* "A negative precision is taken as if the precision + were omitted." */ + if (arg >= 0) + { + precision = arg; + has_precision = 1; + } + } + else + { + const FCHAR_T *digitp = dp->precision_start + 1; + + precision = 0; + while (digitp != dp->precision_end) + precision = xsum (xtimes (precision, 10), *digitp++ - '0'); + has_precision = 1; + } + } + + switch (type) + { + case TYPE_U8_STRING: + { + const uint8_t *arg = a.arg[dp->arg_index].a.a_u8_string; + const uint8_t *arg_end; + size_t characters; + + if (has_precision) + { + /* Use only PRECISION characters, from the left. */ + arg_end = arg; + characters = 0; + for (; precision > 0; precision--) + { + int count = u8_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else if (has_width) + { + /* Use the entire string, and count the number of + characters. */ + arg_end = arg; + characters = 0; + for (;;) + { + int count = u8_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else + { + /* Use the entire string. */ + arg_end = arg + u8_strlen (arg); + /* The number of characters doesn't matter. */ + characters = 0; + } + + if (has_width && width > characters + && !(dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + +# if DCHAR_IS_UINT8_T + { + size_t n = arg_end - arg; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_CPY (result + length, arg, n); + length += n; + } +# else + { /* Convert. */ + DCHAR_T *converted = result + length; + size_t converted_len = allocated - length; +# if DCHAR_IS_TCHAR + /* Convert from UTF-8 to locale encoding. */ + if (u8_conv_to_encoding (locale_charset (), + iconveh_question_mark, + arg, arg_end - arg, NULL, + &converted, &converted_len) + < 0) +# else + /* Convert from UTF-8 to UTF-16/UTF-32. */ + converted = + U8_TO_DCHAR (arg, arg_end - arg, + converted, &converted_len); + if (converted == NULL) +# endif + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } + if (converted != result + length) + { + ENSURE_ALLOCATION (xsum (length, converted_len)); + DCHAR_CPY (result + length, converted, converted_len); + free (converted); + } + length += converted_len; + } +# endif + + if (has_width && width > characters + && (dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + } + break; + + case TYPE_U16_STRING: + { + const uint16_t *arg = a.arg[dp->arg_index].a.a_u16_string; + const uint16_t *arg_end; + size_t characters; + + if (has_precision) + { + /* Use only PRECISION characters, from the left. */ + arg_end = arg; + characters = 0; + for (; precision > 0; precision--) + { + int count = u16_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else if (has_width) + { + /* Use the entire string, and count the number of + characters. */ + arg_end = arg; + characters = 0; + for (;;) + { + int count = u16_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else + { + /* Use the entire string. */ + arg_end = arg + u16_strlen (arg); + /* The number of characters doesn't matter. */ + characters = 0; + } + + if (has_width && width > characters + && !(dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + +# if DCHAR_IS_UINT16_T + { + size_t n = arg_end - arg; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_CPY (result + length, arg, n); + length += n; + } +# else + { /* Convert. */ + DCHAR_T *converted = result + length; + size_t converted_len = allocated - length; +# if DCHAR_IS_TCHAR + /* Convert from UTF-16 to locale encoding. */ + if (u16_conv_to_encoding (locale_charset (), + iconveh_question_mark, + arg, arg_end - arg, NULL, + &converted, &converted_len) + < 0) +# else + /* Convert from UTF-16 to UTF-8/UTF-32. */ + converted = + U16_TO_DCHAR (arg, arg_end - arg, + converted, &converted_len); + if (converted == NULL) +# endif + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } + if (converted != result + length) + { + ENSURE_ALLOCATION (xsum (length, converted_len)); + DCHAR_CPY (result + length, converted, converted_len); + free (converted); + } + length += converted_len; + } +# endif + + if (has_width && width > characters + && (dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + } + break; + + case TYPE_U32_STRING: + { + const uint32_t *arg = a.arg[dp->arg_index].a.a_u32_string; + const uint32_t *arg_end; + size_t characters; + + if (has_precision) + { + /* Use only PRECISION characters, from the left. */ + arg_end = arg; + characters = 0; + for (; precision > 0; precision--) + { + int count = u32_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else if (has_width) + { + /* Use the entire string, and count the number of + characters. */ + arg_end = arg; + characters = 0; + for (;;) + { + int count = u32_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else + { + /* Use the entire string. */ + arg_end = arg + u32_strlen (arg); + /* The number of characters doesn't matter. */ + characters = 0; + } + + if (has_width && width > characters + && !(dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + +# if DCHAR_IS_UINT32_T + { + size_t n = arg_end - arg; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_CPY (result + length, arg, n); + length += n; + } +# else + { /* Convert. */ + DCHAR_T *converted = result + length; + size_t converted_len = allocated - length; +# if DCHAR_IS_TCHAR + /* Convert from UTF-32 to locale encoding. */ + if (u32_conv_to_encoding (locale_charset (), + iconveh_question_mark, + arg, arg_end - arg, NULL, + &converted, &converted_len) + < 0) +# else + /* Convert from UTF-32 to UTF-8/UTF-16. */ + converted = + U32_TO_DCHAR (arg, arg_end - arg, + converted, &converted_len); + if (converted == NULL) +# endif + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } + if (converted != result + length) + { + ENSURE_ALLOCATION (xsum (length, converted_len)); + DCHAR_CPY (result + length, converted, converted_len); + free (converted); + } + length += converted_len; + } +# endif + + if (has_width && width > characters + && (dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + } + break; + + default: + abort (); + } + } +#endif +#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL + else if ((dp->conversion == 'a' || dp->conversion == 'A') +# if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE)) + && (0 +# if NEED_PRINTF_DOUBLE + || a.arg[dp->arg_index].type == TYPE_DOUBLE +# endif +# if NEED_PRINTF_LONG_DOUBLE + || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE +# endif + ) +# endif + ) + { + arg_type type = a.arg[dp->arg_index].type; + int flags = dp->flags; + int has_width; + size_t width; + int has_precision; + size_t precision; + size_t tmp_length; + DCHAR_T tmpbuf[700]; + DCHAR_T *tmp; + DCHAR_T *pad_ptr; + DCHAR_T *p; + + has_width = 0; + width = 0; + if (dp->width_start != dp->width_end) + { + if (dp->width_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->width_arg_index].a.a_int; + if (arg < 0) + { + /* "A negative field width is taken as a '-' flag + followed by a positive field width." */ + flags |= FLAG_LEFT; + width = (unsigned int) (-arg); + } + else + width = arg; + } + else + { + const FCHAR_T *digitp = dp->width_start; + + do + width = xsum (xtimes (width, 10), *digitp++ - '0'); + while (digitp != dp->width_end); + } + has_width = 1; + } + + has_precision = 0; + precision = 0; + if (dp->precision_start != dp->precision_end) + { + if (dp->precision_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->precision_arg_index].a.a_int; + /* "A negative precision is taken as if the precision + were omitted." */ + if (arg >= 0) + { + precision = arg; + has_precision = 1; + } + } + else + { + const FCHAR_T *digitp = dp->precision_start + 1; + + precision = 0; + while (digitp != dp->precision_end) + precision = xsum (xtimes (precision, 10), *digitp++ - '0'); + has_precision = 1; + } + } + + /* Allocate a temporary buffer of sufficient size. */ + if (type == TYPE_LONGDOUBLE) + tmp_length = + (unsigned int) ((LDBL_DIG + 1) + * 0.831 /* decimal -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + else + tmp_length = + (unsigned int) ((DBL_DIG + 1) + * 0.831 /* decimal -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + if (tmp_length < precision) + tmp_length = precision; + /* Account for sign, decimal point etc. */ + tmp_length = xsum (tmp_length, 12); + + if (tmp_length < width) + tmp_length = width; + + tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ + + if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) + tmp = tmpbuf; + else + { + size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); + + if (size_overflow_p (tmp_memsize)) + /* Overflow, would lead to out of memory. */ + goto out_of_memory; + tmp = (DCHAR_T *) malloc (tmp_memsize); + if (tmp == NULL) + /* Out of memory. */ + goto out_of_memory; + } + + pad_ptr = NULL; + p = tmp; + if (type == TYPE_LONGDOUBLE) + { +# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE + long double arg = a.arg[dp->arg_index].a.a_longdouble; + + if (isnanl (arg)) + { + if (dp->conversion == 'A') + { + *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; + } + else + { + *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; + } + } + else + { + int sign = 0; + DECL_LONG_DOUBLE_ROUNDING + + BEGIN_LONG_DOUBLE_ROUNDING (); + + if (signbit (arg)) /* arg < 0.0L or negative zero */ + { + sign = -1; + arg = -arg; + } + + if (sign < 0) + *p++ = '-'; + else if (flags & FLAG_SHOWSIGN) + *p++ = '+'; + else if (flags & FLAG_SPACE) + *p++ = ' '; + + if (arg > 0.0L && arg + arg == arg) + { + if (dp->conversion == 'A') + { + *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; + } + else + { + *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; + } + } + else + { + int exponent; + long double mantissa; + + if (arg > 0.0L) + mantissa = printf_frexpl (arg, &exponent); + else + { + exponent = 0; + mantissa = 0.0L; + } + + if (has_precision + && precision < (unsigned int) ((LDBL_DIG + 1) * 0.831) + 1) + { + /* Round the mantissa. */ + long double tail = mantissa; + size_t q; + + for (q = precision; ; q--) + { + int digit = (int) tail; + tail -= digit; + if (q == 0) + { + if (digit & 1 ? tail >= 0.5L : tail > 0.5L) + tail = 1 - tail; + else + tail = - tail; + break; + } + tail *= 16.0L; + } + if (tail != 0.0L) + for (q = precision; q > 0; q--) + tail *= 0.0625L; + mantissa += tail; + } + + *p++ = '0'; + *p++ = dp->conversion - 'A' + 'X'; + pad_ptr = p; + { + int digit; + + digit = (int) mantissa; + mantissa -= digit; + *p++ = '0' + digit; + if ((flags & FLAG_ALT) + || mantissa > 0.0L || precision > 0) + { + *p++ = decimal_point_char (); + /* This loop terminates because we assume + that FLT_RADIX is a power of 2. */ + while (mantissa > 0.0L) + { + mantissa *= 16.0L; + digit = (int) mantissa; + mantissa -= digit; + *p++ = digit + + (digit < 10 + ? '0' + : dp->conversion - 10); + if (precision > 0) + precision--; + } + while (precision > 0) + { + *p++ = '0'; + precision--; + } + } + } + *p++ = dp->conversion - 'A' + 'P'; +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + { '%', '+', 'd', '\0' }; + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, "%+d", exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, "%+d", exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } +# endif + } + + END_LONG_DOUBLE_ROUNDING (); + } +# else + abort (); +# endif + } + else + { +# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE + double arg = a.arg[dp->arg_index].a.a_double; + + if (isnand (arg)) + { + if (dp->conversion == 'A') + { + *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; + } + else + { + *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; + } + } + else + { + int sign = 0; + + if (signbit (arg)) /* arg < 0.0 or negative zero */ + { + sign = -1; + arg = -arg; + } + + if (sign < 0) + *p++ = '-'; + else if (flags & FLAG_SHOWSIGN) + *p++ = '+'; + else if (flags & FLAG_SPACE) + *p++ = ' '; + + if (arg > 0.0 && arg + arg == arg) + { + if (dp->conversion == 'A') + { + *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; + } + else + { + *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; + } + } + else + { + int exponent; + double mantissa; + + if (arg > 0.0) + mantissa = printf_frexp (arg, &exponent); + else + { + exponent = 0; + mantissa = 0.0; + } + + if (has_precision + && precision < (unsigned int) ((DBL_DIG + 1) * 0.831) + 1) + { + /* Round the mantissa. */ + double tail = mantissa; + size_t q; + + for (q = precision; ; q--) + { + int digit = (int) tail; + tail -= digit; + if (q == 0) + { + if (digit & 1 ? tail >= 0.5 : tail > 0.5) + tail = 1 - tail; + else + tail = - tail; + break; + } + tail *= 16.0; + } + if (tail != 0.0) + for (q = precision; q > 0; q--) + tail *= 0.0625; + mantissa += tail; + } + + *p++ = '0'; + *p++ = dp->conversion - 'A' + 'X'; + pad_ptr = p; + { + int digit; + + digit = (int) mantissa; + mantissa -= digit; + *p++ = '0' + digit; + if ((flags & FLAG_ALT) + || mantissa > 0.0 || precision > 0) + { + *p++ = decimal_point_char (); + /* This loop terminates because we assume + that FLT_RADIX is a power of 2. */ + while (mantissa > 0.0) + { + mantissa *= 16.0; + digit = (int) mantissa; + mantissa -= digit; + *p++ = digit + + (digit < 10 + ? '0' + : dp->conversion - 10); + if (precision > 0) + precision--; + } + while (precision > 0) + { + *p++ = '0'; + precision--; + } + } + } + *p++ = dp->conversion - 'A' + 'P'; +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + { '%', '+', 'd', '\0' }; + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, "%+d", exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, "%+d", exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } +# endif + } + } +# else + abort (); +# endif + } + /* The generated string now extends from tmp to p, with the + zero padding insertion point being at pad_ptr. */ + if (has_width && p - tmp < width) + { + size_t pad = width - (p - tmp); + DCHAR_T *end = p + pad; + + if (flags & FLAG_LEFT) + { + /* Pad with spaces on the right. */ + for (; pad > 0; pad--) + *p++ = ' '; + } + else if ((flags & FLAG_ZERO) && pad_ptr != NULL) + { + /* Pad with zeroes. */ + DCHAR_T *q = end; + + while (p > pad_ptr) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = '0'; + } + else + { + /* Pad with spaces on the left. */ + DCHAR_T *q = end; + + while (p > tmp) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = ' '; + } + + p = end; + } + + { + size_t count = p - tmp; + + if (count >= tmp_length) + /* tmp_length was incorrectly calculated - fix the + code above! */ + abort (); + + /* Make room for the result. */ + if (count >= allocated - length) + { + size_t n = xsum (length, count); + + ENSURE_ALLOCATION (n); + } + + /* Append the result. */ + memcpy (result + length, tmp, count * sizeof (DCHAR_T)); + if (tmp != tmpbuf) + free (tmp); + length += count; + } + } +#endif +#if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL + else if ((dp->conversion == 'f' || dp->conversion == 'F' + || dp->conversion == 'e' || dp->conversion == 'E' + || dp->conversion == 'g' || dp->conversion == 'G' + || dp->conversion == 'a' || dp->conversion == 'A') + && (0 +# if NEED_PRINTF_DOUBLE + || a.arg[dp->arg_index].type == TYPE_DOUBLE +# elif NEED_PRINTF_INFINITE_DOUBLE + || (a.arg[dp->arg_index].type == TYPE_DOUBLE + /* The systems (mingw) which produce wrong output + for Inf, -Inf, and NaN also do so for -0.0. + Therefore we treat this case here as well. */ + && is_infinite_or_zero (a.arg[dp->arg_index].a.a_double)) +# endif +# if NEED_PRINTF_LONG_DOUBLE + || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE +# elif NEED_PRINTF_INFINITE_LONG_DOUBLE + || (a.arg[dp->arg_index].type == TYPE_LONGDOUBLE + /* Some systems produce wrong output for Inf, + -Inf, and NaN. */ + && is_infinitel (a.arg[dp->arg_index].a.a_longdouble)) +# endif + )) + { +# if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) + arg_type type = a.arg[dp->arg_index].type; +# endif + int flags = dp->flags; + int has_width; + size_t width; + int has_precision; + size_t precision; + size_t tmp_length; + DCHAR_T tmpbuf[700]; + DCHAR_T *tmp; + DCHAR_T *pad_ptr; + DCHAR_T *p; + + has_width = 0; + width = 0; + if (dp->width_start != dp->width_end) + { + if (dp->width_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->width_arg_index].a.a_int; + if (arg < 0) + { + /* "A negative field width is taken as a '-' flag + followed by a positive field width." */ + flags |= FLAG_LEFT; + width = (unsigned int) (-arg); + } + else + width = arg; + } + else + { + const FCHAR_T *digitp = dp->width_start; + + do + width = xsum (xtimes (width, 10), *digitp++ - '0'); + while (digitp != dp->width_end); + } + has_width = 1; + } + + has_precision = 0; + precision = 0; + if (dp->precision_start != dp->precision_end) + { + if (dp->precision_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->precision_arg_index].a.a_int; + /* "A negative precision is taken as if the precision + were omitted." */ + if (arg >= 0) + { + precision = arg; + has_precision = 1; + } + } + else + { + const FCHAR_T *digitp = dp->precision_start + 1; + + precision = 0; + while (digitp != dp->precision_end) + precision = xsum (xtimes (precision, 10), *digitp++ - '0'); + has_precision = 1; + } + } + + /* POSIX specifies the default precision to be 6 for %f, %F, + %e, %E, but not for %g, %G. Implementations appear to use + the same default precision also for %g, %G. */ + if (!has_precision) + precision = 6; + + /* Allocate a temporary buffer of sufficient size. */ +# if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE + tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1); +# elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE + tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : 0); +# elif NEED_PRINTF_LONG_DOUBLE + tmp_length = LDBL_DIG + 1; +# elif NEED_PRINTF_DOUBLE + tmp_length = DBL_DIG + 1; +# else + tmp_length = 0; +# endif + if (tmp_length < precision) + tmp_length = precision; +# if NEED_PRINTF_LONG_DOUBLE +# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE + if (type == TYPE_LONGDOUBLE) +# endif + if (dp->conversion == 'f' || dp->conversion == 'F') + { + long double arg = a.arg[dp->arg_index].a.a_longdouble; + if (!(isnanl (arg) || arg + arg == arg)) + { + /* arg is finite and nonzero. */ + int exponent = floorlog10l (arg < 0 ? -arg : arg); + if (exponent >= 0 && tmp_length < exponent + precision) + tmp_length = exponent + precision; + } + } +# endif +# if NEED_PRINTF_DOUBLE +# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE + if (type == TYPE_DOUBLE) +# endif + if (dp->conversion == 'f' || dp->conversion == 'F') + { + double arg = a.arg[dp->arg_index].a.a_double; + if (!(isnand (arg) || arg + arg == arg)) + { + /* arg is finite and nonzero. */ + int exponent = floorlog10 (arg < 0 ? -arg : arg); + if (exponent >= 0 && tmp_length < exponent + precision) + tmp_length = exponent + precision; + } + } +# endif + /* Account for sign, decimal point etc. */ + tmp_length = xsum (tmp_length, 12); + + if (tmp_length < width) + tmp_length = width; + + tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ + + if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) + tmp = tmpbuf; + else + { + size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); + + if (size_overflow_p (tmp_memsize)) + /* Overflow, would lead to out of memory. */ + goto out_of_memory; + tmp = (DCHAR_T *) malloc (tmp_memsize); + if (tmp == NULL) + /* Out of memory. */ + goto out_of_memory; + } + + pad_ptr = NULL; + p = tmp; + +# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE +# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE + if (type == TYPE_LONGDOUBLE) +# endif + { + long double arg = a.arg[dp->arg_index].a.a_longdouble; + + if (isnanl (arg)) + { + if (dp->conversion >= 'A' && dp->conversion <= 'Z') + { + *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; + } + else + { + *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; + } + } + else + { + int sign = 0; + DECL_LONG_DOUBLE_ROUNDING + + BEGIN_LONG_DOUBLE_ROUNDING (); + + if (signbit (arg)) /* arg < 0.0L or negative zero */ + { + sign = -1; + arg = -arg; + } + + if (sign < 0) + *p++ = '-'; + else if (flags & FLAG_SHOWSIGN) + *p++ = '+'; + else if (flags & FLAG_SPACE) + *p++ = ' '; + + if (arg > 0.0L && arg + arg == arg) + { + if (dp->conversion >= 'A' && dp->conversion <= 'Z') + { + *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; + } + else + { + *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; + } + } + else + { +# if NEED_PRINTF_LONG_DOUBLE + pad_ptr = p; + + if (dp->conversion == 'f' || dp->conversion == 'F') + { + char *digits; + size_t ndigits; + + digits = + scale10_round_decimal_long_double (arg, precision); + if (digits == NULL) + { + END_LONG_DOUBLE_ROUNDING (); + goto out_of_memory; + } + ndigits = strlen (digits); + + if (ndigits > precision) + do + { + --ndigits; + *p++ = digits[ndigits]; + } + while (ndigits > precision); + else + *p++ = '0'; + /* Here ndigits <= precision. */ + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > ndigits; precision--) + *p++ = '0'; + while (ndigits > 0) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + + free (digits); + } + else if (dp->conversion == 'e' || dp->conversion == 'E') + { + int exponent; + + if (arg == 0.0L) + { + exponent = 0; + *p++ = '0'; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > 0; precision--) + *p++ = '0'; + } + } + else + { + /* arg > 0.0L. */ + int adjusted; + char *digits; + size_t ndigits; + + exponent = floorlog10l (arg); + adjusted = 0; + for (;;) + { + digits = + scale10_round_decimal_long_double (arg, + (int)precision - exponent); + if (digits == NULL) + { + END_LONG_DOUBLE_ROUNDING (); + goto out_of_memory; + } + ndigits = strlen (digits); + + if (ndigits == precision + 1) + break; + if (ndigits < precision + || ndigits > precision + 2) + /* The exponent was not guessed + precisely enough. */ + abort (); + if (adjusted) + /* None of two values of exponent is + the right one. Prevent an endless + loop. */ + abort (); + free (digits); + if (ndigits == precision) + exponent -= 1; + else + exponent += 1; + adjusted = 1; + } + + /* Here ndigits = precision+1. */ + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + while (ndigits > 0) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + + free (digits); + } + + *p++ = dp->conversion; /* 'e' or 'E' */ +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + { '%', '+', '.', '2', 'd', '\0' }; + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, "%+.2d", exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, "%+.2d", exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } +# endif + } + else if (dp->conversion == 'g' || dp->conversion == 'G') + { + if (precision == 0) + precision = 1; + /* precision >= 1. */ + + if (arg == 0.0L) + /* The exponent is 0, >= -4, < precision. + Use fixed-point notation. */ + { + size_t ndigits = precision; + /* Number of trailing zeroes that have to be + dropped. */ + size_t nzeroes = + (flags & FLAG_ALT ? 0 : precision - 1); + + --ndigits; + *p++ = '0'; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = '0'; + } + } + } + else + { + /* arg > 0.0L. */ + int exponent; + int adjusted; + char *digits; + size_t ndigits; + size_t nzeroes; + + exponent = floorlog10l (arg); + adjusted = 0; + for (;;) + { + digits = + scale10_round_decimal_long_double (arg, + (int)(precision - 1) - exponent); + if (digits == NULL) + { + END_LONG_DOUBLE_ROUNDING (); + goto out_of_memory; + } + ndigits = strlen (digits); + + if (ndigits == precision) + break; + if (ndigits < precision - 1 + || ndigits > precision + 1) + /* The exponent was not guessed + precisely enough. */ + abort (); + if (adjusted) + /* None of two values of exponent is + the right one. Prevent an endless + loop. */ + abort (); + free (digits); + if (ndigits < precision) + exponent -= 1; + else + exponent += 1; + adjusted = 1; + } + /* Here ndigits = precision. */ + + /* Determine the number of trailing zeroes + that have to be dropped. */ + nzeroes = 0; + if ((flags & FLAG_ALT) == 0) + while (nzeroes < ndigits + && digits[nzeroes] == '0') + nzeroes++; + + /* The exponent is now determined. */ + if (exponent >= -4 + && exponent < (long)precision) + { + /* Fixed-point notation: + max(exponent,0)+1 digits, then the + decimal point, then the remaining + digits without trailing zeroes. */ + if (exponent >= 0) + { + size_t count = exponent + 1; + /* Note: count <= precision = ndigits. */ + for (; count > 0; count--) + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + } + else + { + size_t count = -exponent - 1; + *p++ = '0'; + *p++ = decimal_point_char (); + for (; count > 0; count--) + *p++ = '0'; + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + } + else + { + /* Exponential notation. */ + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + { '%', '+', '.', '2', 'd', '\0' }; + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, "%+.2d", exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, "%+.2d", exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } +# endif + } + + free (digits); + } + } + else + abort (); +# else + /* arg is finite. */ + abort (); +# endif + } + + END_LONG_DOUBLE_ROUNDING (); + } + } +# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE + else +# endif +# endif +# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE + { + double arg = a.arg[dp->arg_index].a.a_double; + + if (isnand (arg)) + { + if (dp->conversion >= 'A' && dp->conversion <= 'Z') + { + *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; + } + else + { + *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; + } + } + else + { + int sign = 0; + + if (signbit (arg)) /* arg < 0.0 or negative zero */ + { + sign = -1; + arg = -arg; + } + + if (sign < 0) + *p++ = '-'; + else if (flags & FLAG_SHOWSIGN) + *p++ = '+'; + else if (flags & FLAG_SPACE) + *p++ = ' '; + + if (arg > 0.0 && arg + arg == arg) + { + if (dp->conversion >= 'A' && dp->conversion <= 'Z') + { + *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; + } + else + { + *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; + } + } + else + { +# if NEED_PRINTF_DOUBLE + pad_ptr = p; + + if (dp->conversion == 'f' || dp->conversion == 'F') + { + char *digits; + size_t ndigits; + + digits = + scale10_round_decimal_double (arg, precision); + if (digits == NULL) + goto out_of_memory; + ndigits = strlen (digits); + + if (ndigits > precision) + do + { + --ndigits; + *p++ = digits[ndigits]; + } + while (ndigits > precision); + else + *p++ = '0'; + /* Here ndigits <= precision. */ + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > ndigits; precision--) + *p++ = '0'; + while (ndigits > 0) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + + free (digits); + } + else if (dp->conversion == 'e' || dp->conversion == 'E') + { + int exponent; + + if (arg == 0.0) + { + exponent = 0; + *p++ = '0'; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > 0; precision--) + *p++ = '0'; + } + } + else + { + /* arg > 0.0. */ + int adjusted; + char *digits; + size_t ndigits; + + exponent = floorlog10 (arg); + adjusted = 0; + for (;;) + { + digits = + scale10_round_decimal_double (arg, + (int)precision - exponent); + if (digits == NULL) + goto out_of_memory; + ndigits = strlen (digits); + + if (ndigits == precision + 1) + break; + if (ndigits < precision + || ndigits > precision + 2) + /* The exponent was not guessed + precisely enough. */ + abort (); + if (adjusted) + /* None of two values of exponent is + the right one. Prevent an endless + loop. */ + abort (); + free (digits); + if (ndigits == precision) + exponent -= 1; + else + exponent += 1; + adjusted = 1; + } + + /* Here ndigits = precision+1. */ + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + while (ndigits > 0) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + + free (digits); + } + + *p++ = dp->conversion; /* 'e' or 'E' */ +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + /* Produce the same number of exponent digits + as the native printf implementation. */ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + { '%', '+', '.', '3', 'd', '\0' }; +# else + { '%', '+', '.', '2', 'd', '\0' }; +# endif + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + { + static const char decimal_format[] = + /* Produce the same number of exponent digits + as the native printf implementation. */ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + "%+.3d"; +# else + "%+.2d"; +# endif + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, decimal_format, exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, decimal_format, exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } + } +# endif + } + else if (dp->conversion == 'g' || dp->conversion == 'G') + { + if (precision == 0) + precision = 1; + /* precision >= 1. */ + + if (arg == 0.0) + /* The exponent is 0, >= -4, < precision. + Use fixed-point notation. */ + { + size_t ndigits = precision; + /* Number of trailing zeroes that have to be + dropped. */ + size_t nzeroes = + (flags & FLAG_ALT ? 0 : precision - 1); + + --ndigits; + *p++ = '0'; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = '0'; + } + } + } + else + { + /* arg > 0.0. */ + int exponent; + int adjusted; + char *digits; + size_t ndigits; + size_t nzeroes; + + exponent = floorlog10 (arg); + adjusted = 0; + for (;;) + { + digits = + scale10_round_decimal_double (arg, + (int)(precision - 1) - exponent); + if (digits == NULL) + goto out_of_memory; + ndigits = strlen (digits); + + if (ndigits == precision) + break; + if (ndigits < precision - 1 + || ndigits > precision + 1) + /* The exponent was not guessed + precisely enough. */ + abort (); + if (adjusted) + /* None of two values of exponent is + the right one. Prevent an endless + loop. */ + abort (); + free (digits); + if (ndigits < precision) + exponent -= 1; + else + exponent += 1; + adjusted = 1; + } + /* Here ndigits = precision. */ + + /* Determine the number of trailing zeroes + that have to be dropped. */ + nzeroes = 0; + if ((flags & FLAG_ALT) == 0) + while (nzeroes < ndigits + && digits[nzeroes] == '0') + nzeroes++; + + /* The exponent is now determined. */ + if (exponent >= -4 + && exponent < (long)precision) + { + /* Fixed-point notation: + max(exponent,0)+1 digits, then the + decimal point, then the remaining + digits without trailing zeroes. */ + if (exponent >= 0) + { + size_t count = exponent + 1; + /* Note: count <= precision = ndigits. */ + for (; count > 0; count--) + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + } + else + { + size_t count = -exponent - 1; + *p++ = '0'; + *p++ = decimal_point_char (); + for (; count > 0; count--) + *p++ = '0'; + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + } + else + { + /* Exponential notation. */ + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + /* Produce the same number of exponent digits + as the native printf implementation. */ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + { '%', '+', '.', '3', 'd', '\0' }; +# else + { '%', '+', '.', '2', 'd', '\0' }; +# endif + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + { + static const char decimal_format[] = + /* Produce the same number of exponent digits + as the native printf implementation. */ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + "%+.3d"; +# else + "%+.2d"; +# endif + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, decimal_format, exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, decimal_format, exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } + } +# endif + } + + free (digits); + } + } + else + abort (); +# else + /* arg is finite. */ + if (!(arg == 0.0)) + abort (); + + pad_ptr = p; + + if (dp->conversion == 'f' || dp->conversion == 'F') + { + *p++ = '0'; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > 0; precision--) + *p++ = '0'; + } + } + else if (dp->conversion == 'e' || dp->conversion == 'E') + { + *p++ = '0'; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > 0; precision--) + *p++ = '0'; + } + *p++ = dp->conversion; /* 'e' or 'E' */ + *p++ = '+'; + /* Produce the same number of exponent digits as + the native printf implementation. */ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + *p++ = '0'; +# endif + *p++ = '0'; + *p++ = '0'; + } + else if (dp->conversion == 'g' || dp->conversion == 'G') + { + *p++ = '0'; + if (flags & FLAG_ALT) + { + size_t ndigits = + (precision > 0 ? precision - 1 : 0); + *p++ = decimal_point_char (); + for (; ndigits > 0; --ndigits) + *p++ = '0'; + } + } + else + abort (); +# endif + } + } + } +# endif + + /* The generated string now extends from tmp to p, with the + zero padding insertion point being at pad_ptr. */ + if (has_width && p - tmp < width) + { + size_t pad = width - (p - tmp); + DCHAR_T *end = p + pad; + + if (flags & FLAG_LEFT) + { + /* Pad with spaces on the right. */ + for (; pad > 0; pad--) + *p++ = ' '; + } + else if ((flags & FLAG_ZERO) && pad_ptr != NULL) + { + /* Pad with zeroes. */ + DCHAR_T *q = end; + + while (p > pad_ptr) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = '0'; + } + else + { + /* Pad with spaces on the left. */ + DCHAR_T *q = end; + + while (p > tmp) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = ' '; + } + + p = end; + } + + { + size_t count = p - tmp; + + if (count >= tmp_length) + /* tmp_length was incorrectly calculated - fix the + code above! */ + abort (); + + /* Make room for the result. */ + if (count >= allocated - length) + { + size_t n = xsum (length, count); + + ENSURE_ALLOCATION (n); + } + + /* Append the result. */ + memcpy (result + length, tmp, count * sizeof (DCHAR_T)); + if (tmp != tmpbuf) + free (tmp); + length += count; + } + } +#endif else { arg_type type = a.arg[dp->arg_index].type; - CHAR_T *p; + int flags = dp->flags; +#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION + int has_width; + size_t width; +#endif +#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION + int has_precision; + size_t precision; +#endif +#if NEED_PRINTF_UNBOUNDED_PRECISION + int prec_ourselves; +#else +# define prec_ourselves 0 +#endif +#if NEED_PRINTF_FLAG_LEFTADJUST +# define pad_ourselves 1 +#elif !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION + int pad_ourselves; +#else +# define pad_ourselves 0 +#endif + TCHAR_T *fbp; unsigned int prefix_count; int prefixes[2]; #if !USE_SNPRINTF size_t tmp_length; - CHAR_T tmpbuf[700]; - CHAR_T *tmp; + TCHAR_T tmpbuf[700]; + TCHAR_T *tmp; +#endif +#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION + has_width = 0; + width = 0; + if (dp->width_start != dp->width_end) + { + if (dp->width_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->width_arg_index].a.a_int; + if (arg < 0) + { + /* "A negative field width is taken as a '-' flag + followed by a positive field width." */ + flags |= FLAG_LEFT; + width = (unsigned int) (-arg); + } + else + width = arg; + } + else + { + const FCHAR_T *digitp = dp->width_start; + + do + width = xsum (xtimes (width, 10), *digitp++ - '0'); + while (digitp != dp->width_end); + } + has_width = 1; + } +#endif + +#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION + has_precision = 0; + precision = 6; + if (dp->precision_start != dp->precision_end) + { + if (dp->precision_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->precision_arg_index].a.a_int; + /* "A negative precision is taken as if the precision + were omitted." */ + if (arg >= 0) + { + precision = arg; + has_precision = 1; + } + } + else + { + const FCHAR_T *digitp = dp->precision_start + 1; + + precision = 0; + while (digitp != dp->precision_end) + precision = xsum (xtimes (precision, 10), *digitp++ - '0'); + has_precision = 1; + } + } +#endif + +#if !USE_SNPRINTF /* Allocate a temporary buffer of sufficient size for calling sprintf. */ { - size_t width; - size_t precision; - - width = 0; - if (dp->width_start != dp->width_end) - { - if (dp->width_arg_index != ARG_NONE) - { - int arg; - - if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) - abort (); - arg = a.arg[dp->width_arg_index].a.a_int; - width = (arg < 0 ? (unsigned int) (-arg) : arg); - } - else - { - const CHAR_T *digitp = dp->width_start; - - do - width = xsum (xtimes (width, 10), *digitp++ - '0'); - while (digitp != dp->width_end); - } - } - - precision = 6; - if (dp->precision_start != dp->precision_end) - { - if (dp->precision_arg_index != ARG_NONE) - { - int arg; - - if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) - abort (); - arg = a.arg[dp->precision_arg_index].a.a_int; - precision = (arg < 0 ? 0 : arg); - } - else - { - const CHAR_T *digitp = dp->precision_start + 1; - - precision = 0; - while (digitp != dp->precision_end) - precision = xsum (xtimes (precision, 10), *digitp++ - '0'); - } - } - switch (dp->conversion) { case 'd': case 'i': case 'u': -# ifdef HAVE_LONG_LONG_INT +# if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT @@ -352,7 +3699,7 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar break; case 'o': -# ifdef HAVE_LONG_LONG_INT +# if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT @@ -380,7 +3727,7 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar break; case 'x': case 'X': -# ifdef HAVE_LONG_LONG_INT +# if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT @@ -408,7 +3755,6 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar break; case 'f': case 'F': -# ifdef HAVE_LONG_DOUBLE if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) (LDBL_MAX_EXP @@ -418,7 +3764,6 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar + 1 /* turn floor into ceil */ + 10; /* sign, decimal point etc. */ else -# endif tmp_length = (unsigned int) (DBL_MAX_EXP * 0.30103 /* binary -> decimal */ @@ -430,14 +3775,32 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar break; case 'e': case 'E': case 'g': case 'G': - case 'a': case 'A': tmp_length = 12; /* sign, decimal point, exponent etc. */ tmp_length = xsum (tmp_length, precision); break; + case 'a': case 'A': + if (type == TYPE_LONGDOUBLE) + tmp_length = + (unsigned int) (LDBL_DIG + * 0.831 /* decimal -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + else + tmp_length = + (unsigned int) (DBL_DIG + * 0.831 /* decimal -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + if (tmp_length < precision) + tmp_length = precision; + /* Account for sign, decimal point etc. */ + tmp_length = xsum (tmp_length, 12); + break; + case 'c': -# if defined HAVE_WINT_T && !WIDE_CHAR_VERSION +# if HAVE_WINT_T && !WIDE_CHAR_VERSION if (type == TYPE_WIDE_CHAR) tmp_length = MB_CUR_MAX; else @@ -446,7 +3809,7 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar break; case 's': -# ifdef HAVE_WCHAR_T +# if HAVE_WCHAR_T if (type == TYPE_WIDE_STRING) { tmp_length = @@ -474,95 +3837,216 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar abort (); } +# if ENABLE_UNISTDIO + /* Padding considers the number of characters, therefore the + number of elements after padding may be + > max (tmp_length, width) + but is certainly + <= tmp_length + width. */ + tmp_length = xsum (tmp_length, width); +# else + /* Padding considers the number of elements, says POSIX. */ if (tmp_length < width) tmp_length = width; +# endif tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ } - if (tmp_length <= sizeof (tmpbuf) / sizeof (CHAR_T)) + if (tmp_length <= sizeof (tmpbuf) / sizeof (TCHAR_T)) tmp = tmpbuf; else { - size_t tmp_memsize = xtimes (tmp_length, sizeof (CHAR_T)); + size_t tmp_memsize = xtimes (tmp_length, sizeof (TCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; - tmp = (CHAR_T *) malloc (tmp_memsize); + tmp = (TCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } #endif + /* Decide whether to handle the precision ourselves. */ +#if NEED_PRINTF_UNBOUNDED_PRECISION + switch (dp->conversion) + { + case 'd': case 'i': case 'u': + case 'o': + case 'x': case 'X': case 'p': + prec_ourselves = has_precision && (precision > 0); + break; + default: + prec_ourselves = 0; + break; + } +#endif + + /* Decide whether to perform the padding ourselves. */ +#if !NEED_PRINTF_FLAG_LEFTADJUST && (!DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION) + switch (dp->conversion) + { +# if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO + /* If we need conversion from TCHAR_T[] to DCHAR_T[], we need + to perform the padding after this conversion. Functions + with unistdio extensions perform the padding based on + character count rather than element count. */ + case 'c': case 's': +# endif +# if NEED_PRINTF_FLAG_ZERO + case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': + case 'a': case 'A': +# endif + pad_ourselves = 1; + break; + default: + pad_ourselves = prec_ourselves; + break; + } +#endif + /* Construct the format string for calling snprintf or sprintf. */ - p = buf; - *p++ = '%'; - if (dp->flags & FLAG_GROUP) - *p++ = '\''; - if (dp->flags & FLAG_LEFT) - *p++ = '-'; - if (dp->flags & FLAG_SHOWSIGN) - *p++ = '+'; - if (dp->flags & FLAG_SPACE) - *p++ = ' '; - if (dp->flags & FLAG_ALT) - *p++ = '#'; - if (dp->flags & FLAG_ZERO) - *p++ = '0'; - if (dp->width_start != dp->width_end) + fbp = buf; + *fbp++ = '%'; +#if NEED_PRINTF_FLAG_GROUPING + /* The underlying implementation doesn't support the ' flag. + Produce no grouping characters in this case; this is + acceptable because the grouping is locale dependent. */ +#else + if (flags & FLAG_GROUP) + *fbp++ = '\''; +#endif + if (flags & FLAG_LEFT) + *fbp++ = '-'; + if (flags & FLAG_SHOWSIGN) + *fbp++ = '+'; + if (flags & FLAG_SPACE) + *fbp++ = ' '; + if (flags & FLAG_ALT) + *fbp++ = '#'; + if (!pad_ourselves) { - size_t n = dp->width_end - dp->width_start; - memcpy (p, dp->width_start, n * sizeof (CHAR_T)); - p += n; + if (flags & FLAG_ZERO) + *fbp++ = '0'; + if (dp->width_start != dp->width_end) + { + size_t n = dp->width_end - dp->width_start; + /* The width specification is known to consist only + of standard ASCII characters. */ + if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) + { + memcpy (fbp, dp->width_start, n * sizeof (TCHAR_T)); + fbp += n; + } + else + { + const FCHAR_T *mp = dp->width_start; + do + *fbp++ = (unsigned char) *mp++; + while (--n > 0); + } + } } - if (dp->precision_start != dp->precision_end) + if (!prec_ourselves) { - size_t n = dp->precision_end - dp->precision_start; - memcpy (p, dp->precision_start, n * sizeof (CHAR_T)); - p += n; + if (dp->precision_start != dp->precision_end) + { + size_t n = dp->precision_end - dp->precision_start; + /* The precision specification is known to consist only + of standard ASCII characters. */ + if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) + { + memcpy (fbp, dp->precision_start, n * sizeof (TCHAR_T)); + fbp += n; + } + else + { + const FCHAR_T *mp = dp->precision_start; + do + *fbp++ = (unsigned char) *mp++; + while (--n > 0); + } + } } switch (type) { -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: case TYPE_ULONGLONGINT: - *p++ = 'l'; +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + *fbp++ = 'I'; + *fbp++ = '6'; + *fbp++ = '4'; + break; +# else + *fbp++ = 'l'; /*FALLTHROUGH*/ +# endif #endif case TYPE_LONGINT: case TYPE_ULONGINT: -#ifdef HAVE_WINT_T +#if HAVE_WINT_T case TYPE_WIDE_CHAR: #endif -#ifdef HAVE_WCHAR_T +#if HAVE_WCHAR_T case TYPE_WIDE_STRING: #endif - *p++ = 'l'; + *fbp++ = 'l'; break; -#ifdef HAVE_LONG_DOUBLE case TYPE_LONGDOUBLE: - *p++ = 'L'; + *fbp++ = 'L'; break; -#endif default: break; } - *p = dp->conversion; +#if NEED_PRINTF_DIRECTIVE_F + if (dp->conversion == 'F') + *fbp = 'f'; + else +#endif + *fbp = dp->conversion; #if USE_SNPRINTF - p[1] = '%'; - p[2] = 'n'; - p[3] = '\0'; +# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) + fbp[1] = '%'; + fbp[2] = 'n'; + fbp[3] = '\0'; +# else + /* On glibc2 systems from glibc >= 2.3 - probably also older + ones - we know that snprintf's returns value conforms to + ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes. + Therefore we can avoid using %n in this situation. + On glibc2 systems from 2004-10-18 or newer, the use of %n + in format strings in writable memory may crash the program + (if compiled with _FORTIFY_SOURCE=2), so we should avoid it + in this situation. */ + /* On native Win32 systems (such as mingw), we can avoid using + %n because: + - Although the gl_SNPRINTF_TRUNCATION_C99 test fails, + snprintf does not write more than the specified number + of bytes. (snprintf (buf, 3, "%d %d", 4567, 89) writes + '4', '5', '6' into buf, not '4', '5', '\0'.) + - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf + allows us to recognize the case of an insufficient + buffer size: it returns -1 in this case. + On native Win32 systems (such as mingw) where the OS is + Windows Vista, the use of %n in format strings by default + crashes the program. See + and + + So we should avoid %n in this situation. */ + fbp[1] = '\0'; +# endif #else - p[1] = '\0'; + fbp[1] = '\0'; #endif /* Construct the arguments for calling snprintf or sprintf. */ prefix_count = 0; - if (dp->width_arg_index != ARG_NONE) + if (!pad_ourselves && dp->width_arg_index != ARG_NONE) { if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); @@ -576,36 +4060,50 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar } #if USE_SNPRINTF + /* The SNPRINTF result is appended after result[0..length]. + The latter is an array of DCHAR_T; SNPRINTF appends an + array of TCHAR_T to it. This is possible because + sizeof (TCHAR_T) divides sizeof (DCHAR_T) and + alignof (TCHAR_T) <= alignof (DCHAR_T). */ +# define TCHARS_PER_DCHAR (sizeof (DCHAR_T) / sizeof (TCHAR_T)) + /* Ensure that maxlen below will be >= 2. Needed on BeOS, + where an snprintf() with maxlen==1 acts like sprintf(). */ + ENSURE_ALLOCATION (xsum (length, + (2 + TCHARS_PER_DCHAR - 1) + / TCHARS_PER_DCHAR)); /* Prepare checking whether snprintf returns the count via %n. */ - ENSURE_ALLOCATION (xsum (length, 1)); - result[length] = '\0'; + *(TCHAR_T *) (result + length) = '\0'; #endif for (;;) { - size_t maxlen; - int count; - int retcount; - - maxlen = allocated - length; - count = -1; - retcount = 0; + int count = -1; #if USE_SNPRINTF + int retcount = 0; + size_t maxlen = allocated - length; + /* SNPRINTF can fail if its second argument is + > INT_MAX. */ + if (maxlen > INT_MAX / TCHARS_PER_DCHAR) + maxlen = INT_MAX / TCHARS_PER_DCHAR; + maxlen = maxlen * TCHARS_PER_DCHAR; # define SNPRINTF_BUF(arg) \ switch (prefix_count) \ { \ case 0: \ - retcount = SNPRINTF (result + length, maxlen, buf, \ + retcount = SNPRINTF ((TCHAR_T *) (result + length), \ + maxlen, buf, \ arg, &count); \ break; \ case 1: \ - retcount = SNPRINTF (result + length, maxlen, buf, \ + retcount = SNPRINTF ((TCHAR_T *) (result + length), \ + maxlen, buf, \ prefixes[0], arg, &count); \ break; \ case 2: \ - retcount = SNPRINTF (result + length, maxlen, buf, \ + retcount = SNPRINTF ((TCHAR_T *) (result + length), \ + maxlen, buf, \ prefixes[0], prefixes[1], arg, \ &count); \ break; \ @@ -681,7 +4179,7 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar SNPRINTF_BUF (arg); } break; -#ifdef HAVE_LONG_LONG_INT +#if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: { long long int arg = a.arg[dp->arg_index].a.a_longlongint; @@ -701,21 +4199,19 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar SNPRINTF_BUF (arg); } break; -#ifdef HAVE_LONG_DOUBLE case TYPE_LONGDOUBLE: { long double arg = a.arg[dp->arg_index].a.a_longdouble; SNPRINTF_BUF (arg); } break; -#endif case TYPE_CHAR: { int arg = a.arg[dp->arg_index].a.a_char; SNPRINTF_BUF (arg); } break; -#ifdef HAVE_WINT_T +#if HAVE_WINT_T case TYPE_WIDE_CHAR: { wint_t arg = a.arg[dp->arg_index].a.a_wide_char; @@ -729,7 +4225,7 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar SNPRINTF_BUF (arg); } break; -#ifdef HAVE_WCHAR_T +#if HAVE_WCHAR_T case TYPE_WIDE_STRING: { const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string; @@ -756,7 +4252,8 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar { /* Verify that snprintf() has NUL-terminated its result. */ - if (count < maxlen && result[length + count] != '\0') + if (count < maxlen + && ((TCHAR_T *) (result + length)) [count] != '\0') abort (); /* Portability hack. */ if (retcount > count) @@ -766,11 +4263,11 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar { /* snprintf() doesn't understand the '%n' directive. */ - if (p[1] != '\0') + if (fbp[1] != '\0') { /* Don't use the '%n' directive; instead, look at the snprintf() return value. */ - p[1] = '\0'; + fbp[1] = '\0'; continue; } else @@ -806,37 +4303,339 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar return NULL; } -#if !USE_SNPRINTF +#if USE_SNPRINTF + /* Handle overflow of the allocated buffer. + If such an overflow occurs, a C99 compliant snprintf() + returns a count >= maxlen. However, a non-compliant + snprintf() function returns only count = maxlen - 1. To + cover both cases, test whether count >= maxlen - 1. */ + if ((unsigned int) count + 1 >= maxlen) + { + /* If maxlen already has attained its allowed maximum, + allocating more memory will not increase maxlen. + Instead of looping, bail out. */ + if (maxlen == INT_MAX / TCHARS_PER_DCHAR) + goto overflow; + else + { + /* Need at least (count + 1) * sizeof (TCHAR_T) + bytes. (The +1 is for the trailing NUL.) + But ask for (count + 2) * sizeof (TCHAR_T) + bytes, so that in the next round, we likely get + maxlen > (unsigned int) count + 1 + and so we don't get here again. + And allocate proportionally, to avoid looping + eternally if snprintf() reports a too small + count. */ + size_t n = + xmax (xsum (length, + ((unsigned int) count + 2 + + TCHARS_PER_DCHAR - 1) + / TCHARS_PER_DCHAR), + xtimes (allocated, 2)); + + ENSURE_ALLOCATION (n); + continue; + } + } +#endif + +#if NEED_PRINTF_UNBOUNDED_PRECISION + if (prec_ourselves) + { + /* Handle the precision. */ + TCHAR_T *prec_ptr = +# if USE_SNPRINTF + (TCHAR_T *) (result + length); +# else + tmp; +# endif + size_t prefix_count; + size_t move; + + prefix_count = 0; + /* Put the additional zeroes after the sign. */ + if (count >= 1 + && (*prec_ptr == '-' || *prec_ptr == '+' + || *prec_ptr == ' ')) + prefix_count = 1; + /* Put the additional zeroes after the 0x prefix if + (flags & FLAG_ALT) || (dp->conversion == 'p'). */ + else if (count >= 2 + && prec_ptr[0] == '0' + && (prec_ptr[1] == 'x' || prec_ptr[1] == 'X')) + prefix_count = 2; + + move = count - prefix_count; + if (precision > move) + { + /* Insert zeroes. */ + size_t insert = precision - move; + TCHAR_T *prec_end; + +# if USE_SNPRINTF + size_t n = + xsum (length, + (count + insert + TCHARS_PER_DCHAR - 1) + / TCHARS_PER_DCHAR); + length += (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; + ENSURE_ALLOCATION (n); + length -= (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; + prec_ptr = (TCHAR_T *) (result + length); +# endif + + prec_end = prec_ptr + count; + prec_ptr += prefix_count; + + while (prec_end > prec_ptr) + { + prec_end--; + prec_end[insert] = prec_end[0]; + } + + prec_end += insert; + do + *--prec_end = '0'; + while (prec_end > prec_ptr); + + count += insert; + } + } +#endif + +#if !DCHAR_IS_TCHAR +# if !USE_SNPRINTF + if (count >= tmp_length) + /* tmp_length was incorrectly calculated - fix the + code above! */ + abort (); +# endif + + /* Convert from TCHAR_T[] to DCHAR_T[]. */ + if (dp->conversion == 'c' || dp->conversion == 's') + { + /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING + TYPE_WIDE_STRING. + The result string is not certainly ASCII. */ + const TCHAR_T *tmpsrc; + DCHAR_T *tmpdst; + size_t tmpdst_len; + /* This code assumes that TCHAR_T is 'char'. */ + typedef int TCHAR_T_verify + [2 * (sizeof (TCHAR_T) == 1) - 1]; +# if USE_SNPRINTF + tmpsrc = (TCHAR_T *) (result + length); +# else + tmpsrc = tmp; +# endif + tmpdst = NULL; + tmpdst_len = 0; + if (DCHAR_CONV_FROM_ENCODING (locale_charset (), + iconveh_question_mark, + tmpsrc, count, + NULL, + &tmpdst, &tmpdst_len) + < 0) + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } + ENSURE_ALLOCATION (xsum (length, tmpdst_len)); + DCHAR_CPY (result + length, tmpdst, tmpdst_len); + free (tmpdst); + count = tmpdst_len; + } + else + { + /* The result string is ASCII. + Simple 1:1 conversion. */ +# if USE_SNPRINTF + /* If sizeof (DCHAR_T) == sizeof (TCHAR_T), it's a + no-op conversion, in-place on the array starting + at (result + length). */ + if (sizeof (DCHAR_T) != sizeof (TCHAR_T)) +# endif + { + const TCHAR_T *tmpsrc; + DCHAR_T *tmpdst; + size_t n; + +# if USE_SNPRINTF + if (result == resultbuf) + { + tmpsrc = (TCHAR_T *) (result + length); + /* ENSURE_ALLOCATION will not move tmpsrc + (because it's part of resultbuf). */ + ENSURE_ALLOCATION (xsum (length, count)); + } + else + { + /* ENSURE_ALLOCATION will move the array + (because it uses realloc(). */ + ENSURE_ALLOCATION (xsum (length, count)); + tmpsrc = (TCHAR_T *) (result + length); + } +# else + tmpsrc = tmp; + ENSURE_ALLOCATION (xsum (length, count)); +# endif + tmpdst = result + length; + /* Copy backwards, because of overlapping. */ + tmpsrc += count; + tmpdst += count; + for (n = count; n > 0; n--) + *--tmpdst = (unsigned char) *--tmpsrc; + } + } +#endif + +#if DCHAR_IS_TCHAR && !USE_SNPRINTF + /* Make room for the result. */ + if (count > allocated - length) + { + /* Need at least count elements. But allocate + proportionally. */ + size_t n = + xmax (xsum (length, count), xtimes (allocated, 2)); + + ENSURE_ALLOCATION (n); + } +#endif + + /* Here count <= allocated - length. */ + + /* Perform padding. */ +#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION + if (pad_ourselves && has_width) + { + size_t w; +# if ENABLE_UNISTDIO + /* Outside POSIX, it's preferrable to compare the width + against the number of _characters_ of the converted + value. */ + w = DCHAR_MBSNLEN (result + length, count); +# else + /* The width is compared against the number of _bytes_ + of the converted value, says POSIX. */ + w = count; +# endif + if (w < width) + { + size_t pad = width - w; +# if USE_SNPRINTF + /* Make room for the result. */ + if (xsum (count, pad) > allocated - length) + { + /* Need at least count + pad elements. But + allocate proportionally. */ + size_t n = + xmax (xsum3 (length, count, pad), + xtimes (allocated, 2)); + + length += count; + ENSURE_ALLOCATION (n); + length -= count; + } + /* Here count + pad <= allocated - length. */ +# endif + { +# if !DCHAR_IS_TCHAR || USE_SNPRINTF + DCHAR_T * const rp = result + length; +# else + DCHAR_T * const rp = tmp; +# endif + DCHAR_T *p = rp + count; + DCHAR_T *end = p + pad; + DCHAR_T *pad_ptr; +# if !DCHAR_IS_TCHAR + if (dp->conversion == 'c' + || dp->conversion == 's') + /* No zero-padding for string directives. */ + pad_ptr = NULL; + else +# endif + { + pad_ptr = (*rp == '-' ? rp + 1 : rp); + /* No zero-padding of "inf" and "nan". */ + if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z') + || (*pad_ptr >= 'a' && *pad_ptr <= 'z')) + pad_ptr = NULL; + } + /* The generated string now extends from rp to p, + with the zero padding insertion point being at + pad_ptr. */ + + count = count + pad; /* = end - rp */ + + if (flags & FLAG_LEFT) + { + /* Pad with spaces on the right. */ + for (; pad > 0; pad--) + *p++ = ' '; + } + else if ((flags & FLAG_ZERO) && pad_ptr != NULL) + { + /* Pad with zeroes. */ + DCHAR_T *q = end; + + while (p > pad_ptr) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = '0'; + } + else + { + /* Pad with spaces on the left. */ + DCHAR_T *q = end; + + while (p > rp) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = ' '; + } + } + } + } +#endif + +#if DCHAR_IS_TCHAR && !USE_SNPRINTF if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); #endif - /* Make room for the result. */ - if (count >= maxlen) - { - /* Need at least count bytes. But allocate - proportionally, to avoid looping eternally if - snprintf() reports a too small count. */ - size_t n = - xmax (xsum (length, count), xtimes (allocated, 2)); + /* Here still count <= allocated - length. */ - ENSURE_ALLOCATION (n); -#if USE_SNPRINTF - continue; -#endif - } - -#if USE_SNPRINTF +#if !DCHAR_IS_TCHAR || USE_SNPRINTF /* The snprintf() result did fit. */ #else /* Append the sprintf() result. */ - memcpy (result + length, tmp, count * sizeof (CHAR_T)); + memcpy (result + length, tmp, count * sizeof (DCHAR_T)); +#endif +#if !USE_SNPRINTF if (tmp != tmpbuf) free (tmp); #endif +#if NEED_PRINTF_DIRECTIVE_F + if (dp->conversion == 'F') + { + /* Convert the %f result to upper case for %F. */ + DCHAR_T *rp = result + length; + size_t rc; + for (rc = count; rc > 0; rc--, rp++) + if (*rp >= 'a' && *rp <= 'z') + *rp = *rp - 'a' + 'A'; + } +#endif + length += count; break; } @@ -851,9 +4650,9 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar if (result != resultbuf && length + 1 < allocated) { /* Shrink the allocated memory if possible. */ - CHAR_T *memory; + DCHAR_T *memory; - memory = (CHAR_T *) realloc (result, (length + 1) * sizeof (CHAR_T)); + memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T)); if (memory != NULL) result = memory; } @@ -868,6 +4667,17 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar not have this limitation. */ return result; +#if USE_SNPRINTF + overflow: + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EOVERFLOW; + return NULL; +#endif + out_of_memory: if (!(result == resultbuf || result == NULL)) free (result); @@ -880,10 +4690,15 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar } } +#undef TCHARS_PER_DCHAR #undef SNPRINTF #undef USE_SNPRINTF +#undef DCHAR_CPY #undef PRINTF_PARSE #undef DIRECTIVES #undef DIRECTIVE -#undef CHAR_T +#undef DCHAR_IS_TCHAR +#undef TCHAR_T +#undef DCHAR_T +#undef FCHAR_T #undef VASNPRINTF diff --git a/gl/vasnprintf.h b/gl/vasnprintf.h index 894008c..b9a3d6e 100644 --- a/gl/vasnprintf.h +++ b/gl/vasnprintf.h @@ -1,9 +1,9 @@ /* vsprintf with automatic memory allocation. - Copyright (C) 2002-2004 Free Software Foundation, Inc. + Copyright (C) 2002-2004, 2007-2008 Free Software Foundation, Inc. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -26,7 +26,7 @@ #ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) # define __attribute__(Spec) /* empty */ # endif /* The __-protected variants of `format' and `printf' attributes @@ -37,7 +37,7 @@ # endif #endif -#ifdef __cplusplus +#ifdef __cplusplus extern "C" { #endif @@ -65,12 +65,16 @@ extern "C" { free (output); } */ +#if REPLACE_VASNPRINTF +# define asnprintf rpl_asnprintf +# define vasnprintf rpl_vasnprintf +#endif extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args) __attribute__ ((__format__ (__printf__, 3, 0))); -#ifdef __cplusplus +#ifdef __cplusplus } #endif diff --git a/gl/vasprintf.c b/gl/vasprintf.c index 8247073..90f64e9 100644 --- a/gl/vasprintf.c +++ b/gl/vasprintf.c @@ -1,9 +1,9 @@ /* Formatted output to strings. - Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2006-2007 Free Software Foundation, Inc. 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -18,7 +18,11 @@ #include /* Specification. */ -#include "vasprintf.h" +#ifdef IN_LIBASPRINTF +# include "vasprintf.h" +#else +# include +#endif #include #include diff --git a/gl/vasprintf.h b/gl/vasprintf.h deleted file mode 100644 index ab5515c..0000000 --- a/gl/vasprintf.h +++ /dev/null @@ -1,63 +0,0 @@ -/* vsprintf with automatic memory allocation. - Copyright (C) 2002-2003 Free Software Foundation, Inc. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _VASPRINTF_H -#define _VASPRINTF_H - -#if HAVE_VASPRINTF - -/* Get asprintf(), vasprintf() declarations. */ -#include - -#else - -/* Get va_list. */ -#include - -#ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ -# define __attribute__(Spec) /* empty */ -# endif -/* The __-protected variants of `format' and `printf' attributes - are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) -# define __format__ format -# define __printf__ printf -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Write formatted output to a string dynamically allocated with malloc(). - If the memory allocation succeeds, store the address of the string in - *RESULT and return the number of resulting bytes, excluding the trailing - NUL. Upon memory allocation error, or some other error, return -1. */ -extern int asprintf (char **result, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); -extern int vasprintf (char **result, const char *format, va_list args) - __attribute__ ((__format__ (__printf__, 2, 0))); - -#ifdef __cplusplus -} -#endif - -#endif - -#endif /* _VASPRINTF_H */ diff --git a/gl/vsnprintf.c b/gl/vsnprintf.c index af567d2..cc8f61f 100644 --- a/gl/vsnprintf.c +++ b/gl/vsnprintf.c @@ -1,10 +1,10 @@ /* Formatted output to strings. - Copyright (C) 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 2004, 2006-2007 Free Software Foundation, Inc. Written by Simon Josefsson and Yoann Vandoorselaere . 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -21,12 +21,11 @@ #endif /* Specification. */ -#include "vsnprintf.h" +#include #include #include #include -#include #include #include @@ -41,7 +40,7 @@ additional length SIZE limit how much is written into STR. Returns string length of formatted string (which may be larger than SIZE). STR may be NULL, in which case nothing will be written. On error, - return a negative value. */ + return a negative value. */ int vsnprintf (char *str, size_t size, const char *format, va_list args) { diff --git a/gl/vsnprintf.h b/gl/vsnprintf.h deleted file mode 100644 index f80c77a..0000000 --- a/gl/vsnprintf.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Formatted output to strings. - Copyright (C) 2004 Free Software Foundation, Inc. - Written by Simon Josefsson and Yoann Vandoorselaere . - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef VSNPRINTF_H -#define VSNPRINTF_H - -#include - -/* Get vsnprintf declaration, if available. */ -#include - -#if defined HAVE_DECL_VSNPRINTF && !HAVE_DECL_VSNPRINTF -int vsnprintf (char *str, size_t size, const char *format, va_list args); -#endif - -#endif /* VSNPRINTF_H */ diff --git a/gl/wchar_.h b/gl/wchar.in.h similarity index 55% rename from gl/wchar_.h rename to gl/wchar.in.h index 6813a21..b721572 100644 --- a/gl/wchar_.h +++ b/gl/wchar.in.h @@ -4,7 +4,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -22,11 +22,11 @@ * ISO C 99 for platforms that have issues. * * - * For now, this just ensures proper prerequisite inclusion order. + * For now, this just ensures proper prerequisite inclusion order and + * the declaration of wcwidth(). */ #ifndef _GL_WCHAR_H -#define _GL_WCHAR_H /* Tru64 with Desktop Toolkit C has a bug: must be included before . @@ -36,7 +36,47 @@ #include #include -/* Include the original . */ -#include @ABSOLUTE_WCHAR_H@ +/* Include the original if it exists. + Some builds of uClibc lack it. */ +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_WCHAR_H@ +# @INCLUDE_NEXT@ @NEXT_WCHAR_H@ +#endif + +#ifndef _GL_WCHAR_H +#define _GL_WCHAR_H + +/* The definition of GL_LINK_WARNING is copied here. */ + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Return the number of screen columns needed for WC. */ +#if @GNULIB_WCWIDTH@ +# if @REPLACE_WCWIDTH@ +# undef wcwidth +# define wcwidth rpl_wcwidth +extern int wcwidth (wchar_t); +# else +# if !defined wcwidth && !@HAVE_DECL_WCWIDTH@ +/* wcwidth exists but is not declared. */ +extern int wcwidth (int /* actually wchar_t */); +# endif +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcwidth +# define wcwidth(w) \ + (GL_LINK_WARNING ("wcwidth is unportable - " \ + "use gnulib module wcwidth for portability"), \ + wcwidth (w)) +#endif + + +#ifdef __cplusplus +} +#endif #endif /* _GL_WCHAR_H */ +#endif /* _GL_WCHAR_H */ diff --git a/gl/wctype_.h b/gl/wctype.in.h similarity index 93% rename from gl/wctype_.h rename to gl/wctype.in.h index 1297c61..a86b5ad 100644 --- a/gl/wctype_.h +++ b/gl/wctype.in.h @@ -4,7 +4,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -27,7 +27,6 @@ */ #ifndef _GL_WCTYPE_H -#define _GL_WCTYPE_H #if @HAVE_WINT_T@ /* Solaris 2.5 has a bug: must be included before . @@ -39,20 +38,27 @@ # include # include # include +#endif + +/* Include the original if it exists. + BeOS 5 has the functions but no . */ +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_WCTYPE_H@ +# @INCLUDE_NEXT@ @NEXT_WCTYPE_H@ +#endif + +#ifndef _GL_WCTYPE_H +#define _GL_WCTYPE_H + +#if @HAVE_WINT_T@ typedef wint_t __wctype_wint_t; #else typedef int __wctype_wint_t; #endif -/* Include the original if it exists. - BeOS 5 has the functions but no . */ -#if @HAVE_WCTYPE_H@ -# include @ABSOLUTE_WCTYPE_H@ -#endif - /* FreeBSD 4.4 to 4.11 has but lacks the functions. Assume all 12 functions are implemented the same way, or not at all. */ -#if ! HAVE_ISWCNTRL +#if ! @HAVE_ISWCNTRL@ /* IRIX 5.3 has macros but no functions, its isw* macros refer to an undefined variable _ctmp_ and to macros like _P, and they @@ -152,3 +158,4 @@ iswxdigit (__wctype_wint_t wc) # endif /* ! HAVE_ISWCNTRL */ #endif /* _GL_WCTYPE_H */ +#endif /* _GL_WCTYPE_H */ diff --git a/gl/wcwidth.h b/gl/wcwidth.h deleted file mode 100644 index 8ed5ff8..0000000 --- a/gl/wcwidth.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Determine the number of screen columns needed for a character. - Copyright (C) 2006, 2007 Free Software Foundation, Inc. - - 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _gl_WCWIDTH_H -#define _gl_WCWIDTH_H - -#if HAVE_WCHAR_T - -/* Get wcwidth if available, along with wchar_t. */ -# include - -/* Get iswprint. */ -# include - -# ifndef HAVE_DECL_WCWIDTH -"this configure-time declaration test was not run" -# endif -# ifndef wcwidth -# if !HAVE_WCWIDTH - -/* wcwidth doesn't exist, so assume all printable characters have - width 1. */ -static inline int -wcwidth (wchar_t wc) -{ - return wc == 0 ? 0 : iswprint (wc) ? 1 : -1; -} - -# elif !HAVE_DECL_WCWIDTH - -/* wcwidth exists but is not declared. */ -extern -# ifdef __cplusplus -"C" -# endif -int wcwidth (int /* actually wchar_t */); - -# endif -# endif - -#endif /* HAVE_WCHAR_T */ - -#endif /* _gl_WCWIDTH_H */ diff --git a/gl/xalloc-die.c b/gl/xalloc-die.c index 090f060..0a0694f 100644 --- a/gl/xalloc-die.c +++ b/gl/xalloc-die.c @@ -3,10 +3,10 @@ Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,8 +14,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/xalloc.h b/gl/xalloc.h index 17ab514..40dcf4b 100644 --- a/gl/xalloc.h +++ b/gl/xalloc.h @@ -1,12 +1,12 @@ /* xalloc.h -- malloc with out-of-memory checking Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2003, 2004, 2006 Free Software Foundation, Inc. + 1999, 2000, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,8 +14,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #ifndef XALLOC_H_ # define XALLOC_H_ @@ -29,7 +28,7 @@ extern "C" { # ifndef __attribute__ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) # define __attribute__(x) # endif # endif @@ -139,10 +138,10 @@ xnrealloc (void *p, size_t n, size_t s) allocating an initial block with a nonzero size, or by allocating a larger block. - In the following implementation, nonzero sizes are doubled so that - repeated reallocations have O(N log N) overall cost rather than - O(N**2) cost, but the specification for this function does not - guarantee that sizes are doubled. + In the following implementation, nonzero sizes are increased by a + factor of approximately 1.5 so that repeated reallocations have + O(N) overall cost rather than O(N**2) cost, but the + specification for this function does not guarantee that rate. Here is an example of use: @@ -204,9 +203,13 @@ x2nrealloc (void *p, size_t *pn, size_t s) } else { - if (((size_t) -1) / 2 / s < n) + /* Set N = ceil (1.5 * N) so that progress is made if N == 1. + Check for overflow, so that N * S stays in size_t range. + The check is slightly conservative, but an exact check isn't + worth the trouble. */ + if ((size_t) -1 / 3 * 2 / s <= n) xalloc_die (); - n *= 2; + n += (n + 1) / 2; } *pn = n; diff --git a/gl/xmalloc.c b/gl/xmalloc.c index 318e0dd..3a12345 100644 --- a/gl/xmalloc.c +++ b/gl/xmalloc.c @@ -4,10 +4,10 @@ 1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,8 +15,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/gl/xsize.h b/gl/xsize.h index 341fb16..b294d66 100644 --- a/gl/xsize.h +++ b/gl/xsize.h @@ -4,7 +4,7 @@ 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, diff --git a/gl/xstrndup.c b/gl/xstrndup.c index afcbc1a..37488cd 100644 --- a/gl/xstrndup.c +++ b/gl/xstrndup.c @@ -1,11 +1,11 @@ /* Duplicate a bounded initial segment of a string, with out-of-memory checking. - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,15 +13,14 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include /* Specification. */ #include "xstrndup.h" -#include "strndup.h" +#include #include "xalloc.h" /* Return a newly allocated copy of at most N bytes of STRING. diff --git a/gl/xstrndup.h b/gl/xstrndup.h index 88354cf..4882e39 100644 --- a/gl/xstrndup.h +++ b/gl/xstrndup.h @@ -2,10 +2,10 @@ checking. Copyright (C) 2003 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,8 +13,7 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include diff --git a/lib/Makefile.am b/lib/Makefile.am index 36ff245..73c1291 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -5,8 +5,12 @@ SUBDIRS = tests noinst_LIBRARIES = libnagiosplug.a -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 +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 parse_ini.h extra_opts.h + +if USE_PARSE_INI +libnagiosplug_a_SOURCES += parse_ini.c extra_opts.c +endif USE_PARSE_INI INCLUDES = -I$(srcdir) -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins diff --git a/lib/Makefile.in b/lib/Makefile.in index 64c30d0..5d34fd7 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -35,40 +35,45 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +@USE_PARSE_INI_TRUE@am__append_1 = parse_ini.c extra_opts.c subdir = lib DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \ - $(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \ - $(top_srcdir)/gl/m4/dos.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \ + $(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/exitfail.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/fcntl-safer.m4 \ + $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ $(top_srcdir)/gl/m4/fstypename.m4 \ $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \ - $(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \ + $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/include_next.m4 \ + $(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ + $(top_srcdir)/gl/m4/intmax_t.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ - $(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/longdouble.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/longlong.m4 \ $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ - $(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \ - $(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \ - $(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \ + $(top_srcdir)/gl/m4/mbstate_t.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \ $(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \ @@ -78,21 +83,21 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \ - $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ - $(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \ + $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ + $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \ + $(top_srcdir)/gl/m4/strerror.m4 \ + $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \ $(top_srcdir)/gl/m4/strnlen.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/ulonglong.m4 \ $(top_srcdir)/gl/m4/unistd-safer.m4 \ $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \ $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \ - $(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ - $(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \ - $(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs @@ -102,8 +107,12 @@ LIBRARIES = $(noinst_LIBRARIES) ARFLAGS = cru libnagiosplug_a_AR = $(AR) $(ARFLAGS) libnagiosplug_a_LIBADD = +am__libnagiosplug_a_SOURCES_DIST = utils_base.c utils_disk.c \ + utils_tcp.c utils_cmd.c parse_ini.c extra_opts.c +@USE_PARSE_INI_TRUE@am__objects_1 = parse_ini.$(OBJEXT) \ +@USE_PARSE_INI_TRUE@ extra_opts.$(OBJEXT) am_libnagiosplug_a_OBJECTS = utils_base.$(OBJEXT) utils_disk.$(OBJEXT) \ - utils_tcp.$(OBJEXT) utils_cmd.$(OBJEXT) base64.$(OBJEXT) + utils_tcp.$(OBJEXT) utils_cmd.$(OBJEXT) $(am__objects_1) libnagiosplug_a_OBJECTS = $(am_libnagiosplug_a_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp @@ -117,7 +126,7 @@ CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libnagiosplug_a_SOURCES) -DIST_SOURCES = $(libnagiosplug_a_SOURCES) +DIST_SOURCES = $(am__libnagiosplug_a_SOURCES_DIST) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ @@ -129,10 +138,6 @@ CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) INSTALL = @INSTALL@ -ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@ -ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@ -ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@ -ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -177,27 +182,177 @@ EXTRA_NETOBJS = @EXTRA_NETOBJS@ EXTRA_TEST = @EXTRA_TEST@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLOAT_H = @FLOAT_H@ +FLOORF_LIBM = @FLOORF_LIBM@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLIBC21 = @GLIBC21@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@ GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MATHL = @GNULIB_MATHL@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GREP = @GREP@ +HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ +HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ +HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ +HAVE_DECL_COSL = @HAVE_DECL_COSL@ +HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ +HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ +HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_SINL = @HAVE_DECL_SINL@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TANL = @HAVE_DECL_TANL@ +HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ +HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ +HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DUP2 = @HAVE_DUP2@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ +HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRNDUP = @HAVE_STRNDUP@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRSEP = @HAVE_STRSEP@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE__BOOL = @HAVE__BOOL@ HOSTNAME = @HOSTNAME@ +INCLUDE_NEXT = @INCLUDE_NEXT@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -218,6 +373,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ @@ -231,6 +387,17 @@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NEED_SETGID = @NEED_SETGID@ NETINET_IN_H = @NETINET_IN_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_MATH_H = @NEXT_MATH_H@ +NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -269,11 +436,56 @@ PKG_ARCH = @PKG_ARCH@ PLUGIN_TEST = @PLUGIN_TEST@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +PST3CFLAGS = @PST3CFLAGS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON = @PYTHON@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ +REPLACE_CEILF = @REPLACE_CEILF@ +REPLACE_CEILL = @REPLACE_CEILL@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FLOORF = @REPLACE_FLOORF@ +REPLACE_FLOORL = @REPLACE_FLOORL@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FREXP = @REPLACE_FREXP@ +REPLACE_FREXPL = @REPLACE_FREXPL@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_ISFINITE = @REPLACE_ISFINITE@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LDEXPL = @REPLACE_LDEXPL@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_ROUND = @REPLACE_ROUND@ +REPLACE_ROUNDF = @REPLACE_ROUNDF@ +REPLACE_ROUNDL = @REPLACE_ROUNDL@ +REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REV_DATESTAMP = @REV_DATESTAMP@ REV_TIMESTAMP = @REV_TIMESTAMP@ SCRIPT_TEST = @SCRIPT_TEST@ @@ -290,9 +502,11 @@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ SYS_SOCKET_H = @SYS_SOCKET_H@ -UNISTD_H = @UNISTD_H@ USE_NLS = @USE_NLS@ +USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@ +USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@ VERSION = @VERSION@ +VOID_UNSETENV = @VOID_UNSETENV@ WARRANTY = @WARRANTY@ WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ @@ -300,6 +514,7 @@ WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ @@ -326,6 +541,8 @@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -354,8 +571,9 @@ 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 base64.c -EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h base64.h +libnagiosplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c \ + utils_cmd.c $(am__append_1) +EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h parse_ini.h extra_opts.h INCLUDES = -I$(srcdir) -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins all: all-recursive @@ -404,7 +622,8 @@ 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)/extra_opts.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse_ini.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@ diff --git a/lib/base64.c b/lib/base64.c deleted file mode 100644 index 1f1fcb8..0000000 --- a/lib/base64.c +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -* 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; -} - diff --git a/lib/base64.h b/lib/base64.h deleted file mode 100644 index 1e0a0b0..0000000 --- a/lib/base64.h +++ /dev/null @@ -1,4 +0,0 @@ -/* Header file for base64.c */ - -char *base64 (const char *bin, size_t len); - diff --git a/lib/extra_opts.c b/lib/extra_opts.c new file mode 100644 index 0000000..b555417 --- /dev/null +++ b/lib/extra_opts.c @@ -0,0 +1,142 @@ +/***************************************************************************** +* +* Nagios-plugins extra_opts library +* +* License: GPL +* Copyright (c) 2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-03-15 18:42:01 -0400 (Sat, 15 Mar 2008) $ +* +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: parse_ini.c 1950 2008-03-15 22:42:01Z dermoth $ +* +*****************************************************************************/ + +#include "common.h" +#include "utils_base.h" +#include "parse_ini.h" +#include "extra_opts.h" + +/* FIXME: copied from utils.h; we should move a bunch of libs! */ +int +is_option2 (char *str) +{ + if (!str) + return FALSE; + else if (strspn (str, "-") == 1 || strspn (str, "-") == 2) + return TRUE; + else + return FALSE; +} + +/* this is the externally visible function used by plugins */ +char **np_extra_opts(int *argc, char **argv, const char *plugin_name){ + np_arg_list *extra_args=NULL, *ea1=NULL, *ea_tmp=NULL; + char **argv_new=NULL; + char *argptr=NULL; + int i, j, optfound, argc_new, ea_num=*argc; + + if(*argc<2) { + /* No arguments provided */ + return argv; + } + + for(i=1; i<*argc; i++){ + argptr=NULL; + optfound=0; + + /* Do we have an extra-opts parameter? */ + if(strncmp(argv[i], "--extra-opts=", 13)==0){ + /* It is a single argument with value */ + argptr=argv[i]+13; + /* Delete the extra opts argument */ + for(j=i;j<*argc;j++) argv[j]=argv[j+1]; + i--; + *argc-=1; + }else if(strcmp(argv[i], "--extra-opts")==0){ + if((i+1<*argc)&&!is_option2(argv[i+1])){ + /* It is a argument with separate value */ + argptr=argv[i+1]; + /* Delete the extra-opts argument/value */ + for(j=i;j<*argc-1;j++) argv[j]=argv[j+2]; + i-=2; + *argc-=2; + ea_num--; + }else{ + /* It has no value */ + optfound=1; + /* Delete the extra opts argument */ + for(j=i;j<*argc;j++) argv[j]=argv[j+1]; + i--; + *argc-=1; + } + } + + /* If we found extra-opts, expand them and store them for later*/ + if(argptr||optfound){ + /* Process ini section, returning a linked list of arguments */ + ea1=np_get_defaults(argptr, plugin_name); + if(ea1==NULL) { + /* no extra args (empty section)? */ + ea_num--; + continue; + } + + /* append the list to extra_args */ + if(extra_args==NULL){ + extra_args=ea1; + while(ea1=ea1->next) ea_num++; + }else{ + ea_tmp=extra_args; + while(ea_tmp->next) { + ea_tmp=ea_tmp->next; + ea_num++; + } + ea_tmp->next=ea1; + } + ea1=ea_tmp=NULL; + } + /* lather, rince, repeat */ + } + + if(ea_num==*argc && extra_args==NULL){ + /* No extra-opts */ + return argv; + } + + /* done processing arguments. now create a new argv array... */ + argv_new=(char**)malloc((ea_num+1)*sizeof(char**)); + if(argv_new==NULL) die(STATE_UNKNOWN, _("malloc() failed!\n")); + + /* starting with program name */ + argv_new[0]=argv[0]; + argc_new=1; + /* then parsed ini opts (frying them up in the same run) */ + while(extra_args){ + argv_new[argc_new++]=extra_args->arg; + ea1=extra_args; + extra_args=extra_args->next; + free(ea1); + } + /* finally the rest of the argv array */ + for (i=1; i<*argc; i++) argv_new[argc_new++]=argv[i]; + *argc=argc_new; + /* and terminate. */ + argv_new[argc_new]=NULL; + + return argv_new; +} + diff --git a/lib/extra_opts.h b/lib/extra_opts.h new file mode 100644 index 0000000..0cb47fb --- /dev/null +++ b/lib/extra_opts.h @@ -0,0 +1,20 @@ +#ifndef _EXTRA_OPTS_H_ +#define _EXTRA_OPTS_H_ + +/* + * extra_opts.h: routines for loading nagios-plugin defaults from ini + * configuration files. + */ + +/* np_extra_opts: Process the --extra-opts arguments and create a new argument + * array with ini-processed and argument-passed arguments together. The + * ini-procesed arguments always come first (in the ord of --extra-opts + * arguments). If no --extra-opts arguments are provided or returned nothing + * it returns **argv otherwise the new array is returned. --extra-opts are + * always removed from **argv. The original pointers from **argv are kept in + * the new array to preserve ability to overwrite arguments in processlist. + */ +char **np_extra_opts(int *argc, char **argv, const char *plugin_name); + +#endif /* _EXTRA_OPTS_H_ */ + diff --git a/lib/parse_ini.c b/lib/parse_ini.c new file mode 100644 index 0000000..e9e960e --- /dev/null +++ b/lib/parse_ini.c @@ -0,0 +1,368 @@ +/***************************************************************************** +* +* Nagios-plugins parse_ini library +* +* License: GPL +* Copyright (c) 2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-04-04 11:11:22 +0100 (Fri, 04 Apr 2008) $ +* +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: parse_ini.c 1976 2008-04-04 10:11:22Z dermoth $ +* +*****************************************************************************/ + +#include "common.h" +#include "utils_base.h" +#include "parse_ini.h" +#include + +#include +#include +#include + +/* TODO: die like N::P if config file is not found */ + +/* np_ini_info contains the result of parsing a "locator" in the format + * [stanza_name][@config_filename] (check_foo@/etc/foo.ini, for example) + */ +typedef struct { + char *file; + char *stanza; +} np_ini_info; + +/* eat all characters from a FILE pointer until n is encountered */ +#define GOBBLE_TO(f, c, n) do { (c)=fgetc((f)); } while((c)!=EOF && (c)!=(n)) + +/* internal function that returns the constructed defaults options */ +static int read_defaults(FILE *f, const char *stanza, np_arg_list **opts); +/* internal function that converts a single line into options format */ +static int add_option(FILE *f, np_arg_list **optlst); +/* internal function to find default file */ +static char* default_file(void); +/* internal function to stat() files */ +static int test_file(const char* env, int len, const char* file, char* temp_file); + +/* parse_locator decomposes a string of the form + * [stanza][@filename] + * into its seperate parts + */ +static void parse_locator(const char *locator, const char *def_stanza, np_ini_info *i){ + size_t locator_len=0, stanza_len=0; + + /* if locator is NULL we'll use default values */ + if(locator){ + locator_len=strlen(locator); + stanza_len=strcspn(locator, "@"); + } + /* if a non-default stanza is provided */ + if(stanza_len>0){ + i->stanza=(char*)malloc(sizeof(char)*(stanza_len+1)); + strncpy(i->stanza, locator, stanza_len); + i->stanza[stanza_len]='\0'; + } else { /* otherwise we use the default stanza */ + i->stanza=strdup(def_stanza); + } + /* if there is no @file part */ + if(stanza_len==locator_len){ + i->file=default_file(); + } else { + i->file=strdup(&(locator[stanza_len+1])); + } + + if(i->file==NULL || i->stanza==NULL){ + die(STATE_UNKNOWN, _("malloc() failed!\n")); + } +} + +/* this is the externally visible function used by extra_opts */ +np_arg_list* np_get_defaults(const char *locator, const char *default_section){ + FILE *inifile=NULL; + np_arg_list *defaults=NULL; + np_ini_info i; + + parse_locator(locator, default_section, &i); + /* if a file was specified or if we're using the default file */ + if(i.file != NULL && strlen(i.file) > 0){ + if(strcmp(i.file, "-")==0){ + inifile=stdin; + } else { + inifile=fopen(i.file, "r"); + } + if(inifile==NULL) die(STATE_UNKNOWN, _("Can't read config file")); + if(read_defaults(inifile, i.stanza, &defaults)==FALSE) + die(STATE_UNKNOWN, _("Invalid section '%s' in config file '%s'\n"), i.stanza, i.file); + + free(i.file); + if(inifile!=stdin) fclose(inifile); + } + free(i.stanza); + return defaults; +} + +/* read_defaults is where the meat of the parsing takes place. + * + * note that this may be called by a setuid binary, so we need to + * be extra careful about user-supplied input (i.e. avoiding possible + * format string vulnerabilities, etc) + */ +static int read_defaults(FILE *f, const char *stanza, np_arg_list **opts){ + int c, status=FALSE; + size_t i, stanza_len; + enum { NOSTANZA, WRONGSTANZA, RIGHTSTANZA } stanzastate=NOSTANZA; + + stanza_len=strlen(stanza); + + /* our little stanza-parsing state machine. */ + while((c=fgetc(f))!=EOF){ + /* gobble up leading whitespace */ + if(isspace(c)) continue; + switch(c){ + /* globble up coment lines */ + case '#': + GOBBLE_TO(f, c, '\n'); + break; + /* start of a stanza. check to see if it matches */ + case '[': + stanzastate=WRONGSTANZA; + for(i=0; i= linebuf_sz){ + linebuf_sz=(linebuf_sz>0)?linebuf_sz<<1:read_sz; + linebuf=realloc(linebuf, linebuf_sz); + if(linebuf==NULL) die(STATE_UNKNOWN, _("malloc() failed!\n")); + } + if(fgets(&linebuf[read_pos], read_sz, f)==NULL) done_reading=1; + else { + read_pos=strlen(linebuf); + if(linebuf[read_pos-1]=='\n') { + linebuf[--read_pos]='\0'; + done_reading=1; + } + } + } + lineend=&linebuf[read_pos]; + /* all that to read one line. isn't C fun? :) now comes the parsing :/ */ + + /* skip leading whitespace */ + for(optptr=linebuf; optptrnext=NULL; + + read_pos=0; + optnew->arg=(char *)malloc(cfg_len+1); + /* 1-character params needs only one dash */ + if(opt_len==1) { + strncpy(&optnew->arg[read_pos], "-", 1); + read_pos+=1; + } else { + strncpy(&optnew->arg[read_pos], "--", 2); + read_pos+=2; + } + strncpy(&optnew->arg[read_pos], optptr, opt_len); read_pos+=opt_len; + if(value) { + optnew->arg[read_pos++]='='; + strncpy(&optnew->arg[read_pos], valptr, val_len); read_pos+=val_len; + } + optnew->arg[read_pos]='\0'; + + /* ...and put that to the end of the list */ + if(*optlst==NULL) { + *optlst=optnew; + } else { + while(opttmp->next!=NULL) { + opttmp=opttmp->next; + } + opttmp->next = optnew; + } + + free(linebuf); + return 0; +} + +static char* default_file(void){ + struct stat sb; + char *np_env=NULL, *default_file=NULL; + char temp_file[MAX_INPUT_BUFFER]; + size_t len; + + if((np_env=getenv("NAGIOS_CONFIG_PATH"))!=NULL) { + /* skip ant starting colon... */ + while(*np_env==':') np_env++; + /* Look for NP_DEFAULT_INI_FILENAME1 and NP_DEFAULT_INI_FILENAME2 in + * every PATHs defined (colon-separated). + */ + while((len=strcspn(np_env,":"))>0){ + /* Test NP_DEFAULT_INI_FILENAME[1-2] in current np_env token */ + if(test_file(np_env,len,NP_DEFAULT_INI_FILENAME1,temp_file)==1 || + test_file(np_env,len,NP_DEFAULT_INI_FILENAME2,temp_file)==1){ + default_file=strdup(temp_file); + break; + } + + /* Move on to the next token */ + np_env+=len; + while(*np_env==':') np_env++; + } /* while(...) */ + } /* if(getenv("NAGIOS_CONFIG_PATH")) */ + + /* Look for NP_DEFAULT_INI_FILENAME1 in NP_DEFAULT_INI_NAGIOS_PATH[1-4] */ + if(!default_file){ + if(test_file(NP_DEFAULT_INI_NAGIOS_PATH1,strlen(NP_DEFAULT_INI_NAGIOS_PATH1),NP_DEFAULT_INI_FILENAME1,temp_file)==1 || + test_file(NP_DEFAULT_INI_NAGIOS_PATH2,strlen(NP_DEFAULT_INI_NAGIOS_PATH2),NP_DEFAULT_INI_FILENAME1,temp_file)==1 || + test_file(NP_DEFAULT_INI_NAGIOS_PATH3,strlen(NP_DEFAULT_INI_NAGIOS_PATH3),NP_DEFAULT_INI_FILENAME1,temp_file)==1 || + test_file(NP_DEFAULT_INI_NAGIOS_PATH4,strlen(NP_DEFAULT_INI_NAGIOS_PATH4),NP_DEFAULT_INI_FILENAME1,temp_file)==1) + default_file=strdup(temp_file); + } + + /* Look for NP_DEFAULT_INI_FILENAME2 in NP_DEFAULT_INI_PATH[1-3] */ + if(!default_file){ + if(test_file(NP_DEFAULT_INI_PATH1,strlen(NP_DEFAULT_INI_PATH1),NP_DEFAULT_INI_FILENAME2,temp_file)==1 || + test_file(NP_DEFAULT_INI_PATH2,strlen(NP_DEFAULT_INI_PATH2),NP_DEFAULT_INI_FILENAME2,temp_file)==1 || + test_file(NP_DEFAULT_INI_PATH3,strlen(NP_DEFAULT_INI_PATH3),NP_DEFAULT_INI_FILENAME2,temp_file)==1) + default_file=strdup(temp_file); + } + + /* Return default_file or empty string (should return NULL if we want to + * die there... + */ + if(default_file) + return default_file; + return ""; +} + +/* put together len bytes from env and the filename and test for its + * existence. Returns 1 if found, 0 if not and -1 if test wasn't performed. + */ +static int test_file(const char* env, int len, const char* file, char* temp_file){ + struct stat sb; + + /* test for len + filelen + '/' + '\0' */ + if((len+strlen(file)+2)>MAX_INPUT_BUFFER) return -1; + + strncpy(temp_file,env,len); + temp_file[len]='\0'; + strncat(temp_file,"/",len+1); + strncat(temp_file,file,len+strlen(file)+1); + + if(stat(temp_file, &sb) != -1) return 1; + return 0; +} + diff --git a/lib/parse_ini.h b/lib/parse_ini.h new file mode 100644 index 0000000..6357a0e --- /dev/null +++ b/lib/parse_ini.h @@ -0,0 +1,62 @@ +#ifndef _PARSE_INI_H_ +#define _PARSE_INI_H_ + +/* + * parse_ini.h: routines for loading nagios-plugin defaults from ini + * configuration files. + */ + +/* np_arg_list is a linked list of arguments passed between the ini + * parser and the argument parser to construct the final array */ +typedef struct np_arg_el { + char *arg; + struct np_arg_el *next; +} np_arg_list; + +/* FIXME: This is in plugins/common.c. Should be eventually moved to lib/ + * (although for this particular one a configure settings should be ideal) + */ +#ifndef MAX_INPUT_BUFFER +# define MAX_INPUT_BUFFER 8192 +#endif /* MAX_INPUT_BUFFER */ + +/* Filenames (see below) */ +#ifndef NP_DEFAULT_INI_FILENAME1 +# define NP_DEFAULT_INI_FILENAME1 "plugins.ini" +#endif /* NP_DEFAULT_INI_FILENAME1 */ +#ifndef NP_DEFAULT_INI_FILENAME2 +# define NP_DEFAULT_INI_FILENAME2 "nagios-plugins.ini" +#endif /* NP_DEFAULT_INI_FILENAME2 */ + +/* Config paths ending in nagios (search for NP_DEFAULT_INI_FILENAME1) */ +#ifndef NP_DEFAULT_INI_NAGIOS_PATH1 +# define NP_DEFAULT_INI_NAGIOS_PATH1 "/etc/nagios" +#endif /* NP_DEFAULT_INI_NAGIOS_PATH1 */ +#ifndef NP_DEFAULT_INI_NAGIOS_PATH2 +# define NP_DEFAULT_INI_NAGIOS_PATH2 "/usr/local/nagios/etc" +#endif /* NP_DEFAULT_INI_NAGIOS_PATH2 */ +#ifndef NP_DEFAULT_INI_NAGIOS_PATH3 +# define NP_DEFAULT_INI_NAGIOS_PATH3 "/usr/local/etc/nagios" +#endif /* NP_DEFAULT_INI_NAGIOS_PATH3 */ +#ifndef NP_DEFAULT_INI_NAGIOS_PATH4 +# define NP_DEFAULT_INI_NAGIOS_PATH4 "/etc/opt/nagios" +#endif /* NP_DEFAULT_INI_NAGIOS_PATH4 */ + +/* Config paths not ending in nagios (search for NP_DEFAULT_INI_FILENAME2) */ +#ifndef NP_DEFAULT_INI_PATH1 +# define NP_DEFAULT_INI_PATH1 "/etc" +#endif /* NP_DEFAULT_INI_PATH1 */ +#ifndef NP_DEFAULT_INI_PATH2 +# define NP_DEFAULT_INI_PATH2 "/usr/local/etc" +#endif /* NP_DEFAULT_INI_PATH2 */ +#ifndef NP_DEFAULT_INI_PATH3 +# define NP_DEFAULT_INI_PATH3 "/etc/opt" +#endif /* NP_DEFAULT_INI_PATH3 */ + +/* np_load_defaults: load the default configuration (if present) for + * a plugin from the ini file + */ +np_arg_list* np_get_defaults(const char *locator, const char *default_section); + +#endif /* _PARSE_INI_H_ */ + diff --git a/lib/tests/Makefile.am b/lib/tests/Makefile.am index 0ddc8ab..25e2bed 100644 --- a/lib/tests/Makefile.am +++ b/lib/tests/Makefile.am @@ -7,9 +7,11 @@ 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 test_base64 +EXTRA_PROGRAMS = test_utils test_disk test_tcp test_cmd test_base64 test_ini test_opts -EXTRA_DIST = test_utils.t test_disk.t test_tcp.t test_cmd.t test_base64.t +np_test_scripts = test_base64.t test_cmd.t test_disk.t test_ini.t test_opts.t test_tcp.t test_utils.t +np_test_files = config-dos.ini config-opts.ini config-tiny.ini plugin.ini plugins.ini +EXTRA_DIST = $(np_test_scripts) $(np_test_files) LIBS = @LIBINTL@ @@ -36,7 +38,17 @@ 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_base64_LDADD = $(top_srcdir)/gl/base64.o + +test_ini_SOURCES = test_ini.c +test_ini_CFLAGS = -g -I.. +test_ini_LDFLAGS = -L/usr/local/lib -ltap +test_ini_LDADD = ../utils_base.o ../parse_ini.o + +test_opts_SOURCES = test_opts.c +test_opts_CFLAGS = -g -I.. +test_opts_LDFLAGS = -L/usr/local/lib -ltap +test_opts_LDADD = ../utils_base.o ../parse_ini.o ../extra_opts.o test: ${noinst_PROGRAMS} perl -MTest::Harness -e '$$Test::Harness::switches=""; runtests(map {$$_ .= ".t"} @ARGV)' $(EXTRA_PROGRAMS) diff --git a/lib/tests/Makefile.in b/lib/tests/Makefile.in index bb5d239..415c9b2 100644 --- a/lib/tests/Makefile.in +++ b/lib/tests/Makefile.in @@ -38,41 +38,46 @@ 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_base64$(EXEEXT) + test_tcp$(EXEEXT) test_cmd$(EXEEXT) test_base64$(EXEEXT) \ + test_ini$(EXEEXT) test_opts$(EXEEXT) subdir = lib/tests DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \ - $(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \ - $(top_srcdir)/gl/m4/dos.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \ + $(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/exitfail.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/fcntl-safer.m4 \ + $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ $(top_srcdir)/gl/m4/fstypename.m4 \ $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \ - $(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \ + $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/include_next.m4 \ + $(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ + $(top_srcdir)/gl/m4/intmax_t.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ - $(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/longdouble.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/longlong.m4 \ $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ - $(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \ - $(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \ - $(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \ + $(top_srcdir)/gl/m4/mbstate_t.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \ $(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \ @@ -82,21 +87,21 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \ - $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ - $(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \ + $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ + $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \ + $(top_srcdir)/gl/m4/strerror.m4 \ + $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \ $(top_srcdir)/gl/m4/strnlen.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/ulonglong.m4 \ $(top_srcdir)/gl/m4/unistd-safer.m4 \ $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \ $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \ - $(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ - $(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \ - $(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs @@ -105,13 +110,20 @@ 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 +test_base64_DEPENDENCIES = $(top_srcdir)/gl/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 am_test_disk_OBJECTS = test_disk-test_disk.$(OBJEXT) test_disk_OBJECTS = $(am_test_disk_OBJECTS) test_disk_DEPENDENCIES = ../utils_disk.o $(top_srcdir)/gl/libgnu.a +am_test_ini_OBJECTS = test_ini-test_ini.$(OBJEXT) +test_ini_OBJECTS = $(am_test_ini_OBJECTS) +test_ini_DEPENDENCIES = ../utils_base.o ../parse_ini.o +am_test_opts_OBJECTS = test_opts-test_opts.$(OBJEXT) +test_opts_OBJECTS = $(am_test_opts_OBJECTS) +test_opts_DEPENDENCIES = ../utils_base.o ../parse_ini.o \ + ../extra_opts.o am_test_tcp_OBJECTS = test_tcp-test_tcp.$(OBJEXT) test_tcp_OBJECTS = $(am_test_tcp_OBJECTS) test_tcp_DEPENDENCIES = ../utils_tcp.o @@ -130,17 +142,15 @@ CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(test_base64_SOURCES) $(test_cmd_SOURCES) \ - $(test_disk_SOURCES) $(test_tcp_SOURCES) $(test_utils_SOURCES) + $(test_disk_SOURCES) $(test_ini_SOURCES) $(test_opts_SOURCES) \ + $(test_tcp_SOURCES) $(test_utils_SOURCES) DIST_SOURCES = $(test_base64_SOURCES) $(test_cmd_SOURCES) \ - $(test_disk_SOURCES) $(test_tcp_SOURCES) $(test_utils_SOURCES) + $(test_disk_SOURCES) $(test_ini_SOURCES) $(test_opts_SOURCES) \ + $(test_tcp_SOURCES) $(test_utils_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) INSTALL = @INSTALL@ -ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@ -ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@ -ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@ -ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -185,27 +195,177 @@ EXTRA_NETOBJS = @EXTRA_NETOBJS@ EXTRA_TEST = @EXTRA_TEST@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLOAT_H = @FLOAT_H@ +FLOORF_LIBM = @FLOORF_LIBM@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLIBC21 = @GLIBC21@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@ GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MATHL = @GNULIB_MATHL@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GREP = @GREP@ +HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ +HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ +HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ +HAVE_DECL_COSL = @HAVE_DECL_COSL@ +HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ +HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ +HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_SINL = @HAVE_DECL_SINL@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TANL = @HAVE_DECL_TANL@ +HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ +HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ +HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DUP2 = @HAVE_DUP2@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ +HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRNDUP = @HAVE_STRNDUP@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRSEP = @HAVE_STRSEP@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE__BOOL = @HAVE__BOOL@ HOSTNAME = @HOSTNAME@ +INCLUDE_NEXT = @INCLUDE_NEXT@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -226,6 +386,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBINTL@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ @@ -239,6 +400,17 @@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NEED_SETGID = @NEED_SETGID@ NETINET_IN_H = @NETINET_IN_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_MATH_H = @NEXT_MATH_H@ +NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -277,11 +449,56 @@ PKG_ARCH = @PKG_ARCH@ PLUGIN_TEST = @PLUGIN_TEST@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +PST3CFLAGS = @PST3CFLAGS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON = @PYTHON@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ +REPLACE_CEILF = @REPLACE_CEILF@ +REPLACE_CEILL = @REPLACE_CEILL@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FLOORF = @REPLACE_FLOORF@ +REPLACE_FLOORL = @REPLACE_FLOORL@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FREXP = @REPLACE_FREXP@ +REPLACE_FREXPL = @REPLACE_FREXPL@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_ISFINITE = @REPLACE_ISFINITE@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LDEXPL = @REPLACE_LDEXPL@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_ROUND = @REPLACE_ROUND@ +REPLACE_ROUNDF = @REPLACE_ROUNDF@ +REPLACE_ROUNDL = @REPLACE_ROUNDL@ +REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REV_DATESTAMP = @REV_DATESTAMP@ REV_TIMESTAMP = @REV_TIMESTAMP@ SCRIPT_TEST = @SCRIPT_TEST@ @@ -298,9 +515,11 @@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ SYS_SOCKET_H = @SYS_SOCKET_H@ -UNISTD_H = @UNISTD_H@ USE_NLS = @USE_NLS@ +USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@ +USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@ VERSION = @VERSION@ +VOID_UNSETENV = @VOID_UNSETENV@ WARRANTY = @WARRANTY@ WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ @@ -308,6 +527,7 @@ WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ @@ -334,6 +554,8 @@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -364,7 +586,9 @@ 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 test_base64.t +np_test_scripts = test_base64.t test_cmd.t test_disk.t test_ini.t test_opts.t test_tcp.t test_utils.t +np_test_files = config-dos.ini config-opts.ini config-tiny.ini plugin.ini plugins.ini +EXTRA_DIST = $(np_test_scripts) $(np_test_files) test_utils_SOURCES = test_utils.c test_utils_CFLAGS = -g -I.. test_utils_LDFLAGS = -L/usr/local/lib -ltap @@ -384,7 +608,15 @@ 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_base64_LDADD = $(top_srcdir)/gl/base64.o +test_ini_SOURCES = test_ini.c +test_ini_CFLAGS = -g -I.. +test_ini_LDFLAGS = -L/usr/local/lib -ltap +test_ini_LDADD = ../utils_base.o ../parse_ini.o +test_opts_SOURCES = test_opts.c +test_opts_CFLAGS = -g -I.. +test_opts_LDFLAGS = -L/usr/local/lib -ltap +test_opts_LDADD = ../utils_base.o ../parse_ini.o ../extra_opts.o all: all-am .SUFFIXES: @@ -441,6 +673,12 @@ test_cmd$(EXEEXT): $(test_cmd_OBJECTS) $(test_cmd_DEPENDENCIES) test_disk$(EXEEXT): $(test_disk_OBJECTS) $(test_disk_DEPENDENCIES) @rm -f test_disk$(EXEEXT) $(LINK) $(test_disk_LDFLAGS) $(test_disk_OBJECTS) $(test_disk_LDADD) $(LIBS) +test_ini$(EXEEXT): $(test_ini_OBJECTS) $(test_ini_DEPENDENCIES) + @rm -f test_ini$(EXEEXT) + $(LINK) $(test_ini_LDFLAGS) $(test_ini_OBJECTS) $(test_ini_LDADD) $(LIBS) +test_opts$(EXEEXT): $(test_opts_OBJECTS) $(test_opts_DEPENDENCIES) + @rm -f test_opts$(EXEEXT) + $(LINK) $(test_opts_LDFLAGS) $(test_opts_OBJECTS) $(test_opts_LDADD) $(LIBS) test_tcp$(EXEEXT): $(test_tcp_OBJECTS) $(test_tcp_DEPENDENCIES) @rm -f test_tcp$(EXEEXT) $(LINK) $(test_tcp_LDFLAGS) $(test_tcp_OBJECTS) $(test_tcp_LDADD) $(LIBS) @@ -457,6 +695,8 @@ distclean-compile: @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_ini-test_ini.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_opts-test_opts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_tcp-test_tcp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_utils-test_utils.Po@am__quote@ @@ -523,6 +763,34 @@ test_disk-test_disk.obj: test_disk.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_disk_CFLAGS) $(CFLAGS) -c -o test_disk-test_disk.obj `if test -f 'test_disk.c'; then $(CYGPATH_W) 'test_disk.c'; else $(CYGPATH_W) '$(srcdir)/test_disk.c'; fi` +test_ini-test_ini.o: test_ini.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_ini_CFLAGS) $(CFLAGS) -MT test_ini-test_ini.o -MD -MP -MF "$(DEPDIR)/test_ini-test_ini.Tpo" -c -o test_ini-test_ini.o `test -f 'test_ini.c' || echo '$(srcdir)/'`test_ini.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_ini-test_ini.Tpo" "$(DEPDIR)/test_ini-test_ini.Po"; else rm -f "$(DEPDIR)/test_ini-test_ini.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test_ini.c' object='test_ini-test_ini.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_ini_CFLAGS) $(CFLAGS) -c -o test_ini-test_ini.o `test -f 'test_ini.c' || echo '$(srcdir)/'`test_ini.c + +test_ini-test_ini.obj: test_ini.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_ini_CFLAGS) $(CFLAGS) -MT test_ini-test_ini.obj -MD -MP -MF "$(DEPDIR)/test_ini-test_ini.Tpo" -c -o test_ini-test_ini.obj `if test -f 'test_ini.c'; then $(CYGPATH_W) 'test_ini.c'; else $(CYGPATH_W) '$(srcdir)/test_ini.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_ini-test_ini.Tpo" "$(DEPDIR)/test_ini-test_ini.Po"; else rm -f "$(DEPDIR)/test_ini-test_ini.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test_ini.c' object='test_ini-test_ini.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_ini_CFLAGS) $(CFLAGS) -c -o test_ini-test_ini.obj `if test -f 'test_ini.c'; then $(CYGPATH_W) 'test_ini.c'; else $(CYGPATH_W) '$(srcdir)/test_ini.c'; fi` + +test_opts-test_opts.o: test_opts.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_opts_CFLAGS) $(CFLAGS) -MT test_opts-test_opts.o -MD -MP -MF "$(DEPDIR)/test_opts-test_opts.Tpo" -c -o test_opts-test_opts.o `test -f 'test_opts.c' || echo '$(srcdir)/'`test_opts.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_opts-test_opts.Tpo" "$(DEPDIR)/test_opts-test_opts.Po"; else rm -f "$(DEPDIR)/test_opts-test_opts.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test_opts.c' object='test_opts-test_opts.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_opts_CFLAGS) $(CFLAGS) -c -o test_opts-test_opts.o `test -f 'test_opts.c' || echo '$(srcdir)/'`test_opts.c + +test_opts-test_opts.obj: test_opts.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_opts_CFLAGS) $(CFLAGS) -MT test_opts-test_opts.obj -MD -MP -MF "$(DEPDIR)/test_opts-test_opts.Tpo" -c -o test_opts-test_opts.obj `if test -f 'test_opts.c'; then $(CYGPATH_W) 'test_opts.c'; else $(CYGPATH_W) '$(srcdir)/test_opts.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_opts-test_opts.Tpo" "$(DEPDIR)/test_opts-test_opts.Po"; else rm -f "$(DEPDIR)/test_opts-test_opts.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test_opts.c' object='test_opts-test_opts.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_opts_CFLAGS) $(CFLAGS) -c -o test_opts-test_opts.obj `if test -f 'test_opts.c'; then $(CYGPATH_W) 'test_opts.c'; else $(CYGPATH_W) '$(srcdir)/test_opts.c'; fi` + test_tcp-test_tcp.o: test_tcp.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_tcp_CFLAGS) $(CFLAGS) -MT test_tcp-test_tcp.o -MD -MP -MF "$(DEPDIR)/test_tcp-test_tcp.Tpo" -c -o test_tcp-test_tcp.o `test -f 'test_tcp.c' || echo '$(srcdir)/'`test_tcp.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_tcp-test_tcp.Tpo" "$(DEPDIR)/test_tcp-test_tcp.Po"; else rm -f "$(DEPDIR)/test_tcp-test_tcp.Tpo"; exit 1; fi diff --git a/lib/tests/config-dos.ini b/lib/tests/config-dos.ini new file mode 100644 index 0000000..0cea3f3 --- /dev/null +++ b/lib/tests/config-dos.ini @@ -0,0 +1,24 @@ +# This config file is amended from perl's Config::Tiny's testcases + +# Line below is allowed in perl's Config::Tiny, but not in our parse_ini.c +#root=something + +[section] +one=two +Foo=Bar +this=Your Mother! +blank= + +[Section Two] +something else=blah + remove = whitespace + +[ /path/to/file.txt ] +this=that + +[ section2] +this=that + +[section3 ] +this=that + diff --git a/lib/tests/config-opts.ini b/lib/tests/config-opts.ini new file mode 100644 index 0000000..5c93572 --- /dev/null +++ b/lib/tests/config-opts.ini @@ -0,0 +1,14 @@ +# This config file is for testing test_opts + +[sect1] +one=two + +[check_disk] +foo=Bar +this=Your Mother! +blank= + +[sect2] +something else=oops +this=that + diff --git a/lib/tests/config-tiny.ini b/lib/tests/config-tiny.ini new file mode 100644 index 0000000..60f3dad --- /dev/null +++ b/lib/tests/config-tiny.ini @@ -0,0 +1,24 @@ +# This config file is amended from perl's Config::Tiny's testcases + +# Line below is allowed in perl's Config::Tiny, but not in our parse_ini.c +#root=something + +[section] +one=two +Foo=Bar +this=Your Mother! +blank= + +[Section Two] +something else=blah + remove = whitespace + +[ /path/to/file.txt ] +this=that + +[ section2] +this=that + +[section3 ] +this=that + diff --git a/lib/tests/plugin.ini b/lib/tests/plugin.ini new file mode 100644 index 0000000..e22f8bd --- /dev/null +++ b/lib/tests/plugin.ini @@ -0,0 +1,21 @@ + +[check_mysql] +username=operator +password=secret # Remember to change later + +[section_twice] +foo=bar + +[check_mysql2] +u=admin +p=secret + +[section_twice] +bar=foo + +[check space_and_flags] +foo=bar +a= +b= +bar= + diff --git a/lib/tests/plugins.ini b/lib/tests/plugins.ini new file mode 100644 index 0000000..5e20ded --- /dev/null +++ b/lib/tests/plugins.ini @@ -0,0 +1,7 @@ + +[check_disk] +foo=bar + +[section1] +foobar=baz + diff --git a/lib/tests/test_base64.c b/lib/tests/test_base64.c index ec1a276..2325507 100644 --- a/lib/tests/test_base64.c +++ b/lib/tests/test_base64.c @@ -1,25 +1,24 @@ -/****************************************************************************** - - 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 $ - -******************************************************************************/ +/***************************************************************************** +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: test_base64.c 1927 2008-02-13 04:07:39Z dermoth $ +* +*****************************************************************************/ #include "common.h" -#include "base64.h" +#include "gl/base64.h" #include "tap.h" int @@ -249,7 +248,7 @@ main (int argc, char **argv) 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] = { + char b64_known[1369] = { 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, @@ -335,13 +334,13 @@ main (int argc, char **argv) 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 + 0x41,0x6e,0x68,0x4d,0x56,0x41,0x3d,0x3d,0x00 }; char *b64_test; plan_tests(1); - b64_test = base64 (random, 1024); + base64_encode_alloc (random, 1024, &b64_test); ok(strcmp(b64_known, b64_test) == 0, "Test matching a base64 encoded 1024 bytes random string"); diff --git a/lib/tests/test_cmd.c b/lib/tests/test_cmd.c index 7d0915b..961da64 100644 --- a/lib/tests/test_cmd.c +++ b/lib/tests/test_cmd.c @@ -1,22 +1,21 @@ -/****************************************************************************** - - 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_cmd.c 1732 2007-06-03 15:58:22Z psychotrahe $ - -******************************************************************************/ +/***************************************************************************** +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id$ +* +*****************************************************************************/ #include "common.h" #include "utils_cmd.h" @@ -51,7 +50,7 @@ main (int argc, char **argv) int c; int result = UNSET; - plan_tests(50); + plan_tests(51); diag ("Running plain echo command, set one"); @@ -202,7 +201,17 @@ main (int argc, char **argv) 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 == 127, "Get return code 127 from /bin/sh"); + ok (result != 0, "Get non-zero return code from /bin/sh"); + + + /* ensure everything is empty again */ + result = UNSET; + + command = (char *)malloc(COMMAND_LINE); + strcpy(command, "/bin/sh -c 'exit 7'"); + result = cmd_run (command, NULL, NULL, 0); + + ok (result == 7, "Get return code 7 from /bin/sh"); /* ensure everything is empty again */ diff --git a/lib/tests/test_disk.c b/lib/tests/test_disk.c index 200770d..a30daae 100644 --- a/lib/tests/test_disk.c +++ b/lib/tests/test_disk.c @@ -1,22 +1,21 @@ -/****************************************************************************** - - 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_disk.c 1786 2007-09-22 17:40:35Z psychotrahe $ - -******************************************************************************/ +/***************************************************************************** +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: test_disk.c 1914 2008-01-30 09:38:37Z dermoth $ +* +*****************************************************************************/ #include "common.h" #include "utils_disk.h" diff --git a/lib/tests/test_ini.c b/lib/tests/test_ini.c new file mode 100644 index 0000000..8acf4a9 --- /dev/null +++ b/lib/tests/test_ini.c @@ -0,0 +1,114 @@ +/***************************************************************************** +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: test_ini.c 1976 2008-04-04 10:11:22Z dermoth $ +* +*****************************************************************************/ + +#include "common.h" +#include "utils_base.h" +#include "parse_ini.h" + +#include "tap.h" + +void my_free(char *string) { + if (string != NULL) { + printf("string:\n\t|%s|\n", string); + free(string); + } +} + +char* +list2str(np_arg_list *optlst) +{ + char *optstr=NULL; + np_arg_list *optltmp; + + /* Put everything as a space-separated string */ + asprintf(&optstr, ""); + while (optlst) { + asprintf(&optstr, "%s%s ", optstr, optlst->arg); + optltmp=optlst; + optlst=optlst->next; + free(optltmp); + } + /* Strip last whitespace */ + if (strlen(optstr)>1) optstr[strlen(optstr)-1]='\0'; + + return optstr; +} + +int +main (int argc, char **argv) +{ + char *optstr=NULL; + + plan_tests(11); + + optstr=list2str(np_get_defaults("section@./config-tiny.ini", "check_disk")); + ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank"), "config-tiny.ini's section as expected"); + my_free(optstr); + + optstr=list2str(np_get_defaults("@./config-tiny.ini", "section")); + ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank"), "Used default section name, without specific"); + my_free(optstr); + + /* + * This check is expected to die - It's commented so we can eventually put + * it in a separate file for testing the return value + */ + /* optstr=list2str(np_get_defaults("section_unknown@./config-tiny.ini", "section")); + ok( 0, "die if section isn't found"); + my_free(optstr); */ + + optstr=list2str(np_get_defaults("Section Two@./config-tiny.ini", "check_disk")); + ok( !strcmp(optstr, "--something else=blah --remove=whitespace"), "config-tiny.ini's Section Two as expected"); + my_free(optstr); + + optstr=list2str(np_get_defaults("/path/to/file.txt@./config-tiny.ini", "check_disk")); + ok( !strcmp(optstr, "--this=that"), "config-tiny.ini's filename as section name"); + my_free(optstr); + + optstr=list2str(np_get_defaults("section2@./config-tiny.ini", "check_disk")); + ok( !strcmp(optstr, "--this=that"), "config-tiny.ini's section2 with whitespace before section name"); + my_free(optstr); + + optstr=list2str(np_get_defaults("section3@./config-tiny.ini", "check_disk")); + ok( !strcmp(optstr, "--this=that"), "config-tiny.ini's section3 with whitespace after section name"); + my_free(optstr); + + optstr=list2str(np_get_defaults("check_mysql@./plugin.ini", "check_disk")); + ok( !strcmp(optstr, "--username=operator --password=secret"), "plugin.ini's check_mysql as expected"); + my_free(optstr); + + optstr=list2str(np_get_defaults("check_mysql2@./plugin.ini", "check_disk")); + ok( !strcmp(optstr, "-u=admin -p=secret"), "plugin.ini's check_mysql2 as expected"); + my_free(optstr); + + optstr=list2str(np_get_defaults("check space_and_flags@./plugin.ini", "check_disk")); + ok( !strcmp(optstr, "--foo=bar -a -b --bar"), "plugin.ini space in stanza and flag arguments"); + my_free(optstr); + + optstr=list2str(np_get_defaults("Section Two@./config-dos.ini", "check_disk")); + ok( !strcmp(optstr, "--something else=blah --remove=whitespace"), "config-dos.ini's Section Two as expected"); + my_free(optstr); + + optstr=list2str(np_get_defaults("section_twice@./plugin.ini", "check_disk")); + ok( !strcmp(optstr, "--foo=bar --bar=foo"), "plugin.ini's section_twice defined twice in the file"); + my_free(optstr); + + return exit_status(); +} + diff --git a/lib/tests/test_ini.t b/lib/tests/test_ini.t new file mode 100755 index 0000000..0487098 --- /dev/null +++ b/lib/tests/test_ini.t @@ -0,0 +1,6 @@ +#!/usr/bin/perl +use Test::More; +if (! -e "./test_ini") { + plan skip_all => "./test_ini not compiled - please install tap library and/or enable parse-ini to test"; +} +exec "./test_ini"; diff --git a/lib/tests/test_opts.c b/lib/tests/test_opts.c new file mode 100644 index 0000000..e878abd --- /dev/null +++ b/lib/tests/test_opts.c @@ -0,0 +1,278 @@ +/***************************************************************************** +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: test_ini.c 1951 2008-03-16 18:10:47Z dermoth $ +* +*****************************************************************************/ + +#include "common.h" +#include "utils_base.h" +#include "extra_opts.h" + +#include "tap.h" + +void my_free(int *argc, char **argv) { + int i; + printf (" Arg(%i): ", *argc); + for (i=1; i<*argc; i++) printf ("'%s' ", argv[i]); + printf ("\n"); + free(argv); + *argc=0; +} + +int array_diff(int i1, char **a1, int i2, char **a2) { + int i; + + if (i1 != i2) { + printf(" Argument count doesn't match!\n"); + return 0; + } + for (i=0; i<=i1; i++) { + if (a1[i]==NULL && a2[i]==NULL) continue; + if (a1[i]==NULL || a2[i]==NULL) { + printf(" Argument # %i null in one array!\n", i); + return 0; + } + if (strcmp(a1[i], a2[i])) { + printf(" Argument # %i doesn't match!\n", i); + return 0; + } + } + return 1; +} + +int +main (int argc, char **argv) +{ + char **argv_test=NULL, **argv_known=NULL; + int i, argc_test; + + plan_tests(9); + + argv_test=(char **)malloc(2*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = NULL; + argc_test=1; + argv_known=(char **)realloc(argv_known, 2*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_disk"); + ok(array_diff(argc_test, argv_test, 1, argv_known), "No opts, returns correct argv/argc"); + my_free(&argc_test, argv_test); + + argv_test=(char **)malloc(6*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = "arg1"; + argv_test[2] = "--arg2=val1"; + argv_test[3] = "--arg3"; + argv_test[4] = "val2"; + argv_test[5] = NULL; + argc_test=5; + argv_known=(char **)realloc(argv_known, 6*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = "arg1"; + argv_known[2] = "--arg2=val1"; + argv_known[3] = "--arg3"; + argv_known[4] = "val2"; + argv_known[5] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_disk"); + ok(array_diff(argc_test, argv_test, 5, argv_known), "No extra opts, verbatim copy of argv"); + my_free(&argc_test,argv_test); + + argv_test=(char **)malloc(3*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = "--extra-opts=@./config-opts.ini"; + argv_test[2] = NULL; + argc_test=2; + argv_known=(char **)realloc(argv_known, 5*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = "--foo=Bar"; + argv_known[2] = "--this=Your Mother!"; + argv_known[3] = "--blank"; + argv_known[4] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_disk"); + ok(array_diff(argc_test, argv_test, 4, argv_known), "Only extra opts using default section"); + my_free(&argc_test,argv_test); + + argv_test=(char **)malloc(5*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = "--extra-opts=sect1@./config-opts.ini"; + argv_test[2] = "--extra-opts"; + argv_test[3] = "sect2@./config-opts.ini"; + argv_test[4] = NULL; + argc_test=4; + argv_known=(char **)realloc(argv_known, 5*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = "--one=two"; + argv_known[2] = "--something else=oops"; + argv_known[3] = "--this=that"; + argv_known[4] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_disk"); + ok(array_diff(argc_test, argv_test, 4, argv_known), "Only extra opts specified twice"); + my_free(&argc_test,argv_test); + + argv_test=(char **)malloc(7*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = "--arg1=val1"; + argv_test[2] = "--extra-opts=@./config-opts.ini"; + argv_test[3] = "--extra-opts"; + argv_test[4] = "sect1@./config-opts.ini"; + argv_test[5] = "--arg2"; + argv_test[6] = NULL; + argc_test=6; + argv_known=(char **)realloc(argv_known, 8*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = "--foo=Bar"; + argv_known[2] = "--this=Your Mother!"; + argv_known[3] = "--blank"; + argv_known[4] = "--one=two"; + argv_known[5] = "--arg1=val1"; + argv_known[6] = "--arg2"; + argv_known[7] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_disk"); + ok(array_diff(argc_test, argv_test, 7, argv_known), "twice extra opts using two sections"); + my_free(&argc_test,argv_test); + + /* Next three checks dre expected to die. They are commented out as they + * could possibly go in a sepatare test checked for return value. + */ + /* argv_test=(char **)malloc(6*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = "arg1"; + argv_test[2] = "--extra-opts=missing@./config-opts.ini"; + argv_test[3] = "--arg3"; + argv_test[4] = "val2"; + argv_test[5] = NULL; + argc_test=5; + argv_known=(char **)realloc(argv_known, 5*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = "arg1"; + argv_known[2] = "--arg3"; + argv_known[3] = "val2"; + argv_known[4] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_missing"); + ok(array_diff(argc_test, argv_test, 4, argv_known), "Missing section 1"); + my_free(&argc_test,argv_test); */ + + /* argv_test=(char **)malloc(7*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = "arg1"; + argv_test[2] = "--extra-opts"; + argv_test[3] = "missing@./config-opts.ini"; + argv_test[4] = "--arg3"; + argv_test[5] = "val2"; + argv_test[6] = NULL; + argc_test=6; + argv_known=(char **)realloc(argv_known, 5*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = "arg1"; + argv_known[2] = "--arg3"; + argv_known[3] = "val2"; + argv_known[4] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_missing"); + ok(array_diff(argc_test, argv_test, 4, argv_known), "Missing section 2"); + my_free(&argc_test,argv_test); */ + + /* argv_test=(char **)malloc(6*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = "arg1"; + argv_test[2] = "--extra-opts"; + argv_test[3] = "--arg3"; + argv_test[4] = "val2"; + argv_test[5] = NULL; + argc_test=5; + argv_known=(char **)realloc(argv_known, 5*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = "arg1"; + argv_known[2] = "--arg3"; + argv_known[3] = "val2"; + argv_known[4] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_missing"); + ok(array_diff(argc_test, argv_test, 4, argv_known), "Missing section 3"); + my_free(&argc_test,argv_test); */ + + setenv("NAGIOS_CONFIG_PATH", ".", 1); + argv_test=(char **)malloc(6*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = "arg1"; + argv_test[2] = "--extra-opts"; + argv_test[3] = "--arg3"; + argv_test[4] = "val2"; + argv_test[5] = NULL; + argc_test=5; + argv_known=(char **)realloc(argv_known, 6*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = "--foo=bar"; + argv_known[2] = "arg1"; + argv_known[3] = "--arg3"; + argv_known[4] = "val2"; + argv_known[5] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_disk"); + ok(array_diff(argc_test, argv_test, 5, argv_known), "Default section 1"); + + argv_test=(char **)malloc(3*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = "--extra-opts"; + argv_test[2] = NULL; + argc_test=2; + argv_known=(char **)realloc(argv_known, 3*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = "--foo=bar"; + argv_known[2] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_disk"); + ok(array_diff(argc_test, argv_test, 2, argv_known), "Default section 2"); + my_free(&argc_test,argv_test); + + argv_test=(char **)malloc(6*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = "arg1"; + argv_test[2] = "--extra-opts=section1"; + argv_test[3] = "--arg3"; + argv_test[4] = "val2"; + argv_test[5] = NULL; + argc_test=5; + argv_known=(char **)realloc(argv_known, 6*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = "--foobar=baz"; + argv_known[2] = "arg1"; + argv_known[3] = "--arg3"; + argv_known[4] = "val2"; + argv_known[5] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_disk"); + ok(array_diff(argc_test, argv_test, 5, argv_known), "Default section 3"); + my_free(&argc_test,argv_test); + + argv_test=(char **)malloc(6*sizeof(char **)); + argv_test[0] = "prog_name"; + argv_test[1] = "arg1"; + argv_test[2] = "--extra-opts"; + argv_test[3] = "-arg3"; + argv_test[4] = "val2"; + argv_test[5] = NULL; + argc_test=5; + argv_known=(char **)realloc(argv_known, 6*sizeof(char **)); + argv_known[0] = "prog_name"; + argv_known[1] = "--foo=bar"; + argv_known[2] = "arg1"; + argv_known[3] = "-arg3"; + argv_known[4] = "val2"; + argv_known[5] = NULL; + argv_test=np_extra_opts(&argc_test, argv_test, "check_disk"); + ok(array_diff(argc_test, argv_test, 5, argv_known), "Default section 4"); + my_free(&argc_test,argv_test); + + return exit_status(); +} + diff --git a/lib/tests/test_opts.t b/lib/tests/test_opts.t new file mode 100755 index 0000000..d69b8f1 --- /dev/null +++ b/lib/tests/test_opts.t @@ -0,0 +1,6 @@ +#!/usr/bin/perl +use Test::More; +if (! -e "./test_opts") { + plan skip_all => "./test_opts not compiled - please install tap library and/or enable parse-ini to test"; +} +exec "./test_opts"; diff --git a/lib/tests/test_tcp.c b/lib/tests/test_tcp.c index 5e22e29..0e0dad1 100644 --- a/lib/tests/test_tcp.c +++ b/lib/tests/test_tcp.c @@ -1,22 +1,21 @@ -/****************************************************************************** - - 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_tcp.c 1732 2007-06-03 15:58:22Z psychotrahe $ - -******************************************************************************/ +/***************************************************************************** +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: test_tcp.c 1914 2008-01-30 09:38:37Z dermoth $ +* +*****************************************************************************/ #include "common.h" #include "utils_tcp.h" diff --git a/lib/tests/test_utils.c b/lib/tests/test_utils.c index b03e536..ea38411 100644 --- a/lib/tests/test_utils.c +++ b/lib/tests/test_utils.c @@ -1,22 +1,21 @@ -/****************************************************************************** - - 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_utils.c 1452 2006-07-13 23:58:00Z tonvoon $ - -******************************************************************************/ +/***************************************************************************** +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: test_utils.c 1914 2008-01-30 09:38:37Z dermoth $ +* +*****************************************************************************/ #include "common.h" #include "utils_base.h" diff --git a/lib/utils_base.c b/lib/utils_base.c index fbb3a1e..467edf7 100644 --- a/lib/utils_base.c +++ b/lib/utils_base.c @@ -1,19 +1,34 @@ /***************************************************************************** - * - * utils_base.c - * - * Library of useful functions for plugins - * These functions are tested with libtap. See tests/ directory - * - * Copyright (c) 2006 Nagios Plugin Development Team - * License: GPL - * - * $Revision: 1768 $ - * $Date: 2007-07-29 13:42:05 +0100 (Sun, 29 Jul 2007) $ - ****************************************************************************/ +* +* utils_base.c +* +* License: GPL +* Copyright (c) 2006 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-03-11 00:10:23 +0000 (Tue, 11 Mar 2008) $ +* +* Library of useful functions for plugins +* +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: utils_base.c 1938 2008-03-11 00:10:23Z tonvoon $ +* +*****************************************************************************/ -#include #include "common.h" +#include #include "utils_base.h" void @@ -105,10 +120,6 @@ _set_thresholds(thresholds **my_thresholds, char *warn_string, char *critical_st } } - if (*my_thresholds > 0) { /* Not sure why, but sometimes could be -1 */ - /* printf("Freeing here: %d\n", *my_thresholds); */ - free(*my_thresholds); - } *my_thresholds = temp_thresholds; return 0; diff --git a/lib/utils_cmd.c b/lib/utils_cmd.c index c4ceb97..aaf055a 100644 --- a/lib/utils_cmd.c +++ b/lib/utils_cmd.c @@ -1,42 +1,43 @@ -/**************************************************************************** - * Nagios run command utilities - * - * License: GPL - * Copyright (c) 2005 nagios-plugins team - * - * $Id: utils_cmd.c 1434 2006-06-18 19:36:48Z opensides $ - * - * Description : - * - * A simple interface to executing programs from other programs, using an - * optimized and safe popen()-like implementation. It is considered safe - * in that no shell needs to be spawned and the environment passed to the - * execve()'d program is essentially empty. - * - * - * The code in this file is a derivative of popen.c which in turn was taken - * from "Advanced Programming for the Unix Environment" by W. Richard Stevens. - * - * Care has been taken to make sure the functions are async-safe. The one - * function which isn't is cmd_init() which it doesn't make sense to - * call twice anyway, so the api as a whole should be considered async-safe. - * - * 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. - */ +/***************************************************************************** +* +* Nagios run command utilities +* +* License: GPL +* Copyright (c) 2005-2006 Nagios Plugins Development Team +* +* Last Modified: $Date$ +* +* Description : +* +* A simple interface to executing programs from other programs, using an +* optimized and safe popen()-like implementation. It is considered safe +* in that no shell needs to be spawned and the environment passed to the +* execve()'d program is essentially empty. +* +* The code in this file is a derivative of popen.c which in turn was taken +* from "Advanced Programming for the Unix Environment" by W. Richard Stevens. +* +* Care has been taken to make sure the functions are async-safe. The one +* function which isn't is cmd_init() which it doesn't make sense to +* call twice anyway, so the api as a whole should be considered async-safe. +* +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id$ +* +*****************************************************************************/ #define NAGIOSPLUG_API_C 1 diff --git a/lib/utils_disk.c b/lib/utils_disk.c index 7b32e7b..113db7e 100644 --- a/lib/utils_disk.c +++ b/lib/utils_disk.c @@ -1,32 +1,31 @@ -/**************************************************************************** -* Utils for check_disk -* +/***************************************************************************** +* +* Library for check_disk +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-09-22 18:48:33 +0100 (Sat, 22 Sep 2007) $ -* +* Copyright (c) 1999-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-01-30 09:46:21 +0000 (Wed, 30 Jan 2008) $ +* * Description: -* +* * This file contains utilities for check_disk. These are tested by libtap -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: utils_disk.c 1787 2007-09-22 17:48:33Z psychotrahe $ +* along with this program. If not, see . +* +* $Id: utils_disk.c 1915 2008-01-30 09:46:21Z dermoth $ * *****************************************************************************/ diff --git a/lib/utils_tcp.c b/lib/utils_tcp.c index c6d710b..8b6b9e9 100644 --- a/lib/utils_tcp.c +++ b/lib/utils_tcp.c @@ -1,33 +1,32 @@ -/**************************************************************************** -* Utils for check_tcp -* +/***************************************************************************** +* +* Library for check_tcp +* * License: GPL -* Copyright (c) 1999-2007 nagios-plugins team -* -* Last Modified: $Date: 2007-09-22 18:48:33 +0100 (Sat, 22 Sep 2007) $ -* +* Copyright (c) 1999-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-01-30 09:46:21 +0000 (Wed, 30 Jan 2008) $ +* * Description: -* +* * This file contains utilities for check_tcp. These are tested by libtap -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: utils_tcp.c 1787 2007-09-22 17:48:33Z psychotrahe $ -* +* along with this program. If not, see . +* +* $Id: utils_tcp.c 1915 2008-01-30 09:46:21Z dermoth $ +* *****************************************************************************/ #include "common.h" diff --git a/nagios-plugins.spec b/nagios-plugins.spec index d0ed976..36fa1f9 100644 --- a/nagios-plugins.spec +++ b/nagios-plugins.spec @@ -1,5 +1,5 @@ Name: nagios-plugins -Version: 1.4.11 +Version: 1.4.12 Release: 1 Summary: Host/service/network monitoring program plugins for Nagios diff --git a/perlmods/Makefile b/perlmods/Makefile index cce9e57..1e189cf 100644 --- a/perlmods/Makefile +++ b/perlmods/Makefile @@ -38,36 +38,40 @@ subdir = perlmods DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \ - $(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \ - $(top_srcdir)/gl/m4/dos.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \ + $(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/exitfail.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/fcntl-safer.m4 \ + $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ $(top_srcdir)/gl/m4/fstypename.m4 \ $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \ - $(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \ + $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/include_next.m4 \ + $(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ + $(top_srcdir)/gl/m4/intmax_t.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ - $(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/longdouble.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/longlong.m4 \ $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ - $(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \ - $(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \ - $(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \ + $(top_srcdir)/gl/m4/mbstate_t.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \ $(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \ @@ -77,21 +81,21 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \ - $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ - $(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \ + $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ + $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \ + $(top_srcdir)/gl/m4/strerror.m4 \ + $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \ $(top_srcdir)/gl/m4/strnlen.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/ulonglong.m4 \ $(top_srcdir)/gl/m4/unistd-safer.m4 \ $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \ $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \ - $(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ - $(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \ - $(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs @@ -101,10 +105,6 @@ SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) INSTALL = /usr/bin/install -c -ABSOLUTE_STDINT_H = "///usr/include/stdint.h" -ABSOLUTE_UNISTD_H = "///usr/include/unistd.h" -ABSOLUTE_WCHAR_H = -ABSOLUTE_WCTYPE_H = "///usr/include/wctype.h" ACLOCAL = ${SHELL} /tmp/nagiosplug/build-aux/missing --run aclocal-1.9 ALLOCA = ALLOCA_H = alloca.h @@ -149,27 +149,177 @@ EXTRA_NETOBJS = EXTRA_TEST = F77 = FFLAGS = +FLOAT_H = +FLOORF_LIBM = -lm GETLOADAVG_LIBS = GETOPT_H = +GETTEXT_MACRO_VERSION = 0.17 +GLIBC21 = yes GL_COND_LIBTOOL_FALSE = GL_COND_LIBTOOL_TRUE = # GMSGFMT = /usr/bin/msgfmt GMSGFMT_015 = /usr/bin/msgfmt +GNULIB_CALLOC_POSIX = 0 +GNULIB_CEILF = 0 +GNULIB_CEILL = 0 +GNULIB_CHOWN = 0 +GNULIB_DUP2 = 0 +GNULIB_FCHDIR = 0 +GNULIB_FFLUSH = 0 +GNULIB_FLOORF = 1 +GNULIB_FLOORL = 0 +GNULIB_FOPEN = 0 +GNULIB_FPRINTF_POSIX = 0 +GNULIB_FREOPEN = 0 +GNULIB_FREXP = 0 +GNULIB_FREXPL = 0 +GNULIB_FSEEK = 0 +GNULIB_FSEEKO = 0 +GNULIB_FTELL = 0 +GNULIB_FTELLO = 0 +GNULIB_FTRUNCATE = 0 +GNULIB_GETCWD = 0 +GNULIB_GETDELIM = 0 +GNULIB_GETLINE = 0 +GNULIB_GETLOGIN_R = 0 +GNULIB_GETPAGESIZE = 0 +GNULIB_GETSUBOPT = 0 +GNULIB_ISFINITE = 0 +GNULIB_LCHOWN = 0 +GNULIB_LDEXPL = 0 +GNULIB_LSEEK = 0 +GNULIB_MALLOC_POSIX = 1 +GNULIB_MATHL = 0 +GNULIB_MBSCASECMP = 0 +GNULIB_MBSCASESTR = 0 +GNULIB_MBSCHR = 0 +GNULIB_MBSCSPN = 0 +GNULIB_MBSLEN = 0 +GNULIB_MBSNCASECMP = 0 +GNULIB_MBSNLEN = 0 +GNULIB_MBSPBRK = 0 +GNULIB_MBSPCASECMP = 0 +GNULIB_MBSRCHR = 0 +GNULIB_MBSSEP = 0 +GNULIB_MBSSPN = 0 +GNULIB_MBSSTR = 0 +GNULIB_MBSTOK_R = 0 +GNULIB_MEMMEM = 0 +GNULIB_MEMPCPY = 0 +GNULIB_MEMRCHR = 0 +GNULIB_MKDTEMP = 0 +GNULIB_MKSTEMP = 0 +GNULIB_PRINTF_POSIX = 0 +GNULIB_PUTENV = 0 +GNULIB_READLINK = 0 +GNULIB_REALLOC_POSIX = 0 +GNULIB_ROUND = 0 +GNULIB_ROUNDF = 0 +GNULIB_ROUNDL = 0 +GNULIB_SETENV = 0 +GNULIB_SIGNBIT = 0 +GNULIB_SLEEP = 0 +GNULIB_SNPRINTF = 1 +GNULIB_SPRINTF_POSIX = 0 +GNULIB_STPCPY = 0 +GNULIB_STPNCPY = 0 +GNULIB_STRCASESTR = 0 +GNULIB_STRCHRNUL = 0 +GNULIB_STRDUP = 1 +GNULIB_STRERROR = 1 +GNULIB_STRNDUP = 1 +GNULIB_STRNLEN = 1 +GNULIB_STRPBRK = 0 +GNULIB_STRSEP = 0 +GNULIB_STRSIGNAL = 0 +GNULIB_STRSTR = 0 +GNULIB_STRTOK_R = 0 +GNULIB_TRUNC = 0 +GNULIB_TRUNCF = 0 +GNULIB_TRUNCL = 0 +GNULIB_UNSETENV = 0 +GNULIB_VASPRINTF = 1 +GNULIB_VFPRINTF_POSIX = 0 +GNULIB_VPRINTF_POSIX = 0 +GNULIB_VSNPRINTF = 1 +GNULIB_VSPRINTF_POSIX = 0 +GNULIB_WCWIDTH = 0 GREP = /bin/grep +HAVE_CALLOC_POSIX = 1 +HAVE_DECL_ACOSL = 1 +HAVE_DECL_ASINL = 1 +HAVE_DECL_ATANL = 1 +HAVE_DECL_COSL = 1 +HAVE_DECL_EXPL = 1 +HAVE_DECL_FREXPL = 1 +HAVE_DECL_GETDELIM = 1 +HAVE_DECL_GETLINE = 1 +HAVE_DECL_GETLOGIN_R = 1 +HAVE_DECL_LDEXPL = 1 +HAVE_DECL_LOGL = 1 +HAVE_DECL_MEMMEM = 1 +HAVE_DECL_MEMRCHR = 1 +HAVE_DECL_SINL = 1 +HAVE_DECL_SNPRINTF = 1 +HAVE_DECL_SQRTL = 1 +HAVE_DECL_STRDUP = 1 +HAVE_DECL_STRERROR = 1 +HAVE_DECL_STRNDUP = 1 +HAVE_DECL_STRNLEN = 1 +HAVE_DECL_STRSIGNAL = 1 +HAVE_DECL_STRTOK_R = 1 +HAVE_DECL_TANL = 1 +HAVE_DECL_TRUNC = 1 +HAVE_DECL_TRUNCF = 1 +HAVE_DECL_TRUNCL = 1 +HAVE_DECL_VSNPRINTF = 1 +HAVE_DECL_WCWIDTH = 1 +HAVE_DUP2 = 1 +HAVE_FSEEKO = 1 +HAVE_FTELLO = 1 +HAVE_FTRUNCATE = 1 +HAVE_GETPAGESIZE = 1 +HAVE_GETSUBOPT = 1 HAVE_INTTYPES_H = 1 +HAVE_ISWCNTRL = 1 HAVE_LONG_LONG_INT = 1 +HAVE_MALLOC_POSIX = 1 +HAVE_MEMPCPY = 1 +HAVE_MKDTEMP = 1 +HAVE_NETINET_IN_H = +HAVE_OS_H = 0 +HAVE_READLINK = 1 +HAVE_REALLOC_POSIX = 1 +HAVE_SETENV = 1 HAVE_SIGNED_SIG_ATOMIC_T = 1 HAVE_SIGNED_WCHAR_T = 1 HAVE_SIGNED_WINT_T = 0 +HAVE_SLEEP = 1 HAVE_STDINT_H = 1 +HAVE_STPCPY = 1 +HAVE_STPNCPY = 1 +HAVE_STRCASESTR = 1 +HAVE_STRCHRNUL = 1 +HAVE_STRNDUP = 1 +HAVE_STRPBRK = 1 +HAVE_STRSEP = 1 HAVE_SYS_BITYPES_H = 1 HAVE_SYS_INTTYPES_H = 0 +HAVE_SYS_PARAM_H = 0 +HAVE_SYS_SOCKET_H = HAVE_SYS_TYPES_H = 1 +HAVE_UNISTD_H = 1 +HAVE_UNSETENV = 1 HAVE_UNSIGNED_LONG_LONG_INT = 1 +HAVE_VASPRINTF = 1 +HAVE_WCHAR_H = 1 HAVE_WCTYPE_H = 1 +HAVE_WINSOCK2_H = HAVE_WINT_T = 1 +HAVE_WS2TCPIP_H = HAVE__BOOL = 1 HOSTNAME = /bin/hostname +INCLUDE_NEXT = include_next INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} @@ -187,9 +337,10 @@ LIBGNU_LTLIBDEPS = LIBICONV = -liconv LIBINTL = LIBOBJS = -LIBS = +LIBS = -ldl LIBTOOL = $(SHELL) $(top_builddir)/libtool LN_S = ln -s +LOCALCHARSET_TESTS_ENVIRONMENT = CHARSETALIASDIR="$(top_builddir)/gl" LTLIBICONV = -liconv LTLIBINTL = LTLIBOBJS = @@ -203,13 +354,24 @@ MYSQLINCLUDE = MYSQLLIBS = NEED_SETGID = false NETINET_IN_H = +NEXT_FLOAT_H = +NEXT_MATH_H = +NEXT_NETINET_IN_H = +NEXT_STDINT_H = +NEXT_STDIO_H = +NEXT_STDLIB_H = +NEXT_STRING_H = +NEXT_SYS_SOCKET_H = +NEXT_UNISTD_H = +NEXT_WCHAR_H = +NEXT_WCTYPE_H = OBJEXT = o PACKAGE = nagios-plugins PACKAGE_BUGREPORT = PACKAGE_NAME = nagios-plugins -PACKAGE_STRING = nagios-plugins 1.4.11 +PACKAGE_STRING = nagios-plugins 1.4.12 PACKAGE_TARNAME = nagios-plugins -PACKAGE_VERSION = 1.4.11 +PACKAGE_VERSION = 1.4.12 PATH_SEPARATOR = : PATH_TO_APTGET = /usr/bin/apt-get PATH_TO_DIG = /usr/bin/dig @@ -238,16 +400,61 @@ PERLMODS_DIR = PGINCLUDE = PGLIBS = 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 +PLUGIN_TEST = t/check_by_ssh.t 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 = +PST3CFLAGS = PTRDIFF_T_SUFFIX = PYTHON = /usr/bin/python RADIUSLIBS = RANLIB = ranlib RELEASE = 1 -REV_DATESTAMP = 2007.12.13.22.42 -REV_TIMESTAMP = 20071213224256 +REPLACE_CEILF = 0 +REPLACE_CEILL = 0 +REPLACE_CHOWN = 0 +REPLACE_FCHDIR = 0 +REPLACE_FFLUSH = 0 +REPLACE_FLOORF = 0 +REPLACE_FLOORL = 0 +REPLACE_FOPEN = 0 +REPLACE_FPRINTF = 0 +REPLACE_FREOPEN = 0 +REPLACE_FREXP = 0 +REPLACE_FREXPL = 0 +REPLACE_FSEEK = 0 +REPLACE_FSEEKO = 0 +REPLACE_FTELL = 0 +REPLACE_FTELLO = 0 +REPLACE_GETCWD = 0 +REPLACE_GETLINE = 0 +REPLACE_GETPAGESIZE = 0 +REPLACE_ISFINITE = 0 +REPLACE_LCHOWN = 0 +REPLACE_LDEXPL = 0 +REPLACE_LSEEK = 0 +REPLACE_MEMMEM = 0 +REPLACE_MKSTEMP = 0 +REPLACE_PRINTF = 0 +REPLACE_PUTENV = 0 +REPLACE_ROUND = 0 +REPLACE_ROUNDF = 0 +REPLACE_ROUNDL = 0 +REPLACE_SIGNBIT = 0 +REPLACE_SIGNBIT_USING_GCC = 0 +REPLACE_SNPRINTF = 0 +REPLACE_SPRINTF = 0 +REPLACE_STRCASESTR = 0 +REPLACE_STRERROR = 0 +REPLACE_STRSIGNAL = 0 +REPLACE_STRSTR = 0 +REPLACE_VASPRINTF = 0 +REPLACE_VFPRINTF = 0 +REPLACE_VPRINTF = 0 +REPLACE_VSNPRINTF = 0 +REPLACE_VSPRINTF = 0 +REPLACE_WCWIDTH = 0 +REV_DATESTAMP = 2008.05.27.23.05 +REV_TIMESTAMP = 20080527230527 SCRIPT_TEST = t/check_file_age.t t/check_rpc.t t/utils.t SET_MAKE = SH = /bin/sh @@ -262,9 +469,11 @@ STDINT_H = stdint.h STRIP = strip SUPPORT = Send email to nagios-users@lists.sourceforge.net if you have questions\nregarding use of this software. To submit patches or suggest improvements,\nsend email to nagiosplug-devel@lists.sourceforge.net.\nPlease include version information with all correspondence (when possible,\nuse output from the --version option of the plugin itself).\n SYS_SOCKET_H = -UNISTD_H = USE_NLS = yes -VERSION = 1.4.11 +USE_PARSE_INI_FALSE = +USE_PARSE_INI_TRUE = # +VERSION = 1.4.12 +VOID_UNSETENV = 0 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 = @@ -272,6 +481,7 @@ WCTYPE_H = WINT_T_SUFFIX = u XGETTEXT = /usr/bin/xgettext XGETTEXT_015 = /usr/bin/xgettext +XGETTEXT_EXTRA_OPTIONS = --flag=error:3:c-format --flag=error_at_line:5:c-format --flag=asprintf:2:c-format --flag=vasprintf:2:c-format ac_ct_CC = gcc ac_ct_CXX = g++ ac_ct_F77 = @@ -296,8 +506,10 @@ 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 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 +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 mountlist.o open-safer.o pipe-safer.o printf-args.o printf-parse.o regex.o safe-read.o safe-write.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 mountlist.lo open-safer.lo pipe-safer.lo printf-args.lo printf-parse.lo regex.lo safe-read.lo safe-write.lo stripslash.lo vasnprintf.lo xmalloc.lo +gltests_LIBOBJS = +gltests_LTLIBOBJS = host = i686-pc-linux-gnu host_alias = host_cpu = i686 diff --git a/perlmods/Makefile.in b/perlmods/Makefile.in index 57ed884..a92c328 100644 --- a/perlmods/Makefile.in +++ b/perlmods/Makefile.in @@ -38,36 +38,40 @@ subdir = perlmods DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \ - $(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \ - $(top_srcdir)/gl/m4/dos.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \ + $(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/exitfail.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/fcntl-safer.m4 \ + $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ $(top_srcdir)/gl/m4/fstypename.m4 \ $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \ - $(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \ + $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/include_next.m4 \ + $(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ + $(top_srcdir)/gl/m4/intmax_t.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ - $(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/longdouble.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/longlong.m4 \ $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ - $(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \ - $(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \ - $(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \ + $(top_srcdir)/gl/m4/mbstate_t.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \ $(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \ @@ -77,21 +81,21 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \ - $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ - $(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \ + $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ + $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \ + $(top_srcdir)/gl/m4/strerror.m4 \ + $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \ $(top_srcdir)/gl/m4/strnlen.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/ulonglong.m4 \ $(top_srcdir)/gl/m4/unistd-safer.m4 \ $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \ $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \ - $(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ - $(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \ - $(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs @@ -101,10 +105,6 @@ SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) INSTALL = @INSTALL@ -ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@ -ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@ -ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@ -ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -149,27 +149,177 @@ EXTRA_NETOBJS = @EXTRA_NETOBJS@ EXTRA_TEST = @EXTRA_TEST@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLOAT_H = @FLOAT_H@ +FLOORF_LIBM = @FLOORF_LIBM@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLIBC21 = @GLIBC21@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@ GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MATHL = @GNULIB_MATHL@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GREP = @GREP@ +HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ +HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ +HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ +HAVE_DECL_COSL = @HAVE_DECL_COSL@ +HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ +HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ +HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_SINL = @HAVE_DECL_SINL@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TANL = @HAVE_DECL_TANL@ +HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ +HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ +HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DUP2 = @HAVE_DUP2@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ +HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRNDUP = @HAVE_STRNDUP@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRSEP = @HAVE_STRSEP@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE__BOOL = @HAVE__BOOL@ HOSTNAME = @HOSTNAME@ +INCLUDE_NEXT = @INCLUDE_NEXT@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -190,6 +340,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ @@ -203,6 +354,17 @@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NEED_SETGID = @NEED_SETGID@ NETINET_IN_H = @NETINET_IN_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_MATH_H = @NEXT_MATH_H@ +NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -241,11 +403,56 @@ PKG_ARCH = @PKG_ARCH@ PLUGIN_TEST = @PLUGIN_TEST@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +PST3CFLAGS = @PST3CFLAGS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON = @PYTHON@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ +REPLACE_CEILF = @REPLACE_CEILF@ +REPLACE_CEILL = @REPLACE_CEILL@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FLOORF = @REPLACE_FLOORF@ +REPLACE_FLOORL = @REPLACE_FLOORL@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FREXP = @REPLACE_FREXP@ +REPLACE_FREXPL = @REPLACE_FREXPL@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_ISFINITE = @REPLACE_ISFINITE@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LDEXPL = @REPLACE_LDEXPL@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_ROUND = @REPLACE_ROUND@ +REPLACE_ROUNDF = @REPLACE_ROUNDF@ +REPLACE_ROUNDL = @REPLACE_ROUNDL@ +REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REV_DATESTAMP = @REV_DATESTAMP@ REV_TIMESTAMP = @REV_TIMESTAMP@ SCRIPT_TEST = @SCRIPT_TEST@ @@ -262,9 +469,11 @@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ SYS_SOCKET_H = @SYS_SOCKET_H@ -UNISTD_H = @UNISTD_H@ USE_NLS = @USE_NLS@ +USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@ +USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@ VERSION = @VERSION@ +VOID_UNSETENV = @VOID_UNSETENV@ WARRANTY = @WARRANTY@ WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ @@ -272,6 +481,7 @@ WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ @@ -298,6 +508,8 @@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ diff --git a/pkg/solaris/pkginfo b/pkg/solaris/pkginfo index 5e50f7e..b615db6 100644 --- a/pkg/solaris/pkginfo +++ b/pkg/solaris/pkginfo @@ -2,11 +2,11 @@ PKG="NAGplugin" NAME="nagios-plugins" DESC="Nagios network monitoring plugins" ARCH="unknown" -VERSION="1.4.11,REV=2007.12.13.22.42" +VERSION="1.4.12,REV=2008.05.27.23.05" CATEGORY="application" VENDOR="Nagios Plugin Development Team" EMAIL="nagiosplug-devel@lists.sourceforge.net" -PSTAMP="nag20071213224256" +PSTAMP="nag20080527230527" BASEDIR="/" CLASSES="none" diff --git a/plugins-root/Makefile.am b/plugins-root/Makefile.am index e61ebc7..bca3ceb 100644 --- a/plugins-root/Makefile.am +++ b/plugins-root/Makefile.am @@ -4,10 +4,10 @@ VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plug INCLUDES = -I.. -I$(top_srcdir)/lib -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins @SSLINCLUDE@ -datadir = @datadir@ localedir = $(datadir)/locale DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ -LIBS = @LIBINTL@ @LIBS@ @SSLLIBS@ +# Don't add LTLIBINTL to all, as pst3 doesn't need it +#LIBS = @LTLIBINTL@ @LIBS@ noinst_PROGRAMS = check_dhcp check_icmp @EXTRAS_ROOT@ @@ -66,8 +66,11 @@ install-exec-local: $(noinst_PROGRAMS) ############################################################################## # the actual targets -check_dhcp_LDADD = $(NETLIBS) -check_icmp_LDADD = $(NETLIBS) $(SOCKETLIBS) +check_dhcp_LDADD = @LTLIBINTL@ $(NETLIBS) +check_icmp_LDADD = @LTLIBINTL@ $(NETLIBS) $(SOCKETLIBS) +# -m64 needed at compiler and linker phase +pst3_CFLAGS = @PST3CFLAGS@ +pst3_LDFLAGS = @PST3CFLAGS@ pst3_LDADD = -lkvm check_dhcp_DEPENDENCIES = check_dhcp.c $(NETOBJS) $(DEPLIBS) diff --git a/plugins-root/Makefile.in b/plugins-root/Makefile.in index 03945d0..53bbaac 100644 --- a/plugins-root/Makefile.in +++ b/plugins-root/Makefile.in @@ -41,36 +41,40 @@ subdir = plugins-root DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \ - $(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \ - $(top_srcdir)/gl/m4/dos.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \ + $(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/exitfail.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/fcntl-safer.m4 \ + $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ $(top_srcdir)/gl/m4/fstypename.m4 \ $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \ - $(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \ + $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/include_next.m4 \ + $(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ + $(top_srcdir)/gl/m4/intmax_t.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ - $(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/longdouble.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/longlong.m4 \ $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ - $(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \ - $(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \ - $(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \ + $(top_srcdir)/gl/m4/mbstate_t.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \ $(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \ @@ -80,21 +84,21 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \ - $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ - $(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \ + $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ + $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \ + $(top_srcdir)/gl/m4/strerror.m4 \ + $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \ $(top_srcdir)/gl/m4/strnlen.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/ulonglong.m4 \ $(top_srcdir)/gl/m4/unistd-safer.m4 \ $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \ $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \ - $(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ - $(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \ - $(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs @@ -112,7 +116,7 @@ am__DEPENDENCIES_4 = $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_2) check_icmp_SOURCES = check_icmp.c check_icmp_OBJECTS = check_icmp.$(OBJEXT) pst3_SOURCES = pst3.c -pst3_OBJECTS = pst3.$(OBJEXT) +pst3_OBJECTS = pst3-pst3.$(OBJEXT) pst3_DEPENDENCIES = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp @@ -132,10 +136,6 @@ CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 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@ -ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@ -ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -180,27 +180,177 @@ EXTRA_NETOBJS = @EXTRA_NETOBJS@ EXTRA_TEST = @EXTRA_TEST@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLOAT_H = @FLOAT_H@ +FLOORF_LIBM = @FLOORF_LIBM@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLIBC21 = @GLIBC21@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@ GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MATHL = @GNULIB_MATHL@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GREP = @GREP@ +HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ +HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ +HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ +HAVE_DECL_COSL = @HAVE_DECL_COSL@ +HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ +HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ +HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_SINL = @HAVE_DECL_SINL@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TANL = @HAVE_DECL_TANL@ +HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ +HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ +HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DUP2 = @HAVE_DUP2@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ +HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRNDUP = @HAVE_STRNDUP@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRSEP = @HAVE_STRSEP@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE__BOOL = @HAVE__BOOL@ HOSTNAME = @HOSTNAME@ +INCLUDE_NEXT = @INCLUDE_NEXT@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -218,9 +368,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ -LIBS = @LIBINTL@ @LIBS@ @SSLLIBS@ +LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ @@ -234,6 +385,17 @@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NEED_SETGID = @NEED_SETGID@ NETINET_IN_H = @NETINET_IN_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_MATH_H = @NEXT_MATH_H@ +NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -272,11 +434,56 @@ PKG_ARCH = @PKG_ARCH@ PLUGIN_TEST = @PLUGIN_TEST@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +PST3CFLAGS = @PST3CFLAGS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON = @PYTHON@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ +REPLACE_CEILF = @REPLACE_CEILF@ +REPLACE_CEILL = @REPLACE_CEILL@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FLOORF = @REPLACE_FLOORF@ +REPLACE_FLOORL = @REPLACE_FLOORL@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FREXP = @REPLACE_FREXP@ +REPLACE_FREXPL = @REPLACE_FREXPL@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_ISFINITE = @REPLACE_ISFINITE@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LDEXPL = @REPLACE_LDEXPL@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_ROUND = @REPLACE_ROUND@ +REPLACE_ROUNDF = @REPLACE_ROUNDF@ +REPLACE_ROUNDL = @REPLACE_ROUNDL@ +REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REV_DATESTAMP = @REV_DATESTAMP@ REV_TIMESTAMP = @REV_TIMESTAMP@ SCRIPT_TEST = @SCRIPT_TEST@ @@ -293,9 +500,11 @@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ SYS_SOCKET_H = @SYS_SOCKET_H@ -UNISTD_H = @UNISTD_H@ USE_NLS = @USE_NLS@ +USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@ +USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@ VERSION = @VERSION@ +VOID_UNSETENV = @VOID_UNSETENV@ WARRANTY = @WARRANTY@ WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ @@ -303,6 +512,7 @@ WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ @@ -329,6 +539,8 @@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -381,8 +593,11 @@ INSTALL_SUID = \ ############################################################################## # the actual targets -check_dhcp_LDADD = $(NETLIBS) -check_icmp_LDADD = $(NETLIBS) $(SOCKETLIBS) +check_dhcp_LDADD = @LTLIBINTL@ $(NETLIBS) +check_icmp_LDADD = @LTLIBINTL@ $(NETLIBS) $(SOCKETLIBS) +# -m64 needed at compiler and linker phase +pst3_CFLAGS = @PST3CFLAGS@ +pst3_LDFLAGS = @PST3CFLAGS@ pst3_LDADD = -lkvm check_dhcp_DEPENDENCIES = check_dhcp.c $(NETOBJS) $(DEPLIBS) check_icmp_DEPENDENCIES = check_icmp.c $(NETOBJS) @@ -444,7 +659,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_dhcp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_icmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pst3.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pst3-pst3.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @@ -467,6 +682,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +pst3-pst3.o: pst3.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pst3_CFLAGS) $(CFLAGS) -MT pst3-pst3.o -MD -MP -MF "$(DEPDIR)/pst3-pst3.Tpo" -c -o pst3-pst3.o `test -f 'pst3.c' || echo '$(srcdir)/'`pst3.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pst3-pst3.Tpo" "$(DEPDIR)/pst3-pst3.Po"; else rm -f "$(DEPDIR)/pst3-pst3.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pst3.c' object='pst3-pst3.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) $(pst3_CFLAGS) $(CFLAGS) -c -o pst3-pst3.o `test -f 'pst3.c' || echo '$(srcdir)/'`pst3.c + +pst3-pst3.obj: pst3.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pst3_CFLAGS) $(CFLAGS) -MT pst3-pst3.obj -MD -MP -MF "$(DEPDIR)/pst3-pst3.Tpo" -c -o pst3-pst3.obj `if test -f 'pst3.c'; then $(CYGPATH_W) 'pst3.c'; else $(CYGPATH_W) '$(srcdir)/pst3.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pst3-pst3.Tpo" "$(DEPDIR)/pst3-pst3.Po"; else rm -f "$(DEPDIR)/pst3-pst3.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pst3.c' object='pst3-pst3.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) $(pst3_CFLAGS) $(CFLAGS) -c -o pst3-pst3.obj `if test -f 'pst3.c'; then $(CYGPATH_W) 'pst3.c'; else $(CYGPATH_W) '$(srcdir)/pst3.c'; fi` + mostlyclean-libtool: -rm -f *.lo diff --git a/plugins-root/check_dhcp.c b/plugins-root/check_dhcp.c index 3da8ed8..fde2796 100644 --- a/plugins-root/check_dhcp.c +++ b/plugins-root/check_dhcp.c @@ -1,49 +1,44 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_dhcp plugin -* +* * License: GPL * Copyright (c) 2001-2004 Ethan Galstad (nagios@nagios.org) -* Copyright (c) 2001-2006 Nagios Plugin Development Team -* -* Last Modified: $Date: 2007-10-25 21:43:04 +0100 (Thu, 25 Oct 2007) $ -* +* Copyright (c) 2001-2007 Nagios Plugin Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_dhcp plugin -* -* This plugin tests the availability of DHCP servers on a network. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin tests the availability of DHCP servers on a network. +* +* Unicast mode was originally implemented by Heiti of Boras Kommun with +* general improvements as well as usability fixes and "forward"-porting by +* Andreas Ericsson of OP5 AB. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_dhcp.c 1810 2007-10-25 20:43:04Z tonvoon $ -* -* ------------------------------------------------------------------------ -* Unicast mode was originally implemented by Heiti of Boras Kommun with -* general improvements as well as usability fixes and "forward"-porting by -* Andreas Ericsson of OP5 AB. -* ------------------------------------------------------------------------ -* +* along with this program. If not, see . +* +* $Id: check_dhcp.c 1991 2008-05-07 10:02:42Z dermoth $ +* *****************************************************************************/ const char *progname = "check_dhcp"; -const char *revision = "$Revision: 1810 $"; -const char *copyright = "2001-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2001-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -273,13 +268,16 @@ int main(int argc, char **argv){ bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts(&argc, argv, progname); + if(process_arguments(argc,argv)!=OK){ 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(); @@ -321,7 +319,7 @@ int get_hardware_address(int sock,char *interface_name){ strncpy((char *)&ifr.ifr_name,interface_name,sizeof(ifr.ifr_name)-1); ifr.ifr_name[sizeof(ifr.ifr_name)-1]='\0'; - + /* try and grab hardware address of requested interface */ if(ioctl(sock,SIOCGIFHWADDR,&ifr)<0){ printf(_("Error: Could not get hardware address of interface '%s'\n"),interface_name); @@ -511,7 +509,7 @@ int send_dhcp_discover(int sock){ opts += sizeof(requested_address); } discover_packet.options[opts++]=DHCP_OPTION_END; - + /* unicast fields */ if(unicast) discover_packet.giaddr.s_addr = my_ip.s_addr; @@ -576,7 +574,7 @@ int get_dhcp_offer(int sock){ result=OK; result=receive_dhcp_packet(&offer_packet,sizeof(offer_packet),sock,dhcpoffer_timeout,&source); - + if(result!=OK){ if(verbose) printf(_("Result=ERROR\n")); @@ -957,7 +955,7 @@ int free_requested_server_list(void){ next_server=this_server->next; free(this_server); } - + return OK; } @@ -982,7 +980,7 @@ int get_results(void){ /* get max lease time we were offered */ if(temp_offer->lease_time>max_lease_time || temp_offer->lease_time==DHCP_INFINITE_TIME) max_lease_time=temp_offer->lease_time; - + /* see if we got the address we requested */ if(!memcmp(&requested_address,&temp_offer->offered_address,sizeof(requested_address))) received_requested_address=TRUE; @@ -1014,7 +1012,7 @@ int get_results(void){ /* get max lease time we were offered */ if(temp_offer->lease_time>max_lease_time || temp_offer->lease_time==DHCP_INFINITE_TIME) max_lease_time=temp_offer->lease_time; - + /* see if we got the address we requested */ if(!memcmp(&requested_address,&temp_offer->offered_address,sizeof(requested_address))) received_requested_address=TRUE; @@ -1392,7 +1390,7 @@ void print_help(void){ printf("Copyright (c) 2001-2004 Ethan Galstad (nagios@nagios.org)\n"); printf (COPYRIGHT, copyright, email); - + printf("%s\n", _("This plugin tests the availability of DHCP servers on a network.")); printf ("\n\n"); @@ -1400,6 +1398,7 @@ void print_help(void){ print_usage(); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_VERBOSE)); @@ -1416,17 +1415,24 @@ void print_help(void){ printf (" %s\n", "-u, --unicast"); printf (" %s\n", _("Unicast testing: mimic a DHCP relay, requires -s")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + + printf (_(UT_SUPPORT)); return; } void print_usage(void){ - + printf (_("Usage:")); printf (" %s [-v] [-u] [-s serverip] [-r requestedip] [-t timeout]\n",progname); printf (" [-i interface] [-m mac]\n"); - + return; } diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c index f542dd5..f1ccd1e 100644 --- a/plugins-root/check_icmp.c +++ b/plugins-root/check_icmp.c @@ -1,52 +1,49 @@ - /****************************************************************************** -* +/***************************************************************************** +* * Nagios check_icmp plugin -* +* * License: GPL -* Copyright (c) 2005-2007 nagios-plugins team -* +* Copyright (c) 2005-2008 Nagios Plugins Development Team * Original Author : Andreas Ericsson -* -* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $ -* +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_icmp plugin -* -* Relevant RFC's: 792 (ICMP), 791 (IP) -* -* This program was modeled somewhat after the check_icmp program, -* which was in turn a hack of fping (www.fping.org) but has been -* completely rewritten since to generate higher precision rta values, -* and support several different modes as well as setting ttl to control. -* redundant routes. The only remainders of fping is currently a few -* function names. -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* Relevant RFC's: 792 (ICMP), 791 (IP) +* +* This program was modeled somewhat after the check_icmp program, +* which was in turn a hack of fping (www.fping.org) but has been +* completely rewritten since to generate higher precision rta values, +* and support several different modes as well as setting ttl to control. +* redundant routes. The only remainders of fping is currently a few +* function names. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_icmp.c 1861 2007-12-11 05:57:35Z dermoth $ +* along with this program. If not, see . +* +* $Id: check_icmp.c 1991 2008-05-07 10:02:42Z dermoth $ * *****************************************************************************/ /* progname may change */ /* char *progname = "check_icmp"; */ char *progname; -const char *revision = "$Revision: 1861 $"; -const char *copyright = "2005-2007"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2005-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; /** nagios plugins basic includes */ @@ -54,6 +51,10 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "netutils.h" #include "utils.h" +#if HAVE_SYS_SOCKIO_H +#include +#endif +#include #include #include #include @@ -66,6 +67,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include #include #include +#include #include #include #include @@ -79,7 +81,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; # define MAXTTL 255 #endif #ifndef INADDR_NONE -# define INADDR_NONE 0xffffffU +# define INADDR_NONE (in_addr_t)(-1) #endif #ifndef SOL_IP @@ -178,14 +180,16 @@ void print_help (void); void print_usage (void); static u_int get_timevar(const char *); static u_int get_timevaldiff(struct timeval *, struct timeval *); +static in_addr_t get_ip_address(const char *); static int wait_for_reply(int, u_int); static int recvfrom_wto(int, char *, unsigned int, struct sockaddr *, u_int *); static int send_icmp_ping(int, struct rta_host *); static int get_threshold(char *str, threshold *th); static void run_checks(void); +static void set_source_ip(char *); static int add_target(char *); static int add_target_ip(char *, struct in_addr *); -static int handle_random_icmp(struct icmp *, struct sockaddr_in *); +static int handle_random_icmp(char *, struct sockaddr_in *); static unsigned short icmp_checksum(unsigned short *, int); static void finish(int); static void crash(const char *, ...); @@ -235,10 +239,10 @@ crash(const char *fmt, ...) } -static char * +static const char * get_icmp_error_msg(unsigned char icmp_type, unsigned char icmp_code) { - char *msg = "unreachable"; + const char *msg = "unreachable"; if(debug > 1) printf("get_icmp_error_msg(%u, %u)\n", icmp_type, icmp_code); switch(icmp_type) { @@ -292,19 +296,18 @@ get_icmp_error_msg(unsigned char icmp_type, unsigned char icmp_code) } static int -handle_random_icmp(struct icmp *p, struct sockaddr_in *addr) +handle_random_icmp(char *packet, struct sockaddr_in *addr) { - struct icmp sent_icmp; + struct icmp p, sent_icmp; struct rta_host *host = NULL; - unsigned char *ptr; - if(p->icmp_type == ICMP_ECHO && p->icmp_id == pid) { + memcpy(&p, packet, sizeof(p)); + if(p.icmp_type == ICMP_ECHO && p.icmp_id == pid) { /* echo request from us to us (pinging localhost) */ return 0; } - ptr = (unsigned char *)p; - if(debug) printf("handle_random_icmp(%p, %p)\n", (void *)p, (void *)addr); + if(debug) printf("handle_random_icmp(%p, %p)\n", (void *)&p, (void *)addr); /* only handle a few types, since others can't possibly be replies to * us in a sane network (if it is anyway, it will be counted as lost @@ -316,15 +319,15 @@ handle_random_icmp(struct icmp *p, struct sockaddr_in *addr) * TIMXCEED actually sends a proper icmp response we will have passed * too many hops to have a hope of reaching it later, in which case it * indicates overconfidence in the network, poor routing or both. */ - if(p->icmp_type != ICMP_UNREACH && p->icmp_type != ICMP_TIMXCEED && - p->icmp_type != ICMP_SOURCEQUENCH && p->icmp_type != ICMP_PARAMPROB) + if(p.icmp_type != ICMP_UNREACH && p.icmp_type != ICMP_TIMXCEED && + p.icmp_type != ICMP_SOURCEQUENCH && p.icmp_type != ICMP_PARAMPROB) { return 0; } /* might be for us. At least it holds the original package (according * to RFC 792). If it isn't, just ignore it */ - memcpy(&sent_icmp, ptr + 28, sizeof(sent_icmp)); + memcpy(&sent_icmp, packet + 28, sizeof(sent_icmp)); if(sent_icmp.icmp_type != ICMP_ECHO || sent_icmp.icmp_id != pid || sent_icmp.icmp_seq >= targets) { @@ -336,7 +339,7 @@ handle_random_icmp(struct icmp *p, struct sockaddr_in *addr) host = table[sent_icmp.icmp_seq]; if(debug) { printf("Received \"%s\" from %s for ICMP ECHO sent to %s.\n", - get_icmp_error_msg(p->icmp_type, p->icmp_code), + get_icmp_error_msg(p.icmp_type, p.icmp_code), inet_ntoa(addr->sin_addr), host->name); } @@ -347,7 +350,7 @@ handle_random_icmp(struct icmp *p, struct sockaddr_in *addr) /* source quench means we're sending too fast, so increase the * interval and mark this packet lost */ - if(p->icmp_type == ICMP_SOURCEQUENCH) { + if(p.icmp_type == ICMP_SOURCEQUENCH) { pkt_interval *= pkt_backoff_factor; target_interval *= target_backoff_factor; } @@ -355,8 +358,8 @@ handle_random_icmp(struct icmp *p, struct sockaddr_in *addr) targets_down++; host->flags |= FLAG_LOST_CAUSE; } - host->icmp_type = p->icmp_type; - host->icmp_code = p->icmp_code; + host->icmp_type = p.icmp_type; + host->icmp_code = p.icmp_code; host->error_addr.s_addr = addr->sin_addr.s_addr; return 0; @@ -375,7 +378,7 @@ main(int argc, char **argv) setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); - + /* print a helpful error message if geteuid != 0 */ np_warn_if_not_root(); @@ -444,9 +447,12 @@ main(int argc, char **argv) packets = 5; } + /* Parse extra opts if any */ + argv=np_extra_opts(&argc, argv, progname); + /* parse the arguments */ for(i = 1; i < argc; i++) { - while((arg = getopt(argc, argv, "vhVw:c:n:p:t:H:i:b:I:l:m:")) != EOF) { + while((arg = getopt(argc, argv, "vhVw:c:n:p:t:H:s:i:b:I:l:m:")) != EOF) { switch(arg) { case 'v': debug++; @@ -489,6 +495,9 @@ main(int argc, char **argv) crit_down = (unsigned char)strtoul(ptr + 1, NULL, 0); } break; + case 's': /* specify source IP address */ + set_source_ip(optarg); + break; case 'V': /* version */ /*print_revision (progname, revision);*/ /* FIXME: Why? */ exit (STATE_OK); @@ -640,7 +649,7 @@ run_checks() table[t]->name); continue; } - + /* we're still in the game, so send next packet */ (void)send_icmp_ping(icmp_sock, table[t]); result = wait_for_reply(icmp_sock, target_interval); @@ -748,13 +757,13 @@ wait_for_reply(int sock, u_int t) memcpy(&icp, buf + hlen, sizeof(icp)); if(icp.icmp_id != pid) { - handle_random_icmp(&icp, &resp_addr); + handle_random_icmp(buf + hlen, &resp_addr); continue; } if(icp.icmp_type != ICMP_ECHOREPLY || icp.icmp_seq >= targets) { if(debug > 2) printf("not a proper ICMP_ECHOREPLY\n"); - handle_random_icmp(&icp, &resp_addr); + handle_random_icmp(buf + hlen, &resp_addr); continue; } @@ -887,7 +896,7 @@ finish(int sig) unsigned char pl; double rta; struct rta_host *host; - char *status_string[] = + const char *status_string[] = {"OK", "WARNING", "CRITICAL", "UNKNOWN", "DEPENDENT"}; int hosts_ok = 0; int hosts_warn = 0; @@ -1101,7 +1110,7 @@ add_target(char *arg) /* this is silly, but it works */ if(mode == MODE_HOSTCHECK || mode == MODE_ALL) { - printf("mode: %d\n", mode); + if(debug > 2) printf("mode: %d\n", mode); continue; } break; @@ -1109,6 +1118,40 @@ add_target(char *arg) return 0; } + +static void +set_source_ip(char *arg) +{ + struct sockaddr_in src; + + memset(&src, 0, sizeof(src)); + src.sin_family = AF_INET; + if((src.sin_addr.s_addr = inet_addr(arg)) == INADDR_NONE) + src.sin_addr.s_addr = get_ip_address(arg); + if(bind(icmp_sock, (struct sockaddr *)&src, sizeof(src)) == -1) + crash("Cannot bind to IP address %s", arg); +} + +/* TODO: Move this to netutils.c and also change check_dhcp to use that. */ +static in_addr_t +get_ip_address(const char *ifname) +{ +#if defined(SIOCGIFADDR) + struct ifreq ifr; + struct sockaddr_in ip; + + strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1); + ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0'; + if(ioctl(icmp_sock, SIOCGIFADDR, &ifr) == -1) + crash("Cannot determine IP address of interface %s", ifname); + memcpy(&ip, &ifr.ifr_addr, sizeof(ip)); + return ip.sin_addr.s_addr; +#else + errno = 0; + crash("Cannot get interface IP address on this platform."); +#endif +} + /* * u = micro * m = milli @@ -1213,16 +1256,17 @@ print_help(void) { /*print_revision (progname, revision);*/ /* FIXME: Why? */ - + printf ("Copyright (c) 2005 Andreas Ericsson \n"); printf (COPYRIGHT, copyright, email); - + printf ("\n\n"); - + print_usage (); - + printf (_(UT_HELP_VRSN)); - + printf (_(UT_EXTRA_OPTS)); + printf (" %s\n", "-H"); printf (" %s\n", _("specify a target")); printf (" %s\n", "-w"); @@ -1231,6 +1275,8 @@ print_help(void) printf (" %s\n", "-c"); printf (" %s", _("critical threshold (currently ")); printf ("%0.3fms,%u%%)\n", (float)crit.rta, crit.pl); + printf (" %s\n", "-s"); + printf (" %s\n", _("specify a source IP address or device name")); printf (" %s\n", "-n"); printf (" %s", _("number of packets to send (currently ")); printf ("%u)\n",packets); @@ -1255,23 +1301,28 @@ print_help(void) printf (" %s\n", _("verbose")); printf ("\n"); - printf ("%s\n\n", _("The -H switch is optional. Naming a host (or several) to check is not.")); - printf ("%s\n", _("Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%")); - printf ("%s\n", _("packet loss. The default values should work well for most users.")); - printf ("%s\n", _("You can specify different RTA factors using the standardized abbreviations")); - printf ("%s\n\n", _("us (microseconds), ms (milliseconds, default) or just plain s for seconds.")); + printf ("%s\n", _("Notes:")); + printf (" %s\n", _("The -H switch is optional. Naming a host (or several) to check is not.")); + printf ("\n"); + printf (" %s\n", _("Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%")); + printf (" %s\n", _("packet loss. The default values should work well for most users.")); + printf (" %s\n", _("You can specify different RTA factors using the standardized abbreviations")); + printf (" %s\n", _("us (microseconds), ms (milliseconds, default) or just plain s for seconds.")); /* -d not yet implemented */ /* printf ("%s\n", _("Threshold format for -d is warn,crit. 12,14 means WARNING if >= 12 hops")); printf ("%s\n", _("are spent and CRITICAL if >= 14 hops are spent.")); printf ("%s\n\n", _("NOTE: Some systems decrease TTL when forming ICMP_ECHOREPLY, others do not."));*/ - printf ("%s\n\n", _("The -v switch can be specified several times for increased verbosity.")); - + printf ("\n"); + printf (" %s\n", _("The -v switch can be specified several times for increased verbosity.")); /* printf ("%s\n", _("Long options are currently unsupported.")); printf ("%s\n", _("Options marked with * require an argument")); */ +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); - - printf (_(UT_NOWARRANTY)); } @@ -1280,5 +1331,5 @@ void print_usage (void) { printf (_("Usage:")); - printf(" %s [options] [-H] host1 host2 hostn\n", progname); + printf(" %s [options] [-H] host1 host2 hostN\n", progname); } diff --git a/plugins-root/pst3.c b/plugins-root/pst3.c index ace3113..5b0e9d7 100644 --- a/plugins-root/pst3.c +++ b/plugins-root/pst3.c @@ -1,15 +1,15 @@ /* pst3.c - * - * Third version to get process arg info; this time by using - * a combination of reading the /proc//psinfo structures - * and reading the complete arg vector from kernel memory structures. - * - * Developed and tested under Solaris 5.8 (both 32 and 64 bit modes). - * - * NOTE: This program must be setuid-root (or run by root) to work! - * - * Written: 2005-04-28 R.W.Ingraham - */ +* +* Third version to get process arg info; this time by using +* a combination of reading the /proc//psinfo structures +* and reading the complete arg vector from kernel memory structures. +* +* Developed and tested under Solaris 5.8 (both 32 and 64 bit modes). +* +* NOTE: This program must be setuid-root (or run by root) to work! +* +* Written: 2005-04-28 R.W.Ingraham +*/ #define _KMEMUSER 1 @@ -99,7 +99,7 @@ int main (int argc, char **argv) if ((pDir = opendir(PROC_DIR)) != NULL) { /* Display column headings */ - printf("S UID PPID VSZ RSS %%CPU COMMAND ARGS\n"); + printf("S UID PID PPID VSZ RSS %%CPU COMMAND ARGS\n"); /* Zip through all of the process entries */ while ((pDent = readdir(pDir)) != NULL) @@ -187,9 +187,10 @@ static int HandlePsInfo (char *szPath, psinfo_t *pPsInfo) thisProg = myArgv[0]; /* Display the ps columns (except for argv) */ - printf("%c %5d %5d %6lu %6lu %4.1f %s ", + printf("%c %5d %5d %5d %6lu %6lu %4.1f %s ", pPsInfo->pr_lwp.pr_sname, (int)(pPsInfo->pr_euid), + (int)(pPsInfo->pr_pid), (int)(pPsInfo->pr_ppid), (unsigned long)(pPsInfo->pr_size), (unsigned long)(pPsInfo->pr_rssize), diff --git a/plugins-scripts/Makefile.in b/plugins-scripts/Makefile.in index b6a0570..8761bc1 100644 --- a/plugins-scripts/Makefile.in +++ b/plugins-scripts/Makefile.in @@ -39,36 +39,40 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/subst.in $(srcdir)/utils.pm.in $(srcdir)/utils.sh.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \ - $(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \ - $(top_srcdir)/gl/m4/dos.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \ + $(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/exitfail.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/fcntl-safer.m4 \ + $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ $(top_srcdir)/gl/m4/fstypename.m4 \ $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \ - $(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \ + $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/include_next.m4 \ + $(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ + $(top_srcdir)/gl/m4/intmax_t.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ - $(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/longdouble.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/longlong.m4 \ $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ - $(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \ - $(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \ - $(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \ + $(top_srcdir)/gl/m4/mbstate_t.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \ $(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \ @@ -78,21 +82,21 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \ - $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ - $(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \ + $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ + $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \ + $(top_srcdir)/gl/m4/strerror.m4 \ + $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \ $(top_srcdir)/gl/m4/strnlen.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/ulonglong.m4 \ $(top_srcdir)/gl/m4/unistd-safer.m4 \ $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \ $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \ - $(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ - $(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \ - $(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs @@ -106,10 +110,6 @@ DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) VPATH = $(top_srcdir) $(top_srcdir)/plugins-scripts $(top_srcdir)/plugins-scripts/t INSTALL = @INSTALL@ -ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@ -ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@ -ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@ -ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -154,27 +154,177 @@ EXTRA_NETOBJS = @EXTRA_NETOBJS@ EXTRA_TEST = @EXTRA_TEST@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLOAT_H = @FLOAT_H@ +FLOORF_LIBM = @FLOORF_LIBM@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLIBC21 = @GLIBC21@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@ GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MATHL = @GNULIB_MATHL@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GREP = @GREP@ +HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ +HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ +HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ +HAVE_DECL_COSL = @HAVE_DECL_COSL@ +HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ +HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ +HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_SINL = @HAVE_DECL_SINL@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TANL = @HAVE_DECL_TANL@ +HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ +HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ +HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DUP2 = @HAVE_DUP2@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ +HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRNDUP = @HAVE_STRNDUP@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRSEP = @HAVE_STRSEP@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE__BOOL = @HAVE__BOOL@ HOSTNAME = @HOSTNAME@ +INCLUDE_NEXT = @INCLUDE_NEXT@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -195,6 +345,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ @@ -208,6 +359,17 @@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NEED_SETGID = @NEED_SETGID@ NETINET_IN_H = @NETINET_IN_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_MATH_H = @NEXT_MATH_H@ +NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -246,11 +408,56 @@ PKG_ARCH = @PKG_ARCH@ PLUGIN_TEST = @PLUGIN_TEST@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +PST3CFLAGS = @PST3CFLAGS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON = @PYTHON@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ +REPLACE_CEILF = @REPLACE_CEILF@ +REPLACE_CEILL = @REPLACE_CEILL@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FLOORF = @REPLACE_FLOORF@ +REPLACE_FLOORL = @REPLACE_FLOORL@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FREXP = @REPLACE_FREXP@ +REPLACE_FREXPL = @REPLACE_FREXPL@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_ISFINITE = @REPLACE_ISFINITE@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LDEXPL = @REPLACE_LDEXPL@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_ROUND = @REPLACE_ROUND@ +REPLACE_ROUNDF = @REPLACE_ROUNDF@ +REPLACE_ROUNDL = @REPLACE_ROUNDL@ +REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REV_DATESTAMP = @REV_DATESTAMP@ REV_TIMESTAMP = @REV_TIMESTAMP@ SCRIPT_TEST = @SCRIPT_TEST@ @@ -267,9 +474,11 @@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ SYS_SOCKET_H = @SYS_SOCKET_H@ -UNISTD_H = @UNISTD_H@ USE_NLS = @USE_NLS@ +USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@ +USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@ VERSION = @VERSION@ +VOID_UNSETENV = @VOID_UNSETENV@ WARRANTY = @WARRANTY@ WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ @@ -277,6 +486,7 @@ WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ @@ -303,6 +513,8 @@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 30080ae..67c49ca 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -4,10 +4,11 @@ VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plug INCLUDES = -I.. -I$(top_srcdir)/lib -I$(top_srcdir)/gl -I$(top_srcdir)/intl @LDAPINCLUDE@ @PGINCLUDE@ @SSLINCLUDE@ -datadir = @datadir@ localedir = $(datadir)/locale +# gettext docs say to use AM_CPPFLAGS, but per module_CPPFLAGS override this DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ -LIBS = @LIBINTL@ @LIBS@ +# gettext docs say to use LDADD, but per module_LDADD override +LIBS = @LTLIBINTL@ @LIBS@ MATHLIBS = @MATHLIBS@ # This is not portable. Run ". tools/devmode" to get development compile flags diff --git a/plugins/Makefile.in b/plugins/Makefile.in index 4af291d..c4ff31e 100644 --- a/plugins/Makefile.in +++ b/plugins/Makefile.in @@ -54,36 +54,40 @@ subdir = plugins DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/c-strtod.m4 $(top_srcdir)/gl/m4/cloexec.m4 \ - $(top_srcdir)/gl/m4/codeset.m4 $(top_srcdir)/gl/m4/dirname.m4 \ - $(top_srcdir)/gl/m4/dos.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/c-strtod.m4 \ + $(top_srcdir)/gl/m4/cloexec.m4 $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 $(top_srcdir)/gl/m4/dos.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/eoverflow.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/exitfail.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/fcntl-safer.m4 \ + $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ $(top_srcdir)/gl/m4/fstypename.m4 \ $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/iconv.m4 $(top_srcdir)/gl/m4/inet_ntop.m4 \ - $(top_srcdir)/gl/m4/inline.m4 $(top_srcdir)/gl/m4/intmax_t.m4 \ + $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/include_next.m4 \ + $(top_srcdir)/gl/m4/inet_ntop.m4 $(top_srcdir)/gl/m4/inline.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ + $(top_srcdir)/gl/m4/intmax_t.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ - $(top_srcdir)/gl/m4/lib-prefix.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/longdouble.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/longlong.m4 \ $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ - $(top_srcdir)/gl/m4/mbchar.m4 $(top_srcdir)/gl/m4/mbiter.m4 \ - $(top_srcdir)/gl/m4/mbrtowc.m4 $(top_srcdir)/gl/m4/memchr.m4 \ - $(top_srcdir)/gl/m4/minmax.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/math_h.m4 \ + $(top_srcdir)/gl/m4/mbstate_t.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/onceonly_2_57.m4 $(top_srcdir)/gl/m4/po.m4 \ $(top_srcdir)/gl/m4/progtest.m4 $(top_srcdir)/gl/m4/regex.m4 \ @@ -93,21 +97,21 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stdint.m4 \ - $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ - $(top_srcdir)/gl/m4/strdup.m4 $(top_srcdir)/gl/m4/strndup.m4 \ + $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ + $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strdup.m4 \ + $(top_srcdir)/gl/m4/strerror.m4 \ + $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/strndup.m4 \ $(top_srcdir)/gl/m4/strnlen.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/ulonglong.m4 \ $(top_srcdir)/gl/m4/unistd-safer.m4 \ $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 $(top_srcdir)/gl/m4/wchar.m4 \ $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wctype.m4 \ - $(top_srcdir)/gl/m4/wcwidth.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ - $(top_srcdir)/gl/m4/xalloc.m4 $(top_srcdir)/gl/m4/xsize.m4 \ - $(top_srcdir)/gl/m4/xstrndup.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs @@ -239,10 +243,6 @@ CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t INSTALL = @INSTALL@ -ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@ -ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@ -ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@ -ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -271,6 +271,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ +# gettext docs say to use AM_CPPFLAGS, but per module_CPPFLAGS override this DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ DEPDIR = @DEPDIR@ DEPLIBS = @DEPLIBS@ @@ -287,27 +288,177 @@ EXTRA_NETOBJS = @EXTRA_NETOBJS@ EXTRA_TEST = @EXTRA_TEST@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLOAT_H = @FLOAT_H@ +FLOORF_LIBM = @FLOORF_LIBM@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLIBC21 = @GLIBC21@ GL_COND_LIBTOOL_FALSE = @GL_COND_LIBTOOL_FALSE@ GL_COND_LIBTOOL_TRUE = @GL_COND_LIBTOOL_TRUE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MATHL = @GNULIB_MATHL@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GREP = @GREP@ +HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ +HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ +HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ +HAVE_DECL_COSL = @HAVE_DECL_COSL@ +HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ +HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ +HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_SINL = @HAVE_DECL_SINL@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_TANL = @HAVE_DECL_TANL@ +HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ +HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ +HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DUP2 = @HAVE_DUP2@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ +HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_SETENV = @HAVE_SETENV@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRNDUP = @HAVE_STRNDUP@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRSEP = @HAVE_STRSEP@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE__BOOL = @HAVE__BOOL@ HOSTNAME = @HOSTNAME@ +INCLUDE_NEXT = @INCLUDE_NEXT@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -325,9 +476,11 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ -LIBS = @LIBINTL@ @LIBS@ +# gettext docs say to use LDADD, but per module_LDADD override +LIBS = @LTLIBINTL@ @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ @@ -341,6 +494,17 @@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NEED_SETGID = @NEED_SETGID@ NETINET_IN_H = @NETINET_IN_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_MATH_H = @NEXT_MATH_H@ +NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -379,11 +543,56 @@ PKG_ARCH = @PKG_ARCH@ PLUGIN_TEST = @PLUGIN_TEST@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +PST3CFLAGS = @PST3CFLAGS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON = @PYTHON@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ +REPLACE_CEILF = @REPLACE_CEILF@ +REPLACE_CEILL = @REPLACE_CEILL@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FLOORF = @REPLACE_FLOORF@ +REPLACE_FLOORL = @REPLACE_FLOORL@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FREXP = @REPLACE_FREXP@ +REPLACE_FREXPL = @REPLACE_FREXPL@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_ISFINITE = @REPLACE_ISFINITE@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LDEXPL = @REPLACE_LDEXPL@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_ROUND = @REPLACE_ROUND@ +REPLACE_ROUNDF = @REPLACE_ROUNDF@ +REPLACE_ROUNDL = @REPLACE_ROUNDL@ +REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REV_DATESTAMP = @REV_DATESTAMP@ REV_TIMESTAMP = @REV_TIMESTAMP@ SCRIPT_TEST = @SCRIPT_TEST@ @@ -400,9 +609,11 @@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ SYS_SOCKET_H = @SYS_SOCKET_H@ -UNISTD_H = @UNISTD_H@ USE_NLS = @USE_NLS@ +USE_PARSE_INI_FALSE = @USE_PARSE_INI_FALSE@ +USE_PARSE_INI_TRUE = @USE_PARSE_INI_TRUE@ VERSION = @VERSION@ +VOID_UNSETENV = @VOID_UNSETENV@ WARRANTY = @WARRANTY@ WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ @@ -410,6 +621,7 @@ WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ @@ -436,6 +648,8 @@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ diff --git a/plugins/check_apt.c b/plugins/check_apt.c index 2a1a587..b899eac 100644 --- a/plugins/check_apt.c +++ b/plugins/check_apt.c @@ -1,43 +1,41 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_apt plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Original author: sean finney -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 2006-2008 Nagios Plugins Development Team +* +* Original author: Sean Finney +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_apt plugin * -* check for available updates in apt package management systems -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* Check for available updates in apt package management systems +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_apt.c 1590 2007-01-28 21:46:41Z hweiss $ * -******************************************************************************/ +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: check_apt.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_apt"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2006-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -90,6 +88,9 @@ static int exec_warning = 0; /* if a cmd exited non-zero */ int main (int argc, char **argv) { int result=STATE_UNKNOWN, packages_available=0, sec_count=0; + /* Parse extra opts if any */ + argv=np_extra_opts(&argc, argv, progname); + if (process_arguments(argc, argv) == ERROR) usage_va(_("Could not parse arguments")); @@ -404,9 +405,9 @@ void print_help (void) { print_revision(progname, revision); - + printf(_(COPYRIGHT), copyright, email); - + printf("%s\n", _("This plugin checks for software updates on systems that use")); printf("%s\n", _("package management systems based on the apt-get(8) command")); printf("%s\n", _("found in Debian GNU/Linux")); @@ -414,11 +415,12 @@ print_help (void) printf ("\n\n"); print_usage(); - + printf(_(UT_HELP_VRSN)); - + printf(_(UT_EXTRA_OPTS)); + printf(_(UT_TIMEOUT), timeout_interval); - + printf (" %s\n", "-U, --upgrade=OPTS"); printf (" %s\n", _("[Default] Perform an upgrade. If an optional OPTS argument is provided,")); printf (" %s\n", _("apt-get will be run with these command line options instead of the")); @@ -447,17 +449,25 @@ print_help (void) printf (" %s\n", _("upgrades for Debian and Ubuntu:")); printf (" \t\%s\n", SECURITY_RE); printf (" %s\n", _("Note that the package must first match the include list before its")); - printf (" %s\n\n\n", _("information is compared against the critical list.")); - + printf (" %s\n\n", _("information is compared against the critical list.")); + printf ("%s\n\n", _("The following options require root privileges and should be used with care:")); printf (" %s\n", "-u, --update=OPTS"); printf (" %s\n", _("First perform an 'apt-get update'. An optional OPTS parameter overrides")); printf (" %s\n", _("the default options. Note: you may also need to adjust the global")); printf (" %s\n", _("timeout (with -t) to prevent the plugin from timing out if apt-get")); printf (" %s\n", _("upgrade is expected to take longer than the default timeout.")); + +#ifdef NP_EXTRA_OPTS + printf("\n"); + printf("%s\n", _("Notes:")); + printf(_(UT_EXTRA_OPTS_NOTES)); +#endif + + printf(_(UT_SUPPORT)); } - + /* simple usage heading */ void print_usage(void) diff --git a/plugins/check_by_ssh.c b/plugins/check_by_ssh.c index 9073884..007fe49 100644 --- a/plugins/check_by_ssh.c +++ b/plugins/check_by_ssh.c @@ -1,39 +1,37 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_by_ssh plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-09-23 13:26:03 +0100 (Sun, 23 Sep 2007) $ -* +* Copyright (c) 2000-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-27 22:31:13 +0100 (Tue, 27 May 2008) $ +* * Description: -* +* * This file contains the check_by_ssh plugin -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_by_ssh.c 1792 2007-09-23 12:26:03Z psychotrahe $ * -******************************************************************************/ - +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: check_by_ssh.c 2002 2008-05-27 21:31:13Z tonvoon $ +* +*****************************************************************************/ + const char *progname = "check_by_ssh"; -const char *revision = "$Revision: 1792 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 2002 $"; +const char *copyright = "2000-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -78,6 +76,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + /* process arguments */ if (process_arguments (argc, argv) == ERROR) usage_va(_("Could not parse arguments")); @@ -99,11 +100,11 @@ main (int argc, char **argv) if (skip_stderr == -1) /* --skip-stderr specified without argument */ skip_stderr = chld_err.lines; - /* UNKNOWN if (non-skipped) output found on stderr */ + /* UNKNOWN or worse if (non-skipped) output found on stderr */ if(chld_err.lines > skip_stderr) { printf (_("Remote command execution failed: %s\n"), chld_err.line[skip_stderr]); - return STATE_UNKNOWN; + return max_state_alt(result, STATE_UNKNOWN); } /* this is simple if we're not supposed to be passive. @@ -132,21 +133,20 @@ main (int argc, char **argv) local_time = time (NULL); commands = 0; for(i = skip_stdout; i < chld_out.lines; i++) { - status_text = strstr (chld_out.line[i], "STATUS CODE: "); - if (status_text == NULL) { - printf ("%s", chld_out.line[i]); - return result; - } + status_text = chld_out.line[i++]; + if (i == chld_out.lines || strstr (chld_out.line[i], "STATUS CODE: ") == NULL) + die (STATE_UNKNOWN, _("%s: Error parsing output\n"), progname); + if (service[commands] && status_text - && sscanf (status_text, "STATUS CODE: %d", &cresult) == 1) + && sscanf (chld_out.line[i], "STATUS CODE: %d", &cresult) == 1) { fprintf (fp, "[%d] PROCESS_SERVICE_CHECK_RESULT;%s;%s;%d;%s\n", (int) local_time, host_shortname, service[commands++], - cresult, chld_out.line[i]); + cresult, status_text); } } - /* force an OK state */ + /* Multiple commands and passive checking should always return OK */ return result; } @@ -307,7 +307,7 @@ process_arguments (int argc, char **argv) asprintf (&remotecmd, "%s", argv[c]); } - if (commands > 1) + if (commands > 1 || passive) asprintf (&remotecmd, "%s;echo STATUS CODE: $?;", remotecmd); if (remotecmd == NULL || strlen (remotecmd) <= 1) @@ -347,11 +347,13 @@ print_help (void) printf (_("This plugin uses SSH to execute commands on a remote host")); printf ("\n\n"); - + print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); + printf (_(UT_HOST_PORT), 'p', "none"); printf (_(UT_IPv46)); @@ -365,7 +367,7 @@ print_help (void) printf (" %s\n", "-E, --skip-stderr[=n]"); printf (" %s\n", _("Ignore all or (if specified) first n lines on STDERR [optional]")); printf (" %s\n", "-f"); - printf (" %s\n", _("tells ssh to fork rather than create a tty [optional]")); + printf (" %s\n", _("tells ssh to fork rather than create a tty [optional]. This will always return OK if ssh is executed")); printf (" %s\n","-C, --command='COMMAND STRING'"); printf (" %s\n", _("command to execute on the remote machine")); printf (" %s\n","-l, --logname=USERNAME"); @@ -384,6 +386,8 @@ print_help (void) printf (" %s\n", _("Tell ssh to suppress warning and diagnostic messages [optional]")); printf (_(UT_WARN_CRIT)); printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); + printf (_(UT_VERBOSE)); + printf("\n"); printf (" %s\n", _("The most common mode of use is to refer to a local identity file with")); printf (" %s\n", _("the '-i' option. In this mode, the identity pair should have a null")); printf (" %s\n", _("passphrase and the public key should be listed in the authorized_keys")); @@ -391,6 +395,7 @@ print_help (void) printf (" %s\n", _("only one command on the remote server. If the remote SSH server tracks")); printf (" %s\n", _("invocation arguments, the one remote program may be an agent that can")); printf (" %s\n", _("execute additional commands as proxy")); + printf("\n"); printf (" %s\n", _("To use passive mode, provide multiple '-C' options, and provide")); printf (" %s\n", _("all of -O, -s, and -n options (servicelist order must match '-C'options)")); printf ("\n"); @@ -400,8 +405,14 @@ print_help (void) printf (" %s\n", "[1080933700] PROCESS_SERVICE_CHECK_RESULT;flint;c1;0; up 2 days"); printf (" %s\n", "[1080933700] PROCESS_SERVICE_CHECK_RESULT;flint;c2;0; up 2 days"); printf (" %s\n", "[1080933700] PROCESS_SERVICE_CHECK_RESULT;flint;c3;0; up 2 days"); - printf (_(UT_VERBOSE)); - printf (_(UT_SUPPORT)); + +#ifdef NP_EXTRA_OPTS + printf("\n"); + printf("%s\n", _("Notes:")); + printf(_(UT_EXTRA_OPTS_NOTES)); +#endif + + printf(_(UT_SUPPORT)); } diff --git a/plugins/check_cluster.c b/plugins/check_cluster.c index 9af2002..f0d147a 100644 --- a/plugins/check_cluster.c +++ b/plugins/check_cluster.c @@ -1,35 +1,34 @@ /***************************************************************************** - * - * CHECK_CLUSTER2.C - Host and Service Cluster Plugin for Nagios 2.x - * - * Copyright (c) 2000-2004 Ethan Galstad (nagios@nagios.org) - * Copyright (c) 2007 nagios-plugins team - * License: GPL - * Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $ - * - * 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_cluster.c 1861 2007-12-11 05:57:35Z dermoth $ - * -******************************************************************************/ +* +* check_cluster.c - Host and Service Cluster Plugin for Nagios 2.x +* +* License: GPL +* Copyright (c) 2000-2004 Ethan Galstad (nagios@nagios.org) +* Copyright (c) 2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: check_cluster.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_cluster"; -const char *revision = "$Revision: 1861 $"; -const char *copyright = "2007"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -75,6 +74,9 @@ int main(int argc, char **argv){ bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts(&argc, argv, progname); + if(process_arguments(argc,argv)==ERROR) usage(_("Could not parse arguments")); @@ -237,6 +239,7 @@ print_help(void) printf("\n"); printf("%s\n", _("Options:")); + printf(_(UT_EXTRA_OPTS)); printf (" %s\n", "-s, --service"); printf (" %s\n", _("Check service cluster status")); printf (" %s\n", "-h, --host"); @@ -257,12 +260,13 @@ print_help(void) 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(_(UT_THRESHOLDS_NOTES)); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif printf(_(UT_SUPPORT)); - printf("\n"); } diff --git a/plugins/check_dig.c b/plugins/check_dig.c index 969e2a5..f1b6935 100644 --- a/plugins/check_dig.c +++ b/plugins/check_dig.c @@ -1,34 +1,32 @@ /***************************************************************************** -* +* * Nagios check_dig plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 2002-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_dig plugin -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_dig.c 1590 2007-01-28 21:46:41Z hweiss $ -* +* along with this program. If not, see . +* +* $Id: check_dig.c 1991 2008-05-07 10:02:42Z dermoth $ +* *****************************************************************************/ /* Hackers note: @@ -38,8 +36,8 @@ * because on some architectures those strings are in non-writable memory */ const char *progname = "check_dig"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "2002-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2002-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -59,6 +57,7 @@ char *query_address = NULL; char *record_type = "A"; char *expected_address = NULL; char *dns_server = NULL; +char *dig_args = ""; int verbose = FALSE; int server_port = DEFAULT_PORT; double warning_interval = UNDEFINED; @@ -85,12 +84,15 @@ main (int argc, char **argv) if (signal (SIGALRM, popen_timeout_alarm_handler) == SIG_ERR) usage_va(_("Cannot catch SIGALRM")); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage_va(_("Could not parse arguments")); /* get the command to run */ - asprintf (&command_line, "%s @%s -p %d %s -t %s", - PATH_TO_DIG, dns_server, server_port, query_address, record_type); + asprintf (&command_line, "%s @%s -p %d %s -t %s %s", + PATH_TO_DIG, dns_server, server_port, query_address, record_type, dig_args); alarm (timeout_interval); gettimeofday (&tv, NULL); @@ -192,6 +194,7 @@ process_arguments (int argc, char **argv) {"warning", required_argument, 0, 'w'}, {"critical", required_argument, 0, 'c'}, {"timeout", required_argument, 0, 't'}, + {"dig-arguments", required_argument, 0, 'A'}, {"verbose", no_argument, 0, 'v'}, {"version", no_argument, 0, 'V'}, {"help", no_argument, 0, 'h'}, @@ -205,7 +208,7 @@ process_arguments (int argc, char **argv) return ERROR; while (1) { - c = getopt_long (argc, argv, "hVvt:l:H:w:c:T:p:a:", longopts, &option); + c = getopt_long (argc, argv, "hVvt:l:H:w:c:T:p:a:A:", longopts, &option); if (c == -1 || c == EOF) break; @@ -256,6 +259,9 @@ process_arguments (int argc, char **argv) usage_va(_("Timeout interval must be a positive integer - %s"), optarg); } break; + case 'A': /* dig arguments */ + dig_args = strdup(optarg); + break; case 'v': /* verbose */ verbose = TRUE; break; @@ -314,17 +320,34 @@ print_help (void) printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); + printf (_(UT_HOST_PORT), 'p', myport); - printf (" %s\n","-l, --lookup=STRING"); - printf (" %s\n",_("machine name to lookup")); + printf (" %s\n","-l, --query_address=STRING"); + printf (" %s\n",_("Machine name to lookup")); printf (" %s\n","-T, --record_type=STRING"); - printf (" %s\n",_("record type to lookup (default: A)")); + printf (" %s\n",_("Record type to lookup (default: A)")); printf (" %s\n","-a, --expected_address=STRING"); - printf (" %s\n",_("an address expected to be in the answer section.if not set, uses whatever was in -l")); + printf (" %s\n",_("An address expected to be in the answer section. If not set, uses whatever")); + printf (" %s\n",_("was in -l")); + printf (" %s\n","-A, --dig-arguments=STRING"); + printf (" %s\n",_("Pass STRING as argument(s) to dig")); printf (_(UT_WARN_CRIT)); printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); printf (_(UT_VERBOSE)); + + printf ("\n"); + printf ("%s\n", _("Examples:")); + printf (" %s\n", "check_dig -H DNSSERVER -l www.example.com -A \"+tcp\""); + printf (" %s\n", "This will send a tcp query to DNSSERVER for www.example.com"); + +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } @@ -334,7 +357,7 @@ void print_usage (void) { printf (_("Usage:")); - printf ("%s -H host -l lookup [-p ] [-T ]", progname); - printf (" [-w ] [-c ] [-t ]"); - printf (" [-a ] [-v]\n"); + printf ("%s -H -l [-p ]\n", progname); + printf (" [-T ] [-w ] [-c ]\n"); + printf (" [-t ] [-a ] [-v]\n"); } diff --git a/plugins/check_disk.c b/plugins/check_disk.c index dade9f1..e3b63e7 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c @@ -1,40 +1,38 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_disk plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-12-08 16:34:05 +0000 (Sat, 08 Dec 2007) $ -* +* Copyright (c) 1999-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_disk plugin -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_disk.c 1848 2007-12-08 16:34:05Z dermoth $ +* along with this program. If not, see . +* +* $Id: check_disk.c 1991 2008-05-07 10:02:42Z dermoth $ * *****************************************************************************/ const char *progname = "check_disk"; const char *program_name = "check_disk"; /* Required for coreutils libs */ -const char *revision = "$Revision: 1848 $"; -const char *copyright = "1999-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "1999-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; @@ -194,6 +192,9 @@ main (int argc, char **argv) mount_list = read_file_system_list (0); + /* Parse extra opts if any */ + argv = np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -222,7 +223,7 @@ main (int argc, char **argv) temp_list = temp_list->name_next; } - + /* Process for every path in list */ for (path = path_select_list; path; path=path->name_next) { @@ -256,7 +257,7 @@ main (int argc, char **argv) for (temp_list = path_select_list; temp_list; temp_list=temp_list->name_next) { if (temp_list->group && ! (strcmp(temp_list->group, path->group))) { - + stat_path(path); get_fs_usage (temp_list->best_match->me_mountdir, temp_list->best_match->me_devname, &tmpfsp); @@ -265,10 +266,11 @@ main (int argc, char **argv) (fsp.fsu_blocks + tmpfsp.fsu_blocks); /* Size of a block. */ fsp.fsu_blocks += tmpfsp.fsu_blocks; /* Total blocks. */ fsp.fsu_bfree += tmpfsp.fsu_bfree; /* Free blocks available to superuser. */ - fsp.fsu_bavail += tmpfsp.fsu_bavail; /* Free blocks available to non-superuser. */ + /* Gnulib workaround - see comment about it a few lines below */ + fsp.fsu_bavail += (tmpfsp.fsu_bavail > tmpfsp.fsu_bfree ? 0 : tmpfsp.fsu_bavail); /* Free blocks available to non-superuser. */ fsp.fsu_files += tmpfsp.fsu_files; /* Total file nodes. */ fsp.fsu_ffree += tmpfsp.fsu_ffree; /* Free file nodes. */ - + if (verbose > 3) printf("Group %s: add %llu blocks (%s) \n", path->group, tmpfsp.fsu_bavail, temp_list->name); /* printf("Group %s: add %u blocks (%s)\n", temp_list->name); *//* path->group, tmpfsp.fsu_bavail, temp_list->name); */ @@ -319,7 +321,7 @@ main (int argc, char **argv) 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; dused_units = used*fsp.fsu_blocksize/mult; dfree_units = available*fsp.fsu_blocksize/mult; @@ -386,10 +388,10 @@ main (int argc, char **argv) asprintf (&perf, "%s %s", perf, perfdata ((!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir, dused_units, units, - (warning_high_tide != UINT_MAX ? TRUE : FALSE), warning_high_tide, - (critical_high_tide != UINT_MAX ? TRUE : FALSE), critical_high_tide, - TRUE, 0, - TRUE, dtotal_units)); + (warning_high_tide != UINT_MAX ? TRUE : FALSE), warning_high_tide, + (critical_high_tide != UINT_MAX ? TRUE : FALSE), critical_high_tide, + TRUE, 0, + TRUE, dtotal_units)); if (disk_result==STATE_OK && erronly && !verbose) continue; @@ -475,8 +477,6 @@ process_arguments (int argc, char **argv) {"iwarning", required_argument, 0, 'W'}, /* Dang, -C is taken. We might want to reshuffle this. */ {"icritical", required_argument, 0, 'K'}, - {"local", required_argument, 0, 'l'}, - {"stat-remote-fs", required_argument, 0, 'L'}, {"kilobytes", required_argument, 0, 'k'}, {"megabytes", required_argument, 0, 'm'}, {"units", required_argument, 0, 'u'}, @@ -493,6 +493,8 @@ process_arguments (int argc, char **argv) {"ignore-ereg-partition", required_argument, 0, 'i'}, {"ignore-eregi-path", required_argument, 0, 'I'}, {"ignore-eregi-partition", required_argument, 0, 'I'}, + {"local", no_argument, 0, 'l'}, + {"stat-remote-fs", no_argument, 0, 'L'}, {"mountpoint", no_argument, 0, 'M'}, {"errors-only", no_argument, 0, 'e'}, {"exact-match", no_argument, 0, 'E'}, @@ -540,7 +542,7 @@ process_arguments (int argc, char **argv) } } else { if (*optarg == '@') { - warn_freespace_units = optarg; + warn_freespace_units = optarg; } else { asprintf(&warn_freespace_units, "@%s", optarg); } @@ -684,12 +686,12 @@ process_arguments (int argc, char **argv) while (temp_list) { if (temp_list->best_match) { if (np_regex_match_mount_entry(temp_list->best_match, &re)) { - + if (verbose >=3) - printf("ignoring %s matching regex\n", temp_list->name); + printf("ignoring %s matching regex\n", temp_list->name); temp_list = np_del_parameter(temp_list, previous); - /* pointer to first element needs to be uüdated if first item gets deleted */ + /* pointer to first element needs to be updated if first item gets deleted */ if (previous == NULL) path_select_list = temp_list; } else { @@ -723,7 +725,7 @@ process_arguments (int argc, char **argv) regerror (err, &re, errbuf, MAX_INPUT_BUFFER); die (STATE_UNKNOWN, "DISK %s: %s - %s\n",_("UNKNOWN"), _("Could not compile regular expression"), errbuf); } - + for (me = mount_list; me; me = me->me_next) { if (np_regex_match_mount_entry(me, &re)) { fnd = TRUE; @@ -777,7 +779,7 @@ process_arguments (int argc, char **argv) crit_usedinodes_percent = NULL; warn_freeinodes_percent = NULL; crit_freeinodes_percent = NULL; - + path_selected = FALSE; group = NULL; break; @@ -829,11 +831,17 @@ print_path (const char *mypath) void set_all_thresholds (struct parameter_list *path) { + if (path->freespace_units != NULL) free(path->freespace_units); set_thresholds(&path->freespace_units, warn_freespace_units, crit_freespace_units); + if (path->freespace_percent != NULL) free (path->freespace_percent); set_thresholds(&path->freespace_percent, warn_freespace_percent, crit_freespace_percent); + if (path->usedspace_units != NULL) free (path->usedspace_units); set_thresholds(&path->usedspace_units, warn_usedspace_units, crit_usedspace_units); + if (path->usedspace_percent != NULL) free (path->usedspace_percent); set_thresholds(&path->usedspace_percent, warn_usedspace_percent, crit_usedspace_percent); + if (path->usedinodes_percent != NULL) free (path->usedinodes_percent); set_thresholds(&path->usedinodes_percent, warn_usedinodes_percent, crit_usedinodes_percent); + if (path->freeinodes_percent != NULL) free (path->freeinodes_percent); set_thresholds(&path->freeinodes_percent, warn_freeinodes_percent, crit_freeinodes_percent); } @@ -870,7 +878,7 @@ INPUT ERROR: C_DF (%lu) should be less than W_DF (%lu) and both should be greate print_path (mypath); return ERROR; } - + return OK; } @@ -898,6 +906,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" %s\n", "-w, --warning=INTEGER"); printf (" %s\n", _("Exit with WARNING status if less than INTEGER units of disk are free")); @@ -950,6 +959,13 @@ print_help (void) printf (_(UT_VERBOSE)); printf (" %s\n", "-X, --exclude-type=TYPE"); printf (" %s\n", _("Ignore all filesystems of indicated type (may be repeated)")); + +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf ("\n"); printf ("%s\n", _("Examples:")); printf (" %s\n", "check_disk -w 10% -c 5% -p /tmp -p /var -C -w 100000 -c 50000 -p /"); @@ -959,6 +975,7 @@ print_help (void) printf (" %s\n", _("are grouped which means the freespace thresholds are applied to all disks together")); printf (" %s\n", "check_disk -w 100M -c 50M -C -w 1000M -c 500M -p /foo -C -w 5% -c 3% -p /bar"); printf (" %s\n", _("Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use 100M/50M")); + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_dns.c b/plugins/check_dns.c index b0ed6de..b4240a2 100644 --- a/plugins/check_dns.c +++ b/plugins/check_dns.c @@ -1,43 +1,40 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_dns plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 2000-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-13 10:14:45 +0100 (Tue, 13 May 2008) $ +* * Description: -* +* * This file contains the check_dns plugin -* -* LIMITATION: nslookup on Solaris 7 can return output over 2 lines, which will not -* be picked up by this plugin -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* LIMITATION: nslookup on Solaris 7 can return output over 2 lines, which +* will not be picked up by this plugin +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* -* $Id: check_dns.c 1590 2007-01-28 21:46:41Z hweiss $ -* -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_dns.c 1992 2008-05-13 09:14:45Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_dns"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1992 $"; +const char *copyright = "2000-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -57,17 +54,30 @@ char query_address[ADDRESS_LENGTH] = ""; char dns_server[ADDRESS_LENGTH] = ""; char ptr_server[ADDRESS_LENGTH] = ""; int verbose = FALSE; -char expected_address[ADDRESS_LENGTH] = ""; -int match_expected_address = FALSE; +char **expected_address = NULL; +int expected_address_cnt = 0; + int expect_authority = FALSE; thresholds *time_thresholds = NULL; +static int +qstrcmp(const void *p1, const void *p2) +{ + /* The actual arguments to this function are "pointers to + pointers to char", but strcmp() arguments are "pointers + to char", hence the following cast plus dereference */ + return strcmp(* (char * const *) p1, * (char * const *) p2); +} + + int main (int argc, char **argv) { char *command_line = NULL; char input_buffer[MAX_INPUT_BUFFER]; - char *address = NULL; + char *address = NULL; /* comma seperated str with addrs/ptrs (sorted) */ + char **addresses = NULL; + int n_addresses = 0; char *msg = NULL; char *temp_buffer = NULL; int non_authoritative = FALSE; @@ -89,6 +99,9 @@ main (int argc, char **argv) usage_va(_("Cannot catch SIGALRM")); } + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) { usage_va(_("Could not parse arguments")); } @@ -110,12 +123,17 @@ main (int argc, char **argv) /* scan stdout */ for(i = 0; i < chld_out.lines; i++) { + if (addresses == NULL) + addresses = malloc(sizeof(*addresses)*10); + else if (!(n_addresses % 10)) + addresses = realloc(addresses,sizeof(*addresses) * (n_addresses + 10)); + if (verbose) puts(chld_out.line[i]); if (strstr (chld_out.line[i], ".in-addr.arpa")) { if ((temp_buffer = strstr (chld_out.line[i], "name = "))) - address = strdup (temp_buffer + 7); + addresses[n_addresses++] = strdup (temp_buffer + 7); else { msg = (char *)_("Warning plugin error"); result = STATE_WARNING; @@ -133,7 +151,7 @@ main (int argc, char **argv) /* Strip leading spaces */ for (; *temp_buffer != '\0' && *temp_buffer == ' '; temp_buffer++) /* NOOP */; - + strip(temp_buffer); if (temp_buffer==NULL || strlen(temp_buffer)==0) { die (STATE_CRITICAL, @@ -141,16 +159,13 @@ main (int argc, char **argv) NSLOOKUP_COMMAND); } - if (address == NULL) - address = strdup (temp_buffer); - else - asprintf(&address, "%s,%s", address, temp_buffer); + addresses[n_addresses++] = strdup(temp_buffer); } - else if (strstr (chld_out.line[i], _("Non-authoritative answer:"))) { non_authoritative = TRUE; } + result = error_scan (chld_out.line[i]); if (result != STATE_OK) { msg = strchr (chld_out.line[i], ':'); @@ -171,17 +186,39 @@ main (int argc, char **argv) } } - /* If we got here, we should have an address string, - * and we can segfault if we do not */ - if (address==NULL || strlen(address)==0) + if (addresses) { + int i,slen; + char *adrp; + qsort(addresses, n_addresses, sizeof(*addresses), qstrcmp); + for(i=0, slen=1; i < n_addresses; i++) { + slen += strlen(addresses[i])+1; + } + adrp = address = malloc(slen); + for(i=0; i < n_addresses; i++) { + if (i) *adrp++ = ','; + strcpy(adrp, addresses[i]); + adrp += strlen(addresses[i]); + } + *adrp = 0; + } else die (STATE_CRITICAL, _("DNS CRITICAL - '%s' msg parsing exited with no address\n"), NSLOOKUP_COMMAND); /* compare to expected address */ - if (result == STATE_OK && match_expected_address && strcmp(address, expected_address)) { + if (result == STATE_OK && expected_address_cnt > 0) { result = STATE_CRITICAL; - asprintf(&msg, _("expected '%s' but got '%s'"), expected_address, address); + temp_buffer = ""; + for (i=0; i= ADDRESS_LENGTH) die (STATE_UNKNOWN, _("Input buffer overflow\n")); - strcpy (expected_address, optarg); - match_expected_address = TRUE; + expected_address = (char **)realloc(expected_address, (expected_address_cnt+1) * sizeof(char**)); + expected_address[expected_address_cnt] = strdup(optarg); + expected_address_cnt++; break; case 'A': /* expect authority */ expect_authority = TRUE; @@ -416,19 +454,23 @@ print_help (void) printf ("%s\n", _("This plugin uses the nslookup program to obtain the IP address for the given host/domain query.")); printf ("%s\n", _("An optional DNS server to use may be specified.")); printf ("%s\n", _("If no DNS server is specified, the default server(s) specified in /etc/resolv.conf will be used.")); - + printf ("\n\n"); print_usage (); - + printf (_(UT_HELP_VRSN)); - + printf (_(UT_EXTRA_OPTS)); + printf (" -H, --hostname=HOST\n"); printf (" %s\n", _("The name or address you want to query")); printf (" -s, --server=HOST\n"); printf (" %s\n", _("Optional DNS server you want to use for the lookup")); printf (" -a, --expected-address=IP-ADDRESS|HOST\n"); - printf (" %s\n", _("Optional IP-ADDRESS you expect the DNS server to return. HOST must end with .")); + printf (" %s\n", _("Optional IP-ADDRESS you expect the DNS server to return. HOST must end with")); + printf (" %s\n", _("a dot (.). This option can be repeated multiple times (Returns OK if any")); + printf (" %s\n", _("value match). If multiple addresses are returned at once, you have to match")); + printf (" %s\n", _("the whole string of addresses separated with commas (sorted alphabetically).")); printf (" -A, --expect-authority\n"); printf (" %s\n", _("Optionally expect the DNS server to be authoritative for the lookup")); printf (" -w, --warning=seconds\n"); @@ -437,6 +479,13 @@ print_help (void) printf (" %s\n", _("Return critical if elapsed time exceeds value. Default off")); printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); + +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_dummy.c b/plugins/check_dummy.c index f746c2b..1973f3f 100644 --- a/plugins/check_dummy.c +++ b/plugins/check_dummy.c @@ -1,42 +1,39 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_dummy plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-05-24 09:35:53 +0100 (Thu, 24 May 2007) $ -* +* Copyright (c) 1999-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-04-27 15:35:26 +0100 (Sun, 27 Apr 2008) $ +* * Description: -* +* * This file contains the check_dummy plugin -* -* This plugin will simply return the state corresponding to the numeric value -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin will simply return the state corresponding to the numeric value +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_dummy.c 1716 2007-05-24 08:35:53Z tonvoon $ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_dummy.c 1984 2008-04-27 14:35:26Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_dummy"; -const char *revision = "$Revision: 1716 $"; -const char *copyright = "1999-2006"; +const char *revision = "$Revision: 1984 $"; +const char *copyright = "1999-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -109,11 +106,11 @@ print_help (void) printf (COPYRIGHT, copyright, email); printf ("%s\n", _("This plugin will simply return the state corresponding to the numeric value")); - + printf ("%s\n", _("of the argument with optional text")); printf ("\n\n"); - + print_usage (); printf (_(UT_HELP_VRSN)); diff --git a/plugins/check_fping.c b/plugins/check_fping.c index 819a1ec..f033e6c 100644 --- a/plugins/check_fping.c +++ b/plugins/check_fping.c @@ -1,42 +1,40 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_fping plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_disk plugin -* -* This plugin will use the fping command to ping the specified host for a fast check -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin will use the fping command to ping the specified host for a +* fast check +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_fping.c 1590 2007-01-28 21:46:41Z hweiss $ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_fping.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_fping"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -85,6 +83,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -206,7 +207,7 @@ textscan (char *buf) die (status, _("FPING %s - %s (loss=%.0f%% )|%s\n"), state_text (status), server_name, loss , perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, TRUE, 0, TRUE, 100)); - + } else { status = max_state (status, STATE_WARNING); @@ -373,14 +374,15 @@ print_help (void) printf (COPYRIGHT, copyright, email); printf ("%s\n", _("This plugin will use the fping command to ping the specified host for a fast check")); - + printf ("%s\n", _("Note that it is necessary to set the suid flag on fping.")); printf ("\n\n"); - + print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" %s\n", "-H, --hostname=HOST"); printf (" %s\n", _("name or IP Address of host to ping (IP Address bypasses name lookup, reducing system load)")); @@ -394,9 +396,16 @@ print_help (void) printf (" %s\n", _("number of ICMP packets to send (default: %d)"),PACKET_COUNT); printf (_(UT_VERBOSE)); printf ("\n"); - printf (" %s\n", _("THRESHOLD is ,%% where is the round trip average travel time (ms)")); - printf (" %s\n", _("which triggers a WARNING or CRITICAL state, and is the percentage of")); - printf (" %s\n", _("packet loss to trigger an alarm state.")); + printf (" %s\n", _("THRESHOLD is ,%% where is the round trip average travel time (ms)")); + printf (" %s\n", _("which triggers a WARNING or CRITICAL state, and is the percentage of")); + printf (" %s\n", _("packet loss to trigger an alarm state.")); + +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_game.c b/plugins/check_game.c index 535c6e0..7e884bc 100644 --- a/plugins/check_game.c +++ b/plugins/check_game.c @@ -1,41 +1,40 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_game plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 2002-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_game plugin -* +* * This plugin tests game server connections with the specified host. * using the qstat program -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +* along with this program. If not, see . +* +* $Id: check_game.c 1991 2008-05-07 10:02:42Z dermoth $ * -* $Id: check_game.c 1590 2007-01-28 21:46:41Z hweiss $ *****************************************************************************/ const char *progname = "check_game"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "2002-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2002-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -79,7 +78,10 @@ main (int argc, char **argv) setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); - + + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage_va(_("Could not parse arguments")); @@ -88,7 +90,7 @@ main (int argc, char **argv) /* create the command line to execute */ asprintf (&command_line, "%s -raw %s -%s %s", PATH_TO_QSTAT, QSTAT_DATA_DELIMITER, game_type, server_ip); - + if (port) asprintf (&command_line, "%s:%-d", command_line, port); @@ -299,11 +301,12 @@ print_help (void) printf (_("This plugin tests game server connections with the specified host.")); printf ("\n\n"); - + print_usage (); printf (_(UT_HELP_VRSN)); - + printf (_(UT_EXTRA_OPTS)); + printf (" %s\n", "-p"); printf (" %s\n", _("Optional port of which to connect")); printf (" %s\n", "gf"); @@ -315,13 +318,15 @@ print_help (void) printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); + printf ("\n"); printf ("%s\n", _("Notes:")); - - printf ("%s\n", _("This plugin uses the 'qstat' command, the popular game server status query tool .")); - - printf ("%s\n", _("If you don't have the package installed, you will need to download it from")); - - printf ("%s\n", _("http://www.activesw.com/people/steve/qstat.html before you can use this plugin.")); + printf (" %s\n", _("This plugin uses the 'qstat' command, the popular game server status query tool.")); + printf (" %s\n", _("If you don't have the package installed, you will need to download it from")); + printf (" %s\n", _("http://www.activesw.com/people/steve/qstat.html before you can use this plugin.")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } diff --git a/plugins/check_hpjd.c b/plugins/check_hpjd.c index c20883a..7a6bf3e 100644 --- a/plugins/check_hpjd.c +++ b/plugins/check_hpjd.c @@ -1,42 +1,40 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_hpjd plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_hpjd plugin -* -* This plugin tests the STATUS of an HP printer with a JetDirect card. -* Net-snmp must be installed on the computer running the plugin. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin tests the STATUS of an HP printer with a JetDirect card. +* Net-SNMP must be installed on the computer running the plugin. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_hpjd.c 1590 2007-01-28 21:46:41Z hweiss $ +* along with this program. If not, see . +* +* $Id: check_hpjd.c 1991 2008-05-07 10:02:42Z dermoth $ +* *****************************************************************************/ const char *progname = "check_hpjd"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -102,6 +100,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -392,17 +393,25 @@ print_help (void) printf (COPYRIGHT, copyright, email); printf ("%s\n", _("This plugin tests the STATUS of an HP printer with a JetDirect card.")); - printf ("%s\n", _("Net-snmp must be installed on the computer running the plugin.")); + printf ("%s\n", _("Net-snmp must be installed on the computer running the plugin.")); + + printf ("\n\n"); - printf ("\n\n"); - print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" %s\n", "-C, --community=STRING"); - printf (" %s", _("The SNMP community name ")); - printf (_("(default=%s)"), DEFAULT_COMMUNITY); + printf (" %s", _("The SNMP community name ")); + printf (_("(default=%s)"), DEFAULT_COMMUNITY); + printf ("\n"); + +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } diff --git a/plugins/check_http.c b/plugins/check_http.c index bf7dbf0..d740750 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c @@ -1,54 +1,51 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_http plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $ -* +* Copyright (c) 1999-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_http plugin -* -* This plugin tests the HTTP service on the specified host. It can test -* normal (http) and secure (https) servers, follow redirects, search for -* strings and regular expressions, check connection times, and report on -* certificate expiration times. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin tests the HTTP service on the specified host. It can test +* normal (http) and secure (https) servers, follow redirects, search for +* strings and regular expressions, check connection times, and report on +* certificate expiration times. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +* along with this program. If not, see . +* +* $Id: check_http.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ - $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: 1861 $"; -const char *copyright = "1999-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "1999-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; -#include - #include "common.h" #include "netutils.h" #include "utils.h" #include "base64.h" +#include #define INPUT_DELIMITER ";" @@ -150,6 +147,9 @@ main (int argc, char **argv) asprintf (&user_agent, "User-Agent: check_http/%s (nagios-plugins %s)", clean_revstring (revision), VERSION); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -174,6 +174,7 @@ int process_arguments (int argc, char **argv) { int c = 1; + char *p; enum { INVERT_REGEX = CHAR_MAX + 1 @@ -317,8 +318,12 @@ process_arguments (int argc, char **argv) /* Note: H, I, and u must be malloc'd or will fail on redirects */ case 'H': /* Host Name (virtual host) */ host_name = strdup (optarg); - if (strstr (optarg, ":")) - sscanf (optarg, "%*[^:]:%d", &server_port); + if (host_name[0] == '[') { + if ((p = strstr (host_name, "]:")) != NULL) /* [IPv6]:port */ + server_port = atoi (p + 2); + } else if ((p = strchr (host_name, ':')) != NULL + && strchr (++p, ':') == NULL) /* IPv4:port or host:port */ + server_port = atoi (p); break; case 'I': /* Server IP-address */ server_address = strdup (optarg); @@ -748,7 +753,7 @@ check_http (void) /* optionally send the host header info */ if (host_name) - asprintf (&buf, "%sHost: %s\r\n", buf, host_name); + asprintf (&buf, "%sHost: %s:%d\r\n", buf, host_name, server_port); /* optionally send any other header tag */ if (http_opt_headers_count) { @@ -761,7 +766,7 @@ check_http (void) /* optionally send the authentication info */ if (strlen(user_auth)) { - auth = base64 (user_auth, strlen (user_auth)); + base64_encode_alloc (user_auth, strlen (user_auth), &auth); asprintf (&buf, "%sAuthorization: Basic %s\r\n", buf, auth); } @@ -772,7 +777,7 @@ check_http (void) } else { asprintf (&buf, "%sContent-Type: application/x-www-form-urlencoded\r\n", buf); } - + asprintf (&buf, "%sContent-Length: %i\r\n\r\n", buf, (int)strlen (http_post_data)); asprintf (&buf, "%s%s%s", buf, http_post_data, CRLF); } @@ -934,7 +939,7 @@ check_http (void) } /* end if (http_status >= 300) */ } /* end else (server_expect_yn) */ - + if (maximum_age >= 0) { check_document_dates (header); } @@ -1046,7 +1051,7 @@ redir (char *pos, char *status_line) addr = malloc (MAX_IPV4_HOSTLENGTH + 1); if (addr == NULL) die (STATE_UNKNOWN, _("HTTP UNKNOWN - Could not allocate addr\n")); - + url = malloc (strcspn (pos, "\r\n")); if (url == NULL) die (STATE_UNKNOWN, _("HTTP UNKNOWN - Could not allocate url\n")); @@ -1230,6 +1235,7 @@ print_help (void) printf ("\n"); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" %s\n", "-H, --hostname=ADDRESS"); printf (" %s\n", _("Host name argument for servers using host headers (virtual host)")); @@ -1297,19 +1303,24 @@ print_help (void) printf (_(UT_VERBOSE)); - printf (_("Notes:")); + printf ("\n"); + printf ("%s\n", _("Notes:")); printf (" %s\n", _("This plugin will attempt to open an HTTP connection with the host.")); printf (" %s\n", _("Successful connects return STATE_OK, refusals and timeouts return STATE_CRITICAL")); printf (" %s\n", _("other errors return STATE_UNKNOWN. Successful connects, but incorrect reponse")); printf (" %s\n", _("messages from the host result in STATE_WARNING return values. If you are")); printf (" %s\n", _("checking a virtual server that uses 'host headers' you must supply the FQDN")); printf (" %s\n", _("(fully qualified domain name) as the [host_name] argument.")); + printf ("\n"); + printf (_(UT_EXTRA_OPTS_NOTES)); #ifdef HAVE_SSL + printf ("\n"); printf (" %s\n", _("This plugin can also check whether an SSL enabled web server is able to")); printf (" %s\n", _("serve content (optionally within a specified time) or whether the X509 ")); printf (" %s\n", _("certificate is still valid for the specified number of days.")); - printf (_("Examples:")); + printf ("\n"); + printf ("%s\n", _("Examples:")); printf (" %s\n\n", "CHECK CONTENT: check_http -w 5 -c 10 --ssl -H www.verisign.com"); printf (" %s\n", _("When the 'www.verisign.com' server returns its content within 5 seconds,")); printf (" %s\n", _("a STATE_OK will be returned. When the server returns its content but exceeds")); @@ -1320,7 +1331,7 @@ print_help (void) printf (" %s\n", _("When the certificate of 'www.verisign.com' is valid for more than 14 days,")); printf (" %s\n", _("a STATE_OK is returned. When the certificate is still valid, but for less than")); printf (" %s\n", _("14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when")); - printf (" %s\n\n", _("the certificate is expired.")); + printf (" %s\n", _("the certificate is expired.")); #endif printf (_(UT_SUPPORT)); diff --git a/plugins/check_ide_smart.c b/plugins/check_ide_smart.c index 8e44c45..86cc6fa 100644 --- a/plugins/check_ide_smart.c +++ b/plugins/check_ide_smart.c @@ -1,46 +1,44 @@ -/****************************************************************************** -* Nagios check_ide_smart plugin -* -* License: GPL -* -* ide-smart 1.3 - IDE S.M.A.R.T. checking tool -* Copyright (C) 1998-1999 Ragnar Hojland Espinosa -* 1998 Gadi Oxman +/***************************************************************************** * +* Nagios check_ide_smart plugin +* ide-smart 1.3 - IDE S.M.A.R.T. checking tool +* +* License: GPL +* Copyright (C) 1998-1999 Ragnar Hojland Espinosa +* 1998 Gadi Oxman * Copyright (c) 2000 Robert Dale -* Copyright (c) 2000-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-06-13 10:43:28 +0100 (Wed, 13 Jun 2007) $ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_ide_smart plugin -* -* This plugin checks a local hard drive with the (Linux specific) SMART interface -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin checks a local hard drive with the (Linux specific) SMART +* interface +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * $Id: check_ide_smart.c 1739 2007-06-13 09:43:28Z psychotrahe $ - */ +* along with this program. If not, see . +* +* $Id: check_ide_smart.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_ide_smart"; -const char *revision = "$Revision: 1739 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "1998-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -164,6 +162,9 @@ main (int argc, char *argv[]) values_t values; int fd; + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + static struct option longopts[] = { {"device", required_argument, 0, 'd'}, {"immediate", no_argument, 0, 'i'}, @@ -486,13 +487,14 @@ print_help (void) printf (COPYRIGHT, copyright, email); printf (_("This plugin checks a local hard drive with the (Linux specific) SMART interface [http://smartlinux.sourceforge.net/smart/index.php].")); - + printf ("\n\n"); - + print_usage (); printf (_(UT_HELP_VRSN)); - + printf (_(UT_EXTRA_OPTS)); + printf (" %s\n", "-d, --device=DEVICE"); printf (" %s\n", _("Select device DEVICE")); printf (" %s\n", _("Note: if the device is selected with this option, _no_ other options are accepted")); @@ -505,7 +507,14 @@ print_help (void) printf (" %s\n", "-0, --auto-off"); printf (" %s\n", _("Turn off automatic offline tests")); printf (" %s\n", "-n, --nagios"); - printf (" %s\n\n", _("Output suitable for Nagios")); + printf (" %s\n", _("Output suitable for Nagios")); + +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_ldap.c b/plugins/check_ldap.c index e2cc885..a15b818 100644 --- a/plugins/check_ldap.c +++ b/plugins/check_ldap.c @@ -1,40 +1,38 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_ldap plugin -* +* * License: GPL -* Copyright (c) 2000-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-07-07 23:20:40 +0100 (Sat, 07 Jul 2007) $ -* +* Copyright (c) 2000-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_ldap plugin -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_ldap.c 1753 2007-07-07 22:20:40Z psychotrahe $ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_ldap.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ /* progname may be check_ldaps */ char *progname = "check_ldap"; -const char *revision = "$Revision: 1753 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -67,6 +65,9 @@ int ld_port = DEFAULT_PORT; #ifdef HAVE_LDAP_SET_OPTION int ld_protocol = DEFAULT_PROTOCOL; #endif +#ifndef LDAP_OPT_SUCCESS +# define LDAP_OPT_SUCCESS LDAP_SUCCESS +#endif double warn_time = UNDEFINED; double crit_time = UNDEFINED; struct timeval tv; @@ -103,7 +104,10 @@ main (int argc, char *argv[]) if (strstr(argv[0],"check_ldaps")) { asprintf (&progname, "check_ldaps"); } - + + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -391,11 +395,12 @@ print_help (void) printf ("Copyright (c) 1999 Didi Rieder (adrieder@sbox.tu-graz.ac.at)\n"); printf (COPYRIGHT, copyright, email); - printf ("\n\n"); - + printf ("\n\n"); + print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', myport); @@ -412,14 +417,14 @@ print_help (void) printf (" %s\n", "-T [--starttls]"); printf (" %s\n", _("use starttls mechanism introduced in protocol version 3")); printf (" %s\n", "-S [--ssl]"); - printf (" %s\n", _("use ldaps (ldap v2 ssl method). this also sets the default port to %s"), LDAPS_PORT); + printf (" %s %i\n", _("use ldaps (ldap v2 ssl method). this also sets the default port to"), LDAPS_PORT); #ifdef HAVE_LDAP_SET_OPTION printf (" %s\n", "-2 [--ver2]"); printf (" %s\n", _("use ldap protocol version 2")); printf (" %s\n", "-3 [--ver3]"); printf (" %s\n", _("use ldap protocol version 3")); - printf (" (default protocol version: %d)\n", DEFAULT_PROTOCOL); + printf (" (%s %d)\n", _("default protocol version:"), DEFAULT_PROTOCOL); #endif printf (_(UT_WARN_CRIT)); @@ -428,12 +433,17 @@ print_help (void) printf (_(UT_VERBOSE)); - printf ("\n%s\n", _("Note:")); - printf ("%s\n", _("If this plugin is called via 'check_ldaps', method 'STARTTLS' will be")); - printf (_("implied (using default port %i) unless --port=636 is specified. In that case %s"), DEFAULT_PORT, "\n"); - printf ("%s\n", _("'SSL on connect' will be used no matter how the plugin was called.")); - printf ("%s\n", _("This detection is deprecated, please use 'check_ldap' with the '--starttls' or '--ssl' flags")); - printf ("%s\n", _("to define the behaviour explicitly instead.")); + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (" %s\n", _("If this plugin is called via 'check_ldaps', method 'STARTTLS' will be")); + printf (_(" implied (using default port %i) unless --port=636 is specified. In that case\n"), DEFAULT_PORT); + printf (" %s\n", _("'SSL on connect' will be used no matter how the plugin was called.")); + printf (" %s\n", _("This detection is deprecated, please use 'check_ldap' with the '--starttls' or '--ssl' flags")); + printf (" %s\n", _("to define the behaviour explicitly instead.")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } diff --git a/plugins/check_load.c b/plugins/check_load.c index 6a8609d..42236d9 100644 --- a/plugins/check_load.c +++ b/plugins/check_load.c @@ -1,42 +1,39 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_load plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-12-10 00:19:27 +0000 (Mon, 10 Dec 2007) $ -* +* Copyright (c) 1999-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_load plugin -* -* This plugin tests the current system load average. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin tests the current system load average. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_load.c 1851 2007-12-10 00:19:27Z psychotrahe $ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_load.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_load"; -const char *revision = "$Revision: 1851 $"; -const char *copyright = "1999-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "1999-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -122,6 +119,9 @@ main (int argc, char **argv) textdomain (PACKAGE); setlocale(LC_NUMERIC, "POSIX"); + /* Parse extra opts if any */ + argv = np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -306,10 +306,11 @@ print_help (void) printf (_("This plugin tests the current system load average.")); printf ("\n\n"); - + print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" %s\n", "-w, --warning=WLOAD1,WLOAD5,WLOAD15"); printf (" %s\n", _("Exit with WARNING status if load average exceeds WLOADn")); @@ -319,6 +320,12 @@ print_help (void) printf (" %s\n", "-r, --percpu"); printf (" %s\n", _("Divide the load averages by the number of CPUs (when possible)")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_mrtg.c b/plugins/check_mrtg.c index 2f62692..9efa7ce 100644 --- a/plugins/check_mrtg.c +++ b/plugins/check_mrtg.c @@ -1,43 +1,40 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_mrtg plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-02-06 21:03:21 +0000 (Tue, 06 Feb 2007) $ -* +* Copyright (c) 1999-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_mrtg plugin -* -* This plugin will check either the average or maximum value of one of the -* two variables recorded in an MRTG log file. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin will check either the average or maximum value of one of the +* two variables recorded in an MRTG log file. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_mrtg.c 1611 2007-02-06 21:03:21Z opensides $ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_mrtg.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_mrtg"; -const char *revision = "$Revision: 1611 $"; -const char *copyright = "1999-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "1999-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -75,6 +72,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments\n")); @@ -326,10 +326,11 @@ print_help (void) printf ("%s\n", _("two variables recorded in an MRTG log file.")); printf ("\n\n"); - + print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" %s\n", "-F, --logfile=FILE"); printf (" %s\n", _("The MRTG log file containing the data you want to monitor")); @@ -349,25 +350,30 @@ print_help (void) printf (" %s\n", _("Option units label for data (Example: Packets/Sec, Errors/Sec,")); printf (" %s\n", _("\"Bytes Per Second\", \"%% Utilization\")")); - printf ("%s\n", _("If the value exceeds the threshold, a WARNING status is returned. If")); - printf ("%s\n", _("the value exceeds the threshold, a CRITICAL status is returned. If")); - printf ("%s\n", _("the data in the log file is older than old, a WARNING")); - printf ("%s\n", _("status is returned and a warning message is printed.")); + printf ("\n"); + printf (" %s\n", _("If the value exceeds the threshold, a WARNING status is returned. If")); + printf (" %s\n", _("the value exceeds the threshold, a CRITICAL status is returned. If")); + printf (" %s\n", _("the data in the log file is older than old, a WARNING")); + printf (" %s\n", _("status is returned and a warning message is printed.")); - printf ("%s\n", _("This plugin is useful for monitoring MRTG data that does not correspond to")); - printf ("%s\n", _("bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth).")); - printf ("%s\n", _("It can be used to monitor any kind of data that MRTG is monitoring - errors,")); - printf ("%s\n", _("packets/sec, etc. I use MRTG in conjuction with the Novell NLM that allows")); - printf ("%s\n", _("me to track processor utilization, user connections, drive space, etc and")); - printf ("%s\n\n", _("this plugin works well for monitoring that kind of data as well.")); + printf ("\n"); + printf (" %s\n", _("This plugin is useful for monitoring MRTG data that does not correspond to")); + printf (" %s\n", _("bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth).")); + printf (" %s\n", _("It can be used to monitor any kind of data that MRTG is monitoring - errors,")); + printf (" %s\n", _("packets/sec, etc. I use MRTG in conjuction with the Novell NLM that allows")); + printf (" %s\n", _("me to track processor utilization, user connections, drive space, etc and")); + printf (" %s\n\n", _("this plugin works well for monitoring that kind of data as well.")); printf ("%s\n", _("Notes:")); printf (" %s\n", _("- This plugin only monitors one of the two variables stored in the MRTG log")); - printf (" %s\n", _(" file. If you want to monitor both values you will have to define two")); - printf (" %s\n", _(" commands with different values for the argument. Of course,")); - printf (" %s\n", _("you can always hack the code to make this plugin work for you...")); + printf (" %s\n", _("file. If you want to monitor both values you will have to define two")); + printf (" %s\n", _("commands with different values for the argument. Of course,")); + printf (" %s\n", _("you can always hack the code to make this plugin work for you...")); printf (" %s\n", _("- MRTG stands for the Multi Router Traffic Grapher. It can be downloaded from")); - printf (" %s\n", "http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"); + printf (" %s\n", "http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"); +#ifdef NP_EXTRA_OPTS + printf (" -%s", _(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } diff --git a/plugins/check_mrtgtraf.c b/plugins/check_mrtgtraf.c index 1ac190e..726a923 100644 --- a/plugins/check_mrtgtraf.c +++ b/plugins/check_mrtgtraf.c @@ -1,45 +1,42 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_mrtgtraf plugin -* +* * License: GPL -* Copyright (c) 1999-2007 nagios-plugins team -* -* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $ -* +* Copyright (c) 1999-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_mtrgtraf plugin -* -* This plugin will check the incoming/outgoing transfer rates of a router -* switch, etc recorded in an MRTG log. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin will check the incoming/outgoing transfer rates of a router +* switch, etc recorded in an MRTG log. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_mrtgtraf.c 1861 2007-12-11 05:57:35Z dermoth $ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_mrtgtraf.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ #include "common.h" #include "utils.h" const char *progname = "check_mrtgtraf"; -const char *revision = "$Revision: 1861 $"; +const char *revision = "$Revision: 1991 $"; const char *copyright = "1999-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; @@ -83,6 +80,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -350,6 +350,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" %s\n", "-F, --filename=STRING"); printf (" %s\n", _("File to read log from")); @@ -362,6 +363,7 @@ print_help (void) printf (" %s\n", "-c, --critical"); printf (" %s\n", _("Critical threshold pair ,")); + printf ("\n"); printf ("%s\n", _("Notes:")); printf (" %s\n", _("- MRTG stands for Multi Router Traffic Grapher. It can be downloaded from")); printf (" %s\n", " http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"); @@ -370,6 +372,9 @@ print_help (void) printf (" %s\n", _("- The calculated i/o rates are a little off from what MRTG actually")); printf (" %s\n", _(" reports. I'm not sure why this is right now, but will look into it")); printf (" %s\n", _(" for future enhancements of this plugin.")); +#ifdef NP_EXTRA_OPTS + printf (" -%s", _(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c index 1de49f8..184c200 100644 --- a/plugins/check_mysql.c +++ b/plugins/check_mysql.c @@ -1,44 +1,41 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_mysql plugin -* +* * License: GPL -* Copyright (c) 1999 Didi Rieder (adrieder@sbox.tu-graz.ac.at) -* Copyright (c) 1999-2006 nagios-plugins team -* Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net) -* -* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $ +* Copyright (c) 1999 Didi Rieder (adrieder@sbox.tu-graz.ac.at) +* Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net) +* Copyright (c) 1999-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ * * Description: -* +* * This file contains the check_mysql plugin -* -* This program tests connections to a mysql server -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This program tests connections to a mysql server +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_mysql.c 1859 2007-12-10 07:52:00Z dermoth $ -* -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_mysql.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_mysql"; -const char *revision = "$Revision: 1859 $"; -const char *copyright = "1999-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "1999-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #define SLAVERESULTSIZE 70 @@ -53,6 +50,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; char *db_user = NULL; char *db_host = NULL; +char *db_socket = NULL; char *db_pass = NULL; char *db = NULL; unsigned int db_port = MYSQL_PORT; @@ -84,6 +82,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -93,7 +94,7 @@ main (int argc, char **argv) mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"client"); /* establish a connection to the server and error checking */ - if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,NULL,0)) { + if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,db_socket,0)) { if (mysql_errno (&mysql) == CR_UNKNOWN_HOST) die (STATE_WARNING, "%s\n", mysql_error (&mysql)); else if (mysql_errno (&mysql) == CR_VERSION_ERROR) @@ -246,6 +247,7 @@ process_arguments (int argc, char **argv) int option = 0; static struct option longopts[] = { {"hostname", required_argument, 0, 'H'}, + {"socket", required_argument, 0, 's'}, {"database", required_argument, 0, 'd'}, {"username", required_argument, 0, 'u'}, {"password", required_argument, 0, 'p'}, @@ -263,7 +265,7 @@ process_arguments (int argc, char **argv) return ERROR; while (1) { - c = getopt_long (argc, argv, "hvVSP:p:u:d:H:c:w:", longopts, &option); + c = getopt_long (argc, argv, "hvVSP:p:u:d:H:s:c:w:", longopts, &option); if (c == -1 || c == EOF) break; @@ -277,14 +279,23 @@ process_arguments (int argc, char **argv) usage2 (_("Invalid hostname/address"), optarg); } break; - case 'd': /* hostname */ + case 's': /* socket */ + db_socket = optarg; + break; + case 'd': /* database */ db = optarg; break; case 'u': /* username */ db_user = optarg; break; case 'p': /* authentication information: password */ - db_pass = optarg; + db_pass = strdup(optarg); + + /* Delete the password from process list */ + while (*optarg != '\0') { + *optarg = 'X'; + optarg++; + } break; case 'P': /* critical time threshold */ db_port = atoi (optarg); @@ -373,29 +384,43 @@ print_help (void) printf ("%s\n", _("This program tests connections to a mysql server")); printf ("\n\n"); - + print_usage (); - printf (_(UT_HELP_VRSN)); + printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); - printf (_(UT_HOST_PORT), 'P', myport); + printf (_(UT_HOST_PORT), 'P', myport); + printf (" %s\n", "-s, --socket=STRING"); + printf (" %s\n", _("Use the specified socket (has no effect if -H is used)")); - printf (" %s\n", "-d, --database=STRING"); + printf (" %s\n", "-d, --database=STRING"); printf (" %s\n", _("Check database with indicated name")); printf (" %s\n", "-u, --username=STRING"); printf (" %s\n", _("Connect using the indicated username")); printf (" %s\n", "-p, --password=STRING"); printf (" %s\n", _("Use the indicated password to authenticate the connection")); - printf (" %s\n", _("==> IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!! <==")); - printf (" %s\n", _("Your clear-text password will be visible as a process table entry")); + printf (" ==> %s <==\n", _("IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!")); + printf (" %s\n", _("Your clear-text password could be visible as a process table entry")); 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 than INTEGER seconds behind master")); + printf (" %s\n", _("Exit with WARNING status if slave server is more than INTEGER seconds")); + printf (" %s\n", _("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")); - printf (_("a server listening on MySQL standard port %d will be checked\n"), MYSQL_PORT); + printf (" %s\n", _("Exit with CRITICAL status if slave server is more then INTEGER seconds")); + printf (" %s\n", _("behind master")); + + printf ("\n"); + printf (" %s\n", _("There are no required arguments. By default, the local database is checked")); + printf (" %s\n", _("using the default unix socket. You can force TCP on localhost by using an")); + printf (" %s\n", _("IP address or FQDN ('localhost' will use the socket as well).")); + +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } @@ -405,5 +430,6 @@ void print_usage (void) { printf (_("Usage:")); - printf ("%s [-d database] [-H host] [-P port] [-u user] [-p password] [-S]\n",progname); + printf (" %s [-d database] [-H host] [-P port] [-s socket]\n",progname); + printf (" [-u user] [-p password] [-S]\n"); } diff --git a/plugins/check_mysql_query.c b/plugins/check_mysql_query.c index 8da06d7..c9bcb0d 100644 --- a/plugins/check_mysql_query.c +++ b/plugins/check_mysql_query.c @@ -1,42 +1,40 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_mysql_query plugin -* +* * License: GPL -* Copyright (c) 2006 nagios-plugins team, after Didi Rieder (check_mysql) -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 2006-2007 Nagios Plugins Development Team +* Original code from check_mysql, copyright 1999 Didi Rieder +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_mysql_query plugin -* -* This plugin is for running arbitrary SQL and checking the results -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin is for running arbitrary SQL and checking the results +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* CHECK_MYSQL_QUERY.C -* -* $Id: check_mysql_query.c 1590 2007-01-28 21:46:41Z hweiss $ -* -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_mysql_query.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_mysql_query"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "1999-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -49,6 +47,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; char *db_user = NULL; char *db_host = NULL; +char *db_socket = NULL; char *db_pass = NULL; char *db = NULL; unsigned int db_port = MYSQL_PORT; @@ -79,6 +78,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -88,7 +90,7 @@ main (int argc, char **argv) mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"client"); /* establish a connection to the server and error checking */ - if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,NULL,0)) { + if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,db_socket,0)) { if (mysql_errno (&mysql) == CR_UNKNOWN_HOST) die (STATE_WARNING, "QUERY %s: %s\n", _("WARNING"), mysql_error (&mysql)); else if (mysql_errno (&mysql) == CR_VERSION_ERROR) @@ -172,6 +174,7 @@ process_arguments (int argc, char **argv) int option = 0; static struct option longopts[] = { {"hostname", required_argument, 0, 'H'}, + {"socket", required_argument, 0, 's'}, {"database", required_argument, 0, 'd'}, {"username", required_argument, 0, 'u'}, {"password", required_argument, 0, 'p'}, @@ -189,7 +192,7 @@ process_arguments (int argc, char **argv) return ERROR; while (1) { - c = getopt_long (argc, argv, "hvVSP:p:u:d:H:q:w:c:", longopts, &option); + c = getopt_long (argc, argv, "hvVSP:p:u:d:H:s:q:w:c:", longopts, &option); if (c == -1 || c == EOF) break; @@ -203,14 +206,17 @@ process_arguments (int argc, char **argv) usage2 (_("Invalid hostname/address"), optarg); } break; - case 'd': /* hostname */ + case 's': /* socket */ + db_socket = optarg; + break; + case 'd': /* database */ db = optarg; break; case 'u': /* username */ db_user = optarg; break; case 'p': /* authentication information: password */ - asprintf(&db_pass, "%s", optarg); + db_pass = strdup(optarg); /* Delete the password from process list */ while (*optarg != '\0') { @@ -291,10 +297,13 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" -q, --query=STRING\n"); printf (" %s\n", _("SQL query to run. Only first column in first row will be read")); printf (_(UT_WARN_CRIT_RANGE)); printf (_(UT_HOST_PORT), 'P', myport); + printf (" %s\n", "-s, --socket=STRING"); + printf (" %s\n", _("Use the specified socket (has no effect if -H is used)")); printf (" -d, --database=STRING\n"); printf (" %s\n", _("Database to check")); printf (" -u, --username=STRING\n"); @@ -302,11 +311,17 @@ print_help (void) printf (" -p, --password=STRING\n"); printf (" %s\n", _("Password to login with")); printf (" ==> %s <==\n", _("IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!")); + printf (" %s\n", _("Your clear-text password could be visible as a process table entry")); printf ("\n"); + printf (" %s\n", _("A query is required. The result from the query should be numeric.")); + printf (" %s\n", _("For extra security, create a user with minimal access.")); - printf ("%s\n", _("A query is required. The result from the query should be numeric.")); - printf ("%s\n", _("For extra security, create a user with minimal access.")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } @@ -316,6 +331,6 @@ void print_usage (void) { printf (_("Usage:")); - printf ("%s -q SQL_query [-w warn] [-c crit]\n",progname); - printf ("[-d database] [-H host] [-P port] [-u user] [-p password]\n"); + printf (" %s -q SQL_query [-w warn] [-c crit] [-H host] [-P port] [-s socket]\n",progname); + printf (" [-d database] [-u user] [-p password]\n"); } diff --git a/plugins/check_nagios.c b/plugins/check_nagios.c index 316ab3b..bda444a 100644 --- a/plugins/check_nagios.c +++ b/plugins/check_nagios.c @@ -1,45 +1,43 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_nagios plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 1999-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_nagios plugin -* -* This plugin checks the status of the Nagios process on the local machine -* The plugin will check to make sure the Nagios status log is no older than -* the number of minutes specified by the expires option. -* It also checks the process table for a process matching the command argument. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin checks the status of the Nagios process on the local machine. +* The plugin will check to make sure the Nagios status log is no older than +* the number of minutes specified by the expires option. +* It also checks the process table for a process matching the command +* argument. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_nagios.c 1590 2007-01-28 21:46:41Z hweiss $ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_nagios.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_nagios"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "1999-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "1999-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -90,6 +88,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage_va(_("Could not parse arguments")); @@ -287,10 +288,11 @@ print_help (void) printf ("%s\n", _("It also checks the process table for a process matching the command argument.")); printf ("\n\n"); - + print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" %s\n", "-F, --filename=FILE"); printf (" %s\n", _("Name of the log file to check")); @@ -299,9 +301,17 @@ print_help (void) printf (" %s\n", "-C, --command=STRING"); printf (" %s\n", _("Substring to search for in process arguments")); printf (_(UT_VERBOSE)); + +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf ("\n"); printf ("%s\n", _("Examples:")); printf (" %s\n", "check_nagios -e 5 -F /usr/local/nagios/var/status.log -C /usr/local/nagios/bin/nagios"); + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_nt.c b/plugins/check_nt.c index eed854c..ead156c 100644 --- a/plugins/check_nt.c +++ b/plugins/check_nt.c @@ -1,44 +1,43 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_nt plugin -* +* * License: GPL * Copyright (c) 2000-2002 Yves Rubin (rubiyz@yahoo.com) -* Copyright (c) 2003-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 2003-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_nt plugin -* -* This plugin collects data from the NSClient service running on a -* Windows NT/2000/XP/2003 server. -* This requires NSClient software to run on NT (http://nsclient.ready2run.nl/) -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin collects data from the NSClient service running on a +* Windows NT/2000/XP/2003 server. +* This plugin requires NSClient software to run on NT +* (http://nsclient.ready2run.nl/) +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_nt.c 1590 2007-01-28 21:46:41Z hweiss $ -* +* along with this program. If not, see . +* +* $Id: check_nt.c 1991 2008-05-07 10:02:42Z dermoth $ +* *****************************************************************************/ const char *progname = "check_nt"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "2003-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -55,7 +54,8 @@ enum checkvars { CHECK_PROCSTATE, CHECK_MEMUSE, CHECK_COUNTER, - CHECK_FILEAGE + CHECK_FILEAGE, + CHECK_INSTANCES }; enum { @@ -122,6 +122,9 @@ int main(int argc, char **argv){ bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if(process_arguments(argc,argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -157,7 +160,7 @@ int main(int argc, char **argv){ return_code=STATE_OK; temp_string = strdup (_("CPU Load")); temp_string_perf = strdup (" "); - + /* loop until one of the parameters is wrong or not present */ while (lvalue_list[0+offset]> (unsigned long)0 && lvalue_list[0+offset]<=(unsigned long)17280 && @@ -185,7 +188,7 @@ int main(int argc, char **argv){ asprintf(&temp_string_perf,"%s%s",temp_string_perf,perfdata); offset+=3; /* move across the array */ } - + if (strlen(temp_string)>10) { /* we had at least one loop */ output_message = strdup (temp_string); perfdata = temp_string_perf; @@ -414,7 +417,7 @@ int main(int argc, char **argv){ return_code=STATE_WARNING; else return_code=STATE_OK; - } + } else { /* inverse thresholds */ if(check_critical_value==TRUE && age_in_minutes <= critical_value) return_code=STATE_CRITICAL; @@ -426,6 +429,21 @@ int main(int argc, char **argv){ } break; + case CHECK_INSTANCES: + if (value_list==NULL) + output_message = strdup (_("No counter specified")); + else { + asprintf(&send_buffer,"%s&10&%s", req_password,value_list); + fetch_data (server_address, server_port, send_buffer); + if (!strncmp(recv_buffer,"ERROR",5)) { + printf("NSClient - %s\n",recv_buffer); + exit(STATE_UNKNOWN); + } + asprintf(&output_message,"%s",recv_buffer); + return_code=STATE_OK; + } + break; + case CHECK_NONE: default: usage4 (_("Please specify a variable to check")); @@ -483,14 +501,13 @@ int process_arguments(int argc, char **argv){ strcpy(argv[c],"-c"); } - while (1){ + while (1) { c = getopt_long(argc,argv,"+hVH:t:c:w:p:v:l:s:d:",longopts,&option); if (c==-1||c==EOF||c==1) break; - switch (c) - { + switch (c) { case '?': /* print short usage statement if args not parsable */ usage5 (); case 'h': /* help */ @@ -533,6 +550,8 @@ int process_arguments(int argc, char **argv){ vars_to_check=CHECK_COUNTER; else if(!strcmp(optarg,"FILEAGE")) vars_to_check=CHECK_FILEAGE; + else if(!strcmp(optarg,"INSTANCES")) + vars_to_check=CHECK_INSTANCES; else return ERROR; break; @@ -624,12 +643,13 @@ void print_help(void) printf ("%s\n", _("Windows NT/2000/XP/2003 server.")); printf ("\n\n"); - + print_usage(); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); - printf ("%s\n", _("Options:")); + printf ("%s\n", _("Options:")); printf (" %s\n", "-H, --hostname=HOST"); printf (" %s\n", _("Name of the host to check")); printf (" %s\n", "-p, --port=INTEGER"); @@ -671,7 +691,7 @@ void print_help(void) printf (" %s\n", "MEMUSE ="); printf (" %s\n", _("Memory use.")); printf (" %s\n", _("Warning and critical thresholds can be specified with -w and -c.")); - printf (" %s\n,", "SERVICESTATE ="); + printf (" %s\n", "SERVICESTATE ="); printf (" %s\n", _("Check the state of one or several services.")); printf (" %s\n", _("Request a -l parameters with the following syntax:")); printf (" %s\n", _("-l ,,,...")); @@ -686,18 +706,38 @@ void print_help(void) printf (" %s\n", _("-l \"\\\\\\\\counter\",\"")); printf (" %s\n", _("The parameter is optional and is given to a printf ")); printf (" %s\n", _("output command which requires a float parameter.")); - printf (" %s\n\n", _("If does not include \"%%\", it is used as a label.")); + printf (" %s\n", _("If does not include \"%%\", it is used as a label.")); printf (" %s\n", _("Some examples:")); printf (" %s\n", "\"Paging file usage is %%.2f %%%%\""); - printf (" %s\n\n", "\"%%.f %%%% paging file used.\""); - printf (_("Notes:")); + printf (" %s\n", "\"%%.f %%%% paging file used.\""); + printf (" %s\n", "INSTANCES ="); + printf (" %s\n", _("Check any performance counter object of Windows NT/2000.")); + printf (" %s\n", _("Syntax: check_nt -H -p -v INSTANCES -l ")); + printf (" %s\n", _(" is a Windows Perfmon Counter object (eg. Process),")); + printf (" %s\n", _("if it is two words, it should be enclosed in quotes")); + printf (" %s\n", _("The returned results will be a comma-separated list of instances on ")); + printf (" %s\n", _(" the selected computer for that object.")); + printf (" %s\n", _("The purpose of this is to be run from command line to determine what instances")); + printf (" %s\n", _(" are available for monitoring without having to log onto the Windows server")); + printf (" %s\n", _(" to run Perfmon directly.")); + printf (" %s\n", _("It can also be used in scripts that automatically create Nagios service")); + printf (" %s\n", _(" configuration files.")); + printf (" %s\n", _("Some examples:")); + printf (" %s\n\n", _("check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process")); + + printf ("%s\n", _("Notes:")); printf (" %s\n", _("- The NSClient service should be running on the server to get any information")); - printf (" %s\n", "(http://nsclient.ready2run.nl)."); + printf (" %s\n", "(http://nsclient.ready2run.nl)."); printf (" %s\n", _("- Critical thresholds should be lower than warning thresholds")); printf (" %s\n", _("- Default port 1248 is sometimes in use by other services. The error")); - printf (" %s\n", _("output when this happens contains \"Cannot map xxxxx to protocol number\".")); - printf (" %s\n", _("One fix for this is to change the port to something else on check_nt ")); - printf (" %s\n", _("and on the client service it\'s connecting to.")); + printf (" %s\n", _("output when this happens contains \"Cannot map xxxxx to protocol number\".")); + printf (" %s\n", _("One fix for this is to change the port to something else on check_nt ")); + printf (" %s\n", _("and on the client service it\'s connecting to.")); +#ifdef NP_EXTRA_OPTS + printf (" -%s", _(UT_EXTRA_OPTS_NOTES)); +#endif + + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_ntp.c b/plugins/check_ntp.c index e49fab2..abb060f 100644 --- a/plugins/check_ntp.c +++ b/plugins/check_ntp.c @@ -1,44 +1,41 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_ntp plugin -* +* * License: GPL -* Copyright (c) 2006 sean finney -* Copyright (c) 2007 nagios-plugins team -* -* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $ -* +* Copyright (c) 2006 Sean Finney +* Copyright (c) 2006-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_ntp plugin -* -* This plugin to check ntp servers independant of any commandline -* programs or external libraries. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin to check ntp servers independant of any commandline +* programs or external libraries. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_ntp.c 1861 2007-12-11 05:57:35Z dermoth $ - +* along with this program. If not, see . +* +* $Id: check_ntp.c 1991 2008-05-07 10:02:42Z dermoth $ +* *****************************************************************************/ const char *progname = "check_ntp"; -const char *revision = "$Revision: 1861 $"; -const char *copyright = "2007"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2006-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -302,50 +299,52 @@ void setup_request(ntp_message *p){ * 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; + int i=0, cserver=0, best_server=-1; /* for each server */ for(cserver=0; cserveri; 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]; + if(best_server >= 0) { + DBG(printf("best server selected: peer %d\n", best_server)); + return best_server; } else { DBG(printf("no peers meeting synchronization criteria :(\n")); return -1; @@ -392,6 +391,7 @@ double offset_request(const char *host, int *status){ 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); + DBG(printf("Found %d peers to check\n", num_hosts)); /* setup each socket for writing, and the corresponding struct pollfd */ ai_tmp=ai; @@ -763,6 +763,9 @@ int main(int argc, char *argv[]){ result = offset_result = jitter_result = STATE_OK; + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -837,45 +840,54 @@ void print_help(void){ printf ("Copyright (c) 2006 Sean Finney\n"); printf (COPYRIGHT, copyright, email); - - printf ("%s\n", _("This plugin checks the selected ntp server")); - printf ("\n\n"); - + printf ("%s\n", _("This plugin checks the selected ntp server")); + + printf ("\n\n"); + print_usage(); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', "123"); 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", "-j, --warning=THRESHOLD"); + printf (" %s\n", "-j, --jwarn=THRESHOLD"); printf (" %s\n", _("Warning threshold for jitter")); - printf (" %s\n", "-k, --critical=THRESHOLD"); + printf (" %s\n", "-k, --jcrit=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(_(UT_THRESHOLDS_NOTES)); +#ifdef NP_EXTRA_OPTS + printf("\n"); + printf(_(UT_EXTRA_OPTS_NOTES)); +#endif 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("\n"); 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)); + + printf ("%s\n", _("WARNING: check_ntp is deprecated. Please use check_ntp_peer or")); + printf ("%s\n\n", _("check_ntp_time istead.")); } void print_usage(void) { - printf (_("Usage:")); - printf(" %s -H [-w ] [-c ] [-j ] [-k ] [-v verbose]\n", progname); + printf ("%s\n", _("WARNING: check_ntp is deprecated. Please use check_ntp_peer or")); + printf ("%s\n\n", _("check_ntp_time istead.")); + printf (_("Usage:")); + printf(" %s -H [-w ] [-c ] [-j ] [-k ] [-v verbose]\n", progname); } diff --git a/plugins/check_ntp_peer.c b/plugins/check_ntp_peer.c index 045c747..3bc90aa 100644 --- a/plugins/check_ntp_peer.c +++ b/plugins/check_ntp_peer.c @@ -1,49 +1,46 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_ntp_peer plugin -* +* * License: GPL -* Copyright (c) 2006 sean finney -* Copyright (c) 2007 nagios-plugins team -* -* Last Modified: $Date: 2007-12-11 13:31:22 +0000 (Tue, 11 Dec 2007) $ -* +* Copyright (c) 2006 Sean Finney +* Copyright (c) 2006-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * 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 +* +* 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. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_ntp_peer.c 1864 2007-12-11 13:31:22Z dermoth $ - +* along with this program. If not, see . +* +* $Id: check_ntp_peer.c 1991 2008-05-07 10:02:42Z dermoth $ +* *****************************************************************************/ const char *progname = "check_ntp_peer"; -const char *revision = "$Revision: 1864 $"; -const char *copyright = "2007"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2006-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -63,6 +60,7 @@ static short do_jitter=0; static char *jwarn="-1:5000"; static char *jcrit="-1:10000"; static int syncsource_found=0; +static int li_alarm=0; int process_arguments (int, char **); thresholds *offset_thresholds = NULL; @@ -267,6 +265,7 @@ int ntp_request(const char *host, double *offset, int *offset_result, double *ji 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)); + if (LI(req.flags) == LI_ALARM) li_alarm = 1; /* Each peer identifier is 4 bytes in the data section, which * we represent as a ntp_assoc_status_pair datatype. */ @@ -297,6 +296,10 @@ int ntp_request(const char *host, double *offset, int *offset_result, double *ji status = STATE_WARNING; if(verbose) printf("warning: no synchronization source found\n"); } + if(li_alarm){ + status = STATE_WARNING; + if(verbose) printf("warning: LI_ALARM bit is set\n"); + } for (i = 0; i < npeers; i++){ @@ -549,6 +552,9 @@ int main(int argc, char *argv[]){ bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -597,6 +603,8 @@ int main(int argc, char *argv[]){ } if(!syncsource_found) asprintf(&result_line, "%s %s,", result_line, _("Server not synchronized")); + else if(li_alarm) + asprintf(&result_line, "%s %s,", result_line, _("Server has the LI_ALARM bit set")); if(offset_result == STATE_UNKNOWN){ asprintf(&result_line, "%s %s", result_line, _("Offset unknown")); @@ -633,6 +641,7 @@ void print_help(void){ print_usage(); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); 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")); @@ -640,37 +649,42 @@ void print_help(void){ 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", "-W, --swarn=THRESHOLD"); printf (" %s\n", _("Warning threshold for stratum")); - printf (" %s\n", "-W, --critical=THRESHOLD"); + printf (" %s\n", "-C, --scrit=THRESHOLD"); printf (" %s\n", _("Critical threshold for stratum")); - printf (" %s\n", "-j, --warning=THRESHOLD"); + printf (" %s\n", "-j, --jwarn=THRESHOLD"); printf (" %s\n", _("Warning threshold for jitter")); - printf (" %s\n", "-k, --critical=THRESHOLD"); + printf (" %s\n", "-k, --jcrit=THRESHOLD"); printf (" %s\n", _("Critical threshold for jitter")); printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); printf (_(UT_VERBOSE)); printf("\n"); + printf("%s\n", _("This plugin checks an NTP server independent of any commandline")); + printf("%s\n\n", _("programs or external libraries.")); + 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(" %s\n", _("server; please use check_ntp_time for that purpose.")); + printf("\n"); + printf(_(UT_THRESHOLDS_NOTES)); +#ifdef NP_EXTRA_OPTS + printf("\n"); + printf(_(UT_EXTRA_OPTS_NOTES)); +#endif 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("\n"); 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("\n"); printf(" %s\n", _("Check only stratum:")); printf(" %s\n", ("./check_ntp_peer -H ntpserv -W 4 -C 6")); diff --git a/plugins/check_ntp_time.c b/plugins/check_ntp_time.c index 2b4df03..365b20b 100644 --- a/plugins/check_ntp_time.c +++ b/plugins/check_ntp_time.c @@ -1,48 +1,45 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_ntp_time plugin -* +* * License: GPL -* Copyright (c) 2006 sean finney -* Copyright (c) 2007 nagios-plugins team -* -* Last Modified: $Date: 2007-12-11 05:57:35 +0000 (Tue, 11 Dec 2007) $ -* +* Copyright (c) 2006 Sean Finney +* Copyright (c) 2006-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * 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 +* +* 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. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_ntp_time.c 1861 2007-12-11 05:57:35Z dermoth $ - +* along with this program. If not, see . +* +* $Id: check_ntp_time.c 1991 2008-05-07 10:02:42Z dermoth $ +* *****************************************************************************/ const char *progname = "check_ntp_time"; -const char *revision = "$Revision: 1861 $"; -const char *copyright = "2007"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2006-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -247,50 +244,52 @@ void setup_request(ntp_message *p){ * 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; + int i=0, cserver=0, best_server=-1; /* for each server */ for(cserver=0; cserveri; 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]; + if(best_server >= 0) { + DBG(printf("best server selected: peer %d\n", best_server)); + return best_server; } else { DBG(printf("no peers meeting synchronization criteria :(\n")); return -1; @@ -337,6 +336,7 @@ double offset_request(const char *host, int *status){ 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); + DBG(printf("Found %d peers to check\n", num_hosts)); /* setup each socket for writing, and the corresponding struct pollfd */ ai_tmp=ai; @@ -540,6 +540,9 @@ int main(int argc, char *argv[]){ result = offset_result = STATE_OK; + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -597,6 +600,7 @@ void print_help(void){ print_usage(); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', "123"); printf (" %s\n", "-q, --quiet"); printf (" %s\n", _("Returns UNKNOWN instead of CRITICAL if offset cannot be found")); @@ -608,16 +612,20 @@ void print_help(void){ 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", _("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", _("external libraries.")); - 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", _("Notes:")); + printf(" %s\n", _("If you'd rather want to monitor an NTP server, please use")); + printf(" %s\n", _("check_ntp_peer.")); + printf("\n"); + printf(_(UT_THRESHOLDS_NOTES)); +#ifdef NP_EXTRA_OPTS + printf("\n"); + printf(_(UT_EXTRA_OPTS_NOTES)); +#endif printf("\n"); printf("%s\n", _("Examples:")); @@ -630,7 +638,6 @@ void print_usage(void) { printf (_("Usage:")); - printf(" %s -H [-w ] [-c ] [-W ] [-C ]\n", progname); - printf(" [-j ] [-k ] [-v verbose]\n"); + printf(" %s -H [-w ] [-c ] [-v verbose]\n", progname); } diff --git a/plugins/check_nwstat.c b/plugins/check_nwstat.c index 028ba9e..63f1d8c 100644 --- a/plugins/check_nwstat.c +++ b/plugins/check_nwstat.c @@ -1,43 +1,40 @@ -/****************************************************************************** -* -* Nagios check_nwstat plugin -* -* License: GPL -* Copyright (c) 2000-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* -* Description: -* -* This file contains the check_nwstat plugin -* -* This plugin attempts to contact the MRTGEXT NLM running on a -* Novell server to gather the requested system information. +/***************************************************************************** * -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* Nagios check_nwstat plugin +* +* License: GPL +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* +* Description: +* +* This file contains the check_nwstat plugin +* +* This plugin attempts to contact the MRTGEXT NLM running on a +* Novell server to gather the requested system information. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_nwstat.c 1590 2007-01-28 21:46:41Z hweiss $ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_nwstat.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_nwstat"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -173,6 +170,9 @@ main(int argc, char **argv) { bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts(&argc, argv, progname); + if (process_arguments(argc,argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -521,14 +521,14 @@ main(int argc, char **argv) { result=STATE_OK; else result=STATE_WARNING; - + close(sd); my_tcp_connect (server_address, server_port, &sd); send_buffer = strdup ("S13\r\n"); result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); temp_buffer=strtok(recv_buffer,"\r\n"); - + asprintf (&output_message,_("Directory Services Database is %s (DS version %s)"),(result==STATE_OK)?"open":"closed",temp_buffer); /* check to see if logins are enabled */ @@ -596,7 +596,7 @@ main(int argc, char **argv) { return result; max_packet_receive_buffers=atoi(recv_buffer); - + percent_used_packet_receive_buffers=(unsigned long)(((double)used_packet_receive_buffers/(double)max_packet_receive_buffers)*100.0); if (vars_to_check==UPRB) { @@ -610,7 +610,7 @@ main(int argc, char **argv) { else if (check_warning_value==TRUE && percent_used_packet_receive_buffers >= warning_value) result=STATE_WARNING; } - + asprintf (&output_message,_("%lu of %lu (%lu%%) packet receive buffers used"),used_packet_receive_buffers,max_packet_receive_buffers,percent_used_packet_receive_buffers); /* check SAP table entries */ @@ -626,9 +626,9 @@ main(int argc, char **argv) { result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; - + sap_entries=atoi(recv_buffer); - + if (check_critical_value==TRUE && sap_entries >= critical_value) result=STATE_CRITICAL; else if (check_warning_value==TRUE && sap_entries >= warning_value) @@ -814,9 +814,9 @@ main(int argc, char **argv) { result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; - + open_files=atoi(recv_buffer); - + if (check_critical_value==TRUE && open_files >= critical_value) result=STATE_CRITICAL; else if (check_warning_value==TRUE && open_files >= warning_value) @@ -839,9 +839,9 @@ main(int argc, char **argv) { result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; - + abended_threads=atoi(recv_buffer); - + if (check_critical_value==TRUE && abended_threads >= critical_value) result=STATE_CRITICAL; else if (check_warning_value==TRUE && abended_threads >= warning_value) @@ -863,9 +863,9 @@ main(int argc, char **argv) { result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; - + max_service_processes=atoi(recv_buffer); - + close(sd); my_tcp_connect (server_address, server_port, &sd); @@ -873,9 +873,9 @@ main(int argc, char **argv) { result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) return result; - + current_service_processes=atoi(recv_buffer); - + if (check_critical_value==TRUE && current_service_processes >= critical_value) result=STATE_CRITICAL; else if (check_warning_value==TRUE && current_service_processes >= warning_value) @@ -1610,6 +1610,7 @@ void print_help(void) print_usage(); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', myport); @@ -1676,7 +1677,10 @@ void print_help(void) printf (" %s\n", _(" (available from http://www.engr.wisc.edu/~drews/mrtg/)")); printf (" %s\n", _("- Values for critical thresholds should be lower than warning thresholds")); printf (" %s\n", _(" when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, ")); - printf (" %S\n", _(" TCB, LRUS and LRUM.\n")); + printf (" %s\n", _(" TCB, LRUS and LRUM.")); +#ifdef NP_EXTRA_OPTS + printf (" -%s", _(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } diff --git a/plugins/check_overcr.c b/plugins/check_overcr.c index 292ec11..493fc7d 100644 --- a/plugins/check_overcr.c +++ b/plugins/check_overcr.c @@ -1,43 +1,40 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_overcr plugin -* +* * License: GPL -* Copyright (c) 2000-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-02-06 21:03:21 +0000 (Tue, 06 Feb 2007) $ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_overcr plugin -* -* This plugin attempts to contact the Over-CR collector daemon running on the -* remote UNIX server in order to gather the requested system information. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin attempts to contact the Over-CR collector daemon running on the +* remote UNIX server in order to gather the requested system information. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_overcr.c 1611 2007-02-06 21:03:21Z opensides $ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_overcr.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_overcr"; -const char *revision = "$Revision: 1611 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -102,6 +99,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -428,6 +428,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', myport); @@ -448,16 +449,21 @@ print_help (void) printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); printf (_(UT_VERBOSE)); + + printf ("\n"); + printf ("%s\n", _("This plugin requires that Eric Molitors' Over-CR collector daemon be")); + printf ("%s\n", _("running on the remote server.")); + printf ("%s\n", _("Over-CR can be downloaded from http://www.molitor.org/overcr")); + printf ("%s\n", _("This plugin was tested with version 0.99.53 of the Over-CR collector")); + printf ("\n"); printf ("%s\n", _("Notes:")); - - printf ("%s\n", _("For the available options, the critical threshold value should always be")); - printf ("%s\n\n", _("higher than the warning threshold value, EXCEPT with the uptime variable")); - - printf ("%s\n", _("This plugin requres that Eric Molitors' Over-CR collector daemon be")); - printf ("%s\n", _("running on the remote server.")); - printf ("%s\n", " Over-CR can be downloaded from http://www.molitor.org/overcr"); - printf ("%s\n", _("This plugin was tested with version 0.99.53 of the Over-CR collector")); + printf (" %s\n", _("For the available options, the critical threshold value should always be")); + printf (" %s\n", _("higher than the warning threshold value, EXCEPT with the uptime variable")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } diff --git a/plugins/check_pgsql.c b/plugins/check_pgsql.c index d3e2458..3936a97 100644 --- a/plugins/check_pgsql.c +++ b/plugins/check_pgsql.c @@ -1,42 +1,39 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_pgsql plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 1999-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_pgsql plugin -* -* Test whether a PostgreSQL Database is accepting connections. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* Test whether a PostgreSQL Database is accepting connections. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_pgsql.c 1590 2007-01-28 21:46:41Z hweiss $ - - *****************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_pgsql.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_pgsql"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "1999-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "1999-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -44,6 +41,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "netutils.h" #include +#include #define DEFAULT_DB "template1" #define DEFAULT_HOST "127.0.0.1" @@ -152,6 +150,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -414,6 +415,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'P', myport); @@ -440,13 +442,21 @@ print_help (void) printf (" %s\n", _("specified database, and then disconnects. If no database is specified, it")); printf (" %s\n", _("connects to the template1 database, which is present in every functioning")); printf (" %s\n\n", _("PostgreSQL DBMS.")); + printf (" %s\n", _("The plugin will connect to a local postmaster if no host is specified. To")); printf (" %s\n", _("connect to a remote host, be sure that the remote postmaster accepts TCP/IP")); printf (" %s\n\n", _("connections (start the postmaster with the -i option).")); + printf (" %s\n", _("Typically, the nagios user (unless the --logname option is used) should be")); printf (" %s\n", _("able to connect to the database without a password. The plugin can also send")); printf (" %s\n", _("a password, but no effort is made to obsure or encrypt the password.")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_ping.c b/plugins/check_ping.c index a28e75a..f1ffa9d 100644 --- a/plugins/check_ping.c +++ b/plugins/check_ping.c @@ -1,42 +1,39 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_ping plugin -* +* * License: GPL -* Copyright (c) 2000-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-10-25 21:43:04 +0100 (Thu, 25 Oct 2007) $ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_ping plugin -* -* Use the ping program to check connection statistics for a remote host. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* Use the ping program to check connection statistics for a remote host. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: check_ping.c 1810 2007-10-25 20:43:04Z tonvoon $ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_ping.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_ping"; -const char *revision = "$Revision: 1810 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -95,6 +92,9 @@ main (int argc, char **argv) addresses = malloc (sizeof(char*) * max_addr); addresses[0] = NULL; + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -165,7 +165,16 @@ main (int argc, char **argv) state_text (this_result), warn_text, pl, rta); if (display_html == TRUE) printf (""); - printf ("\n"); + + /* Print performance data */ + printf("|%s", fperfdata ("rta", (double) rta, "ms", + wrta>0?TRUE:FALSE, wrta, + crta>0?TRUE:FALSE, crta, + TRUE, 0, FALSE, 0)); + printf(" %s\n", perfdata ("pl", (long) pl, "%", + wpl>0?TRUE:FALSE, wpl, + cpl>0?TRUE:FALSE, cpl, + TRUE, 0, FALSE, 0)); if (verbose >= 2) printf ("%f:%d%% %f:%d%%\n", wrta, wpl, crta, cpl); @@ -558,6 +567,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_IPv46)); @@ -575,18 +585,22 @@ print_help (void) printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); + printf ("\n"); printf ("%s\n", _("THRESHOLD is ,% where is the round trip average travel")); printf ("%s\n", _("time (ms) which triggers a WARNING or CRITICAL state, and is the")); printf ("%s\n", _("percentage of packet loss to trigger an alarm state.")); - printf ("\n\n"); - + printf ("\n"); printf ("%s\n", _("This plugin uses the ping command to probe the specified host for packet loss")); printf ("%s\n", _("(percentage) and round trip average (milliseconds). It can produce HTML output")); printf ("%s\n", _("linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in")); printf ("%s\n", _("the contrib area of the downloads section at http://www.nagios.org/")); - printf ("\n\n"); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } diff --git a/plugins/check_procs.c b/plugins/check_procs.c index 0356f9f..c519f4c 100644 --- a/plugins/check_procs.c +++ b/plugins/check_procs.c @@ -1,49 +1,49 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_procs plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-07-15 16:21:51 +0100 (Sun, 15 Jul 2007) $ -* +* Copyright (c) 2000-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_procs plugin -* -* Checks all processes and generates WARNING or CRITICAL states if the specified -* metric is outside the required threshold ranges. The metric defaults to number -* of processes. Search filters can be applied to limit the processes to check. -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* Checks all processes and generates WARNING or CRITICAL states if the +* specified metric is outside the required threshold ranges. The metric +* defaults to number of processes. Search filters can be applied to limit +* the processes to check. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_procs.c 1758 2007-07-15 15:21:51Z psychotrahe $ * -******************************************************************************/ +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: check_procs.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_procs"; const char *program_name = "check_procs"; /* Required for coreutils libs */ -const char *revision = "$Revision: 1758 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" #include "popen.h" #include "utils.h" +#include "regex.h" #include @@ -70,6 +70,7 @@ int options = 0; /* bitmask of filter criteria to test against */ #define RSS 128 #define PCPU 256 #define ELAPSED 512 +#define EREG_ARGS 1024 /* Different metrics */ char *metric_name; enum metric { @@ -90,10 +91,13 @@ float pcpu; char *statopts; char *prog; char *args; +char *input_filename = NULL; +regex_t re_args; char *fmt; char *fails; char tmp[MAX_INPUT_BUFFER]; +FILE *ps_input = NULL; int @@ -139,6 +143,9 @@ main (int argc, char **argv) asprintf (&metric_name, "PROCS"); metric = METRIC_PROCS; + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -154,25 +161,31 @@ main (int argc, char **argv) if (verbose >= 2) printf (_("CMD: %s\n"), PS_COMMAND); - child_process = spopen (PS_COMMAND); - if (child_process == NULL) { - printf (_("Could not open pipe: %s\n"), PS_COMMAND); - return STATE_UNKNOWN; + if (input_filename == NULL) { + ps_input = spopen (PS_COMMAND); + if (ps_input == NULL) { + printf (_("Could not open pipe: %s\n"), PS_COMMAND); + return STATE_UNKNOWN; + } + child_stderr = fdopen (child_stderr_array[fileno (ps_input)], "r"); + if (child_stderr == NULL) + printf (_("Could not open stderr for %s\n"), PS_COMMAND); + } else { + ps_input = fopen(input_filename, "r"); + if (ps_input == NULL) { + die( STATE_UNKNOWN, _("Error opening %s\n"), input_filename ); + } } - child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); - if (child_stderr == NULL) - printf (_("Could not open stderr for %s\n"), PS_COMMAND); - /* flush first line */ - fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process); + fgets (input_buffer, MAX_INPUT_BUFFER - 1, ps_input); while ( input_buffer[strlen(input_buffer)-1] != '\n' ) - fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process); + fgets (input_buffer, MAX_INPUT_BUFFER - 1, ps_input); - while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) { + while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, ps_input)) { asprintf (&input_line, "%s", input_buffer); while ( input_buffer[strlen(input_buffer)-1] != '\n' ) { - fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process); + fgets (input_buffer, MAX_INPUT_BUFFER - 1, ps_input); asprintf (&input_line, "%s%s", input_line, input_buffer); } @@ -212,6 +225,8 @@ main (int argc, char **argv) resultsum |= STAT; if ((options & ARGS) && procargs && (strstr (procargs, args) != NULL)) resultsum |= ARGS; + if ((options & EREG_ARGS) && procargs && (regexec(&re_args, procargs, (size_t) 0, NULL, 0) == 0)) + resultsum |= EREG_ARGS; if ((options & PROG) && procprog && (strcmp (prog, procprog) == 0)) resultsum |= PROG; if ((options & PPID) && (procppid == ppid)) @@ -232,6 +247,12 @@ main (int argc, char **argv) continue; procs++; + if (verbose >= 2) { + printf ("Matched: uid=%d vsz=%d rss=%d pid=%d ppid=%d pcpu=%.2f stat=%s etime=%s prog=%s args=%s\n", + procuid, procvsz, procrss, + procpid, procppid, procpcpu, procstat, + procetime, procprog, procargs); + } if (metric == METRIC_VSZ) i = check_thresholds (procvsz); @@ -263,19 +284,21 @@ main (int argc, char **argv) } /* If we get anything on STDERR, at least set warning */ - while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) { - if (verbose) - printf ("STDERR: %s", input_buffer); - result = max_state (result, STATE_WARNING); - printf (_("System call sent warnings to stderr\n")); - } + if (input_filename == NULL) { + while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) { + if (verbose) + printf ("STDERR: %s", input_buffer); + result = max_state (result, STATE_WARNING); + printf (_("System call sent warnings to stderr\n")); + } - (void) fclose (child_stderr); + (void) fclose (child_stderr); - /* close the pipe */ - if (spclose (child_process)) { - printf (_("System call returned nonzero status\n")); - result = max_state (result, STATE_WARNING); + /* close the pipe */ + if (spclose (ps_input)) { + printf (_("System call returned nonzero status\n")); + result = max_state (result, STATE_WARNING); + } } if (found == 0) { /* no process lines parsed so return STATE_UNKNOWN */ @@ -327,6 +350,9 @@ process_arguments (int argc, char **argv) char *user; struct passwd *pw; int option = 0; + int err; + int cflags = REG_NOSUB | REG_EXTENDED; + char errbuf[MAX_INPUT_BUFFER]; static struct option longopts[] = { {"warning", required_argument, 0, 'w'}, {"critical", required_argument, 0, 'c'}, @@ -343,6 +369,8 @@ process_arguments (int argc, char **argv) {"help", no_argument, 0, 'h'}, {"version", no_argument, 0, 'V'}, {"verbose", no_argument, 0, 'v'}, + {"ereg-argument-array", required_argument, 0, CHAR_MAX+1}, + {"input-file", required_argument, 0, CHAR_MAX+2}, {0, 0, 0, 0} }; @@ -417,13 +445,13 @@ process_arguments (int argc, char **argv) pw = getpwuid ((uid_t) uid); /* check to be sure user exists */ if (pw == NULL) - usage2 (_("UID %s was not found"), optarg); + usage2 (_("UID was not found"), optarg); } else { pw = getpwnam (optarg); /* check to be sure user exists */ if (pw == NULL) - usage2 (_("User name %s was not found"), optarg); + usage2 (_("User name was not found"), optarg); /* then get uid */ uid = pw->pw_uid; } @@ -451,6 +479,15 @@ process_arguments (int argc, char **argv) asprintf (&fmt, "%s%sargs '%s'", (fmt ? fmt : ""), (options ? ", " : ""), args); options |= ARGS; break; + case CHAR_MAX+1: + err = regcomp(&re_args, optarg, cflags); + if (err != 0) { + regerror (err, &re_args, errbuf, MAX_INPUT_BUFFER); + die (STATE_UNKNOWN, "PROCS %s: %s - %s\n", _("UNKNOWN"), _("Could not compile regular expression"), errbuf); + } + asprintf (&fmt, "%s%sregex args '%s'", (fmt ? fmt : ""), (options ? ", " : ""), optarg); + options |= EREG_ARGS; + break; case 'r': /* RSS */ if (sscanf (optarg, "%d%[^0-9]", &rss, tmp) == 1) { asprintf (&fmt, "%s%sRSS >= %d", (fmt ? fmt : ""), (options ? ", " : ""), rss); @@ -500,6 +537,9 @@ process_arguments (int argc, char **argv) case 'v': /* command */ verbose++; break; + case CHAR_MAX+2: + input_filename = optarg; + break; } } @@ -667,7 +707,7 @@ print_help (void) { print_revision (progname, revision); - printf ("Copyright (c) 1999 Ethan Galstad "); + printf ("Copyright (c) 1999 Ethan Galstad \n"); printf (COPYRIGHT, copyright, email); printf ("%s\n", _("Checks all processes and generates WARNING or CRITICAL states if the specified")); @@ -675,16 +715,15 @@ print_help (void) printf ("%s\n", _("of processes. Search filters can be applied to limit the processes to check.")); printf ("\n\n"); - + print_usage (); - printf ("%s\n", _("Required Arguments:")); + printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" %s\n", "-w, --warning=RANGE"); printf (" %s\n", _("Generate warning state if metric is outside this range")); printf (" %s\n", "-c, --critical=RANGE"); printf (" %s\n", _("Generate critical state if metric is outside this range")); - - printf ("%s\n", _("Optional Arguments:")); printf (" %s\n", "-m, --metric=TYPE"); printf (" %s\n", _("Check thresholds against metric. Valid types:")); printf (" %s\n", _("PROCS - number of processes (default)")); @@ -700,7 +739,8 @@ print_help (void) printf (" %s\n", "-v, --verbose"); printf (" %s\n", _("Extra information. Up to 3 verbosity levels")); - printf ("%s\n", "Optional Filters:"); + printf ("\n"); + printf ("%s\n", "Filters:"); printf (" %s\n", "-s, --state=STATUSFLAGS"); printf (" %s\n", _("Only scan for processes that have, in the output of `ps`, one or")); printf (" %s\n", _("more of the status flags you specify (for example R, Z, S, RS,")); @@ -717,6 +757,8 @@ print_help (void) printf (" %s\n", _("Only scan for processes with user name or ID indicated.")); printf (" %s\n", "-a, --argument-array=STRING"); printf (" %s\n", _("Only scan for processes with args that contain STRING.")); + printf (" %s\n", "--ereg-argument-array=STRING"); + printf (" %s\n", _("Only scan for processes with args that contain the regex STRING.")); printf (" %s\n", "-C, --command=COMMAND"); printf (" %s\n", _("Only scan for exact matches of COMMAND (without path).")); @@ -732,6 +774,12 @@ the specified threshold ranges. The process count can be filtered by\n\ process owner, parent process PID, current state (e.g., 'Z'), or may\n\ be the total number of running processes\n\n")); +#ifdef NP_EXTRA_OPTS + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); + printf ("\n"); +#endif + printf ("%s\n", _("Examples:")); printf (" %s\n", "check_procs -w 2:2 -c 2:1024 -C portsentry"); printf (" %s\n", _("Warning if not two processes with command name portsentry.")); @@ -742,7 +790,7 @@ be the total number of running processes\n\n")); printf (" %s\n", "check_procs -w 50000 -c 100000 --metric=VSZ"); printf (" %s\n\n", _("Alert if vsz of any processes over 50K or 100K")); printf (" %s\n", "check_procs -w 10 -c 20 --metric=CPU"); - printf (" %s\n\n", _("Alert if cpu of any processes over 10%% or 20%%")); + printf (" %s\n", _("Alert if cpu of any processes over 10%% or 20%%")); printf (_(UT_SUPPORT)); } @@ -750,7 +798,7 @@ be the total number of running processes\n\n")); void print_usage (void) { - printf (_("Usage:")); + printf (_("Usage: ")); printf ("%s -w -c [-m metric] [-s state] [-p ppid]\n", progname); printf (" [-u user] [-r rss] [-z vsz] [-P %%cpu] [-a argument-array]\n"); printf (" [-C command] [-t timeout] [-v]\n"); diff --git a/plugins/check_radius.c b/plugins/check_radius.c index 3206fe4..ea921d7 100644 --- a/plugins/check_radius.c +++ b/plugins/check_radius.c @@ -1,42 +1,39 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_radius plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $ -* +* Copyright (c) 1999-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-20 08:57:13 +0100 (Tue, 20 May 2008) $ +* * Description: -* +* * This file contains the check_radius plugin -* -* Tests to see if a radius server is accepting connections. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* Tests to see if a radius server is accepting connections. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_radius.c 1859 2007-12-10 07:52:00Z dermoth $ * -*******************************************************************************/ +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: check_radius.c 1994 2008-05-20 07:57:13Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_radius"; -const char *revision = "$Revision: 1859 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1994 $"; +const char *copyright = "2000-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -152,6 +149,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -260,7 +260,13 @@ process_arguments (int argc, char **argv) username = optarg; break; case 'p': /* password */ - password = optarg; + password = strdup(optarg); + + /* Delete the password from process list */ + while (*optarg != '\0') { + *optarg = 'X'; + optarg++; + } break; case 'n': /* nas id */ nasid = optarg; @@ -318,6 +324,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'P', myport); @@ -336,16 +343,22 @@ print_help (void) printf (_(UT_TIMEOUT), timeout_interval); - printf ("%s\n", _("This plugin tests a radius server to see if it is accepting connections.")); + printf ("\n"); + printf ("%s\n", _("This plugin tests a radius server to see if it is accepting connections.")); printf ("%s\n", _("The server to test must be specified in the invocation, as well as a user")); printf ("%s\n", _("name and password. A configuration file may also be present. The format of")); printf ("%s\n", _("the configuration file is described in the radiusclient library sources.")); printf ("%s\n", _("The password option presents a substantial security issue because the")); - printf ("%s\n", _("password can be determined by careful watching of the command line in")); - printf ("%s\n", _("a process listing. This risk is exacerbated because nagios will")); - printf ("%s\n", _("run the plugin at regular prdictable intervals. Please be sure that")); - printf ("%s\n", _("the password used does not allow access to sensitive system resources,")); - printf ("%s\n", _("otherwise compormise could occur.")); + printf ("%s\n", _("password can possibly be determined by careful watching of the command line")); + printf ("%s\n", _("in a process listing. This risk is exacerbated because nagios will")); + printf ("%s\n", _("run the plugin at regular predictable intervals. Please be sure that")); + printf ("%s\n", _("the password used does not allow access to sensitive system resources.")); + +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } diff --git a/plugins/check_real.c b/plugins/check_real.c index 6c206a1..969379c 100644 --- a/plugins/check_real.c +++ b/plugins/check_real.c @@ -1,43 +1,39 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_real plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_real plugin -* -* This plugin tests the REAL service on the specified host. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin tests the REAL service on the specified host. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* -* $Id: check_real.c 1590 2007-01-28 21:46:41Z hweiss $ * -******************************************************************************/ +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: check_real.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_real"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -81,6 +77,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -422,6 +421,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', myport); @@ -437,12 +437,19 @@ print_help (void) printf (_(UT_VERBOSE)); + printf ("\n"); printf ("%s\n", _("This plugin will attempt to open an RTSP connection with the host.")); printf ("%s\n", _("Successul connects return STATE_OK, refusals and timeouts return")); printf ("%s\n", _("STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful connects,")); printf ("%s\n", _("but incorrect reponse messages from the host result in STATE_WARNING return")); printf ("%s\n", _("values.")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_smtp.c b/plugins/check_smtp.c index c03cb46..766514e 100644 --- a/plugins/check_smtp.c +++ b/plugins/check_smtp.c @@ -1,52 +1,48 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_smtp plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-11-09 21:17:03 +0000 (Fri, 09 Nov 2007) $ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_smtp plugin -* -* This plugin will attempt to open an SMTP connection with the host. -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin will attempt to open an SMTP connection with the host. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* -* $Id: check_smtp.c 1817 2007-11-09 21:17:03Z dermoth $ * -******************************************************************************/ +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: check_smtp.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_smtp"; -const char *revision = "$Revision: 1817 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; -#include - #include "common.h" #include "netutils.h" #include "utils.h" #include "base64.h" +#include + #ifdef HAVE_SSL int check_cert = FALSE; int days_till_exp; @@ -141,6 +137,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -198,10 +197,10 @@ main (int argc, char **argv) /* make sure we find the response we are looking for */ if (!strstr (buffer, server_expect)) { if (server_port == SMTP_PORT) - printf (_("Invalid SMTP response received from host\n")); + printf (_("Invalid SMTP response received from host: %s\n"), buffer); else - printf (_("Invalid SMTP response received from host on port %d\n"), - server_port); + printf (_("Invalid SMTP response received from host on port %d: %s\n"), + server_port, buffer); result = STATE_WARNING; } } @@ -370,7 +369,8 @@ main (int argc, char **argv) } /* encode authuser with base64 */ - abuf = base64 (authuser, strlen(authuser)); + base64_encode_alloc (authuser, strlen(authuser), &abuf); + /* FIXME: abuf shouldn't have enough space to strcat a '\r\n' into it. */ strcat (abuf, "\r\n"); my_send(abuf, strlen(abuf)); if (verbose) @@ -390,7 +390,8 @@ main (int argc, char **argv) break; } /* encode authpass with base64 */ - abuf = base64 (authpass, strlen(authpass)); + base64_encode_alloc (authpass, strlen(authpass), &abuf); + /* FIXME: abuf shouldn't have enough space to strcat a '\r\n' into it. */ strcat (abuf, "\r\n"); my_send(abuf, strlen(abuf)); if (verbose) { @@ -773,6 +774,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', myport); @@ -814,6 +816,12 @@ print_help (void) printf ("%s\n", _("connects, but incorrect reponse messages from the host result in")); printf ("%s\n", _("STATE_WARNING return values.")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index 331a481..b7ed92f 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c @@ -1,41 +1,38 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_snmp plugin -* +* * License: GPL -* Copyright (c) 1999-2007 nagios-plugins team -* -* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $ -* +* Copyright (c) 1999-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_snmp plugin -* -* Check status of remote machines and obtain system information via SNMP -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* Check status of remote machines and obtain system information via SNMP +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_snmp.c 1859 2007-12-10 07:52:00Z dermoth $ * -******************************************************************************/ +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: check_snmp.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_snmp"; -const char *revision = "$Revision: 1859 $"; +const char *revision = "$Revision: 1991 $"; const char *copyright = "1999-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; @@ -179,6 +176,9 @@ main (int argc, char **argv) timeout_interval = DEFAULT_TIMEOUT; retries = DEFAULT_RETRIES; + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -935,6 +935,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', DEFAULT_PORT); @@ -996,27 +997,33 @@ print_help (void) printf (_(UT_VERBOSE)); - printf ("%s\n", _("This plugin uses the 'snmpget' command included with the NET-SNMP package.")); + printf ("\n"); + printf ("%s\n", _("This plugin uses the 'snmpget' command included with the NET-SNMP package.")); printf ("%s\n", _("if you don't have the package installed, you will need to download it from")); printf ("%s\n", _("http://net-snmp.sourceforge.net before you can use this plugin.")); - printf ("%s\n", _("- Multiple OIDs may be indicated by a comma- or space-delimited list (lists with")); - printf ("%s\n", _(" internal spaces must be quoted) [max 8 OIDs]")); + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (" %s\n", _("- Multiple OIDs may be indicated by a comma- or space-delimited list (lists with")); + printf (" %s\n", _("internal spaces must be quoted) [max 8 OIDs]")); - printf ("%s\n", _("- Ranges are inclusive and are indicated with colons. When specified as")); - printf ("%s\n", _(" 'min:max' a STATE_OK will be returned if the result is within the indicated")); - printf ("%s\n", _(" range or is equal to the upper or lower bound. A non-OK state will be")); - printf ("%s\n", _(" returned if the result is outside the specified range.")); + printf (" %s\n", _("- Ranges are inclusive and are indicated with colons. When specified as")); + printf (" %s\n", _("'min:max' a STATE_OK will be returned if the result is within the indicated")); + printf (" %s\n", _("range or is equal to the upper or lower bound. A non-OK state will be")); + printf (" %s\n", _("returned if the result is outside the specified range.")); - printf ("%s\n", _("- If specified in the order 'max:min' a non-OK state will be returned if the")); - printf ("%s\n", _(" result is within the (inclusive) range.")); + printf (" %s\n", _("- If specified in the order 'max:min' a non-OK state will be returned if the")); + printf (" %s\n", _("result is within the (inclusive) range.")); - printf ("%s\n", _("- Upper or lower bounds may be omitted to skip checking the respective limit.")); - printf ("%s\n", _("- Bare integers are interpreted as upper limits.")); - printf ("%s\n", _("- When checking multiple OIDs, separate ranges by commas like '-w 1:10,1:,:20'")); - printf ("%s\n", _("- Note that only one string and one regex may be checked at present")); - printf ("%s\n", _("- All evaluation methods other than PR, STR, and SUBSTR expect that the value")); - printf ("%s\n", _(" returned from the SNMP query is an unsigned integer.")); + printf (" %s\n", _("- Upper or lower bounds may be omitted to skip checking the respective limit.")); + printf (" %s\n", _("- Bare integers are interpreted as upper limits.")); + printf (" %s\n", _("- When checking multiple OIDs, separate ranges by commas like '-w 1:10,1:,:20'")); + printf (" %s\n", _("- Note that only one string and one regex may be checked at present")); + printf (" %s\n", _("- All evaluation methods other than PR, STR, and SUBSTR expect that the value")); + printf (" %s\n", _("returned from the SNMP query is an unsigned integer.")); +#ifdef NP_EXTRA_OPTS + printf (" -%s", _(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } diff --git a/plugins/check_ssh.c b/plugins/check_ssh.c index 4c47d66..d8ba7ae 100644 --- a/plugins/check_ssh.c +++ b/plugins/check_ssh.c @@ -1,43 +1,39 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_ssh plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-11-09 13:08:43 +0000 (Fri, 09 Nov 2007) $ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_ssh plugin -* -* -* Try to connect to an SSH server at specified server and port -* -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* Try to connect to an SSH server at specified server and port +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_ssh.c 1813 2007-11-09 13:08:43Z dermoth $ * -******************************************************************************/ +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: check_ssh.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_ssh"; -const char *revision = "$Revision: 1813 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -74,6 +70,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -221,7 +220,7 @@ ssh_connect (char *haddr, int hport, char *remote_version) char *ssh_server = NULL; char rev_no[20]; - sscanf ("$Revision: 1813 $", "$Revision: %[0123456789.]", rev_no); + sscanf ("$Revision: 1991 $", "$Revision: %[0123456789.]", rev_no); result = my_tcp_connect (haddr, hport, &sd); @@ -285,6 +284,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', myport); @@ -297,6 +297,12 @@ print_help (void) printf (_(UT_VERBOSE)); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_swap.c b/plugins/check_swap.c index c868d15..c84a8b2 100644 --- a/plugins/check_swap.c +++ b/plugins/check_swap.c @@ -1,40 +1,38 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_disk plugin -* +* * License: GPL * Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net) -* Copyright (c) 2000-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_disk plugin -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_swap.c 1859 2007-12-10 07:52:00Z dermoth $ -* +* along with this program. If not, see . +* +* $Id: check_swap.c 1991 2008-05-07 10:02:42Z dermoth $ +* *****************************************************************************/ const char *progname = "check_swap"; -const char *revision = "$Revision: 1859 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -109,6 +107,9 @@ main (int argc, char **argv) status = strdup (""); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -528,10 +529,11 @@ print_help (void) printf ("%s\n", _("Check swap space on local machine.")); printf ("\n\n"); - + print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" %s\n", "-w, --warning=INTEGER"); printf (" %s\n", _("Exit with WARNING status if less than INTEGER bytes of swap space are free")); @@ -544,9 +546,15 @@ print_help (void) printf (" %s\n", "-a, --allswaps"); printf (" %s\n", _("Conduct comparisons for all swap partitions, one by one")); 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")); + printf (" %s\n", _("On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s.")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_tcp.c b/plugins/check_tcp.c index b5a31f1..db4b148 100644 --- a/plugins/check_tcp.c +++ b/plugins/check_tcp.c @@ -1,40 +1,38 @@ /***************************************************************************** -* +* * Nagios check_tcp plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-06-03 15:40:13 +0100 (Sun, 03 Jun 2007) $ -* +* Copyright (c) 1999-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_tcp plugin -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_tcp.c 1729 2007-06-03 14:40:13Z psychotrahe $ +* along with this program. If not, see . +* +* $Id: check_tcp.c 1991 2008-05-07 10:02:42Z dermoth $ * *****************************************************************************/ /* progname "check_tcp" changes depending on symlink called */ char *progname; -const char *revision = "$Revision: 1729 $"; -const char *copyright = "1999-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "1999-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -207,6 +205,9 @@ main (int argc, char **argv) server_quit = QUIT; status = NULL; + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -604,6 +605,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', "none"); @@ -644,6 +646,12 @@ print_help (void) printf (_(UT_VERBOSE)); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_time.c b/plugins/check_time.c index 833f710..3e43d85 100644 --- a/plugins/check_time.c +++ b/plugins/check_time.c @@ -1,42 +1,39 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_time plugin -* +* * License: GPL -* Copyright (c) 1999-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-05-02 06:22:31 +0100 (Wed, 02 May 2007) $ -* +* Copyright (c) 1999-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_time plugin -* -* This plugin will check the time on the specified host. -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin will check the time difference with the specified host. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* -* $Id: check_time.c 1703 2007-05-02 05:22:31Z dermoth $ * -******************************************************************************/ +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: check_time.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_time"; -const char *revision = "$Revision: 1703 $"; -const char *copyright = "1999-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "1999-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -78,6 +75,9 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -347,6 +347,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', myport); @@ -362,6 +363,13 @@ print_help (void) printf (" %s\n", _("Response time (sec.) necessary to result in critical status")); printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT); + +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/check_ups.c b/plugins/check_ups.c index 06f8686..6867735 100644 --- a/plugins/check_ups.c +++ b/plugins/check_ups.c @@ -1,45 +1,43 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_ups plugin -* +* * License: GPL * Copyright (c) 2000 Tom Shields * 2004 Alain Richard * 2004 Arnaud Quette -* Copyright (c) 2002-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-10-25 21:43:04 +0100 (Thu, 25 Oct 2007) $ -* +* Copyright (c) 2002-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains Network UPS Tools plugin for Nagios -* -* This plugin tests the UPS service on the specified host.Network UPS Tools -* from www.networkupstools.org must be running for thisplugin to work. -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin tests the UPS service on the specified host.Network UPS Tools +* from www.networkupstools.org must be running for thisplugin to work. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_ups.c 1810 2007-10-25 20:43:04Z tonvoon $ -* -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: check_ups.c 1991 2008-05-07 10:02:42Z dermoth $ +* +*****************************************************************************/ const char *progname = "check_ups"; -const char *revision = "$Revision: 1810 $"; -const char *copyright = "2002-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -121,6 +119,9 @@ main (int argc, char **argv) data = strdup (""); message = strdup (""); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -603,7 +604,7 @@ print_help (void) printf ("Copyright (c) 2004 Arnaud Quette \n"); printf (COPYRIGHT, copyright, email); - printf ("%s\n", _("This plugin tests the UPS service on the specified host.Network UPS Tools ")); + printf ("%s\n", _("This plugin tests the UPS service on the specified host. Network UPS Tools")); printf ("%s\n", _("from www.networkupstools.org must be running for thisplugin to work.")); printf ("\n\n"); @@ -611,6 +612,7 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (_(UT_HOST_PORT), 'p', myport); @@ -630,22 +632,27 @@ print_help (void) /* printf (_(UT_VERBOSE)); */ printf ("\n"); - printf ("%s\n", _("Notes:")); - printf ("%s\n", _("This plugin attempts to determine the status of a UPS (Uninterruptible Power")); printf ("%s\n", _("Supply) on a local or remote host. If the UPS is online or calibrating, the")); printf ("%s\n", _("plugin will return an OK state. If the battery is on it will return a WARNING")); printf ("%s\n", _("state.If the UPS is off or has a low battery the plugin will return a CRITICAL")); - printf ("%s\n\n", _("state.")); + printf ("%s\n", _("state.")); - printf ("%s\n", _("You may also specify a variable to check [such as temperature, utility voltage,")); - printf ("%s\n", _("battery load, etc.] as well as warning and critical thresholds for the value of")); - printf ("%s\n", _("that variable. If the remote host has multiple UPS that are being monitored you")); - printf ("%s\n", _("will have to use the [ups] option to specify which UPS to check.")); - - printf ("%s\n", _("This plugin requires that the UPSD daemon distributed with Russel Kroll's")); - printf ("%s\n", _("Smart UPS Tools be installed on the remote host. If you do not have the")); - printf ("%s\n", _("package installed on your system, you can download it from http://www.networkupstools.org")); + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (" %s\n", _("You may also specify a variable to check (such as temperature, utility voltage,")); + printf (" %s\n", _("battery load, etc.) as well as warning and critical thresholds for the value")); + printf (" %s\n", _("of that variable. If the remote host has multiple UPS that are being monitored")); + printf (" %s\n", _("you will have to use the --ups option to specify which UPS to check.")); + printf ("\n"); + printf (" %s\n", _("This plugin requires that the UPSD daemon distributed with Russel Kroll's")); + printf (" %s\n", _("Smart UPS Tools be installed on the remote host. If you do not have the")); + printf (" %s\n", _("package installed on your system, you can download it from")); + printf (" %s\n", _("http://www.networkupstools.org")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif printf (_(UT_SUPPORT)); } diff --git a/plugins/check_users.c b/plugins/check_users.c index ee5a2e1..2f47b56 100644 --- a/plugins/check_users.c +++ b/plugins/check_users.c @@ -1,42 +1,41 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios check_users plugin -* +* * License: GPL -* Copyright (c) 2000-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-07 11:02:42 +0100 (Wed, 07 May 2008) $ +* * Description: -* +* * This file contains the check_users plugin -* -* This plugin checks the number of users currently logged in on the local -* system and generates an error if the number exceeds the thresholds specified. -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin checks the number of users currently logged in on the local +* system and generates an error if the number exceeds the thresholds +* specified. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: check_users.c 1590 2007-01-28 21:46:41Z hweiss $ -* +* along with this program. If not, see . +* +* $Id: check_users.c 1991 2008-05-07 10:02:42Z dermoth $ +* *****************************************************************************/ const char *progname = "check_users"; -const char *revision = "$Revision: 1590 $"; -const char *copyright = "2000-2006"; +const char *revision = "$Revision: 1991 $"; +const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -66,6 +65,9 @@ main (int argc, char **argv) perf = strdup(""); + /* Parse extra opts if any */ + argv=np_extra_opts (&argc, argv, progname); + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); @@ -214,12 +216,19 @@ print_help (void) print_usage (); printf (_(UT_HELP_VRSN)); + printf (_(UT_EXTRA_OPTS)); printf (" %s\n", "-w, --warning=INTEGER"); printf (" %s\n", _("Set WARNING status if more than INTEGER users are logged in")); printf (" %s\n", "-c, --critical=INTEGER"); printf (" %s\n", _("Set CRITICAL status if more than INTEGER users are logged in")); +#ifdef NP_EXTRA_OPTS + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (_(UT_EXTRA_OPTS_NOTES)); +#endif + printf (_(UT_SUPPORT)); } diff --git a/plugins/common.h b/plugins/common.h index c11ec55..8004ea5 100644 --- a/plugins/common.h +++ b/plugins/common.h @@ -1,47 +1,40 @@ -/****************************************************************************** - * - * Nagios plugins common include file - * - * License: GPL - * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org) - * - * Last Modified: 11-05-1999 - * - * Description: - * - * This file contains common include files and defines used in many of - * the plugins. - * - * 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: common.h 1700 2007-04-25 22:10:13Z tonvoon $ - * - *****************************************************************************/ +/***************************************************************************** +* +* Nagios plugins common include file +* +* License: GPL +* Copyright (c) 1999 Ethan Galstad (nagios@nagios.org) +* Copyright (c) 2003-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-03-11 00:10:23 +0000 (Tue, 11 Mar 2008) $ +* +* Description: +* +* This file contains common include files and defines used in many of +* the plugins. +* +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: common.h 1938 2008-03-11 00:10:23Z tonvoon $ +* +*****************************************************************************/ #ifndef _COMMON_H_ #define _COMMON_H_ #include "config.h" -/* This needs to be removed for Solaris servers, where 64 bit files, but 32 bit architecture - This needs to be done early on because subsequent system includes use _FILE_OFFSET_BITS - Cannot remove from config.h because is included by regex.c from lib/ */ -#if __sun__ && !defined(_LP64) && _FILE_OFFSET_BITS == 64 -#undef _FILE_OFFSET_BITS -#endif #ifdef HAVE_FEATURES_H #include @@ -118,9 +111,6 @@ /* GNU Libraries */ #include #include "dirname.h" -#include "vasprintf.h" -#include "snprintf.h" -#include "vsnprintf.h" #ifdef HAVE_LOCALE_H #include @@ -186,11 +176,6 @@ enum { }; #endif -/* Solaris does not have floorf, but floor works. Should probably be in configure */ -#if defined(__sun) || defined(__sun__) -static inline float floorf (float x) { return floor(x); } -#endif - enum { STATE_OK, STATE_WARNING, diff --git a/plugins/negate.c b/plugins/negate.c index df34ffe..7733bbf 100644 --- a/plugins/negate.c +++ b/plugins/negate.c @@ -1,79 +1,43 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios negate plugin -* +* * License: GPL -* Copyright (c) 2002-2007 nagios-plugins team -* -* Last Modified: $Date: 2007-12-10 07:52:00 +0000 (Mon, 10 Dec 2007) $ -* +* Copyright (c) 2002-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-05-02 10:28:15 +0100 (Fri, 02 May 2008) $ +* * Description: -* +* * This file contains the negate plugin -* -* Negates the status of a plugin (returns OK for CRITICAL, and vice-versa) -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* Negates the status of a plugin (returns OK for CRITICAL, and vice-versa). +* Can also perform custom state switching. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: negate.c 1859 2007-12-10 07:52:00Z dermoth $ - -@@-
- - -Quick Reference - -5 - -&progname; -&SUMMARY; - - - - - -FAQ - - - -Theory, Installation, and Operation - - -General Description - -&DESCRIPTION; - - - - -Future Enhancements -ToDo List - -Add option to do regex substitution in output text - --@@ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: negate.c 1989 2008-05-02 09:28:15Z dermoth $ +* +*****************************************************************************/ const char *progname = "negate"; -const char *revision = "$Revision: 1859 $"; -const char *copyright = "2002-2007"; +const char *revision = "$Revision: 1989 $"; +const char *copyright = "2002-2008"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; -#define DEFAULT_TIMEOUT 9 +#define DEFAULT_TIMEOUT 11 #include "common.h" #include "utils.h" @@ -85,6 +49,7 @@ static const char **process_arguments (int, char **); int validate_arguments (char **); void print_help (void); void print_usage (void); +int subst_text = FALSE; static int state[4] = { STATE_OK, @@ -97,7 +62,7 @@ int main (int argc, char **argv) { int found = 0, result = STATE_UNKNOWN; - char *buf; + char *buf, *sub; char **command_line; output chld_out, chld_err; int i; @@ -128,10 +93,22 @@ main (int argc, char **argv) exit (STATE_WARNING); } + /* Return UNKNOWN or worse if no output is returned */ if (chld_out.lines == 0) - die (STATE_UNKNOWN, _("No data returned from command\n")); + die (max_state_alt (result, STATE_UNKNOWN), _("No data returned from command\n")); for (i = 0; i < chld_out.lines; i++) { + if (subst_text && result != state[result] && + result >= 0 && result <= 4) { + /* Loop over each match found */ + while ((sub = strstr (chld_out.line[i], state_text (result)))) { + /* Terminate the first part and skip over the string we'll substitute */ + *sub = '\0'; + sub += strlen (state_text (result)); + /* then put everything back together */ + asprintf (&chld_out.line[i], "%s%s%s", chld_out.line[i], state_text (state[result]), sub); + } + } printf ("%s\n", chld_out.line[i]); } @@ -142,25 +119,6 @@ main (int argc, char **argv) } } -/****************************************************************************** -@@- - -Functions - - -process_arguments - -This function parses the command line into the needed -variables. - -Aside from the standard 'help' and 'version' options, there -is a only a 'timeout' option. - - --@@ -******************************************************************************/ - - /* process command-line arguments */ static const char ** @@ -178,11 +136,12 @@ process_arguments (int argc, char **argv) {"warning", required_argument, 0, 'w'}, {"critical", required_argument, 0, 'c'}, {"unknown", required_argument, 0, 'u'}, + {"substitute", no_argument, 0, 's'}, {0, 0, 0, 0} }; while (1) { - c = getopt_long (argc, argv, "+hVt:o:w:c:u:", longopts, &option); + c = getopt_long (argc, argv, "+hVt:o:w:c:u:s", longopts, &option); if (c == -1 || c == EOF) break; @@ -225,6 +184,9 @@ process_arguments (int argc, char **argv) usage4 (_("Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3).")); permute = FALSE; break; + case 's': /* Substitute status text */ + subst_text = TRUE; + break; } } @@ -239,19 +201,6 @@ process_arguments (int argc, char **argv) } -/****************************************************************************** -@@- - -validate_arguments - -No validation is currently done. - - --@@ -******************************************************************************/ - - - int validate_arguments (char **command_line) { @@ -262,13 +211,6 @@ validate_arguments (char **command_line) usage4 (_("Require path to command")); } -/****************************************************************************** -@@- - - -
--@@ -******************************************************************************/ int translate_state (char *state_text) @@ -307,13 +249,15 @@ print_help (void) printf (_(UT_TIMEOUT), DEFAULT_TIMEOUT); printf (" %s\n", _("Keep timeout longer than the plugin timeout to retain CRITICAL status.")); - printf(" -o,--ok=STATUS\n"); - printf(" -w,--warning=STATUS\n"); - printf(" -c,--critical=STATUS\n"); - printf(" -u,--unknown=STATUS\n"); + printf(" -o, --ok=STATUS\n"); + printf(" -w, --warning=STATUS\n"); + printf(" -c, --critical=STATUS\n"); + printf(" -u, --unknown=STATUS\n"); printf(_(" STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n")); printf(_(" quotes. Numeric values are accepted. If nothing is specified, permutes\n")); printf(_(" OK and CRITICAL.\n")); + printf(" -s, --substitute\n"); + printf(_(" Substitute output text as well. Will only substitute text in CAPITALS\n")); printf ("\n"); printf ("%s\n", _("Examples:")); @@ -323,11 +267,11 @@ print_help (void) printf (" %s\n", _("This will return OK instead of WARNING and UNKNOWN instead of CRITICAL")); printf ("\n"); 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 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 (" %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 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)); } @@ -338,5 +282,5 @@ void print_usage (void) { printf (_("Usage:")); - printf ("%s [-t timeout] [-owcu STATE] \n", progname); + printf ("%s [-t timeout] [-owcu STATE] [-s] \n", progname); } diff --git a/plugins/netutils.c b/plugins/netutils.c index 75d70d1..7ed70f8 100644 --- a/plugins/netutils.c +++ b/plugins/netutils.c @@ -1,35 +1,34 @@ -/**************************************************************************** -* +/***************************************************************************** +* * Nagios plugins network utilities -* +* * License: GPL * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org) -* -* Last Modified: $Date: 2007-09-24 01:30:14 +0100 (Mon, 24 Sep 2007) $ -* +* Copyright (c) 2003-2008 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $ +* * Description: -* +* * This file contains commons functions used in many of the plugins. -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: netutils.c 1794 2007-09-24 00:30:14Z hweiss $ -* -****************************************************************************/ +* along with this program. If not, see . +* +* $Id: netutils.c 1918 2008-01-31 11:27:22Z dermoth $ +* +*****************************************************************************/ #define LOCAL_TIMEOUT_ALARM_HANDLER @@ -168,7 +167,8 @@ np_net_connect (const char *host_name, int port, int *sd, int proto) struct addrinfo hints; struct addrinfo *r, *res; struct sockaddr_un su; - char port_str[6]; + char port_str[6], host[MAX_HOST_ADDRESS_LENGTH]; + size_t len; int socktype, result; socktype = (proto == IPPROTO_UDP) ? SOCK_DGRAM : SOCK_STREAM; @@ -180,8 +180,18 @@ np_net_connect (const char *host_name, int port, int *sd, int proto) hints.ai_protocol = proto; hints.ai_socktype = socktype; + len = strlen (host_name); + /* check for an [IPv6] address (and strip the brackets) */ + if (len >= 2 && host_name[0] == '[' && host_name[len - 1] == ']') { + host_name++; + len -= 2; + } + if (len >= sizeof(host)) + return STATE_UNKNOWN; + memcpy (host, host_name, len); + host[len] = '\0'; snprintf (port_str, sizeof (port_str), "%d", port); - result = getaddrinfo (host_name, port_str, &hints, &res); + result = getaddrinfo (host, port_str, &hints, &res); if (result != 0) { printf ("%s\n", gai_strerror (result)); diff --git a/plugins/netutils.h b/plugins/netutils.h index 115d61c..2571c9a 100644 --- a/plugins/netutils.h +++ b/plugins/netutils.h @@ -1,36 +1,35 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios plugins net utilities include file -* +* * License: GPL * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org) -* -* Last Modified: $Date: 2007-01-24 22:47:25 +0000 (Wed, 24 Jan 2007) $ -* +* Copyright (c) 2003-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-01-31 11:45:28 +0000 (Thu, 31 Jan 2008) $ +* * Description: -* +* * This file contains common include files and function definitions * used in many of the plugins. -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: netutils.h 1580 2007-01-24 22:47:25Z tonvoon $ -* -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: netutils.h 1919 2008-01-31 11:45:28Z dermoth $ +* +*****************************************************************************/ #ifndef _NETUTILS_H_ #define _NETUTILS_H_ diff --git a/plugins/popen.c b/plugins/popen.c index 819a2ae..a6f0cc7 100644 --- a/plugins/popen.c +++ b/plugins/popen.c @@ -1,48 +1,45 @@ -/**************************************************************************** - * - * Nagios plugins popen - * - * License: GPL - * Copyright (c) 2005 nagios-plugins team - * - * Last Modified: $Date: 2007-06-12 08:13:02 +0100 (Tue, 12 Jun 2007) $ - * - * Description: - * - * A safe alternative to popen - * - * Provides spopen and spclose - * - * FILE * spopen(const char *); - * int spclose(FILE *); - * - * - * Code taken with liitle modification from "Advanced Programming for the Unix - * Environment" by W. Richard Stevens - * - * This is considered safe in that no shell is spawned, and the environment and - * path passed to the exec'd program are esstially empty. (popen create a shell - * and passes the environment to it). - * - * 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: popen.c 1737 2007-06-12 07:13:02Z psychotrahe $ - * - ******************************************************************************/ +/***************************************************************************** +* +* Nagios plugins popen +* +* License: GPL +* Copyright (c) 2005-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $ +* +* Description: +* +* A safe alternative to popen +* +* Provides spopen and spclose +* +* FILE * spopen(const char *); +* int spclose(FILE *); +* +* Code taken with liitle modification from "Advanced Programming for the Unix +* Environment" by W. Richard Stevens +* +* This is considered safe in that no shell is spawned, and the environment +* and path passed to the exec'd program are essentially empty. (popen create +* a shell and passes the environment to it). +* +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: popen.c 1918 2008-01-31 11:27:22Z dermoth $ +* +*****************************************************************************/ #include "common.h" diff --git a/plugins/popen.h b/plugins/popen.h index fae9fd5..1af3f23 100644 --- a/plugins/popen.h +++ b/plugins/popen.h @@ -1,8 +1,8 @@ /****************************************************************************** - * - * $Id: popen.h 1169 2005-05-01 20:12:03Z seanius $ - * - ******************************************************************************/ +* +* $Id: popen.h 1919 2008-01-31 11:45:28Z dermoth $ +* +*****************************************************************************/ FILE *spopen (const char *); int spclose (FILE *); diff --git a/plugins/runcmd.c b/plugins/runcmd.c index 5fdf4d0..4d9ae62 100644 --- a/plugins/runcmd.c +++ b/plugins/runcmd.c @@ -1,42 +1,43 @@ -/**************************************************************************** - * Nagios run command utilities - * - * License: GPL - * Copyright (c) 2005 nagios-plugins team - * - * $Id: runcmd.c 1434 2006-06-18 19:36:48Z opensides $ - * - * Description : - * - * A simple interface to executing programs from other programs, using an - * optimized and safe popen()-like implementation. It is considered safe - * in that no shell needs to be spawned and the environment passed to the - * execve()'d program is essentially empty. - * - * - * The code in this file is a derivative of popen.c which in turn was taken - * from "Advanced Programming for the Unix Environment" by W. Richard Stevens. - * - * Care has been taken to make sure the functions are async-safe. The one - * function which isn't is np_runcmd_init() which it doesn't make sense to - * call twice anyway, so the api as a whole should be considered async-safe. - * - * 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. - */ +/***************************************************************************** +* +* Nagios run command utilities +* +* License: GPL +* Copyright (c) 2005-2006 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $ +* +* Description : +* +* A simple interface to executing programs from other programs, using an +* optimized and safe popen()-like implementation. It is considered safe +* in that no shell needs to be spawned and the environment passed to the +* execve()'d program is essentially empty. +* +* The code in this file is a derivative of popen.c which in turn was taken +* from "Advanced Programming for the Unix Environment" by W. Richard Stevens. +* +* Care has been taken to make sure the functions are async-safe. The one +* function which isn't is np_runcmd_init() which it doesn't make sense to +* call twice anyway, so the api as a whole should be considered async-safe. +* +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: runcmd.c 1918 2008-01-31 11:27:22Z dermoth $ +* +*****************************************************************************/ #define NAGIOSPLUG_API_C 1 diff --git a/plugins/runcmd.h b/plugins/runcmd.h index 59b2949..cba99d6 100644 --- a/plugins/runcmd.h +++ b/plugins/runcmd.h @@ -1,11 +1,26 @@ -/* - * $Id: runcmd.h 1260 2005-10-24 11:10:29Z seanius $ - * - * Author: Andreas Ericsson - * - * Copyright: GNU GPL v2 or any later version. - * - */ +/**************************************************************************** +* +* License: GPL +* Copyright (c) 2005 Nagios Plugins Development Team +* Author: Andreas Ericsson +* +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: runcmd.h 1919 2008-01-31 11:45:28Z dermoth $ +* +*****************************************************************************/ #ifndef NAGIOSPLUG_RUNCMD_H #define NAGIOSPLUG_RUNCMD_H diff --git a/plugins/sslutils.c b/plugins/sslutils.c index 605449f..c1397a6 100644 --- a/plugins/sslutils.c +++ b/plugins/sslutils.c @@ -1,35 +1,33 @@ -/**************************************************************************** -* +/***************************************************************************** +* * Nagios plugins SSL utilities -* +* * License: GPL -* Copyright (c) 2005 nagios-plugins team -* -* Last Modified: $Date: 2007-06-01 23:57:31 +0100 (Fri, 01 Jun 2007) $ -* +* Copyright (c) 2005-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $ +* * Description: -* +* * This file contains common functions for plugins that require SSL. +* * -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* $Id: sslutils.c 1726 2007-06-01 22:57:31Z hweiss $ -* -****************************************************************************/ +* along with this program. If not, see . +* +* $Id: sslutils.c 1918 2008-01-31 11:27:22Z dermoth $ +* +*****************************************************************************/ #define LOCAL_TIMEOUT_ALARM_HANDLER #include "common.h" diff --git a/plugins/t/check_by_ssh.t b/plugins/t/check_by_ssh.t new file mode 100644 index 0000000..88e5405 --- /dev/null +++ b/plugins/t/check_by_ssh.t @@ -0,0 +1,147 @@ +#! /usr/bin/perl -w -I .. +# +# check_by_ssh tests +# +# $Id$ +# + +use strict; +use Test::More; +use NPTest; + +# Required parameters +my $ssh_service = getTestParameter( "NP_SSH_HOST", + "A host providing SSH service", + "localhost"); + +my $ssh_key = getTestParameter( "NP_SSH_IDENTITY", + "A key allowing access to NP_SSH_HOST", + "~/.ssh/id_dsa"); + +plan skip_all => "SSH_HOST and SSH_IDENTITY must be defined" unless ($ssh_service && $ssh_key); + +plan tests => 40; + +# Some random check strings/response +my @responce = ('OK: Everything is fine!', + 'WARNING: Hey, pick me, pick me!', + 'CRITICAL: Shit happens...', + 'UNKNOWN: What can I do for ya?', + 'WOOPS: What did I smoke?', +); +my @responce_re; +my @check; +for (@responce) { + push(@check, "echo $_"); + my $re_str = $_; + $re_str =~ s{(.)} { "\Q$1" }ge; + push(@responce_re, $re_str); +} + +my $result; + +## Single active checks + +for (my $i=0; $i<4; $i++) { + $result = NPTest->testCmd( + "./check_by_ssh -i $ssh_key -H $ssh_service -C '$check[$i]; exit $i'" + ); + cmp_ok($result->return_code, '==', $i, "Exit with return code $i"); + is($result->output, $responce[$i], "Status text is correct for check $i"); +} + +$result = NPTest->testCmd( + "./check_by_ssh -i $ssh_key -H $ssh_service -C 'exit 0'" + ); +cmp_ok($result->return_code, '==', 0, "Exit with return code 0 (OK)"); +is($result->output, 'OK - check_by_ssh: Remote command \'exit 0\' returned status 0', "Status text if command returned none (OK)"); + +$result = NPTest->testCmd( + "./check_by_ssh -i $ssh_key -H $ssh_service -C 'exit 1'" + ); +cmp_ok($result->return_code, '==', 1, "Exit with return code 1 (WARNING)"); +is($result->output, 'WARNING - check_by_ssh: Remote command \'exit 1\' returned status 1', "Status text if command returned none (WARNING)"); + +$result = NPTest->testCmd( + "./check_by_ssh -i $ssh_key -H $ssh_service -C 'exit 2'" + ); +cmp_ok($result->return_code, '==', 2, "Exit with return code 2 (CRITICAL)"); +is($result->output, 'CRITICAL - check_by_ssh: Remote command \'exit 2\' returned status 2', "Status text if command returned none (CRITICAL)"); + +$result = NPTest->testCmd( + "./check_by_ssh -i $ssh_key -H $ssh_service -C 'exit 3'" + ); +cmp_ok($result->return_code, '==', 3, "Exit with return code 3 (UNKNOWN)"); +is($result->output, 'UNKNOWN - check_by_ssh: Remote command \'exit 3\' returned status 3', "Status text if command returned none (UNKNOWN)"); + +$result = NPTest->testCmd( + "./check_by_ssh -i $ssh_key -H $ssh_service -C 'exit 7'" + ); +cmp_ok($result->return_code, '==', 7, "Exit with return code 7 (out of bounds)"); +is($result->output, 'UNKNOWN - check_by_ssh: Remote command \'exit 7\' returned status 7', "Status text if command returned none (out of bounds)"); + +$result = NPTest->testCmd( + "./check_by_ssh -i $ssh_key -H $ssh_service -C '$check[4]; exit 8'" + ); +cmp_ok($result->return_code, '==', 8, "Exit with return code 8 (out of bounds)"); +is($result->output, $responce[4], "Return proper status text even with unknown status codes"); + +# Multiple active checks +$result = NPTest->testCmd( + "./check_by_ssh -i $ssh_key -H $ssh_service -C '$check[1]; sh -c exit\\ 1' -C '$check[0]; sh -c exit\\ 0' -C '$check[3]; sh -c exit\\ 3' -C '$check[2]; sh -c exit\\ 2'" + ); +cmp_ok($result->return_code, '==', 0, "Multiple checks always return OK"); +my @lines = split(/\n/, $result->output); +cmp_ok(scalar(@lines), '==', 8, "Correct number of output lined for multiple checks"); +my %linemap = ( + '0' => '1', + '2' => '0', + '4' => '3', + '6' => '2', +); +foreach my $line (0, 2, 4, 6) { + my $code = $linemap{$line}; + my $statline = $line+1; + is($lines[$line], "$responce[$code]", "multiple checks status text is correct for line $line"); + is($lines[$statline], "STATUS CODE: $code", "multiple check status code is correct for line $line"); +} + +# Passive checks +unlink("/tmp/check_by_ssh.$$"); +$result = NPTest->testCmd( + "./check_by_ssh -i $ssh_key -H $ssh_service -n flint -s serv -C '$check[2]; sh -c exit\\ 2' -O /tmp/check_by_ssh.$$" + ); +cmp_ok($result->return_code, '==', 0, "Exit always ok on passive checks"); +open(PASV, "/tmp/check_by_ssh.$$") or die("Unable to open '/tmp/check_by_ssh.$$': $!"); +my @pasv = ; +close(PASV) or die("Unable to close '/tmp/check_by_ssh.$$': $!"); +cmp_ok(scalar(@pasv), '==', 1, 'One passive result for one check performed'); +for (0) { + if ($pasv[$_]) { + like($pasv[$_], '/^\[\d+\] PROCESS_SERVICE_CHECK_RESULT;flint;serv;2;' . $responce_re[2] . '$/', 'proper result for passive check'); + } else { + fail('proper result for passive check'); + } +} +unlink("/tmp/check_by_ssh.$$") or die("Unable to unlink '/tmp/check_by_ssh.$$': $!"); +undef @pasv; + +$result = NPTest->testCmd( + "./check_by_ssh -i $ssh_key -H $ssh_service -n flint -s c0:c1:c2:c3:c4 -C '$check[0];sh -c exit\\ 0' -C '$check[1];sh -c exit\\ 1' -C '$check[2];sh -c exit\\ 2' -C '$check[3];sh -c exit\\ 3' -C '$check[4];sh -c exit\\ 9' -O /tmp/check_by_ssh.$$" + ); +cmp_ok($result->return_code, '==', 0, "Exit always ok on passive checks"); +open(PASV, "/tmp/check_by_ssh.$$") or die("Unable to open '/tmp/check_by_ssh.$$': $!"); +@pasv = ; +close(PASV) or die("Unable to close '/tmp/check_by_ssh.$$': $!"); +cmp_ok(scalar(@pasv), '==', 5, 'Five passive result for five checks performed'); +for (0, 1, 2, 3, 4) { + if ($pasv[$_]) { + my $ret = $_; + $ret = 9 if ($_ == 4); + like($pasv[$_], '/^\[\d+\] PROCESS_SERVICE_CHECK_RESULT;flint;c' . $_ . ';' . $ret . ';' . $responce_re[$_] . '$/', "proper result for passive check $_"); + } else { + fail("proper result for passive check $_"); + } +} +unlink("/tmp/check_by_ssh.$$") or die("Unable to unlink '/tmp/check_by_ssh.$$': $!"); + diff --git a/plugins/t/check_dns.t b/plugins/t/check_dns.t index cabd2e4..3b7c95e 100644 --- a/plugins/t/check_dns.t +++ b/plugins/t/check_dns.t @@ -2,7 +2,7 @@ # # Domain Name Server (DNS) Tests via check_dns # -# $Id: check_dns.t 1361 2006-03-29 08:13:29Z tonvoon $ +# $Id: check_dns.t 1902 2008-01-08 16:05:36Z tonvoon $ # use strict; @@ -18,19 +18,19 @@ my $successOutput = '/DNS OK: [\.0-9]+ seconds? response time/'; my $hostname_valid = getTestParameter( "NP_HOSTNAME_VALID", "A valid (known to DNS) hostname", - "apple.com" + "nagios.com" ); my $hostname_valid_ip = getTestParameter( "NP_HOSTNAME_VALID_IP", "The IP address of the valid hostname $hostname_valid", - "17.254.3.183" + "66.118.156.50", ); my $hostname_valid_reverse = getTestParameter( "NP_HOSTNAME_VALID_REVERSE", "The hostname of $hostname_valid_ip", - $hostname_valid."." + "66-118-156-50.static.sagonet.net.", ); my $hostname_invalid = getTestParameter( diff --git a/plugins/t/check_ftp.t b/plugins/t/check_ftp.t index 48de543..b2c0631 100644 --- a/plugins/t/check_ftp.t +++ b/plugins/t/check_ftp.t @@ -2,7 +2,7 @@ # # File Transfer Protocol (FTP) Test via check_ftp # -# $Id: check_ftp.t 1207 2005-07-25 01:47:15Z illumino $ +# $Id: check_ftp.t 1901 2008-01-08 11:57:24Z tonvoon $ # use strict; diff --git a/plugins/t/check_imap.t b/plugins/t/check_imap.t index 704bd15..d6c690c 100644 --- a/plugins/t/check_imap.t +++ b/plugins/t/check_imap.t @@ -2,7 +2,7 @@ # # Internet Mail Access Protocol (IMAP) Server Tests via check_imap # -# $Id: check_imap.t 1279 2005-11-09 16:40:12Z tonvoon $ +# $Id: check_imap.t 1901 2008-01-08 11:57:24Z tonvoon $ # use strict; diff --git a/plugins/t/check_jabber.t b/plugins/t/check_jabber.t index 8dd7207..a802d41 100644 --- a/plugins/t/check_jabber.t +++ b/plugins/t/check_jabber.t @@ -2,7 +2,7 @@ # # Jabber Server Tests via check_jabber # -# $Id: check_jabber.t 1604 2007-02-01 06:53:12Z dermoth $ +# $Id: check_jabber.t 1901 2008-01-08 11:57:24Z tonvoon $ # use strict; diff --git a/plugins/t/check_mysql.t b/plugins/t/check_mysql.t index 8c80925..79cbdd7 100644 --- a/plugins/t/check_mysql.t +++ b/plugins/t/check_mysql.t @@ -2,7 +2,7 @@ # # MySQL Database Server Tests via check_mysql # -# $Id: check_mysql.t 1327 2006-03-17 14:07:34Z tonvoon $ +# $Id: check_mysql.t 1988 2008-04-30 12:50:52Z dermoth $ # # # These are the database permissions required for this test: @@ -19,12 +19,16 @@ use vars qw($tests); plan skip_all => "check_mysql not compiled" unless (-x "check_mysql"); -plan tests => 10; +plan tests => 15; my $bad_login_output = '/Access denied for user /'; my $mysqlserver = getTestParameter( "NP_MYSQL_SERVER", - "A MySQL Server with no slaves setup" + "A MySQL Server hostname or IP with no slaves setup" + ); +my $mysqlsocket = getTestParameter( + "NP_MYSQL_SOCKET", + "A MySQL Server socket with no slaves setup" ); my $mysql_login_details = getTestParameter( "MYSQL_LOGIN_DETAILS", @@ -57,6 +61,20 @@ SKIP: { like( $result->output, "/No slaves defined/", "Correct error message"); } +SKIP: { + skip "No mysql socket defined", 5 unless $mysqlsocket; + $result = NPTest->testCmd("./check_mysql -s $mysqlsocket $mysql_login_details"); + cmp_ok( $result->return_code, '==', 0, "Login okay"); + + $result = NPTest->testCmd("./check_mysql -s $mysqlsocket -u dummy -pdummy"); + cmp_ok( $result->return_code, '==', 2, "Login failure"); + like( $result->output, $bad_login_output, "Expected login failure message"); + + $result = NPTest->testCmd("./check_mysql -S -s $mysqlsocket $mysql_login_details"); + cmp_ok( $result->return_code, "==", 1, "No slaves defined" ); + like( $result->output, "/No slaves defined/", "Correct error message"); +} + SKIP: { skip "No mysql server with slaves defined", 5 unless $with_slave; $result = NPTest->testCmd("./check_mysql -H $with_slave $with_slave_login"); diff --git a/plugins/t/check_nagios.t b/plugins/t/check_nagios.t index 41da237..b51037e 100644 --- a/plugins/t/check_nagios.t +++ b/plugins/t/check_nagios.t @@ -2,13 +2,19 @@ # # check_nagios tests # -# $Id: check_nagios.t 1382 2006-04-19 09:33:44Z tonvoon $ +# $Id: check_nagios.t 1953 2008-03-17 23:08:21Z tonvoon $ # use strict; -use Test::More tests => 13; +use Test::More; use NPTest; +if (`uname -s` eq "SunOS\n") { + plan skip_all => "Ignoring tests on solaris because of pst3"; +} else { + plan tests => 13; +} + my $successOutput = '/^NAGIOS OK: /'; my $warningOutput = '/^NAGIOS WARNING: /'; my $failureOutput = '/^NAGIOS CRITICAL: /'; diff --git a/plugins/t/check_pop.t b/plugins/t/check_pop.t index 55ac723..2c35ef4 100644 --- a/plugins/t/check_pop.t +++ b/plugins/t/check_pop.t @@ -2,7 +2,7 @@ # # Post Office Protocol (POP) Server Tests via check_pop # -# $Id: check_pop.t 1345 2006-03-22 15:45:49Z tonvoon $ +# $Id: check_pop.t 1901 2008-01-08 11:57:24Z tonvoon $ # use strict; diff --git a/plugins/t/check_procs.t b/plugins/t/check_procs.t index e784d8d..393323c 100644 --- a/plugins/t/check_procs.t +++ b/plugins/t/check_procs.t @@ -2,24 +2,44 @@ # # Process Tests via check_procs # -# $Id: check_procs.t 1271 2005-11-03 15:13:13Z tonvoon $ +# $Id: check_procs.t 1937 2008-02-28 16:21:59Z tonvoon $ # use strict; -use Test; +use Test::More; use NPTest; -use vars qw($tests); -BEGIN {$tests = 12; plan tests => $tests} - my $t; -$t += checkCmd( "./check_procs -w 100000 -c 100000", 0, '/^PROCS OK: [0-9]+ process(es)?$/' ); -$t += checkCmd( "./check_procs -w 100000 -c 100000 -s Z", 0, '/^PROCS OK: [0-9]+ process(es)? with /' ); -$t += checkCmd( "./check_procs -w 0 -c 10000000", 1, '/^PROCS WARNING: [0-9]+ process(es)?$/' ); -$t += checkCmd( "./check_procs -w 0 -c 0", 2, '/^PROCS CRITICAL: [0-9]+ process(es)?$/' ); -$t += checkCmd( "./check_procs -w 0 -c 0 -s S", 2, '/^PROCS CRITICAL: [0-9]+ process(es)? with /' ); -$t += checkCmd( "./check_procs -w 0 -c 10000000 -p 1", 1, '/^PROCS WARNING: [0-9]+ process(es)? with PPID = 1/' ); +if (`uname -s` eq "SunOS\n") { + plan skip_all => "Ignoring tests on solaris because of pst3"; +} else { + plan tests => 12; +} + +my $result; + +$result = NPTest->testCmd( "./check_procs -w 100000 -c 100000" ); +is( $result->return_code, 0, "Checking less than 10000 processes" ); +like( $result->output, '/^PROCS OK: [0-9]+ process(es)?$/', "Output correct" ); + +$result = NPTest->testCmd( "./check_procs -w 100000 -c 100000 -s Z" ); +is( $result->return_code, 0, "Checking less than 100000 zombie processes" ); +like( $result->output, '/^PROCS OK: [0-9]+ process(es)? with /', "Output correct" ); + +$result = NPTest->testCmd( "./check_procs -w 0 -c 100000" ); +is( $result->return_code, 1, "Checking warning if processes > 0" ); +like( $result->output, '/^PROCS WARNING: [0-9]+ process(es)?$/', "Output correct" ); + +$result = NPTest->testCmd( "./check_procs -w 0 -c 0" ); +is( $result->return_code, 2, "Checking critical if processes > 0" ); +like( $result->output, '/^PROCS CRITICAL: [0-9]+ process(es)?$/', "Output correct" ); + +$result = NPTest->testCmd( "./check_procs -w 0 -c 0 -s S" ); +is( $result->return_code, 2, "Checking critical if sleeping processes" ); +like( $result->output, '/^PROCS CRITICAL: [0-9]+ process(es)? with /', "Output correct" ); + +$result = NPTest->testCmd( "./check_procs -w 0 -c 100000 -p 1" ); +is( $result->return_code, 1, "Checking warning for processes by parentid = 1" ); +like( $result->output, '/^PROCS WARNING: [0-9]+ process(es)? with PPID = 1/', "Output correct" ); -exit(0) if defined($Test::Harness::VERSION); -exit($tests - $t); diff --git a/plugins/t/check_tcp.t b/plugins/t/check_tcp.t index 5292788..a152e08 100644 --- a/plugins/t/check_tcp.t +++ b/plugins/t/check_tcp.t @@ -2,7 +2,7 @@ # # TCP Connection Based Tests via check_tcp # -# $Id: check_tcp.t 1714 2007-05-18 07:17:59Z dermoth $ +# $Id: check_tcp.t 1901 2008-01-08 11:57:24Z tonvoon $ # use strict; diff --git a/plugins/urlize.c b/plugins/urlize.c index 5e42958..a3fcae1 100644 --- a/plugins/urlize.c +++ b/plugins/urlize.c @@ -1,43 +1,40 @@ -/****************************************************************************** -* +/***************************************************************************** +* * Nagios urlize plugin -* +* * License: GPL -* Copyright (c) 2000-2006 nagios-plugins team -* -* Last Modified: $Date: 2007-01-28 21:46:41 +0000 (Sun, 28 Jan 2007) $ -* +* Copyright (c) 2000-2007 Nagios Plugins Development Team +* +* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $ +* * Description: -* +* * This file contains the urlize plugin -* -* This plugin wraps the text output of another command (plugin) -* in HTML tags, thus displaying the plugin output in as a clickable link in -* the Nagios status screen. The return status is the same as the invoked plugin. -* -* License Information: -* -* This program is free software; you can redistribute it and/or modify +* +* This plugin wraps the text output of another command (plugin) in HTML +* tags, thus displaying the plugin output in as a clickable link in the +* Nagios status screen. The return status is the same as the invoked plugin. +* +* +* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or +* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* - - $Id: urlize.c 1590 2007-01-28 21:46:41Z hweiss $ - -******************************************************************************/ +* along with this program. If not, see . +* +* $Id: urlize.c 1918 2008-01-31 11:27:22Z dermoth $ +* +*****************************************************************************/ const char *progname = "urlize"; -const char *revision = "$Revision: 1590 $"; +const char *revision = "$Revision: 1918 $"; const char *copyright = "2000-2006"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; diff --git a/plugins/utils.c b/plugins/utils.c index 5585610..7c60d3b 100644 --- a/plugins/utils.c +++ b/plugins/utils.c @@ -1,16 +1,30 @@ /***************************************************************************** - * - * utils.c - * - * Library of useful functions for plugins - * - * Copyright (c) 2000 Karl DeBisschop (karl@debisschop.net) - * Copyright (c) 2006 Nagios Plugin Development Team - * License: GPL - * - * $Revision: 1829 $ - * $Date: 2007-11-23 04:18:16 +0000 (Fri, 23 Nov 2007) $ - ****************************************************************************/ +* +* Library of useful functions for plugins +* +* License: GPL +* Copyright (c) 2000 Karl DeBisschop (karl@debisschop.net) +* Copyright (c) 2002-2007 Nagios Plugin Development Team +* +* Last Modified: $Date: 2008-01-31 11:27:22 +0000 (Thu, 31 Jan 2008) $ +* +* +* 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 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* $Id: utils.c 1918 2008-01-31 11:27:22Z dermoth $ +* +*****************************************************************************/ #define LOCAL_TIMEOUT_ALARM_HANDLER diff --git a/plugins/utils.h b/plugins/utils.h index 484aebc..df9d424 100644 --- a/plugins/utils.h +++ b/plugins/utils.h @@ -16,9 +16,17 @@ suite of plugins. */ /* now some functions etc are being defined in ../lib/utils_base.c */ #include "utils_base.h" +#ifdef NP_EXTRA_OPTS +/* Include extra-opts functions if compiled in */ +#include "extra_opts.h" +#else +/* else, fake np_extra_opts */ +#define np_extra_opts(acptr,av,pr) av +#endif + /* Standardize version information, termination */ -/* $Id: utils.h 1829 2007-11-23 04:18:16Z dermoth $ */ +/* $Id: utils.h 1991 2008-05-07 10:02:42Z dermoth $ */ void support (void); char *clean_revstring (const char *); @@ -173,10 +181,26 @@ char *fperfdata (const char *, -t, --timeout=INTEGER\n\ Seconds before connection times out (default: %d)\n" +#ifdef NP_EXTRA_OPTS +#define UT_EXTRA_OPTS "\ + --extra-opts=[section][@file]\n\ + Read additionnal options from ini file\n" +#define UT_EXTRA_OPTS_NOTES "\ + See: http://nagiosplugins.org/extra-opts for --extra-opts usage and examples.\n" +#else +#define UT_EXTRA_OPTS "" +#define UT_EXTRA_OPTS_NOTES "" +#endif + +#define UT_THRESHOLDS_NOTES "\ + See:\n\ + http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT\n\ + for THRESHOLD format and examples.\n" + #define UT_SUPPORT "\n\ Send email to nagios-users@lists.sourceforge.net if you have questions\n\ regarding use of this software. To submit patches or suggest improvements,\n\ -send email to nagiosplug-devel@lists.sourceforge.net\n" +send email to nagiosplug-devel@lists.sourceforge.net\n\n" #define UT_NOWARRANTY "\n\ The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute\n\ diff --git a/po/Makevars b/po/Makevars index afd9a6e..152edec 100644 --- a/po/Makevars +++ b/po/Makevars @@ -8,7 +8,7 @@ subdir = po top_builddir = .. # These options get passed to xgettext. -XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ +XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --flag=error:3:c-format --flag=error_at_line:5:c-format --flag=asprintf:2:c-format --flag=vasprintf:2:c-format # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding diff --git a/po/de.gmo b/po/de.gmo index c07f44a..4372b53 100644 Binary files a/po/de.gmo and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po index 84be686..a7f5f80 100644 --- a/po/de.po +++ b/po/de.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: nagiosplug\n" "Report-Msgid-Bugs-To: nagiosplug-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2007-12-13 22:43+0000\n" +"POT-Creation-Date: 2008-05-27 23:06+0100\n" "PO-Revision-Date: 2004-12-23 17:46+0100\n" "Last-Translator: <>\n" "Language-Team: English \n" @@ -18,56 +18,61 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);X-Generator: KBabel 1.3.1\n" -#: plugins/check_by_ssh.c:83 plugins/check_cluster.c:79 plugins/check_dig.c:89 -#: plugins/check_disk.c:198 plugins/check_dns.c:93 plugins/check_dummy.c:59 -#: plugins/check_fping.c:89 plugins/check_game.c:84 plugins/check_hpjd.c:106 -#: plugins/check_http.c:154 plugins/check_ldap.c:108 plugins/check_load.c:126 -#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:88 -#: plugins/check_nagios.c:94 plugins/check_nt.c:126 plugins/check_ntp.c:767 -#: plugins/check_ntp_peer.c:553 plugins/check_ntp_time.c:544 +#: plugins/check_by_ssh.c:84 plugins/check_cluster.c:81 plugins/check_dig.c:91 +#: plugins/check_disk.c:199 plugins/check_dns.c:106 plugins/check_dummy.c:56 +#: plugins/check_fping.c:90 plugins/check_game.c:86 plugins/check_hpjd.c:107 +#: plugins/check_http.c:154 plugins/check_ldap.c:112 plugins/check_load.c:126 +#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:89 +#: plugins/check_nagios.c:95 plugins/check_nt.c:129 plugins/check_ntp.c:770 +#: plugins/check_ntp_peer.c:559 plugins/check_ntp_time.c:547 #: plugins/check_nwstat.c:177 plugins/check_overcr.c:106 -#: plugins/check_pgsql.c:156 plugins/check_ping.c:99 plugins/check_procs.c:143 -#: plugins/check_radius.c:156 plugins/check_real.c:85 plugins/check_smtp.c:145 -#: plugins/check_snmp.c:183 plugins/check_ssh.c:78 plugins/check_swap.c:113 -#: plugins/check_tcp.c:211 plugins/check_time.c:82 plugins/check_ups.c:125 -#: plugins/check_users.c:70 plugins/negate.c:259 plugins-root/check_dhcp.c:277 +#: plugins/check_pgsql.c:157 plugins/check_ping.c:99 plugins/check_procs.c:150 +#: plugins/check_radius.c:156 plugins/check_real.c:84 plugins/check_smtp.c:144 +#: plugins/check_snmp.c:183 plugins/check_ssh.c:77 plugins/check_swap.c:114 +#: plugins/check_tcp.c:212 plugins/check_time.c:82 plugins/check_ups.c:126 +#: plugins/check_users.c:72 plugins/negate.c:208 plugins-root/check_dhcp.c:275 msgid "Could not parse arguments" msgstr "Argumente konnten nicht ausgewertet werden" -#: plugins/check_by_ssh.c:87 plugins/check_dig.c:86 plugins/check_dns.c:89 -#: plugins/check_nagios.c:98 plugins/check_pgsql.c:160 -#: plugins/check_ping.c:103 plugins/check_procs.c:150 plugins/negate.c:113 +#: plugins/check_by_ssh.c:88 plugins/check_dig.c:85 plugins/check_dns.c:99 +#: plugins/check_nagios.c:99 plugins/check_pgsql.c:161 +#: plugins/check_ping.c:103 plugins/check_procs.c:157 plugins/negate.c:78 msgid "Cannot catch SIGALRM" msgstr "Konnte SIGALRM nicht erhalten" -#: plugins/check_by_ssh.c:104 +#: plugins/check_by_ssh.c:105 #, c-format msgid "Remote command execution failed: %s\n" msgstr "" -#: plugins/check_by_ssh.c:116 +#: plugins/check_by_ssh.c:117 #, c-format msgid "%s - check_by_ssh: Remote command '%s' returned status %d\n" msgstr "" -#: plugins/check_by_ssh.c:128 +#: plugins/check_by_ssh.c:129 #, c-format msgid "SSH WARNING: could not open %s\n" msgstr "SSH WARNING: Konnte %s nicht öffnen\n" -#: plugins/check_by_ssh.c:214 plugins/check_disk.c:530 -#: plugins/check_http.c:248 plugins/check_ldap.c:292 plugins/check_pgsql.c:237 -#: plugins/check_procs.c:371 plugins/check_radius.c:284 -#: plugins/check_real.c:361 plugins/check_smtp.c:592 plugins/check_snmp.c:516 -#: plugins/check_ssh.c:143 plugins/check_tcp.c:494 plugins/check_time.c:306 -#: plugins/check_ups.c:555 plugins/negate.c:203 +#: plugins/check_by_ssh.c:138 +#, c-format +msgid "%s: Error parsing output\n" +msgstr "" + +#: plugins/check_by_ssh.c:214 plugins/check_disk.c:532 +#: plugins/check_http.c:249 plugins/check_ldap.c:296 plugins/check_pgsql.c:238 +#: plugins/check_procs.c:399 plugins/check_radius.c:290 +#: plugins/check_real.c:360 plugins/check_smtp.c:593 plugins/check_snmp.c:516 +#: plugins/check_ssh.c:142 plugins/check_tcp.c:495 plugins/check_time.c:306 +#: plugins/check_ups.c:556 plugins/negate.c:162 msgid "Timeout interval must be a positive integer" msgstr "Timeout interval muss ein positiver Integer sein" -#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:261 -#: plugins/check_radius.c:257 plugins/check_real.c:332 -#: plugins/check_smtp.c:519 plugins/check_tcp.c:500 plugins/check_time.c:300 -#: plugins/check_ups.c:517 +#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:262 +#: plugins/check_radius.c:257 plugins/check_real.c:331 +#: plugins/check_smtp.c:520 plugins/check_tcp.c:501 plugins/check_time.c:300 +#: plugins/check_ups.c:518 msgid "Port must be a positive integer" msgstr "Port muss ein positiver Integer sein" @@ -113,330 +118,336 @@ msgstr "" "Dieses Plugin nutzt SSH um Befehle auf dem entfernten Rechner auszuführen\n" "\n" -#: plugins/check_by_ssh.c:360 +#: plugins/check_by_ssh.c:362 msgid "tell ssh to use Protocol 1 [optional]" msgstr "" -#: plugins/check_by_ssh.c:362 +#: plugins/check_by_ssh.c:364 msgid "tell ssh to use Protocol 2 [optional]" msgstr "" -#: plugins/check_by_ssh.c:364 +#: plugins/check_by_ssh.c:366 msgid "Ignore all or (if specified) first n lines on STDOUT [optional]" msgstr "" -#: plugins/check_by_ssh.c:366 +#: plugins/check_by_ssh.c:368 msgid "Ignore all or (if specified) first n lines on STDERR [optional]" msgstr "" -#: plugins/check_by_ssh.c:368 -msgid "tells ssh to fork rather than create a tty [optional]" -msgstr "" - #: plugins/check_by_ssh.c:370 -msgid "command to execute on the remote machine" +msgid "" +"tells ssh to fork rather than create a tty [optional]. This will always " +"return OK if ssh is executed" msgstr "" #: plugins/check_by_ssh.c:372 -msgid "SSH user name on remote host [optional]" +msgid "command to execute on the remote machine" msgstr "" #: plugins/check_by_ssh.c:374 -msgid "identity of an authorized key [optional]" +msgid "SSH user name on remote host [optional]" msgstr "" #: plugins/check_by_ssh.c:376 -msgid "external command file for nagios [optional]" +msgid "identity of an authorized key [optional]" msgstr "" #: plugins/check_by_ssh.c:378 -msgid "list of nagios service names, separated by ':' [optional]" +msgid "external command file for nagios [optional]" msgstr "" #: plugins/check_by_ssh.c:380 -msgid "short name of host in nagios configuration [optional]" +msgid "list of nagios service names, separated by ':' [optional]" msgstr "" #: plugins/check_by_ssh.c:382 -msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]" +msgid "short name of host in nagios configuration [optional]" msgstr "" #: plugins/check_by_ssh.c:384 +msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:386 msgid "Tell ssh to suppress warning and diagnostic messages [optional]" msgstr "" -#: plugins/check_by_ssh.c:387 +#: plugins/check_by_ssh.c:391 msgid "The most common mode of use is to refer to a local identity file with" msgstr "" -#: plugins/check_by_ssh.c:388 +#: plugins/check_by_ssh.c:392 msgid "the '-i' option. In this mode, the identity pair should have a null" msgstr "" -#: plugins/check_by_ssh.c:389 +#: plugins/check_by_ssh.c:393 msgid "passphrase and the public key should be listed in the authorized_keys" msgstr "" -#: plugins/check_by_ssh.c:390 +#: plugins/check_by_ssh.c:394 msgid "file of the remote host. Usually the key will be restricted to running" msgstr "" -#: plugins/check_by_ssh.c:391 +#: plugins/check_by_ssh.c:395 msgid "only one command on the remote server. If the remote SSH server tracks" msgstr "" -#: plugins/check_by_ssh.c:392 +#: plugins/check_by_ssh.c:396 msgid "invocation arguments, the one remote program may be an agent that can" msgstr "" -#: plugins/check_by_ssh.c:393 +#: plugins/check_by_ssh.c:397 msgid "execute additional commands as proxy" msgstr "" -#: plugins/check_by_ssh.c:394 +#: plugins/check_by_ssh.c:399 msgid "To use passive mode, provide multiple '-C' options, and provide" msgstr "" -#: plugins/check_by_ssh.c:395 +#: plugins/check_by_ssh.c:400 msgid "" "all of -O, -s, and -n options (servicelist order must match '-C'options)" msgstr "" -#: plugins/check_by_ssh.c:397 plugins/check_disk.c:954 -#: plugins/check_http.c:1312 plugins/check_nagios.c:303 -#: plugins/check_ntp.c:866 plugins/check_ntp_peer.c:668 -#: plugins/check_ntp_time.c:623 plugins/check_procs.c:735 plugins/negate.c:319 -#: plugins/urlize.c:187 -#, c-format +#: plugins/check_by_ssh.c:402 plugins/check_dig.c:341 plugins/check_disk.c:970 +#: plugins/check_http.c:1323 plugins/check_nagios.c:312 +#: plugins/check_ntp.c:872 plugins/check_ntp_peer.c:680 +#: plugins/check_ntp_time.c:631 plugins/check_procs.c:783 plugins/negate.c:263 +#: plugins/urlize.c:184 msgid "Examples:" msgstr "" -#: plugins/check_by_ssh.c:412 plugins/check_cluster.c:273 -#: plugins/check_dig.c:336 plugins/check_disk.c:970 plugins/check_dns.c:447 -#: plugins/check_dummy.c:129 plugins/check_fping.c:407 -#: plugins/check_game.c:334 plugins/check_hpjd.c:415 plugins/check_http.c:1335 -#: plugins/check_ldap.c:449 plugins/check_load.c:328 plugins/check_mrtg.c:383 -#: plugins/check_mysql.c:407 plugins/check_nagios.c:313 plugins/check_nt.c:707 -#: plugins/check_ntp.c:879 plugins/check_ntp_peer.c:683 -#: plugins/check_ntp_time.c:632 plugins/check_nwstat.c:1688 -#: plugins/check_overcr.c:469 plugins/check_pgsql.c:458 -#: plugins/check_ping.c:597 plugins/check_procs.c:753 -#: plugins/check_radius.c:358 plugins/check_real.c:454 -#: plugins/check_smtp.c:825 plugins/check_snmp.c:1029 plugins/check_ssh.c:308 -#: plugins/check_swap.c:559 plugins/check_tcp.c:654 plugins/check_time.c:373 -#: plugins/check_ups.c:657 plugins/check_users.c:230 -#: plugins/check_ide_smart.c:527 plugins/negate.c:340 plugins/urlize.c:204 -#: plugins-root/check_dhcp.c:1426 plugins-root/check_icmp.c:1282 +#: plugins/check_by_ssh.c:411 plugins/check_cluster.c:262 +#: plugins/check_dig.c:347 plugins/check_disk.c:965 plugins/check_dns.c:485 +#: plugins/check_fping.c:405 plugins/check_game.c:322 plugins/check_hpjd.c:412 +#: plugins/check_http.c:1307 plugins/check_ldap.c:437 plugins/check_load.c:325 +#: plugins/check_mrtg.c:367 plugins/check_mrtgtraf.c:367 +#: plugins/check_mysql.c:421 plugins/check_nagios.c:307 plugins/check_nt.c:728 +#: plugins/check_ntp.c:864 plugins/check_ntp_peer.c:667 +#: plugins/check_ntp_time.c:620 plugins/check_nwstat.c:1674 +#: plugins/check_overcr.c:460 plugins/check_pgsql.c:456 +#: plugins/check_ping.c:601 plugins/check_procs.c:778 +#: plugins/check_radius.c:359 plugins/check_real.c:449 +#: plugins/check_smtp.c:821 plugins/check_snmp.c:1006 plugins/check_ssh.c:302 +#: plugins/check_swap.c:551 plugins/check_tcp.c:651 plugins/check_time.c:369 +#: plugins/check_ups.c:642 plugins/check_users.c:228 +#: plugins/check_ide_smart.c:514 plugins/negate.c:269 +#: plugins-root/check_dhcp.c:1420 plugins-root/check_icmp.c:1304 +msgid "Notes:" +msgstr "" + +#: plugins/check_by_ssh.c:423 plugins/check_cluster.c:277 +#: plugins/check_dig.c:359 plugins/check_disk.c:987 plugins/check_dns.c:496 +#: plugins/check_dummy.c:126 plugins/check_fping.c:416 +#: plugins/check_game.c:339 plugins/check_hpjd.c:424 plugins/check_http.c:1346 +#: plugins/check_ldap.c:459 plugins/check_load.c:335 plugins/check_mrtg.c:389 +#: plugins/check_mysql.c:432 plugins/check_nagios.c:323 plugins/check_nt.c:747 +#: plugins/check_ntp.c:891 plugins/check_ntp_peer.c:697 +#: plugins/check_ntp_time.c:640 plugins/check_nwstat.c:1692 +#: plugins/check_overcr.c:475 plugins/check_pgsql.c:468 +#: plugins/check_ping.c:611 plugins/check_radius.c:371 +#: plugins/check_real.c:461 plugins/check_smtp.c:833 plugins/check_snmp.c:1036 +#: plugins/check_ssh.c:314 plugins/check_swap.c:567 plugins/check_tcp.c:662 +#: plugins/check_time.c:381 plugins/check_ups.c:664 plugins/check_users.c:239 +#: plugins/check_ide_smart.c:536 plugins/negate.c:284 plugins/urlize.c:201 +#: plugins-root/check_dhcp.c:1432 plugins-root/check_icmp.c:1333 #, c-format msgid "Usage:" msgstr "" -#: plugins/check_cluster.c:233 +#: plugins/check_cluster.c:235 #, c-format msgid "Host/Service Cluster Plugin for Nagios 2" msgstr "" -#: plugins/check_cluster.c:239 plugins/check_nt.c:632 +#: plugins/check_cluster.c:241 plugins/check_nt.c:652 msgid "Options:" msgstr "" -#: plugins/check_cluster.c:241 +#: plugins/check_cluster.c:244 msgid "Check service cluster status" msgstr "" -#: plugins/check_cluster.c:243 +#: plugins/check_cluster.c:246 msgid "Check host cluster status" msgstr "" -#: plugins/check_cluster.c:245 +#: plugins/check_cluster.c:248 msgid "Optional prepended text output (i.e. \"Host cluster\")" msgstr "" -#: plugins/check_cluster.c:247 plugins/check_cluster.c:250 +#: plugins/check_cluster.c:250 plugins/check_cluster.c:253 msgid "Specifies the range of hosts or services in cluster that must be in a" msgstr "" -#: plugins/check_cluster.c:248 +#: plugins/check_cluster.c:251 msgid "non-OK state in order to return a WARNING status level" msgstr "" -#: plugins/check_cluster.c:251 +#: plugins/check_cluster.c:254 msgid "non-OK state in order to return a CRITICAL status level" msgstr "" -#: plugins/check_cluster.c:253 +#: plugins/check_cluster.c:256 msgid "The status codes of the hosts or services in the cluster, separated by" msgstr "" -#: plugins/check_cluster.c:254 +#: plugins/check_cluster.c:257 msgid "commas" msgstr "" -#: plugins/check_cluster.c:259 plugins/check_game.c:318 -#: plugins/check_http.c:1300 plugins/check_mrtg.c:364 -#: plugins/check_mrtgtraf.c:365 plugins/check_nt.c:693 plugins/check_ntp.c:860 -#: plugins/check_ntp_peer.c:655 plugins/check_ntp_time.c:611 -#: plugins/check_nwstat.c:1673 plugins/check_overcr.c:452 -#: plugins/check_swap.c:548 plugins/check_ups.c:633 plugins/negate.c:325 -#, c-format -msgid "Notes:" -msgstr "" - -#: plugins/check_cluster.c:260 plugins/check_ntp.c:861 -#: plugins/check_ntp_peer.c:663 plugins/check_ntp_time.c:618 -msgid "See:" -msgstr "" - -#: plugins/check_cluster.c:262 plugins/check_ntp.c:863 -#: plugins/check_ntp_peer.c:665 plugins/check_ntp_time.c:620 -msgid "for THRESHOLD format and examples." -msgstr "" - -#: plugins/check_dig.c:101 plugins/check_dig.c:103 +#: plugins/check_dig.c:103 plugins/check_dig.c:105 #, c-format msgid "Looking for: '%s'\n" msgstr "" -#: plugins/check_dig.c:110 +#: plugins/check_dig.c:112 msgid "dig returned an error status" msgstr "dig hat einen Fehler zurückgegeben" -#: plugins/check_dig.c:135 +#: plugins/check_dig.c:137 msgid "Server not found in ANSWER SECTION" msgstr "Server nicht gefunden in ANSWER SECTION" -#: plugins/check_dig.c:145 +#: plugins/check_dig.c:147 msgid "No ANSWER SECTION found" msgstr "Keine ANSWER SECTION gefunden" -#: plugins/check_dig.c:170 +#: plugins/check_dig.c:172 #, fuzzy msgid "Probably a non-existent host/domain" msgstr "nicht existierender Host/Domain" -#: plugins/check_dig.c:229 +#: plugins/check_dig.c:232 #, fuzzy, c-format msgid "Port must be a positive integer - %s" msgstr "Port muss ein positiver Integer sein - %s" -#: plugins/check_dig.c:240 +#: plugins/check_dig.c:243 #, fuzzy, c-format msgid "Warning interval must be a positive integer - %s" msgstr "Warning interval muss ein positiver Integer sein - %s" -#: plugins/check_dig.c:248 +#: plugins/check_dig.c:251 #, fuzzy, c-format msgid "Critical interval must be a positive integer - %s" msgstr "Critical interval muss ein positiver Integer sein - %s" -#: plugins/check_dig.c:256 +#: plugins/check_dig.c:259 #, fuzzy, c-format msgid "Timeout interval must be a positive integer - %s" msgstr "Timeout interval muss ein positiver Integer sein - %s" -#: plugins/check_dig.c:309 +#: plugins/check_dig.c:315 #, fuzzy, c-format msgid "This plugin test the DNS service on the specified host using dig" msgstr "Testet den DNS Dienst auf dem angegebenen Host mit dig" -#: plugins/check_dig.c:320 +#: plugins/check_dig.c:328 #, fuzzy -msgid "machine name to lookup" +msgid "Machine name to lookup" msgstr "zu prüfender Hostname" -#: plugins/check_dig.c:322 +#: plugins/check_dig.c:330 #, fuzzy -msgid "record type to lookup (default: A)" +msgid "Record type to lookup (default: A)" msgstr "abzufragender Datensatztyp (Default: A)" -#: plugins/check_dig.c:324 +#: plugins/check_dig.c:332 #, fuzzy msgid "" -"an address expected to be in the answer section.if not set, uses whatever " -"was in -l" +"An address expected to be in the answer section. If not set, uses whatever" msgstr "" "Adresse die in der ANSWER SECTION erwartet wird.wenn nicht gesetzt, " "ubernommen aus -l" -#: plugins/check_disk.c:220 +#: plugins/check_dig.c:333 +msgid "was in -l" +msgstr "" + +#: plugins/check_dig.c:335 +msgid "Pass STRING as argument(s) to dig" +msgstr "" + +#: plugins/check_disk.c:221 #, fuzzy, c-format msgid "DISK %s: %s not found\n" msgstr "%s [%s nicht gefunden]" -#: plugins/check_disk.c:220 plugins/check_disk.c:985 plugins/check_dns.c:208 -#: plugins/check_dummy.c:81 plugins/check_http.c:951 plugins/check_mysql.c:214 -#: plugins/check_nagios.c:107 plugins/check_nagios.c:171 -#: plugins/check_nagios.c:175 plugins/check_procs.c:302 +#: plugins/check_disk.c:221 plugins/check_disk.c:1002 plugins/check_dns.c:245 +#: plugins/check_dummy.c:78 plugins/check_http.c:956 plugins/check_mysql.c:215 +#: plugins/check_nagios.c:108 plugins/check_nagios.c:172 +#: plugins/check_nagios.c:176 plugins/check_procs.c:325 #, c-format msgid "CRITICAL" msgstr "CRITICAL" -#: plugins/check_disk.c:604 +#: plugins/check_disk.c:606 #, c-format msgid "unit type %s not known\n" msgstr "unbekannter unit type: %s\n" -#: plugins/check_disk.c:607 +#: plugins/check_disk.c:609 #, c-format msgid "failed allocating storage for '%s'\n" msgstr "konnte keinen Speicher für '%s' reservieren\n" -#: plugins/check_disk.c:631 plugins/check_disk.c:662 plugins/check_disk.c:667 -#: plugins/check_disk.c:674 plugins/check_disk.c:678 plugins/check_disk.c:718 -#: plugins/check_disk.c:724 plugins/check_disk.c:743 plugins/check_dummy.c:84 -#: plugins/check_dummy.c:87 +#: plugins/check_disk.c:633 plugins/check_disk.c:664 plugins/check_disk.c:669 +#: plugins/check_disk.c:676 plugins/check_disk.c:680 plugins/check_disk.c:720 +#: plugins/check_disk.c:726 plugins/check_disk.c:745 plugins/check_dummy.c:81 +#: plugins/check_dummy.c:84 plugins/check_procs.c:486 #, c-format msgid "UNKNOWN" msgstr "UNKNOWN" -#: plugins/check_disk.c:631 +#: plugins/check_disk.c:633 msgid "Must set a threshold value before using -p\n" msgstr "" -#: plugins/check_disk.c:662 +#: plugins/check_disk.c:664 msgid "Must set -E before selecting pathes\n" msgstr "" -#: plugins/check_disk.c:667 +#: plugins/check_disk.c:669 msgid "Must set group value before selecting pathes \n" msgstr "" -#: plugins/check_disk.c:674 +#: plugins/check_disk.c:676 msgid "" "Pathes need to be selected before using -i/-I. Use -A to select all pathes " "explicitly" msgstr "" -#: plugins/check_disk.c:678 plugins/check_disk.c:724 +#: plugins/check_disk.c:680 plugins/check_disk.c:726 plugins/check_procs.c:486 msgid "Could not compile regular expression" msgstr "" -#: plugins/check_disk.c:718 +#: plugins/check_disk.c:720 msgid "Must set a threshold value before using -r/-R\n" msgstr "" -#: plugins/check_disk.c:744 +#: plugins/check_disk.c:746 msgid "Regular expression did not match any path or disk" msgstr "" -#: plugins/check_disk.c:791 +#: plugins/check_disk.c:793 #, fuzzy msgid "Unknown argument" msgstr "Unbekanntes Argument" -#: plugins/check_disk.c:825 +#: plugins/check_disk.c:827 #, c-format msgid " for %s\n" msgstr "" -#: plugins/check_disk.c:893 +#: plugins/check_disk.c:901 #, fuzzy msgid "" "This plugin checks the amount of used disk space on a mounted file system" msgstr "" "Dieses Plugin prüft den freien Speicher auf einem gemounteten Filesystem" -#: plugins/check_disk.c:894 +#: plugins/check_disk.c:902 #, fuzzy msgid "" "and generates an alert if free space is less than one of the threshold values" @@ -444,571 +455,587 @@ msgstr "" "und erzeugt einen Alarm wenn einer der angegebenen Schwellwerte " "unterschritten wird." -#: plugins/check_disk.c:903 +#: plugins/check_disk.c:912 msgid "Exit with WARNING status if less than INTEGER units of disk are free" msgstr "" -#: plugins/check_disk.c:905 +#: plugins/check_disk.c:914 msgid "Exit with WARNING status if less than PERCENT of disk space is free" msgstr "" -#: plugins/check_disk.c:907 +#: plugins/check_disk.c:916 msgid "Exit with CRITICAL status if less than INTEGER units of disk are free" msgstr "" -#: plugins/check_disk.c:909 +#: plugins/check_disk.c:918 msgid "Exit with CRITCAL status if less than PERCENT of disk space is free" msgstr "" -#: plugins/check_disk.c:911 +#: plugins/check_disk.c:920 msgid "Exit with WARNING status if less than PERCENT of inode space is free" msgstr "" -#: plugins/check_disk.c:913 +#: plugins/check_disk.c:922 msgid "Exit with CRITICAL status if less than PERCENT of inode space is free" msgstr "" -#: plugins/check_disk.c:915 +#: plugins/check_disk.c:924 msgid "Path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:917 +#: plugins/check_disk.c:926 msgid "Ignore device (only works if -p unspecified)" msgstr "" -#: plugins/check_disk.c:919 +#: plugins/check_disk.c:928 msgid "Clear thresholds" msgstr "" -#: plugins/check_disk.c:921 +#: plugins/check_disk.c:930 msgid "For paths or partitions specified with -p, only check for exact paths" msgstr "" -#: plugins/check_disk.c:923 +#: plugins/check_disk.c:932 msgid "Display only devices/mountpoints with errors" msgstr "" -#: plugins/check_disk.c:925 +#: plugins/check_disk.c:934 msgid "" "Group pathes. Thresholds apply to (free-)space of all partitions together" msgstr "" -#: plugins/check_disk.c:927 +#: plugins/check_disk.c:936 msgid "Same as '--units kB'" msgstr "" -#: plugins/check_disk.c:929 +#: plugins/check_disk.c:938 msgid "Only check local filesystems" msgstr "" -#: plugins/check_disk.c:931 +#: plugins/check_disk.c:940 msgid "" "Only check local filesystems against thresholds. Yet call stat on remote " "filesystems" msgstr "" -#: plugins/check_disk.c:932 +#: plugins/check_disk.c:941 msgid "to test if they are accessible (e.g. to detect Stale NFS Handles)" msgstr "" -#: plugins/check_disk.c:934 +#: plugins/check_disk.c:943 msgid "Display the mountpoint instead of the partition" msgstr "" -#: plugins/check_disk.c:936 +#: plugins/check_disk.c:945 msgid "Same as '--units MB'" msgstr "" -#: plugins/check_disk.c:938 +#: plugins/check_disk.c:947 msgid "Explicitly select all pathes. This is equivalent to -R '.*'" msgstr "" -#: plugins/check_disk.c:940 +#: plugins/check_disk.c:949 msgid "" "Case insensitive regular expression for path/partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:942 +#: plugins/check_disk.c:951 msgid "Regular expression for path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:944 +#: plugins/check_disk.c:953 msgid "" "Regular expression to ignore selected path/partition (case insensitive) (may " "be repeated)" msgstr "" -#: plugins/check_disk.c:946 +#: plugins/check_disk.c:955 msgid "" "Regular expression to ignore selected path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:949 +#: plugins/check_disk.c:958 msgid "Choose bytes, kB, MB, GB, TB (default: MB)" msgstr "" -#: plugins/check_disk.c:952 +#: plugins/check_disk.c:961 msgid "Ignore all filesystems of indicated type (may be repeated)" msgstr "" -#: plugins/check_disk.c:956 +#: plugins/check_disk.c:972 msgid "Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB" msgstr "" -#: plugins/check_disk.c:958 +#: plugins/check_disk.c:974 msgid "" "Checks all filesystems not matching -r at 100M and 50M. The fs matching the -" "r regex" msgstr "" -#: plugins/check_disk.c:959 +#: plugins/check_disk.c:975 msgid "" "are grouped which means the freespace thresholds are applied to all disks " "together" msgstr "" -#: plugins/check_disk.c:961 +#: plugins/check_disk.c:977 msgid "" "Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use " "100M/50M" msgstr "" -#: plugins/check_disk.c:986 +#: plugins/check_disk.c:1003 #, c-format msgid "%s %s: %s\n" msgstr "" -#: plugins/check_disk.c:986 +#: plugins/check_disk.c:1003 msgid "is not accessible" msgstr "" -#: plugins/check_dns.c:107 +#: plugins/check_dns.c:120 #, fuzzy msgid "nslookup returned an error status" msgstr "nslookup hat einen Fehler zurückgegeben" -#: plugins/check_dns.c:120 +#: plugins/check_dns.c:138 msgid "Warning plugin error" msgstr "Warnung Plugin Fehler" -#: plugins/check_dns.c:140 +#: plugins/check_dns.c:158 #, c-format msgid "DNS CRITICAL - '%s' returned empty host name string\n" msgstr "DNS CRITICAL - '%s' hat einen leeren Hostnamen zurückgegeben\n" -#: plugins/check_dns.c:150 +#: plugins/check_dns.c:164 msgid "Non-authoritative answer:" msgstr "" -#: plugins/check_dns.c:178 +#: plugins/check_dns.c:205 #, fuzzy, c-format msgid "DNS CRITICAL - '%s' msg parsing exited with no address\n" msgstr "DNS CRITICAL - '%s' Ausgabeverarbeitung hat keine Adresse ergeben\n" -#: plugins/check_dns.c:184 +#: plugins/check_dns.c:220 #, fuzzy, c-format msgid "expected '%s' but got '%s'" msgstr "Erwartet: %s aber: %s erhalten" -#: plugins/check_dns.c:190 +#: plugins/check_dns.c:227 #, c-format msgid "server %s is not authoritative for %s" msgstr "Server %s ist nicht autoritativ für %s" -#: plugins/check_dns.c:204 plugins/check_dummy.c:75 plugins/check_nagios.c:185 -#: plugins/check_procs.c:295 +#: plugins/check_dns.c:241 plugins/check_dummy.c:72 plugins/check_nagios.c:186 +#: plugins/check_procs.c:318 #, c-format msgid "OK" msgstr "OK" -#: plugins/check_dns.c:206 plugins/check_dummy.c:78 plugins/check_http.c:953 -#: plugins/check_mysql.c:211 plugins/check_nagios.c:185 -#: plugins/check_procs.c:297 +#: plugins/check_dns.c:243 plugins/check_dummy.c:75 plugins/check_http.c:958 +#: plugins/check_mysql.c:212 plugins/check_nagios.c:186 +#: plugins/check_procs.c:320 #, c-format msgid "WARNING" msgstr "WARNING" -#: plugins/check_dns.c:210 +#: plugins/check_dns.c:247 #, fuzzy, c-format msgid "%.3f second response time" msgid_plural "%.3f seconds response time" msgstr[0] "%.3f Sekunden Antwortzeit " msgstr[1] "%.3f Sekunden Antwortzeit " -#: plugins/check_dns.c:211 +#: plugins/check_dns.c:248 #, fuzzy, c-format msgid ". %s returns %s" msgstr "%s hat %s zurückgegeben" -#: plugins/check_dns.c:215 +#: plugins/check_dns.c:252 #, c-format msgid "DNS WARNING - %s\n" msgstr "DNS WARNING - %s\n" -#: plugins/check_dns.c:216 plugins/check_dns.c:219 plugins/check_dns.c:222 +#: plugins/check_dns.c:253 plugins/check_dns.c:256 plugins/check_dns.c:259 msgid " Probably a non-existent host/domain" msgstr "nicht existierender Host/Domain" -#: plugins/check_dns.c:218 +#: plugins/check_dns.c:255 #, c-format msgid "DNS CRITICAL - %s\n" msgstr "DNS CRITICAL - %s\n" -#: plugins/check_dns.c:221 +#: plugins/check_dns.c:258 #, c-format msgid "DNS UNKNOW - %s\n" msgstr "DNS UNKNOW - %s\n" -#: plugins/check_dns.c:234 +#: plugins/check_dns.c:271 msgid "Note: nslookup is deprecated and may be removed from future releases." msgstr "" -#: plugins/check_dns.c:235 +#: plugins/check_dns.c:272 msgid "Consider using the `dig' or `host' programs instead. Run nslookup with" msgstr "" -#: plugins/check_dns.c:236 +#: plugins/check_dns.c:273 msgid "the `-sil[ent]' option to prevent this message from appearing." msgstr "" -#: plugins/check_dns.c:241 +#: plugins/check_dns.c:278 #, c-format msgid "No response from DNS %s\n" msgstr "Keine Antwort von DNS %s\n" -#: plugins/check_dns.c:245 +#: plugins/check_dns.c:282 #, c-format msgid "DNS %s has no records\n" msgstr "Nameserver %s hat keine Datensätze\n" -#: plugins/check_dns.c:253 +#: plugins/check_dns.c:290 #, c-format msgid "Connection to DNS %s was refused\n" msgstr "Verbindung zum Nameserver %s wurde verweigert\n" -#: plugins/check_dns.c:257 +#: plugins/check_dns.c:294 #, c-format msgid "Query was refused by DNS server at %s\n" msgstr "" -#: plugins/check_dns.c:261 +#: plugins/check_dns.c:298 #, c-format msgid "No information returned by DNS server at %s\n" msgstr "" -#: plugins/check_dns.c:267 +#: plugins/check_dns.c:304 #, c-format msgid "Domain %s was not found by the server\n" msgstr "Domäne %s wurde vom Server nicht gefunden\n" -#: plugins/check_dns.c:271 +#: plugins/check_dns.c:308 msgid "Network is unreachable\n" msgstr "Netzwerk nicht erreichbar\n" -#: plugins/check_dns.c:275 +#: plugins/check_dns.c:312 #, c-format msgid "DNS failure for %s\n" msgstr "DNS Fehler für %s\n" -#: plugins/check_dns.c:339 plugins/check_dns.c:347 plugins/check_dns.c:354 -#: plugins/check_dns.c:359 plugins/check_dns.c:380 plugins/check_dns.c:388 -#: plugins/check_game.c:213 plugins/check_game.c:221 +#: plugins/check_dns.c:376 plugins/check_dns.c:384 plugins/check_dns.c:391 +#: plugins/check_dns.c:396 plugins/check_dns.c:418 plugins/check_dns.c:426 +#: plugins/check_game.c:215 plugins/check_game.c:223 msgid "Input buffer overflow\n" msgstr "Eingabe-Pufferüberlauf\n" -#: plugins/check_dns.c:416 +#: plugins/check_dns.c:454 msgid "" "This plugin uses the nslookup program to obtain the IP address for the given " "host/domain query." msgstr "" -#: plugins/check_dns.c:417 +#: plugins/check_dns.c:455 msgid "An optional DNS server to use may be specified." msgstr "" -#: plugins/check_dns.c:418 +#: plugins/check_dns.c:456 msgid "" "If no DNS server is specified, the default server(s) specified in /etc/" "resolv.conf will be used." msgstr "" -#: plugins/check_dns.c:427 +#: plugins/check_dns.c:466 msgid "The name or address you want to query" msgstr "" -#: plugins/check_dns.c:429 +#: plugins/check_dns.c:468 msgid "Optional DNS server you want to use for the lookup" msgstr "" -#: plugins/check_dns.c:431 +#: plugins/check_dns.c:470 msgid "" -"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with ." +"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with" msgstr "" -#: plugins/check_dns.c:433 +#: plugins/check_dns.c:471 +msgid "" +"a dot (.). This option can be repeated multiple times (Returns OK if any" +msgstr "" + +#: plugins/check_dns.c:472 +msgid "" +"value match). If multiple addresses are returned at once, you have to match" +msgstr "" + +#: plugins/check_dns.c:473 +msgid "" +"the whole string of addresses separated with commas (sorted alphabetically)." +msgstr "" + +#: plugins/check_dns.c:475 msgid "Optionally expect the DNS server to be authoritative for the lookup" msgstr "" -#: plugins/check_dns.c:435 +#: plugins/check_dns.c:477 msgid "Return warning if elapsed time exceeds value. Default off" msgstr "" -#: plugins/check_dns.c:437 +#: plugins/check_dns.c:479 msgid "Return critical if elapsed time exceeds value. Default off" msgstr "" -#: plugins/check_dummy.c:69 +#: plugins/check_dummy.c:66 msgid "Arguments to check_dummy must be an integer" msgstr "Argument für check_dummy muss ein Integer sein" -#: plugins/check_dummy.c:89 +#: plugins/check_dummy.c:86 #, c-format msgid "Status %d is not a supported error state\n" msgstr "Status %d ist kein bekannter Fehlerstatus\n" -#: plugins/check_dummy.c:111 +#: plugins/check_dummy.c:108 msgid "" "This plugin will simply return the state corresponding to the numeric value" msgstr "" -#: plugins/check_dummy.c:113 +#: plugins/check_dummy.c:110 msgid "of the argument with optional text" msgstr "" -#: plugins/check_fping.c:103 plugins/check_hpjd.c:131 plugins/check_ping.c:432 -#: plugins/check_procs.c:159 plugins/check_snmp.c:210 plugins/check_swap.c:178 -#: plugins/check_users.c:75 plugins/urlize.c:117 +#: plugins/check_fping.c:104 plugins/check_hpjd.c:132 plugins/check_ping.c:441 +#: plugins/check_procs.c:167 plugins/check_snmp.c:210 plugins/check_swap.c:179 +#: plugins/check_users.c:77 plugins/urlize.c:114 #, c-format msgid "Could not open pipe: %s\n" msgstr "Pipe: %s konnte nicht geöffnet werden\n" -#: plugins/check_fping.c:109 plugins/check_hpjd.c:137 plugins/check_load.c:157 -#: plugins/check_procs.c:165 plugins/check_snmp.c:217 plugins/check_swap.c:184 -#: plugins/check_users.c:81 plugins/urlize.c:123 +#: plugins/check_fping.c:110 plugins/check_hpjd.c:138 plugins/check_load.c:157 +#: plugins/check_procs.c:172 plugins/check_snmp.c:217 plugins/check_swap.c:185 +#: plugins/check_users.c:83 plugins/urlize.c:120 #, c-format msgid "Could not open stderr for %s\n" msgstr "Konnte stderr nicht öffnen für: %s\n" -#: plugins/check_fping.c:149 +#: plugins/check_fping.c:150 #, c-format msgid "FPING UNKNOW - %s not found\n" msgstr "FPING UNKNOW - %s nicht gefunden\n" -#: plugins/check_fping.c:153 +#: plugins/check_fping.c:154 #, c-format msgid "FPING CRITICAL - %s is unreachable\n" msgstr "FPING CRITICAL - %s ist nicht erreichbar\n" -#: plugins/check_fping.c:158 +#: plugins/check_fping.c:159 #, c-format msgid "FPING CRITICAL - %s is down\n" msgstr "FPING CRITICAL - %s ist down\n" -#: plugins/check_fping.c:185 +#: plugins/check_fping.c:186 #, c-format msgid "FPING %s - %s (loss=%.0f%%, rta=%f ms)|%s %s\n" msgstr "FPING %s - %s (verloren=%.0f%%, rta=%f ms)|%s %s\n" -#: plugins/check_fping.c:206 +#: plugins/check_fping.c:207 #, c-format msgid "FPING %s - %s (loss=%.0f%% )|%s\n" msgstr "FPING %s - %s (verloren=%.0f%% )|%s\n" -#: plugins/check_fping.c:273 plugins/check_hpjd.c:341 plugins/check_hpjd.c:364 -#: plugins/check_mysql.c:277 plugins/check_mysql.c:326 plugins/check_ntp.c:709 -#: plugins/check_ntp_peer.c:489 plugins/check_ntp_time.c:494 -#: plugins/check_pgsql.c:255 plugins/check_ping.c:290 plugins/check_ping.c:413 -#: plugins/check_radius.c:249 plugins/check_real.c:319 -#: plugins/check_real.c:381 plugins/check_smtp.c:512 plugins/check_smtp.c:638 -#: plugins/check_ssh.c:162 plugins/check_time.c:244 plugins/check_time.c:319 -#: plugins/check_ups.c:503 plugins/check_ups.c:572 +#: plugins/check_fping.c:274 plugins/check_hpjd.c:342 plugins/check_hpjd.c:365 +#: plugins/check_mysql.c:279 plugins/check_mysql.c:337 plugins/check_ntp.c:709 +#: plugins/check_ntp_peer.c:492 plugins/check_ntp_time.c:494 +#: plugins/check_pgsql.c:256 plugins/check_ping.c:299 plugins/check_ping.c:422 +#: plugins/check_radius.c:249 plugins/check_real.c:318 +#: plugins/check_real.c:380 plugins/check_smtp.c:513 plugins/check_smtp.c:639 +#: plugins/check_ssh.c:161 plugins/check_time.c:244 plugins/check_time.c:319 +#: plugins/check_ups.c:504 plugins/check_ups.c:573 msgid "Invalid hostname/address" msgstr "Ungültige(r) Hostname/Adresse" -#: plugins/check_fping.c:307 +#: plugins/check_fping.c:308 msgid "Packet size must be a positive integer" msgstr "Paketgröße muss ein positiver Integer sein" -#: plugins/check_fping.c:313 +#: plugins/check_fping.c:314 msgid "Packet count must be a positive integer" msgstr "Paketanzahl muss ein positiver Integer sein" -#: plugins/check_fping.c:319 plugins/check_ntp.c:733 -#: plugins/check_ntp_peer.c:513 plugins/check_ntp_time.c:518 -#: plugins/check_radius.c:290 plugins/check_time.c:323 +#: plugins/check_fping.c:320 plugins/check_ntp.c:733 +#: plugins/check_ntp_peer.c:516 plugins/check_ntp_time.c:518 +#: plugins/check_radius.c:296 plugins/check_time.c:323 msgid "Hostname was not supplied" msgstr "" -#: plugins/check_fping.c:339 +#: plugins/check_fping.c:340 #, c-format msgid "%s: Only one threshold may be packet loss (%s)\n" msgstr "%s: Nur ein Wert darf für paket loss angegeben werden (%s)\n" -#: plugins/check_fping.c:343 +#: plugins/check_fping.c:344 #, c-format msgid "%s: Only one threshold must be packet loss (%s)\n" msgstr "%s: Nur ein Wert darf für paket loss angegeben werden (%s)\n" -#: plugins/check_fping.c:375 +#: plugins/check_fping.c:376 msgid "" "This plugin will use the fping command to ping the specified host for a fast " "check" msgstr "" -#: plugins/check_fping.c:377 +#: plugins/check_fping.c:378 msgid "Note that it is necessary to set the suid flag on fping." msgstr "" -#: plugins/check_fping.c:386 +#: plugins/check_fping.c:388 msgid "" "name or IP Address of host to ping (IP Address bypasses name lookup, " "reducing system load)" msgstr "" -#: plugins/check_fping.c:388 plugins/check_ping.c:567 +#: plugins/check_fping.c:390 plugins/check_ping.c:577 #, fuzzy msgid "warning threshold pair" msgstr "Warning threshold Integer sein" -#: plugins/check_fping.c:390 plugins/check_ping.c:569 +#: plugins/check_fping.c:392 plugins/check_ping.c:579 #, fuzzy msgid "critical threshold pair" msgstr "Critical threshold muss ein Integer sein" -#: plugins/check_fping.c:392 +#: plugins/check_fping.c:394 #, c-format msgid "size of ICMP packet (default: %d)" msgstr "" -#: plugins/check_fping.c:394 +#: plugins/check_fping.c:396 #, c-format msgid "number of ICMP packets to send (default: %d)" msgstr "" -#: plugins/check_fping.c:397 +#: plugins/check_fping.c:399 #, c-format msgid "" "THRESHOLD is ,%% where is the round trip average travel time " "(ms)" msgstr "" -#: plugins/check_fping.c:398 +#: plugins/check_fping.c:400 msgid "" "which triggers a WARNING or CRITICAL state, and is the percentage of" msgstr "" -#: plugins/check_fping.c:399 +#: plugins/check_fping.c:401 msgid "packet loss to trigger an alarm state." msgstr "" -#: plugins/check_game.c:113 +#: plugins/check_game.c:115 #, c-format msgid "CRITICAL - Host type parameter incorrect!\n" msgstr "CRITICAL - Host type parameter unkorrekt!\n" -#: plugins/check_game.c:128 +#: plugins/check_game.c:130 #, fuzzy, c-format msgid "CRITICAL - Host not found\n" msgstr "CRITICAL - Text nicht gefunden%s|%s %s\n" -#: plugins/check_game.c:132 +#: plugins/check_game.c:134 #, fuzzy, c-format msgid "CRITICAL - Game server down or unavailable\n" msgstr "CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden" -#: plugins/check_game.c:136 +#: plugins/check_game.c:138 #, fuzzy, c-format msgid "CRITICAL - Game server timeout\n" msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n" -#: plugins/check_game.c:299 +#: plugins/check_game.c:301 #, c-format msgid "This plugin tests game server connections with the specified host." msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_game.c:308 +#: plugins/check_game.c:311 msgid "Optional port of which to connect" msgstr "" -#: plugins/check_game.c:310 +#: plugins/check_game.c:313 msgid "Field number in raw qstat output that contains game name" msgstr "" -#: plugins/check_game.c:312 +#: plugins/check_game.c:315 msgid "Field number in raw qstat output that contains map name" msgstr "" -#: plugins/check_game.c:314 +#: plugins/check_game.c:317 msgid "Field number in raw qstat output that contains ping time" msgstr "" -#: plugins/check_game.c:320 +#: plugins/check_game.c:323 +#, fuzzy msgid "" "This plugin uses the 'qstat' command, the popular game server status query " -"tool ." -msgstr "" +"tool." +msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_game.c:322 +#: plugins/check_game.c:324 msgid "" "If you don't have the package installed, you will need to download it from" msgstr "" -#: plugins/check_game.c:324 +#: plugins/check_game.c:325 msgid "" "http://www.activesw.com/people/steve/qstat.html before you can use this " "plugin." msgstr "" -#: plugins/check_hpjd.c:242 +#: plugins/check_hpjd.c:243 msgid "Paper Jam" msgstr "Papierstau" -#: plugins/check_hpjd.c:246 +#: plugins/check_hpjd.c:247 msgid "Out of Paper" msgstr "Kein Papier" -#: plugins/check_hpjd.c:251 +#: plugins/check_hpjd.c:252 msgid "Printer Offline" msgstr "Drucker ausgeschaltet" -#: plugins/check_hpjd.c:256 +#: plugins/check_hpjd.c:257 msgid "Peripheral Error" msgstr "Peripheriefehler" -#: plugins/check_hpjd.c:260 +#: plugins/check_hpjd.c:261 msgid "Intervention Required" msgstr "Eingriff benötigt" -#: plugins/check_hpjd.c:264 +#: plugins/check_hpjd.c:265 msgid "Toner Low" msgstr "Wenig Toner" -#: plugins/check_hpjd.c:268 +#: plugins/check_hpjd.c:269 msgid "Insufficient Memory" msgstr "Nicht genügend Speicher" -#: plugins/check_hpjd.c:272 +#: plugins/check_hpjd.c:273 msgid "A Door is Open" msgstr "Eine Abdeckung ist offen" -#: plugins/check_hpjd.c:276 +#: plugins/check_hpjd.c:277 msgid "Output Tray is Full" msgstr "Ausgabeschacht ist voll" -#: plugins/check_hpjd.c:280 +#: plugins/check_hpjd.c:281 msgid "Data too Slow for Engine" msgstr "" -#: plugins/check_hpjd.c:284 +#: plugins/check_hpjd.c:285 msgid "Unknown Paper Error" msgstr "Papierfehler" -#: plugins/check_hpjd.c:289 +#: plugins/check_hpjd.c:290 #, c-format msgid "Printer ok - (%s)\n" msgstr "Printer ok - (%s)\n" -#: plugins/check_hpjd.c:394 +#: plugins/check_hpjd.c:395 #, fuzzy msgid "This plugin tests the STATUS of an HP printer with a JetDirect card." msgstr "" @@ -1017,7 +1044,7 @@ msgstr "" "Net-snmp muss auf dem ausführenden Computer installiert sein.\n" "\n" -#: plugins/check_hpjd.c:395 +#: plugins/check_hpjd.c:396 #, fuzzy msgid "Net-snmp must be installed on the computer running the plugin." msgstr "" @@ -1026,605 +1053,605 @@ msgstr "" "Net-snmp muss auf dem ausführenden Computer installiert sein.\n" "\n" -#: plugins/check_hpjd.c:404 +#: plugins/check_hpjd.c:406 msgid "The SNMP community name " msgstr "" -#: plugins/check_hpjd.c:405 +#: plugins/check_hpjd.c:407 #, c-format msgid "(default=%s)" msgstr "" -#: plugins/check_http.c:254 +#: plugins/check_http.c:255 msgid "Critical threshold must be integer" msgstr "Critical threshold muss ein Integer sein" -#: plugins/check_http.c:262 +#: plugins/check_http.c:263 msgid "Warning threshold must be integer" msgstr "Warning threshold Integer sein" -#: plugins/check_http.c:288 plugins/check_tcp.c:563 +#: plugins/check_http.c:289 plugins/check_tcp.c:564 msgid "Invalid certificate expiration period" msgstr "Ungültiger Zertifikatsablauftermin" -#: plugins/check_http.c:297 plugins/check_tcp.c:575 +#: plugins/check_http.c:298 plugins/check_tcp.c:576 #, fuzzy msgid "Invalid option - SSL is not available" msgstr "Ungültige Option - SSL ist nicht verfügbar\n" -#: plugins/check_http.c:315 +#: plugins/check_http.c:316 #, c-format msgid "option f:%d \n" msgstr "Option f:%d \n" -#: plugins/check_http.c:332 +#: plugins/check_http.c:337 msgid "Invalid port number" msgstr "Ungültige Portnummer" -#: plugins/check_http.c:370 +#: plugins/check_http.c:375 #, c-format msgid "Could Not Compile Regular Expression: %s" msgstr "" -#: plugins/check_http.c:384 plugins/check_ntp.c:722 -#: plugins/check_ntp_peer.c:502 plugins/check_ntp_time.c:507 -#: plugins/check_smtp.c:618 plugins/check_ssh.c:154 plugins/check_tcp.c:467 +#: plugins/check_http.c:389 plugins/check_ntp.c:722 +#: plugins/check_ntp_peer.c:505 plugins/check_ntp_time.c:507 +#: plugins/check_smtp.c:619 plugins/check_ssh.c:153 plugins/check_tcp.c:468 msgid "IPv6 support not available" msgstr "IPv6 Unterstützung nicht vorhanden" -#: plugins/check_http.c:446 plugins/check_ping.c:417 +#: plugins/check_http.c:451 plugins/check_ping.c:426 msgid "You must specify a server address or host name" msgstr "Hostname oder Serveradresse muss angegeben werden" -#: plugins/check_http.c:629 +#: plugins/check_http.c:634 msgid "HTTP UNKNOWN - Server date unknown\n" msgstr "HTTP UNKNOWN - Serverdatum unbekannt\n" -#: plugins/check_http.c:631 +#: plugins/check_http.c:636 msgid "HTTP CRITICAL - Document modification date unknown\n" msgstr "HTTP CRITICAL - Datum der letzten Änderung unbekannt\n" -#: plugins/check_http.c:637 +#: plugins/check_http.c:642 #, c-format msgid "HTTP CRITICAL - Server date \"%100s\" unparsable" msgstr "HTTP CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden" -#: plugins/check_http.c:639 +#: plugins/check_http.c:644 #, c-format msgid "HTTP CRITICAL - Document date \"%100s\" unparsable" msgstr "" "HTTP CRITICAL - Dokumentendatum \"%100s\" konnte nicht verarbeitet werden" -#: plugins/check_http.c:641 +#: plugins/check_http.c:646 #, c-format msgid "HTTP CRITICAL - Document is %d seconds in the future\n" msgstr "HTTP CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n" -#: plugins/check_http.c:646 +#: plugins/check_http.c:651 #, c-format msgid "HTTP CRITICAL - Last modified %.1f days ago\n" msgstr "HTTP CRITICAL - Letzte Änderung vor %.1f Tagen\n" -#: plugins/check_http.c:650 +#: plugins/check_http.c:655 #, c-format msgid "HTTP CRITICAL - Last modified %d:%02d:%02d ago\n" msgstr "HTTP CRITICAL - Letzte Änderung vor %d:%02d:%02d \n" -#: plugins/check_http.c:731 +#: plugins/check_http.c:736 msgid "HTTP CRITICAL - Unable to open TCP socket\n" msgstr "HTTP CRITICAL - Konnte TCP socket nicht öffnen\n" -#: plugins/check_http.c:814 +#: plugins/check_http.c:819 msgid "HTTP CRITICAL - Error on receive\n" msgstr "HTTP CRITICAL - Fehler beim Empfangen\n" -#: plugins/check_http.c:824 +#: plugins/check_http.c:829 #, fuzzy msgid "HTTP CRITICAL - No data received from host\n" msgstr "HTTP CRITICAL - Keine Daten empfangen\n" -#: plugins/check_http.c:874 +#: plugins/check_http.c:879 +#, c-format msgid "Invalid HTTP response received from host\n" msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_http.c:877 +#: plugins/check_http.c:882 #, c-format msgid "Invalid HTTP response received from host on port %d\n" msgstr "Ungültige HTTP Antwort von Host erhalten auf Port %d\n" -#: plugins/check_http.c:885 +#: plugins/check_http.c:890 #, c-format msgid "HTTP OK: Status line output matched \"%s\"\n" msgstr "HTTP OK: Statusausgabe passt auf \"%s\"\n" -#: plugins/check_http.c:897 +#: plugins/check_http.c:902 #, c-format msgid "HTTP CRITICAL: Invalid Status Line (%s)\n" msgstr "HTTP CRITICAL: Ungültige Statusmeldung (%s)\n" -#: plugins/check_http.c:904 +#: plugins/check_http.c:909 #, c-format msgid "HTTP CRITICAL: Invalid Status (%s)\n" msgstr "HTTP CRITICAL: Ungültiger Status (%s)\n" -#: plugins/check_http.c:908 +#: plugins/check_http.c:913 #, c-format msgid "HTTP CRITICAL: %s\n" msgstr "HTTP CRITICAL: %s\n" -#: plugins/check_http.c:912 +#: plugins/check_http.c:917 #, c-format msgid "HTTP WARNING: %s\n" msgstr "HTTP WARNING: %s\n" -#: plugins/check_http.c:920 +#: plugins/check_http.c:925 #, c-format msgid "HTTP UNKNOWN" msgstr "HTTP UNKNOWN" -#: plugins/check_http.c:922 +#: plugins/check_http.c:927 #, c-format msgid "HTTP OK" msgstr "HTTP OK" -#: plugins/check_http.c:924 +#: plugins/check_http.c:929 #, c-format msgid "HTTP WARNING" msgstr "HTTP WARNING" -#: plugins/check_http.c:926 plugins/check_http.c:989 +#: plugins/check_http.c:931 plugins/check_http.c:994 #, c-format msgid "HTTP CRITICAL" msgstr "HTTP CRITICAL" -#: plugins/check_http.c:930 plugins/check_http.c:946 +#: plugins/check_http.c:935 plugins/check_http.c:951 #, fuzzy, c-format msgid " - %s - %.3f second response time %s|%s %s\n" msgstr " - %s - %.3f Sekunden Antwortzeit %s%s|%s %s\n" -#: plugins/check_http.c:960 plugins/check_http.c:977 +#: plugins/check_http.c:965 plugins/check_http.c:982 #, fuzzy, c-format msgid "HTTP OK %s - %.3f second response time %s|%s %s\n" msgstr "HTTP OK %s - %.3f Sekunde Antwortzeit %s%s|%s %s\n" -#: plugins/check_http.c:967 +#: plugins/check_http.c:972 #, c-format msgid "HTTP CRITICAL - string not found%s|%s %s\n" msgstr "HTTP CRITICAL - Text nicht gefunden%s|%s %s\n" -#: plugins/check_http.c:985 +#: plugins/check_http.c:990 #, fuzzy msgid "pattern not found" msgstr "CRITICAL - Muster nicht gefunden%s|%s %s\n" -#: plugins/check_http.c:987 +#: plugins/check_http.c:992 msgid "pattern found" msgstr "" -#: plugins/check_http.c:997 +#: plugins/check_http.c:1002 #, c-format msgid "HTTP CRITICAL - Execute Error: %s\n" msgstr "HTTP CRITICAL - Fehler: %s\n" -#: plugins/check_http.c:1006 +#: plugins/check_http.c:1011 #, fuzzy, c-format msgid "HTTP WARNING: page size %d too large%s|%s\n" msgstr "HTTP WARNING: Seitengröße %d zu klein%s|%s\n" -#: plugins/check_http.c:1010 +#: plugins/check_http.c:1015 #, c-format msgid "HTTP WARNING: page size %d too small%s|%s\n" msgstr "HTTP WARNING: Seitengröße %d zu klein%s|%s\n" -#: plugins/check_http.c:1015 +#: plugins/check_http.c:1020 #, fuzzy, c-format msgid "HTTP OK %s - %d bytes in %.3f seconds %s|%s %s\n" msgstr "HTTP OK %s - %.3f Sekunde Antwortzeit %s%s|%s %s\n" -#: plugins/check_http.c:1048 +#: plugins/check_http.c:1053 msgid "HTTP UNKNOWN - Could not allocate addr\n" msgstr "HTTP UNKNOWN - Konnte addr nicht zuweisen\n" -#: plugins/check_http.c:1052 +#: plugins/check_http.c:1057 msgid "HTTP UNKNOWN - Could not allocate url\n" msgstr "HTTP UNKNOWN - Konnte·url·nicht·zuweisen\n" -#: plugins/check_http.c:1061 +#: plugins/check_http.c:1066 #, c-format msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n" msgstr "" -#: plugins/check_http.c:1076 +#: plugins/check_http.c:1081 #, fuzzy, c-format msgid "HTTP UNKNOWN - Empty redirect location%s\n" msgstr "HTTP UNKNOWN - Serverdatum unbekannt\n" -#: plugins/check_http.c:1083 +#: plugins/check_http.c:1088 #, fuzzy msgid "HTTP UNKNOWN - could not allocate url\n" msgstr "HTTP UNKNOWN - Konnte·url·nicht·zuweisen\n" -#: plugins/check_http.c:1123 +#: plugins/check_http.c:1128 #, c-format msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n" msgstr "" -#: plugins/check_http.c:1133 +#: plugins/check_http.c:1138 #, fuzzy, c-format msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n" msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n" -#: plugins/check_http.c:1141 +#: plugins/check_http.c:1146 #, c-format msgid "HTTP WARNING - redirection creates an infinite loop - %s://%s:%d%s%s\n" msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n" -#: plugins/check_http.c:1156 +#: plugins/check_http.c:1161 #, fuzzy, c-format msgid "HTTP UNKNOWN - Could not allocate server_url%s\n" msgstr "HTTP UNKNOWN - Konnte·url·nicht·zuweisen\n" -#: plugins/check_http.c:1162 +#: plugins/check_http.c:1167 #, fuzzy, c-format msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n" msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n" -#: plugins/check_http.c:1167 +#: plugins/check_http.c:1172 #, c-format msgid "Redirection to %s://%s:%d%s\n" msgstr "" -#: plugins/check_http.c:1219 +#: plugins/check_http.c:1224 #, fuzzy msgid "This plugin tests the HTTP service on the specified host. It can test" msgstr "" "Testet den DNS Dienst auf dem angegebenen Host mit dig\n" "\n" -#: plugins/check_http.c:1220 +#: plugins/check_http.c:1225 msgid "normal (http) and secure (https) servers, follow redirects, search for" msgstr "" -#: plugins/check_http.c:1221 +#: plugins/check_http.c:1226 msgid "strings and regular expressions, check connection times, and report on" msgstr "" -#: plugins/check_http.c:1222 +#: plugins/check_http.c:1227 #, fuzzy msgid "certificate expiration times." msgstr "Clientzertifikat benötigt\n" -#: plugins/check_http.c:1228 +#: plugins/check_http.c:1233 #, c-format msgid "NOTE: One or both of -H and -I must be specified" msgstr "" -#: plugins/check_http.c:1235 +#: plugins/check_http.c:1241 msgid "Host name argument for servers using host headers (virtual host)" msgstr "" -#: plugins/check_http.c:1236 +#: plugins/check_http.c:1242 msgid "Append a port to include it in the header (eg: example.com:5000)" msgstr "" -#: plugins/check_http.c:1238 +#: plugins/check_http.c:1244 msgid "" "IP address or name (use numeric address if possible to bypass DNS lookup)." msgstr "" -#: plugins/check_http.c:1240 +#: plugins/check_http.c:1246 msgid "Port number (default: " msgstr "" -#: plugins/check_http.c:1247 +#: plugins/check_http.c:1253 msgid "Connect via SSL. Port defaults to 443" msgstr "" -#: plugins/check_http.c:1249 +#: plugins/check_http.c:1255 msgid "" "Minimum number of days a certificate has to be valid. Port defaults to 443" msgstr "" -#: plugins/check_http.c:1250 +#: plugins/check_http.c:1256 msgid "(when this option is used the url is not checked.)\n" msgstr "" -#: plugins/check_http.c:1254 +#: plugins/check_http.c:1260 msgid "String to expect in first (status) line of server response (default: " msgstr "" -#: plugins/check_http.c:1256 +#: plugins/check_http.c:1262 msgid "" "If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)" msgstr "" -#: plugins/check_http.c:1258 +#: plugins/check_http.c:1264 msgid "String to expect in the content" msgstr "" -#: plugins/check_http.c:1260 +#: plugins/check_http.c:1266 msgid "URL to GET or POST (default: /)" msgstr "" -#: plugins/check_http.c:1262 +#: plugins/check_http.c:1268 msgid "URL encoded http POST data" msgstr "" -#: plugins/check_http.c:1264 +#: plugins/check_http.c:1270 msgid "Don't wait for document body: stop reading after headers." msgstr "" -#: plugins/check_http.c:1265 +#: plugins/check_http.c:1271 msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)" msgstr "" -#: plugins/check_http.c:1267 +#: plugins/check_http.c:1273 msgid "Warn if document is more than SECONDS old. the number can also be of" msgstr "" -#: plugins/check_http.c:1268 +#: plugins/check_http.c:1274 msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days." msgstr "" -#: plugins/check_http.c:1270 +#: plugins/check_http.c:1276 msgid "specify Content-Type header media type when POSTing\n" msgstr "" -#: plugins/check_http.c:1273 +#: plugins/check_http.c:1279 msgid "Allow regex to span newlines (must precede -r or -R)" msgstr "" -#: plugins/check_http.c:1275 +#: plugins/check_http.c:1281 msgid "Search page for regex STRING" msgstr "" -#: plugins/check_http.c:1277 +#: plugins/check_http.c:1283 msgid "Search page for case-insensitive regex STRING" msgstr "" -#: plugins/check_http.c:1279 +#: plugins/check_http.c:1285 msgid "Return CRITICAL if found, OK if not\n" msgstr "" -#: plugins/check_http.c:1282 +#: plugins/check_http.c:1288 msgid "Username:password on sites with basic authentication" msgstr "" -#: plugins/check_http.c:1284 +#: plugins/check_http.c:1290 msgid "String to be sent in http header as \"User Agent\"" msgstr "" -#: plugins/check_http.c:1286 +#: plugins/check_http.c:1292 msgid "" " Any other tags to be sent in http header. Use multiple times for additional " "headers" msgstr "" -#: plugins/check_http.c:1288 +#: plugins/check_http.c:1294 msgid "Wrap output in HTML link (obsoleted by urlize)" msgstr "" -#: plugins/check_http.c:1290 +#: plugins/check_http.c:1296 msgid "How to handle redirected pages" msgstr "" -#: plugins/check_http.c:1292 +#: plugins/check_http.c:1298 msgid "Minimum page size required (bytes) : Maximum page size required (bytes)" msgstr "" -#: plugins/check_http.c:1301 +#: plugins/check_http.c:1308 #, fuzzy msgid "This plugin will attempt to open an HTTP connection with the host." msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_http.c:1302 +#: plugins/check_http.c:1309 msgid "" "Successful connects return STATE_OK, refusals and timeouts return " "STATE_CRITICAL" msgstr "" -#: plugins/check_http.c:1303 +#: plugins/check_http.c:1310 msgid "" "other errors return STATE_UNKNOWN. Successful connects, but incorrect " "reponse" msgstr "" -#: plugins/check_http.c:1304 +#: plugins/check_http.c:1311 msgid "" "messages from the host result in STATE_WARNING return values. If you are" msgstr "" -#: plugins/check_http.c:1305 +#: plugins/check_http.c:1312 msgid "" "checking a virtual server that uses 'host headers' you must supply the FQDN" msgstr "" -#: plugins/check_http.c:1306 +#: plugins/check_http.c:1313 msgid "(fully qualified domain name) as the [host_name] argument." msgstr "" -#: plugins/check_http.c:1309 +#: plugins/check_http.c:1319 msgid "This plugin can also check whether an SSL enabled web server is able to" msgstr "" -#: plugins/check_http.c:1310 +#: plugins/check_http.c:1320 msgid "serve content (optionally within a specified time) or whether the X509 " msgstr "" -#: plugins/check_http.c:1311 +#: plugins/check_http.c:1321 msgid "certificate is still valid for the specified number of days." msgstr "" -#: plugins/check_http.c:1314 +#: plugins/check_http.c:1325 msgid "" "When the 'www.verisign.com' server returns its content within 5 seconds," msgstr "" -#: plugins/check_http.c:1315 +#: plugins/check_http.c:1326 msgid "" "a STATE_OK will be returned. When the server returns its content but exceeds" msgstr "" -#: plugins/check_http.c:1316 +#: plugins/check_http.c:1327 msgid "" "the 5-second threshold, a STATE_WARNING will be returned. When an error " "occurs," msgstr "" -#: plugins/check_http.c:1317 +#: plugins/check_http.c:1328 msgid "a STATE_CRITICAL will be returned." msgstr "" -#: plugins/check_http.c:1320 +#: plugins/check_http.c:1331 msgid "" "When the certificate of 'www.verisign.com' is valid for more than 14 days," msgstr "" -#: plugins/check_http.c:1321 +#: plugins/check_http.c:1332 msgid "" "a STATE_OK is returned. When the certificate is still valid, but for less " "than" msgstr "" -#: plugins/check_http.c:1322 +#: plugins/check_http.c:1333 msgid "" "14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when" msgstr "" -#: plugins/check_http.c:1323 +#: plugins/check_http.c:1334 #, fuzzy msgid "the certificate is expired." msgstr "Clientzertifikat benötigt\n" -#: plugins/check_ldap.c:132 +#: plugins/check_ldap.c:136 #, c-format msgid "Could not connect to the server at port %i\n" msgstr "" -#: plugins/check_ldap.c:141 +#: plugins/check_ldap.c:145 #, c-format msgid "Could not set protocol version %d\n" msgstr "" -#: plugins/check_ldap.c:156 +#: plugins/check_ldap.c:160 #, fuzzy, c-format msgid "Could not init TLS at port %i!\n" msgstr "Konnte stderr nicht öffnen für: %s\n" -#: plugins/check_ldap.c:160 +#: plugins/check_ldap.c:164 #, c-format msgid "TLS not supported by the libraries!\n" msgstr "" -#: plugins/check_ldap.c:180 +#: plugins/check_ldap.c:184 #, fuzzy, c-format msgid "Could not init startTLS at port %i!\n" msgstr "Konnte stderr nicht öffnen für: %s\n" -#: plugins/check_ldap.c:184 +#: plugins/check_ldap.c:188 #, c-format msgid "startTLS not supported by the library, needs LDAPv3!\n" msgstr "" -#: plugins/check_ldap.c:194 +#: plugins/check_ldap.c:198 #, c-format msgid "Could not bind to the ldap-server\n" msgstr "" -#: plugins/check_ldap.c:203 +#: plugins/check_ldap.c:207 #, c-format msgid "Could not search/find objectclasses in %s\n" msgstr "" -#: plugins/check_ldap.c:226 +#: plugins/check_ldap.c:230 #, c-format msgid "LDAP %s - %.3f seconds response time|%s\n" msgstr "" -#: plugins/check_ldap.c:338 plugins/check_ldap.c:345 +#: plugins/check_ldap.c:342 plugins/check_ldap.c:349 #, c-format msgid "%s cannot be combined with %s" msgstr "" -#: plugins/check_ldap.c:351 plugins/check_ping.c:241 +#: plugins/check_ldap.c:355 plugins/check_ping.c:250 msgid "IPv6 support not available\n" msgstr "" -#: plugins/check_ldap.c:374 +#: plugins/check_ldap.c:378 msgid "Please specify the host name\n" msgstr "" -#: plugins/check_ldap.c:377 +#: plugins/check_ldap.c:381 msgid "Please specify the LDAP base\n" msgstr "" -#: plugins/check_ldap.c:405 +#: plugins/check_ldap.c:410 msgid "ldap attribute to search (default: \"(objectclass=*)\"" msgstr "" -#: plugins/check_ldap.c:407 +#: plugins/check_ldap.c:412 msgid "ldap base (eg. ou=my unit, o=my org, c=at" msgstr "" -#: plugins/check_ldap.c:409 +#: plugins/check_ldap.c:414 msgid "ldap bind DN (if required)" msgstr "" -#: plugins/check_ldap.c:411 +#: plugins/check_ldap.c:416 msgid "ldap password (if required)" msgstr "" -#: plugins/check_ldap.c:413 +#: plugins/check_ldap.c:418 msgid "use starttls mechanism introduced in protocol version 3" msgstr "" -#: plugins/check_ldap.c:415 -#, c-format -msgid "use ldaps (ldap v2 ssl method). this also sets the default port to %s" +#: plugins/check_ldap.c:420 +msgid "use ldaps (ldap v2 ssl method). this also sets the default port to" msgstr "" -#: plugins/check_ldap.c:419 +#: plugins/check_ldap.c:424 msgid "use ldap protocol version 2" msgstr "" -#: plugins/check_ldap.c:421 +#: plugins/check_ldap.c:426 msgid "use ldap protocol version 3" msgstr "" -#: plugins/check_ldap.c:431 -msgid "Note:" +#: plugins/check_ldap.c:427 +msgid "default protocol version:" msgstr "" -#: plugins/check_ldap.c:432 +#: plugins/check_ldap.c:438 msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be" msgstr "" -#: plugins/check_ldap.c:433 +#: plugins/check_ldap.c:439 #, c-format msgid "" -"implied (using default port %i) unless --port=636 is specified. In that case " -"%s" +" implied (using default port %i) unless --port=636 is specified. In that " +"case\n" msgstr "" -#: plugins/check_ldap.c:434 +#: plugins/check_ldap.c:440 msgid "'SSL on connect' will be used no matter how the plugin was called." msgstr "" -#: plugins/check_ldap.c:435 +#: plugins/check_ldap.c:441 msgid "" "This detection is deprecated, please use 'check_ldap' with the '--starttls' " "or '--ssl' flags" msgstr "" -#: plugins/check_ldap.c:436 +#: plugins/check_ldap.c:442 msgid "to define the behaviour explicitly instead." msgstr "" -#: plugins/check_load.c:94 +#: plugins/check_load.c:91 msgid "Warning threshold must be float or float triplet!\n" msgstr "" -#: plugins/check_load.c:136 plugins/check_load.c:152 +#: plugins/check_load.c:136 plugins/check_load.c:152 plugins/check_procs.c:176 #, c-format msgid "Error opening %s\n" msgstr "" @@ -1671,19 +1698,19 @@ msgstr "" msgid "This plugin tests the current system load average." msgstr "" -#: plugins/check_load.c:315 +#: plugins/check_load.c:316 msgid "Exit with WARNING status if load average exceeds WLOADn" msgstr "" -#: plugins/check_load.c:317 +#: plugins/check_load.c:318 msgid "Exit with CRITICAL status if load average exceed CLOADn" msgstr "" -#: plugins/check_load.c:318 +#: plugins/check_load.c:319 msgid "the load average format is the same used by \"uptime\" and \"w\"" msgstr "" -#: plugins/check_load.c:320 +#: plugins/check_load.c:321 msgid "Divide the load averages by the number of CPUs (when possible)" msgstr "" @@ -1745,109 +1772,108 @@ msgstr "" msgid "two variables recorded in an MRTG log file." msgstr "Konnte MRTG Logfile nicht öffnen" -#: plugins/check_mrtg.c:335 +#: plugins/check_mrtg.c:336 msgid "The MRTG log file containing the data you want to monitor" msgstr "" -#: plugins/check_mrtg.c:337 +#: plugins/check_mrtg.c:338 msgid "Minutes before MRTG data is considered to be too old" msgstr "" -#: plugins/check_mrtg.c:339 +#: plugins/check_mrtg.c:340 msgid "Should we check average or maximum values?" msgstr "" -#: plugins/check_mrtg.c:341 +#: plugins/check_mrtg.c:342 msgid "Which variable set should we inspect? (1 or 2)" msgstr "" -#: plugins/check_mrtg.c:343 +#: plugins/check_mrtg.c:344 msgid "Threshold value for data to result in WARNING status" msgstr "" -#: plugins/check_mrtg.c:345 +#: plugins/check_mrtg.c:346 msgid "Threshold value for data to result in CRITICAL status" msgstr "" -#: plugins/check_mrtg.c:347 +#: plugins/check_mrtg.c:348 msgid "Type label for data (Examples: Conns, \"Processor Load\", In, Out)" msgstr "" -#: plugins/check_mrtg.c:349 +#: plugins/check_mrtg.c:350 msgid "Option units label for data (Example: Packets/Sec, Errors/Sec," msgstr "" -#: plugins/check_mrtg.c:350 +#: plugins/check_mrtg.c:351 #, c-format msgid "\"Bytes Per Second\", \"%% Utilization\")" msgstr "" -#: plugins/check_mrtg.c:352 +#: plugins/check_mrtg.c:354 msgid "" "If the value exceeds the threshold, a WARNING status is returned. If" msgstr "" -#: plugins/check_mrtg.c:353 +#: plugins/check_mrtg.c:355 msgid "" "the value exceeds the threshold, a CRITICAL status is returned. If" msgstr "" -#: plugins/check_mrtg.c:354 +#: plugins/check_mrtg.c:356 msgid "the data in the log file is older than old, a WARNING" msgstr "" -#: plugins/check_mrtg.c:355 -msgid "status is returned and a warning message is printed." -msgstr "" - #: plugins/check_mrtg.c:357 -msgid "" -"This plugin is useful for monitoring MRTG data that does not correspond to" -msgstr "" - -#: plugins/check_mrtg.c:358 -msgid "" -"bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth)." -msgstr "" - -#: plugins/check_mrtg.c:359 -msgid "" -"It can be used to monitor any kind of data that MRTG is monitoring - errors," +msgid "status is returned and a warning message is printed." msgstr "" #: plugins/check_mrtg.c:360 msgid "" -"packets/sec, etc. I use MRTG in conjuction with the Novell NLM that allows" +"This plugin is useful for monitoring MRTG data that does not correspond to" msgstr "" #: plugins/check_mrtg.c:361 msgid "" -"me to track processor utilization, user connections, drive space, etc and" +"bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth)." msgstr "" #: plugins/check_mrtg.c:362 -msgid "this plugin works well for monitoring that kind of data as well." +msgid "" +"It can be used to monitor any kind of data that MRTG is monitoring - errors," +msgstr "" + +#: plugins/check_mrtg.c:363 +msgid "" +"packets/sec, etc. I use MRTG in conjuction with the Novell NLM that allows" +msgstr "" + +#: plugins/check_mrtg.c:364 +msgid "" +"me to track processor utilization, user connections, drive space, etc and" msgstr "" #: plugins/check_mrtg.c:365 +msgid "this plugin works well for monitoring that kind of data as well." +msgstr "" + +#: plugins/check_mrtg.c:368 msgid "" "- This plugin only monitors one of the two variables stored in the MRTG log" msgstr "" -#: plugins/check_mrtg.c:366 -msgid " file. If you want to monitor both values you will have to define two" +#: plugins/check_mrtg.c:369 +msgid "file. If you want to monitor both values you will have to define two" msgstr "" -#: plugins/check_mrtg.c:367 -msgid "" -" commands with different values for the argument. Of course," +#: plugins/check_mrtg.c:370 +msgid "commands with different values for the argument. Of course," msgstr "" -#: plugins/check_mrtg.c:368 +#: plugins/check_mrtg.c:371 msgid "you can always hack the code to make this plugin work for you..." msgstr "" -#: plugins/check_mrtg.c:369 +#: plugins/check_mrtg.c:372 msgid "" "- MRTG stands for the Multi Router Traffic Grapher. It can be downloaded " "from" @@ -1896,178 +1922,187 @@ msgstr "" msgid "the or thresholds (in Bytes/sec), a WARNING status results." msgstr "" -#: plugins/check_mrtgtraf.c:355 +#: plugins/check_mrtgtraf.c:356 msgid "File to read log from" msgstr "" -#: plugins/check_mrtgtraf.c:357 +#: plugins/check_mrtgtraf.c:358 msgid "Minutes after which log expires" msgstr "" -#: plugins/check_mrtgtraf.c:359 +#: plugins/check_mrtgtraf.c:360 msgid "Test average or maximum" msgstr "" -#: plugins/check_mrtgtraf.c:361 +#: plugins/check_mrtgtraf.c:362 #, fuzzy msgid "Warning threshold pair ," msgstr "Warning threshold Integer sein" -#: plugins/check_mrtgtraf.c:363 +#: plugins/check_mrtgtraf.c:364 #, fuzzy msgid "Critical threshold pair ," msgstr "Critical threshold muss ein Integer sein" -#: plugins/check_mrtgtraf.c:366 +#: plugins/check_mrtgtraf.c:368 msgid "" "- MRTG stands for Multi Router Traffic Grapher. It can be downloaded from" msgstr "" -#: plugins/check_mrtgtraf.c:368 +#: plugins/check_mrtgtraf.c:370 msgid "- While MRTG can monitor things other than traffic rates, this" msgstr "" -#: plugins/check_mrtgtraf.c:369 +#: plugins/check_mrtgtraf.c:371 msgid " plugin probably won't work with much else without modification." msgstr "" -#: plugins/check_mrtgtraf.c:370 +#: plugins/check_mrtgtraf.c:372 msgid "- The calculated i/o rates are a little off from what MRTG actually" msgstr "" -#: plugins/check_mrtgtraf.c:371 +#: plugins/check_mrtgtraf.c:373 msgid " reports. I'm not sure why this is right now, but will look into it" msgstr "" -#: plugins/check_mrtgtraf.c:372 +#: plugins/check_mrtgtraf.c:374 msgid " for future enhancements of this plugin." msgstr "" -#: plugins/check_mrtgtraf.c:382 +#: plugins/check_mrtgtraf.c:387 #, c-format msgid "Usage" msgstr "" -#: plugins/check_mysql.c:129 +#: plugins/check_mysql.c:130 #, c-format msgid "slave query error: %s\n" msgstr "" -#: plugins/check_mysql.c:136 +#: plugins/check_mysql.c:137 #, c-format msgid "slave store_result error: %s\n" msgstr "" -#: plugins/check_mysql.c:142 +#: plugins/check_mysql.c:143 msgid "No slaves defined" msgstr "" -#: plugins/check_mysql.c:150 +#: plugins/check_mysql.c:151 #, c-format msgid "slave fetch row error: %s\n" msgstr "" -#: plugins/check_mysql.c:155 +#: plugins/check_mysql.c:156 #, c-format msgid "Slave running: %s" msgstr "" -#: plugins/check_mysql.c:373 +#: plugins/check_mysql.c:384 msgid "This program tests connections to a mysql server" msgstr "" -#: plugins/check_mysql.c:384 -msgid "Check database with indicated name" -msgstr "" - -#: plugins/check_mysql.c:386 -msgid "Connect using the indicated username" -msgstr "" - -#: plugins/check_mysql.c:388 -msgid "Use the indicated password to authenticate the connection" -msgstr "" - -#: plugins/check_mysql.c:389 -msgid "==> IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!! <==" -msgstr "" - -#: plugins/check_mysql.c:390 -msgid "Your clear-text password will be visible as a process table entry" -msgstr "" - -#: plugins/check_mysql.c:392 -msgid "Check if the slave thread is running properly." -msgstr "" - -#: plugins/check_mysql.c:394 -msgid "" -"Exit with WARNING status if slave server is more than INTEGER seconds behind " -"master" -msgstr "" - -#: plugins/check_mysql.c:396 -msgid "" -"Exit with CRITICAL status if slave server is more then INTEGER seconds " -"behind master" -msgstr "" - -#: plugins/check_mysql.c:397 -msgid "There are no required arguments. By default, the local database with" +#: plugins/check_mysql.c:395 +msgid "Use the specified socket (has no effect if -H is used)" msgstr "" #: plugins/check_mysql.c:398 -#, c-format -msgid "a server listening on MySQL standard port %d will be checked\n" +msgid "Check database with indicated name" msgstr "" -#: plugins/check_nagios.c:107 +#: plugins/check_mysql.c:400 +msgid "Connect using the indicated username" +msgstr "" + +#: plugins/check_mysql.c:402 +msgid "Use the indicated password to authenticate the connection" +msgstr "" + +#: plugins/check_mysql.c:403 +msgid "IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!" +msgstr "" + +#: plugins/check_mysql.c:404 +msgid "Your clear-text password could be visible as a process table entry" +msgstr "" + +#: plugins/check_mysql.c:406 +msgid "Check if the slave thread is running properly." +msgstr "" + +#: plugins/check_mysql.c:408 +msgid "Exit with WARNING status if slave server is more than INTEGER seconds" +msgstr "" + +#: plugins/check_mysql.c:409 plugins/check_mysql.c:412 +msgid "behind master" +msgstr "" + +#: plugins/check_mysql.c:411 +msgid "Exit with CRITICAL status if slave server is more then INTEGER seconds" +msgstr "" + +#: plugins/check_mysql.c:415 +msgid "" +"There are no required arguments. By default, the local database is checked" +msgstr "" + +#: plugins/check_mysql.c:416 +msgid "" +"using the default unix socket. You can force TCP on localhost by using an" +msgstr "" + +#: plugins/check_mysql.c:417 +msgid "IP address or FQDN ('localhost' will use the socket as well)." +msgstr "" + +#: plugins/check_nagios.c:108 msgid "Cannot open status log for reading!" msgstr "" -#: plugins/check_nagios.c:157 +#: plugins/check_nagios.c:158 #, c-format msgid "Found process: %s %s\n" msgstr "" -#: plugins/check_nagios.c:171 +#: plugins/check_nagios.c:172 msgid "Could not locate a running Nagios process!" msgstr "" -#: plugins/check_nagios.c:175 +#: plugins/check_nagios.c:176 msgid "Cannot parse Nagios log file for valid time" msgstr "" -#: plugins/check_nagios.c:186 plugins/check_procs.c:307 +#: plugins/check_nagios.c:187 plugins/check_procs.c:330 #, c-format msgid "%d process" msgid_plural "%d processes" msgstr[0] "" msgstr[1] "" -#: plugins/check_nagios.c:189 +#: plugins/check_nagios.c:190 #, c-format msgid "status log updated %d second ago" msgid_plural "status log updated %d seconds ago" msgstr[0] "" msgstr[1] "" -#: plugins/check_nagios.c:226 plugins/check_nagios.c:255 +#: plugins/check_nagios.c:227 plugins/check_nagios.c:256 #, fuzzy msgid "Expiration time must be an integer (seconds)\n" msgstr "skip lines muss ein Integer sein" -#: plugins/check_nagios.c:267 +#: plugins/check_nagios.c:268 #, fuzzy msgid "You must provide the status_log\n" msgstr "%s: Hostname muss angegeben werden\n" -#: plugins/check_nagios.c:270 +#: plugins/check_nagios.c:271 #, fuzzy msgid "You must provide a process string\n" msgstr "%s: Hostname muss angegeben werden\n" -#: plugins/check_nagios.c:284 +#: plugins/check_nagios.c:285 #, fuzzy msgid "" "This plugin checks the status of the Nagios process on the local machine" @@ -2077,453 +2112,521 @@ msgstr "" "unterschritten wird.\n" "\n" -#: plugins/check_nagios.c:285 +#: plugins/check_nagios.c:286 msgid "" "The plugin will check to make sure the Nagios status log is no older than" msgstr "" -#: plugins/check_nagios.c:286 +#: plugins/check_nagios.c:287 msgid "the number of minutes specified by the expires option." msgstr "" -#: plugins/check_nagios.c:287 +#: plugins/check_nagios.c:288 msgid "" "It also checks the process table for a process matching the command argument." msgstr "" -#: plugins/check_nagios.c:296 +#: plugins/check_nagios.c:298 msgid "Name of the log file to check" msgstr "" -#: plugins/check_nagios.c:298 +#: plugins/check_nagios.c:300 msgid "Minutes aging after which logfile is considered stale" msgstr "" -#: plugins/check_nagios.c:300 +#: plugins/check_nagios.c:302 msgid "Substring to search for in process arguments" msgstr "" -#: plugins/check_nt.c:141 +#: plugins/check_nt.c:144 #, c-format msgid "Wrong client version - running: %s, required: %s" msgstr "" -#: plugins/check_nt.c:152 plugins/check_nt.c:212 +#: plugins/check_nt.c:155 plugins/check_nt.c:215 msgid "missing -l parameters" msgstr "" -#: plugins/check_nt.c:154 +#: plugins/check_nt.c:157 msgid "wrong -l parameter." msgstr "" -#: plugins/check_nt.c:158 +#: plugins/check_nt.c:161 msgid "CPU Load" msgstr "" -#: plugins/check_nt.c:181 +#: plugins/check_nt.c:184 #, c-format msgid " %lu%% (%lu min average)" msgstr "" -#: plugins/check_nt.c:183 +#: plugins/check_nt.c:186 #, c-format msgid " '%lu min avg Load'=%lu%%;%lu;%lu;0;100" msgstr "" -#: plugins/check_nt.c:193 +#: plugins/check_nt.c:196 msgid "not enough values for -l parameters" msgstr "" -#: plugins/check_nt.c:205 +#: plugins/check_nt.c:208 #, c-format msgid "System Uptime - %u day(s) %u hour(s) %u minute(s)" msgstr "" -#: plugins/check_nt.c:214 +#: plugins/check_nt.c:217 msgid "wrong -l argument" msgstr "" -#: plugins/check_nt.c:225 -#, c-format -msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)" -msgstr "" - #: plugins/check_nt.c:228 #, c-format +msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)" +msgstr "" + +#: plugins/check_nt.c:231 +#, c-format msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f" msgstr "" -#: plugins/check_nt.c:242 +#: plugins/check_nt.c:245 msgid "Free disk space : Invalid drive " msgstr "" -#: plugins/check_nt.c:252 +#: plugins/check_nt.c:255 msgid "No service/process specified" msgstr "" -#: plugins/check_nt.c:276 +#: plugins/check_nt.c:279 #, c-format msgid "" "Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)" msgstr "" -#: plugins/check_nt.c:279 +#: plugins/check_nt.c:282 #, c-format msgid "'Memory usage'=%.2fMb;%.2f;%.2f;0.00;%.2f" msgstr "" -#: plugins/check_nt.c:315 plugins/check_nt.c:401 +#: plugins/check_nt.c:318 plugins/check_nt.c:404 plugins/check_nt.c:434 msgid "No counter specified" msgstr "" -#: plugins/check_nt.c:348 +#: plugins/check_nt.c:351 msgid "Minimum value contains non-numbers" msgstr "" -#: plugins/check_nt.c:352 +#: plugins/check_nt.c:355 msgid "Maximum value contains non-numbers" msgstr "" -#: plugins/check_nt.c:359 +#: plugins/check_nt.c:362 msgid "No unit counter specified" msgstr "" -#: plugins/check_nt.c:431 +#: plugins/check_nt.c:449 msgid "Please specify a variable to check" msgstr "" -#: plugins/check_nt.c:513 +#: plugins/check_nt.c:530 #, fuzzy msgid "Server port must be an integer\n" msgstr "skip lines muss ein Integer sein" -#: plugins/check_nt.c:566 +#: plugins/check_nt.c:585 msgid "None" msgstr "" -#: plugins/check_nt.c:579 +#: plugins/check_nt.c:598 msgid "could not fetch information from server\n" msgstr "" -#: plugins/check_nt.c:623 +#: plugins/check_nt.c:642 msgid "This plugin collects data from the NSClient service running on a" msgstr "" -#: plugins/check_nt.c:624 +#: plugins/check_nt.c:643 msgid "Windows NT/2000/XP/2003 server." msgstr "" -#: plugins/check_nt.c:634 +#: plugins/check_nt.c:654 msgid "Name of the host to check" msgstr "" -#: plugins/check_nt.c:636 +#: plugins/check_nt.c:656 #, fuzzy msgid "Optional port number (default: " msgstr "Ungültige Portnummer" -#: plugins/check_nt.c:639 +#: plugins/check_nt.c:659 msgid "Password needed for the request" msgstr "" -#: plugins/check_nt.c:641 plugins/check_nwstat.c:1664 -#: plugins/check_overcr.c:435 +#: plugins/check_nt.c:661 plugins/check_nwstat.c:1665 +#: plugins/check_overcr.c:436 msgid "Threshold which will result in a warning status" msgstr "" -#: plugins/check_nt.c:643 plugins/check_nwstat.c:1666 -#: plugins/check_overcr.c:437 +#: plugins/check_nt.c:663 plugins/check_nwstat.c:1667 +#: plugins/check_overcr.c:438 msgid "Threshold which will result in a critical status" msgstr "" -#: plugins/check_nt.c:645 +#: plugins/check_nt.c:665 msgid "Seconds before connection attempt times out (default: " msgstr "" -#: plugins/check_nt.c:648 +#: plugins/check_nt.c:668 msgid "Print this help screen" msgstr "" -#: plugins/check_nt.c:650 +#: plugins/check_nt.c:670 msgid "Print version information" msgstr "" -#: plugins/check_nt.c:652 +#: plugins/check_nt.c:672 msgid "Variable to check" msgstr "" -#: plugins/check_nt.c:653 +#: plugins/check_nt.c:673 msgid "Valid variables are:" msgstr "" -#: plugins/check_nt.c:655 +#: plugins/check_nt.c:675 msgid "Get the NSClient version" msgstr "" -#: plugins/check_nt.c:656 +#: plugins/check_nt.c:676 msgid "If -l is specified, will return warning if versions differ." msgstr "" -#: plugins/check_nt.c:658 +#: plugins/check_nt.c:678 msgid "Average CPU load on last x minutes." msgstr "" -#: plugins/check_nt.c:659 +#: plugins/check_nt.c:679 msgid "Request a -l parameter with the following syntax:" msgstr "" -#: plugins/check_nt.c:660 +#: plugins/check_nt.c:680 msgid "-l ,,." msgstr "" -#: plugins/check_nt.c:661 +#: plugins/check_nt.c:681 msgid " should be less than 24*60." msgstr "" -#: plugins/check_nt.c:662 +#: plugins/check_nt.c:682 msgid "" "Thresholds are percentage and up to 10 requests can be done in one shot." msgstr "" -#: plugins/check_nt.c:665 +#: plugins/check_nt.c:685 msgid "Get the uptime of the machine." msgstr "" -#: plugins/check_nt.c:666 +#: plugins/check_nt.c:686 msgid "No specific parameters. No warning or critical threshold" msgstr "" -#: plugins/check_nt.c:668 +#: plugins/check_nt.c:688 msgid "Size and percentage of disk use." msgstr "" -#: plugins/check_nt.c:669 +#: plugins/check_nt.c:689 msgid "Request a -l parameter containing the drive letter only." msgstr "" -#: plugins/check_nt.c:670 plugins/check_nt.c:673 +#: plugins/check_nt.c:690 plugins/check_nt.c:693 msgid "Warning and critical thresholds can be specified with -w and -c." msgstr "" -#: plugins/check_nt.c:672 +#: plugins/check_nt.c:692 msgid "Memory use." msgstr "" -#: plugins/check_nt.c:675 +#: plugins/check_nt.c:695 msgid "Check the state of one or several services." msgstr "" -#: plugins/check_nt.c:676 plugins/check_nt.c:685 +#: plugins/check_nt.c:696 plugins/check_nt.c:705 msgid "Request a -l parameters with the following syntax:" msgstr "" -#: plugins/check_nt.c:677 +#: plugins/check_nt.c:697 msgid "-l ,,,..." msgstr "" -#: plugins/check_nt.c:678 +#: plugins/check_nt.c:698 msgid "You can specify -d SHOWALL in case you want to see working services" msgstr "" -#: plugins/check_nt.c:679 +#: plugins/check_nt.c:699 msgid "in the returned string." msgstr "" -#: plugins/check_nt.c:681 +#: plugins/check_nt.c:701 msgid "Check if one or several process are running." msgstr "" -#: plugins/check_nt.c:682 +#: plugins/check_nt.c:702 msgid "Same syntax as SERVICESTATE." msgstr "" -#: plugins/check_nt.c:684 +#: plugins/check_nt.c:704 msgid "Check any performance counter of Windows NT/2000." msgstr "" -#: plugins/check_nt.c:686 +#: plugins/check_nt.c:706 msgid "-l \"\\\\\\\\counter\",\"" msgstr "" -#: plugins/check_nt.c:687 +#: plugins/check_nt.c:707 msgid "The parameter is optional and is given to a printf " msgstr "" -#: plugins/check_nt.c:688 +#: plugins/check_nt.c:708 msgid "output command which requires a float parameter." msgstr "" -#: plugins/check_nt.c:689 +#: plugins/check_nt.c:709 #, c-format msgid "If does not include \"%%\", it is used as a label." msgstr "" -#: plugins/check_nt.c:690 +#: plugins/check_nt.c:710 plugins/check_nt.c:725 msgid "Some examples:" msgstr "" -#: plugins/check_nt.c:694 +#: plugins/check_nt.c:714 +msgid "Check any performance counter object of Windows NT/2000." +msgstr "" + +#: plugins/check_nt.c:715 +msgid "" +"Syntax: check_nt -H -p -v INSTANCES -l " +msgstr "" + +#: plugins/check_nt.c:716 +msgid " is a Windows Perfmon Counter object (eg. Process)," +msgstr "" + +#: plugins/check_nt.c:717 +msgid "if it is two words, it should be enclosed in quotes" +msgstr "" + +#: plugins/check_nt.c:718 +msgid "The returned results will be a comma-separated list of instances on " +msgstr "" + +#: plugins/check_nt.c:719 +msgid " the selected computer for that object." +msgstr "" + +#: plugins/check_nt.c:720 +msgid "" +"The purpose of this is to be run from command line to determine what " +"instances" +msgstr "" + +#: plugins/check_nt.c:721 +msgid "" +" are available for monitoring without having to log onto the Windows server" +msgstr "" + +#: plugins/check_nt.c:722 +msgid " to run Perfmon directly." +msgstr "" + +#: plugins/check_nt.c:723 +msgid "It can also be used in scripts that automatically create Nagios service" +msgstr "" + +#: plugins/check_nt.c:724 +msgid " configuration files." +msgstr "" + +#: plugins/check_nt.c:726 +msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process" +msgstr "" + +#: plugins/check_nt.c:729 msgid "" "- The NSClient service should be running on the server to get any information" msgstr "" -#: plugins/check_nt.c:696 +#: plugins/check_nt.c:731 msgid "- Critical thresholds should be lower than warning thresholds" msgstr "" -#: plugins/check_nt.c:697 +#: plugins/check_nt.c:732 msgid "- Default port 1248 is sometimes in use by other services. The error" msgstr "" -#: plugins/check_nt.c:698 +#: plugins/check_nt.c:733 msgid "" "output when this happens contains \"Cannot map xxxxx to protocol number\"." msgstr "" -#: plugins/check_nt.c:699 +#: plugins/check_nt.c:734 msgid "One fix for this is to change the port to something else on check_nt " msgstr "" -#: plugins/check_nt.c:700 +#: plugins/check_nt.c:735 msgid "and on the client service it's connecting to." msgstr "" -#: plugins/check_ntp.c:804 plugins/check_ntp_peer.c:586 -#: plugins/check_ntp_time.c:563 +#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:592 +#: plugins/check_ntp_time.c:566 +#, c-format msgid "NTP CRITICAL:" msgstr "NTP CRITICAL:" -#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:589 -#: plugins/check_ntp_time.c:566 +#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:595 +#: plugins/check_ntp_time.c:569 +#, c-format msgid "NTP WARNING:" msgstr "NTP WARNING:" -#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:592 -#: plugins/check_ntp_time.c:569 +#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:598 +#: plugins/check_ntp_time.c:572 +#, c-format msgid "NTP OK:" msgstr "NTP OK:" -#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:595 -#: plugins/check_ntp_time.c:572 +#: plugins/check_ntp.c:816 plugins/check_ntp_peer.c:601 +#: plugins/check_ntp_time.c:575 +#, c-format msgid "NTP UNKNOWN:" msgstr "NTP UNKNOWN:" -#: plugins/check_ntp.c:817 plugins/check_ntp_peer.c:602 -#: plugins/check_ntp_time.c:576 +#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:610 +#: plugins/check_ntp_time.c:579 msgid "Offset unknown" msgstr "" -#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:605 -#: plugins/check_ntp_time.c:579 +#: plugins/check_ntp.c:823 plugins/check_ntp_peer.c:613 +#: plugins/check_ntp_time.c:582 msgid "Offset" msgstr "" -#: plugins/check_ntp.c:841 plugins/check_ntp_peer.c:630 +#: plugins/check_ntp.c:844 plugins/check_ntp_peer.c:638 #, 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:849 plugins/check_ntp_peer.c:640 -#: plugins/check_ntp_time.c:604 +#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:649 +#: plugins/check_ntp_time.c:608 msgid "Offset to result in warning status (seconds)" msgstr "" -#: plugins/check_ntp.c:851 plugins/check_ntp_peer.c:642 -#: plugins/check_ntp_time.c:606 +#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:651 +#: plugins/check_ntp_time.c:610 msgid "Offset to result in critical status (seconds)" msgstr "" -#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:648 +#: plugins/check_ntp.c:857 plugins/check_ntp_peer.c:657 #, fuzzy msgid "Warning threshold for jitter" msgstr "Warning threshold Integer sein" -#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:650 +#: plugins/check_ntp.c:859 plugins/check_ntp_peer.c:659 #, fuzzy msgid "Critical threshold for jitter" msgstr "Critical threshold muss ein Integer sein" -#: plugins/check_ntp.c:867 +#: plugins/check_ntp.c:873 msgid "Normal offset check:" msgstr "" -#: plugins/check_ntp.c:869 plugins/check_ntp_peer.c:671 +#: plugins/check_ntp.c:876 plugins/check_ntp_peer.c:684 msgid "" "Check jitter too, avoiding critical notifications if jitter isn't available" msgstr "" -#: plugins/check_ntp.c:870 plugins/check_ntp_peer.c:672 +#: plugins/check_ntp.c:877 plugins/check_ntp_peer.c:685 msgid "(See Notes above for more details on thresholds formats):" msgstr "" -#: plugins/check_ntp_peer.c:599 +#: plugins/check_ntp.c:882 plugins/check_ntp.c:889 +msgid "WARNING: check_ntp is deprecated. Please use check_ntp_peer or" +msgstr "" + +#: plugins/check_ntp.c:883 plugins/check_ntp.c:890 +msgid "check_ntp_time istead." +msgstr "" + +#: plugins/check_ntp_peer.c:605 msgid "Server not synchronized" msgstr "" -#: plugins/check_ntp_peer.c:638 +#: plugins/check_ntp_peer.c:607 +msgid "Server has the LI_ALARM bit set" +msgstr "" + +#: plugins/check_ntp_peer.c:647 msgid "" "Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized" msgstr "" -#: plugins/check_ntp_peer.c:644 +#: plugins/check_ntp_peer.c:653 #, fuzzy msgid "Warning threshold for stratum" msgstr "Warning threshold Integer sein" -#: plugins/check_ntp_peer.c:646 +#: plugins/check_ntp_peer.c:655 #, fuzzy msgid "Critical threshold for stratum" msgstr "Critical threshold muss ein Integer sein" -#: plugins/check_ntp_peer.c:656 +#: plugins/check_ntp_peer.c:664 msgid "This plugin checks an NTP server independent of any commandline" msgstr "" -#: plugins/check_ntp_peer.c:657 +#: plugins/check_ntp_peer.c:665 msgid "programs or external libraries." msgstr "" -#: plugins/check_ntp_peer.c:658 +#: plugins/check_ntp_peer.c:668 #, fuzzy msgid "Use this plugin to check the health of an NTP server. It supports" msgstr "" "Testet den DNS Dienst auf dem angegebenen Host mit dig\n" "\n" -#: plugins/check_ntp_peer.c:659 +#: plugins/check_ntp_peer.c:669 msgid "checking the offset with the sync peer, the jitter and stratum. This" msgstr "" -#: plugins/check_ntp_peer.c:660 +#: plugins/check_ntp_peer.c:670 msgid "plugin will not check the clock offset between the local host and NTP" msgstr "" -#: plugins/check_ntp_peer.c:661 +#: plugins/check_ntp_peer.c:671 msgid "server; please use check_ntp_time for that purpose." msgstr "" -#: plugins/check_ntp_peer.c:669 +#: plugins/check_ntp_peer.c:681 msgid "Simple NTP server check:" msgstr "" -#: plugins/check_ntp_peer.c:674 +#: plugins/check_ntp_peer.c:688 msgid "Check only stratum:" msgstr "" -#: plugins/check_ntp_time.c:594 +#: plugins/check_ntp_time.c:597 #, fuzzy msgid "This plugin checks the clock offset with the ntp server" msgstr "" "Testet den DNS Dienst auf dem angegebenen Host mit dig\n" "\n" -#: plugins/check_ntp_time.c:602 +#: plugins/check_ntp_time.c:606 msgid "Returns UNKNOWN instead of CRITICAL if offset cannot be found" msgstr "" -#: plugins/check_ntp_time.c:612 +#: plugins/check_ntp_time.c:615 #, fuzzy msgid "This plugin checks the clock offset between the local host and a" msgstr "" @@ -2532,19 +2635,19 @@ msgstr "" "unterschritten wird.\n" "\n" -#: plugins/check_ntp_time.c:613 +#: plugins/check_ntp_time.c:616 msgid "remote NTP server. It is independent of any commandline programs or" msgstr "" -#: plugins/check_ntp_time.c:614 +#: plugins/check_ntp_time.c:617 msgid "external libraries." msgstr "" -#: plugins/check_ntp_time.c:615 +#: plugins/check_ntp_time.c:621 msgid "If you'd rather want to monitor an NTP server, please use" msgstr "" -#: plugins/check_ntp_time.c:616 +#: plugins/check_ntp_time.c:622 msgid "check_ntp_peer." msgstr "" @@ -2643,15 +2746,17 @@ msgid "disabled" msgstr "" #: plugins/check_nwstat.c:564 -#, fuzzy +#, fuzzy, c-format msgid "CRITICAL - NRM Status is bad!" msgstr "CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden" #: plugins/check_nwstat.c:569 +#, c-format msgid "Warning - NRM Status is suspect!" msgstr "" #: plugins/check_nwstat.c:572 +#, c-format msgid "OK - NRM Status is good!" msgstr "" @@ -2711,10 +2816,12 @@ msgid "%lu current service processes (%lu max)|Processes=%lu;%lu;%lu;0;%lu" msgstr "" #: plugins/check_nwstat.c:908 +#, c-format msgid "CRITICAL - Time not in sync with network!" msgstr "" #: plugins/check_nwstat.c:911 +#, c-format msgid "OK - Time in sync with network!" msgstr "" @@ -2788,216 +2895,216 @@ msgstr "" msgid "Novell server to gather the requested system information." msgstr "" -#: plugins/check_nwstat.c:1617 plugins/check_overcr.c:439 +#: plugins/check_nwstat.c:1618 plugins/check_overcr.c:440 msgid "Variable to check. Valid variables include:" msgstr "" -#: plugins/check_nwstat.c:1618 +#: plugins/check_nwstat.c:1619 msgid "LOAD1 = 1 minute average CPU load" msgstr "" -#: plugins/check_nwstat.c:1619 +#: plugins/check_nwstat.c:1620 msgid "LOAD5 = 5 minute average CPU load" msgstr "" -#: plugins/check_nwstat.c:1620 +#: plugins/check_nwstat.c:1621 msgid "LOAD15 = 15 minute average CPU load" msgstr "" -#: plugins/check_nwstat.c:1621 +#: plugins/check_nwstat.c:1622 msgid "CSPROCS = number of current service processes (NW 5.x only)" msgstr "" -#: plugins/check_nwstat.c:1622 +#: plugins/check_nwstat.c:1623 msgid "ABENDS = number of abended threads (NW 5.x only)" msgstr "" -#: plugins/check_nwstat.c:1623 +#: plugins/check_nwstat.c:1624 msgid "UPTIME = server uptime" msgstr "" -#: plugins/check_nwstat.c:1624 +#: plugins/check_nwstat.c:1625 msgid "LTCH = percent long term cache hits" msgstr "" -#: plugins/check_nwstat.c:1625 +#: plugins/check_nwstat.c:1626 msgid "CBUFF = current number of cache buffers" msgstr "" -#: plugins/check_nwstat.c:1626 +#: plugins/check_nwstat.c:1627 msgid "CDBUFF = current number of dirty cache buffers" msgstr "" -#: plugins/check_nwstat.c:1627 +#: plugins/check_nwstat.c:1628 msgid "DCB = dirty cache buffers as a percentage of the total" msgstr "" -#: plugins/check_nwstat.c:1628 +#: plugins/check_nwstat.c:1629 msgid "TCB = dirty cache buffers as a percentage of the original" msgstr "" -#: plugins/check_nwstat.c:1629 +#: plugins/check_nwstat.c:1630 msgid "OFILES = number of open files" msgstr "" -#: plugins/check_nwstat.c:1630 +#: plugins/check_nwstat.c:1631 msgid " VMF = MB of free space on Volume " msgstr "" -#: plugins/check_nwstat.c:1631 +#: plugins/check_nwstat.c:1632 msgid " VMU = MB used space on Volume " msgstr "" -#: plugins/check_nwstat.c:1632 +#: plugins/check_nwstat.c:1633 msgid " VMP = MB of purgeable space on Volume " msgstr "" -#: plugins/check_nwstat.c:1633 +#: plugins/check_nwstat.c:1634 msgid " VPF = percent free space on volume " msgstr "" -#: plugins/check_nwstat.c:1634 +#: plugins/check_nwstat.c:1635 msgid " VKF = KB of free space on volume " msgstr "" -#: plugins/check_nwstat.c:1635 +#: plugins/check_nwstat.c:1636 msgid " VPP = percent purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1636 +#: plugins/check_nwstat.c:1637 msgid " VKP = KB of purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1637 +#: plugins/check_nwstat.c:1638 msgid " VPNP = percent not yet purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1638 +#: plugins/check_nwstat.c:1639 msgid " VKNP = KB of not yet purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1639 +#: plugins/check_nwstat.c:1640 msgid " LRUM = LRU sitting time in minutes" msgstr "" -#: plugins/check_nwstat.c:1640 +#: plugins/check_nwstat.c:1641 msgid " LRUS = LRU sitting time in seconds" msgstr "" -#: plugins/check_nwstat.c:1641 +#: plugins/check_nwstat.c:1642 msgid " DSDB = check to see if DS Database is open" msgstr "" -#: plugins/check_nwstat.c:1642 +#: plugins/check_nwstat.c:1643 msgid " DSVER = NDS version" msgstr "" -#: plugins/check_nwstat.c:1643 +#: plugins/check_nwstat.c:1644 msgid " UPRB = used packet receive buffers" msgstr "" -#: plugins/check_nwstat.c:1644 +#: plugins/check_nwstat.c:1645 msgid " PUPRB = percent (of max) used packet receive buffers" msgstr "" -#: plugins/check_nwstat.c:1645 +#: plugins/check_nwstat.c:1646 msgid " SAPENTRIES = number of entries in the SAP table" msgstr "" -#: plugins/check_nwstat.c:1646 +#: plugins/check_nwstat.c:1647 msgid " SAPENTRIES = number of entries in the SAP table for SAP type " msgstr "" -#: plugins/check_nwstat.c:1647 +#: plugins/check_nwstat.c:1648 msgid " TSYNC = timesync status" msgstr "" -#: plugins/check_nwstat.c:1648 +#: plugins/check_nwstat.c:1649 msgid " LOGINS = check to see if logins are enabled" msgstr "" -#: plugins/check_nwstat.c:1649 +#: plugins/check_nwstat.c:1650 msgid " CONNS = number of currently licensed connections" msgstr "" -#: plugins/check_nwstat.c:1650 +#: plugins/check_nwstat.c:1651 msgid " NRMH\t= NRM Summary Status" msgstr "" -#: plugins/check_nwstat.c:1651 +#: plugins/check_nwstat.c:1652 msgid " NRMP = Returns the current value for a NRM health item" msgstr "" -#: plugins/check_nwstat.c:1652 +#: plugins/check_nwstat.c:1653 msgid " NRMM = Returns the current memory stats from NRM" msgstr "" -#: plugins/check_nwstat.c:1653 +#: plugins/check_nwstat.c:1654 msgid " NRMS = Returns the current Swapfile stats from NRM" msgstr "" -#: plugins/check_nwstat.c:1654 +#: plugins/check_nwstat.c:1655 msgid " NSS1 = Statistics from _Admin:Manage_NSS\\GeneralStats.xml" msgstr "" -#: plugins/check_nwstat.c:1655 +#: plugins/check_nwstat.c:1656 msgid " NSS3 = Statistics from _Admin:Manage_NSS\\NameCache.xml" msgstr "" -#: plugins/check_nwstat.c:1656 +#: plugins/check_nwstat.c:1657 msgid " NSS4 = Statistics from _Admin:Manage_NSS\\FileStats.xml" msgstr "" -#: plugins/check_nwstat.c:1657 +#: plugins/check_nwstat.c:1658 msgid " NSS5 = Statistics from _Admin:Manage_NSS\\ObjectCache.xml" msgstr "" -#: plugins/check_nwstat.c:1658 +#: plugins/check_nwstat.c:1659 msgid " NSS6 = Statistics from _Admin:Manage_NSS\\Thread.xml" msgstr "" -#: plugins/check_nwstat.c:1659 +#: plugins/check_nwstat.c:1660 msgid "" " NSS7 = Statistics from _Admin:Manage_NSS\\AuthorizationCache.xml" msgstr "" -#: plugins/check_nwstat.c:1660 +#: plugins/check_nwstat.c:1661 msgid " NLM: = check if NLM is loaded and report version" msgstr "" -#: plugins/check_nwstat.c:1661 +#: plugins/check_nwstat.c:1662 msgid " (e.g. NLM:TSANDS.NLM)" msgstr "" -#: plugins/check_nwstat.c:1668 +#: plugins/check_nwstat.c:1669 msgid "Include server version string in results" msgstr "" -#: plugins/check_nwstat.c:1674 +#: plugins/check_nwstat.c:1675 msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG" msgstr "" -#: plugins/check_nwstat.c:1675 +#: plugins/check_nwstat.c:1676 msgid "" " extension for NetWare be loaded on the Novell servers you wish to check." msgstr "" -#: plugins/check_nwstat.c:1676 -msgid " (available from http://www.engr.wisc.edu/~drews/mrtg/)" -msgstr "" - #: plugins/check_nwstat.c:1677 -msgid "" -"- Values for critical thresholds should be lower than warning thresholds" +msgid " (available from http://www.engr.wisc.edu/~drews/mrtg/)" msgstr "" #: plugins/check_nwstat.c:1678 msgid "" -" when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, " +"- Values for critical thresholds should be lower than warning thresholds" msgstr "" #: plugins/check_nwstat.c:1679 -msgid " TCB, LRUS and LRUM.\n" +msgid "" +" when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, " +msgstr "" + +#: plugins/check_nwstat.c:1680 +msgid " TCB, LRUS and LRUM." msgstr "" #: plugins/check_overcr.c:127 @@ -3062,159 +3169,163 @@ msgstr "" msgid "remote UNIX server in order to gather the requested system information." msgstr "" -#: plugins/check_overcr.c:440 +#: plugins/check_overcr.c:441 msgid "LOAD1 = 1 minute average CPU load" msgstr "" -#: plugins/check_overcr.c:441 +#: plugins/check_overcr.c:442 msgid "LOAD5 = 5 minute average CPU load" msgstr "" -#: plugins/check_overcr.c:442 +#: plugins/check_overcr.c:443 msgid "LOAD15 = 15 minute average CPU load" msgstr "" -#: plugins/check_overcr.c:443 +#: plugins/check_overcr.c:444 msgid "DPU = percent used disk space on filesystem " msgstr "" -#: plugins/check_overcr.c:444 +#: plugins/check_overcr.c:445 msgid "PROC = number of running processes with name " msgstr "" -#: plugins/check_overcr.c:445 +#: plugins/check_overcr.c:446 msgid "NET = number of active connections on TCP port " msgstr "" -#: plugins/check_overcr.c:446 +#: plugins/check_overcr.c:447 msgid "UPTIME = system uptime in seconds" msgstr "" #: plugins/check_overcr.c:454 +msgid "This plugin requires that Eric Molitors' Over-CR collector daemon be" +msgstr "" + +#: plugins/check_overcr.c:455 +msgid "running on the remote server." +msgstr "" + +#: plugins/check_overcr.c:456 +msgid "Over-CR can be downloaded from http://www.molitor.org/overcr" +msgstr "" + +#: plugins/check_overcr.c:457 +msgid "This plugin was tested with version 0.99.53 of the Over-CR collector" +msgstr "" + +#: plugins/check_overcr.c:461 msgid "" "For the available options, the critical threshold value should always be" msgstr "" -#: plugins/check_overcr.c:455 +#: plugins/check_overcr.c:462 msgid "" "higher than the warning threshold value, EXCEPT with the uptime variable" msgstr "" -#: plugins/check_overcr.c:457 -msgid "This plugin requres that Eric Molitors' Over-CR collector daemon be" -msgstr "" - -#: plugins/check_overcr.c:458 -msgid "running on the remote server." -msgstr "" - -#: plugins/check_overcr.c:460 -msgid "This plugin was tested with version 0.99.53 of the Over-CR collector" -msgstr "" - -#: plugins/check_pgsql.c:173 +#: plugins/check_pgsql.c:174 #, c-format msgid "CRITICAL - no connection to '%s' (%s).\n" msgstr "" -#: plugins/check_pgsql.c:188 +#: plugins/check_pgsql.c:189 #, c-format msgid " %s - database %s (%d sec.)|%s\n" msgstr "" -#: plugins/check_pgsql.c:243 plugins/check_time.c:281 plugins/check_time.c:293 -#: plugins/check_users.c:168 +#: plugins/check_pgsql.c:244 plugins/check_time.c:281 plugins/check_time.c:293 +#: plugins/check_users.c:170 msgid "Critical threshold must be a positive integer" msgstr "Critical threshold muss ein positiver Integer sein" -#: plugins/check_pgsql.c:249 plugins/check_time.c:262 plugins/check_time.c:286 -#: plugins/check_users.c:174 plugins/check_users.c:184 -#: plugins/check_users.c:191 +#: plugins/check_pgsql.c:250 plugins/check_time.c:262 plugins/check_time.c:286 +#: plugins/check_users.c:176 plugins/check_users.c:186 +#: plugins/check_users.c:193 msgid "Warning threshold must be a positive integer" msgstr "Warning threshold muss ein positiver Integer sein" -#: plugins/check_pgsql.c:267 +#: plugins/check_pgsql.c:268 msgid "Database name is not valid" msgstr "" -#: plugins/check_pgsql.c:273 +#: plugins/check_pgsql.c:274 msgid "User name is not valid" msgstr "" -#: plugins/check_pgsql.c:410 +#: plugins/check_pgsql.c:411 #, c-format msgid "Test whether a PostgreSQL Database is accepting connections." msgstr "" -#: plugins/check_pgsql.c:423 +#: plugins/check_pgsql.c:425 msgid "Database to check " msgstr "" -#: plugins/check_pgsql.c:424 +#: plugins/check_pgsql.c:426 #, c-format msgid "(default: %s)" msgstr "" -#: plugins/check_pgsql.c:426 +#: plugins/check_pgsql.c:428 msgid "Login name of user" msgstr "" -#: plugins/check_pgsql.c:428 +#: plugins/check_pgsql.c:430 msgid "Password (BIG SECURITY ISSUE)" msgstr "" -#: plugins/check_pgsql.c:437 -msgid "All parameters are optional." -msgstr "" - -#: plugins/check_pgsql.c:438 -msgid "" -"This plugin tests a PostgreSQL DBMS to determine whether it is active and" -msgstr "" - #: plugins/check_pgsql.c:439 -msgid "accepting queries. In its current operation, it simply connects to the" +msgid "All parameters are optional." msgstr "" #: plugins/check_pgsql.c:440 msgid "" -"specified database, and then disconnects. If no database is specified, it" +"This plugin tests a PostgreSQL DBMS to determine whether it is active and" msgstr "" #: plugins/check_pgsql.c:441 -msgid "" -"connects to the template1 database, which is present in every functioning" +msgid "accepting queries. In its current operation, it simply connects to the" msgstr "" #: plugins/check_pgsql.c:442 -msgid "PostgreSQL DBMS." +msgid "" +"specified database, and then disconnects. If no database is specified, it" msgstr "" #: plugins/check_pgsql.c:443 msgid "" -"The plugin will connect to a local postmaster if no host is specified. To" +"connects to the template1 database, which is present in every functioning" msgstr "" #: plugins/check_pgsql.c:444 -msgid "" -"connect to a remote host, be sure that the remote postmaster accepts TCP/IP" -msgstr "" - -#: plugins/check_pgsql.c:445 -msgid "connections (start the postmaster with the -i option)." +msgid "PostgreSQL DBMS." msgstr "" #: plugins/check_pgsql.c:446 msgid "" -"Typically, the nagios user (unless the --logname option is used) should be" +"The plugin will connect to a local postmaster if no host is specified. To" msgstr "" #: plugins/check_pgsql.c:447 msgid "" -"able to connect to the database without a password. The plugin can also send" +"connect to a remote host, be sure that the remote postmaster accepts TCP/IP" msgstr "" #: plugins/check_pgsql.c:448 +msgid "connections (start the postmaster with the -i option)." +msgstr "" + +#: plugins/check_pgsql.c:450 +msgid "" +"Typically, the nagios user (unless the --logname option is used) should be" +msgstr "" + +#: plugins/check_pgsql.c:451 +msgid "" +"able to connect to the database without a password. The plugin can also send" +msgstr "" + +#: plugins/check_pgsql.c:452 msgid "a password, but no effort is made to obsure or encrypt the password." msgstr "" @@ -3232,390 +3343,386 @@ msgstr "" msgid "PING %s - %sPacket loss = %d%%, RTA = %2.2f ms" msgstr "" -#: plugins/check_ping.c:252 +#: plugins/check_ping.c:261 msgid "Could not realloc() addresses\n" msgstr "" -#: plugins/check_ping.c:267 plugins/check_ping.c:347 +#: plugins/check_ping.c:276 plugins/check_ping.c:356 #, c-format msgid " (%s) must be a non-negative number\n" msgstr "" -#: plugins/check_ping.c:301 +#: plugins/check_ping.c:310 #, c-format msgid " (%s) must be an integer percentage\n" msgstr "" -#: plugins/check_ping.c:312 +#: plugins/check_ping.c:321 #, c-format msgid " (%s) must be an integer percentage\n" msgstr "" -#: plugins/check_ping.c:323 +#: plugins/check_ping.c:332 #, c-format msgid " (%s) must be a non-negative number\n" msgstr "" -#: plugins/check_ping.c:334 +#: plugins/check_ping.c:343 #, c-format msgid " (%s) must be a non-negative number\n" msgstr "" -#: plugins/check_ping.c:367 +#: plugins/check_ping.c:376 #, c-format msgid "" "%s: Warning threshold must be integer or percentage!\n" "\n" msgstr "" -#: plugins/check_ping.c:380 +#: plugins/check_ping.c:389 #, c-format msgid " was not set\n" msgstr "" -#: plugins/check_ping.c:384 +#: plugins/check_ping.c:393 #, c-format msgid " was not set\n" msgstr "" -#: plugins/check_ping.c:388 +#: plugins/check_ping.c:397 #, c-format msgid " was not set\n" msgstr "" -#: plugins/check_ping.c:392 +#: plugins/check_ping.c:401 #, c-format msgid " was not set\n" msgstr "" -#: plugins/check_ping.c:396 +#: plugins/check_ping.c:405 #, c-format msgid " (%f) cannot be larger than (%f)\n" msgstr "" -#: plugins/check_ping.c:400 +#: plugins/check_ping.c:409 #, c-format msgid " (%d) cannot be larger than (%d)\n" msgstr "" -#: plugins/check_ping.c:436 +#: plugins/check_ping.c:445 #, c-format msgid "Cannot open stderr for %s\n" msgstr "" -#: plugins/check_ping.c:485 plugins/check_ping.c:487 +#: plugins/check_ping.c:494 plugins/check_ping.c:496 msgid "System call sent warnings to stderr " msgstr "" -#: plugins/check_ping.c:514 +#: plugins/check_ping.c:523 #, fuzzy, c-format msgid "CRITICAL - Network Unreachable (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:516 +#: plugins/check_ping.c:525 #, c-format msgid "CRITICAL - Host Unreachable (%s)" msgstr "" -#: plugins/check_ping.c:518 +#: plugins/check_ping.c:527 #, fuzzy, c-format msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:520 +#: plugins/check_ping.c:529 #, fuzzy, c-format msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:522 +#: plugins/check_ping.c:531 #, fuzzy, c-format msgid "CRITICAL - Network Prohibited (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:524 +#: plugins/check_ping.c:533 #, fuzzy, c-format msgid "CRITICAL - Host Prohibited (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:526 +#: plugins/check_ping.c:535 #, fuzzy, c-format msgid "CRITICAL - Packet Filtered (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:528 +#: plugins/check_ping.c:537 #, c-format msgid "CRITICAL - Host not found (%s)" msgstr "" -#: plugins/check_ping.c:530 +#: plugins/check_ping.c:539 #, c-format msgid "CRITICAL - Time to live exceeded (%s)" msgstr "" -#: plugins/check_ping.c:537 +#: plugins/check_ping.c:546 msgid "Unable to realloc warn_text" msgstr "" -#: plugins/check_ping.c:554 +#: plugins/check_ping.c:563 #, c-format msgid "Use ping to check connection statistics for a remote host." msgstr "" -#: plugins/check_ping.c:565 +#: plugins/check_ping.c:575 msgid "host to ping" msgstr "" -#: plugins/check_ping.c:571 +#: plugins/check_ping.c:581 msgid "number of ICMP ECHO packets to send" msgstr "" -#: plugins/check_ping.c:572 +#: plugins/check_ping.c:582 #, c-format msgid "(Default: %d)\n" msgstr "" -#: plugins/check_ping.c:574 +#: plugins/check_ping.c:584 msgid "show HTML in the plugin output (obsoleted by urlize)" msgstr "" -#: plugins/check_ping.c:578 +#: plugins/check_ping.c:589 msgid "THRESHOLD is ,% where is the round trip average travel" msgstr "" -#: plugins/check_ping.c:579 +#: plugins/check_ping.c:590 msgid "time (ms) which triggers a WARNING or CRITICAL state, and is the" msgstr "" -#: plugins/check_ping.c:580 +#: plugins/check_ping.c:591 msgid "percentage of packet loss to trigger an alarm state." msgstr "" -#: plugins/check_ping.c:584 +#: plugins/check_ping.c:594 #, fuzzy msgid "" "This plugin uses the ping command to probe the specified host for packet loss" msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_ping.c:585 +#: plugins/check_ping.c:595 msgid "" "(percentage) and round trip average (milliseconds). It can produce HTML " "output" msgstr "" -#: plugins/check_ping.c:586 +#: plugins/check_ping.c:596 msgid "" "linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in" msgstr "" -#: plugins/check_ping.c:587 +#: plugins/check_ping.c:597 msgid "the contrib area of the downloads section at http://www.nagios.org/" msgstr "" -#: plugins/check_procs.c:155 +#: plugins/check_procs.c:162 #, c-format msgid "CMD: %s\n" msgstr "" -#: plugins/check_procs.c:261 +#: plugins/check_procs.c:282 #, c-format msgid "Not parseable: %s" msgstr "" -#: plugins/check_procs.c:270 +#: plugins/check_procs.c:292 #, c-format msgid "System call sent warnings to stderr\n" msgstr "" -#: plugins/check_procs.c:277 +#: plugins/check_procs.c:299 #, c-format msgid "System call returned nonzero status\n" msgstr "" -#: plugins/check_procs.c:282 +#: plugins/check_procs.c:305 #, c-format msgid "Unable to read output\n" msgstr "" -#: plugins/check_procs.c:299 +#: plugins/check_procs.c:322 #, c-format msgid "%d warn out of " msgstr "" -#: plugins/check_procs.c:304 +#: plugins/check_procs.c:327 #, c-format msgid "%d crit, %d warn out of " msgstr "" -#: plugins/check_procs.c:310 +#: plugins/check_procs.c:333 #, c-format msgid " with %s" msgstr "" -#: plugins/check_procs.c:385 +#: plugins/check_procs.c:413 #, fuzzy msgid "Critical Process Count must be an integer!" msgstr "Critical threshold muss ein Integer sein" -#: plugins/check_procs.c:397 +#: plugins/check_procs.c:425 #, fuzzy msgid "Warning Process Count must be an integer!" msgstr "Warning threshold Integer sein" -#: plugins/check_procs.c:405 +#: plugins/check_procs.c:433 #, fuzzy msgid "Parent Process ID must be an integer!" msgstr "Argument für check_dummy muss ein Integer sein" -#: plugins/check_procs.c:411 plugins/check_procs.c:513 +#: plugins/check_procs.c:439 plugins/check_procs.c:553 #, c-format msgid "%s%sSTATE = %s" msgstr "" -#: plugins/check_procs.c:420 -#, fuzzy, c-format -msgid "UID %s was not found" +#: plugins/check_procs.c:448 +#, fuzzy +msgid "UID was not found" msgstr "%s [%s nicht gefunden]" -#: plugins/check_procs.c:426 -#, fuzzy, c-format -msgid "User name %s was not found" +#: plugins/check_procs.c:454 +#, fuzzy +msgid "User name was not found" msgstr "%s [%s nicht gefunden]" -#: plugins/check_procs.c:441 +#: plugins/check_procs.c:469 #, c-format msgid "%s%scommand name '%s'" msgstr "" -#: plugins/check_procs.c:460 +#: plugins/check_procs.c:497 #, fuzzy msgid "RSS must be an integer!" msgstr "skip lines muss ein Integer sein" -#: plugins/check_procs.c:467 +#: plugins/check_procs.c:504 #, fuzzy msgid "VSZ must be an integer!" msgstr "skip lines muss ein Integer sein" -#: plugins/check_procs.c:475 +#: plugins/check_procs.c:512 msgid "PCPU must be a float!" msgstr "" -#: plugins/check_procs.c:499 +#: plugins/check_procs.c:536 msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!" msgstr "" -#: plugins/check_procs.c:532 +#: plugins/check_procs.c:572 #, c-format msgid "wmax (%d) cannot be greater than cmax (%d)\n" msgstr "" -#: plugins/check_procs.c:536 +#: plugins/check_procs.c:576 #, c-format msgid "wmin (%d) cannot be less than cmin (%d)\n" msgstr "" -#: plugins/check_procs.c:673 +#: plugins/check_procs.c:713 msgid "" "Checks all processes and generates WARNING or CRITICAL states if the " "specified" msgstr "" -#: plugins/check_procs.c:674 +#: plugins/check_procs.c:714 msgid "" "metric is outside the required threshold ranges. The metric defaults to " "number" msgstr "" -#: plugins/check_procs.c:675 +#: plugins/check_procs.c:715 msgid "" "of processes. Search filters can be applied to limit the processes to check." msgstr "" -#: plugins/check_procs.c:681 -msgid "Required Arguments:" -msgstr "" - -#: plugins/check_procs.c:683 +#: plugins/check_procs.c:724 msgid "Generate warning state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:685 +#: plugins/check_procs.c:726 msgid "Generate critical state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:687 -msgid "Optional Arguments:" -msgstr "" - -#: plugins/check_procs.c:689 +#: plugins/check_procs.c:728 msgid "Check thresholds against metric. Valid types:" msgstr "" -#: plugins/check_procs.c:690 +#: plugins/check_procs.c:729 msgid "PROCS - number of processes (default)" msgstr "" -#: plugins/check_procs.c:691 +#: plugins/check_procs.c:730 msgid "VSZ - virtual memory size" msgstr "" -#: plugins/check_procs.c:692 +#: plugins/check_procs.c:731 msgid "RSS - resident set memory size" msgstr "" -#: plugins/check_procs.c:693 +#: plugins/check_procs.c:732 msgid "CPU - percentage cpu" msgstr "" -#: plugins/check_procs.c:696 +#: plugins/check_procs.c:735 msgid "ELAPSED - time elapsed in seconds" msgstr "" -#: plugins/check_procs.c:701 +#: plugins/check_procs.c:740 msgid "Extra information. Up to 3 verbosity levels" msgstr "" -#: plugins/check_procs.c:705 +#: plugins/check_procs.c:745 msgid "Only scan for processes that have, in the output of `ps`, one or" msgstr "" -#: plugins/check_procs.c:706 +#: plugins/check_procs.c:746 msgid "more of the status flags you specify (for example R, Z, S, RS," msgstr "" -#: plugins/check_procs.c:707 +#: plugins/check_procs.c:747 msgid "RSZDT, plus others based on the output of your 'ps' command)." msgstr "" -#: plugins/check_procs.c:709 +#: plugins/check_procs.c:749 msgid "Only scan for children of the parent process ID indicated." msgstr "" -#: plugins/check_procs.c:711 +#: plugins/check_procs.c:751 msgid "Only scan for processes with vsz higher than indicated." msgstr "" -#: plugins/check_procs.c:713 +#: plugins/check_procs.c:753 msgid "Only scan for processes with rss higher than indicated." msgstr "" -#: plugins/check_procs.c:715 +#: plugins/check_procs.c:755 msgid "Only scan for processes with pcpu higher than indicated." msgstr "" -#: plugins/check_procs.c:717 +#: plugins/check_procs.c:757 msgid "Only scan for processes with user name or ID indicated." msgstr "" -#: plugins/check_procs.c:719 +#: plugins/check_procs.c:759 msgid "Only scan for processes with args that contain STRING." msgstr "" -#: plugins/check_procs.c:721 +#: plugins/check_procs.c:761 +msgid "Only scan for processes with args that contain the regex STRING." +msgstr "" + +#: plugins/check_procs.c:763 msgid "Only scan for exact matches of COMMAND (without path)." msgstr "" -#: plugins/check_procs.c:723 +#: plugins/check_procs.c:765 #, c-format msgid "" "\n" @@ -3625,7 +3732,7 @@ msgid "" "\n" msgstr "" -#: plugins/check_procs.c:728 +#: plugins/check_procs.c:770 #, c-format msgid "" "This plugin checks the number of currently running processes and\n" @@ -3636,31 +3743,36 @@ msgid "" "\n" msgstr "" -#: plugins/check_procs.c:737 +#: plugins/check_procs.c:785 msgid "Warning if not two processes with command name portsentry." msgstr "" -#: plugins/check_procs.c:738 +#: plugins/check_procs.c:786 msgid "Critical if < 2 or > 1024 processes" msgstr "" -#: plugins/check_procs.c:740 +#: plugins/check_procs.c:788 msgid "Warning alert if > 10 processes with command arguments containing" msgstr "" -#: plugins/check_procs.c:741 +#: plugins/check_procs.c:789 msgid "'/usr/local/bin/perl' and owned by root" msgstr "" -#: plugins/check_procs.c:743 +#: plugins/check_procs.c:791 msgid "Alert if vsz of any processes over 50K or 100K" msgstr "" -#: plugins/check_procs.c:745 +#: plugins/check_procs.c:793 #, c-format msgid "Alert if cpu of any processes over 10%% or 20%%" msgstr "" +#: plugins/check_procs.c:801 +#, c-format +msgid "Usage: " +msgstr "" + #: plugins/check_radius.c:161 msgid "Config file error" msgstr "" @@ -3685,139 +3797,136 @@ msgstr "" msgid "Auth OK" msgstr "" -#: plugins/check_radius.c:278 +#: plugins/check_radius.c:284 msgid "Number of retries must be a positive integer" msgstr "" -#: plugins/check_radius.c:292 +#: plugins/check_radius.c:298 msgid "User not specified" msgstr "" -#: plugins/check_radius.c:294 +#: plugins/check_radius.c:300 msgid "Password not specified" msgstr "" -#: plugins/check_radius.c:296 +#: plugins/check_radius.c:302 msgid "Configuration file not specified" msgstr "" -#: plugins/check_radius.c:314 +#: plugins/check_radius.c:320 msgid "Tests to see if a radius server is accepting connections." msgstr "" -#: plugins/check_radius.c:325 +#: plugins/check_radius.c:332 msgid "The user to authenticate" msgstr "" -#: plugins/check_radius.c:327 +#: plugins/check_radius.c:334 msgid "Password for autentication (SECURITY RISK)" msgstr "" -#: plugins/check_radius.c:329 +#: plugins/check_radius.c:336 msgid "NAS identifier" msgstr "" -#: plugins/check_radius.c:331 +#: plugins/check_radius.c:338 msgid "Configuration file" msgstr "" -#: plugins/check_radius.c:333 +#: plugins/check_radius.c:340 msgid "Response string to expect from the server" msgstr "" -#: plugins/check_radius.c:335 +#: plugins/check_radius.c:342 msgid "Number of times to retry a failed connection" msgstr "" -#: plugins/check_radius.c:339 +#: plugins/check_radius.c:347 #, fuzzy msgid "" "This plugin tests a radius server to see if it is accepting connections." msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_radius.c:340 +#: plugins/check_radius.c:348 msgid "" "The server to test must be specified in the invocation, as well as a user" msgstr "" -#: plugins/check_radius.c:341 +#: plugins/check_radius.c:349 msgid "" "name and password. A configuration file may also be present. The format of" msgstr "" -#: plugins/check_radius.c:342 +#: plugins/check_radius.c:350 msgid "" "the configuration file is described in the radiusclient library sources." msgstr "" -#: plugins/check_radius.c:343 +#: plugins/check_radius.c:351 msgid "The password option presents a substantial security issue because the" msgstr "" -#: plugins/check_radius.c:344 -msgid "password can be determined by careful watching of the command line in" +#: plugins/check_radius.c:352 +msgid "" +"password can possibly be determined by careful watching of the command line" msgstr "" -#: plugins/check_radius.c:345 -msgid "a process listing. This risk is exacerbated because nagios will" +#: plugins/check_radius.c:353 +msgid "in a process listing. This risk is exacerbated because nagios will" msgstr "" -#: plugins/check_radius.c:346 -msgid "run the plugin at regular prdictable intervals. Please be sure that" +#: plugins/check_radius.c:354 +msgid "run the plugin at regular predictable intervals. Please be sure that" msgstr "" -#: plugins/check_radius.c:347 -msgid "the password used does not allow access to sensitive system resources," +#: plugins/check_radius.c:355 +msgid "the password used does not allow access to sensitive system resources." msgstr "" -#: plugins/check_radius.c:348 -msgid "otherwise compormise could occur." -msgstr "" - -#: plugins/check_real.c:96 +#: plugins/check_real.c:95 #, c-format msgid "Unable to connect to %s on port %d\n" msgstr "" -#: plugins/check_real.c:118 +#: plugins/check_real.c:117 #, c-format msgid "No data received from %s\n" msgstr "" -#: plugins/check_real.c:123 plugins/check_real.c:196 +#: plugins/check_real.c:122 plugins/check_real.c:195 #, fuzzy msgid "Invalid REAL response received from host" msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_real.c:125 plugins/check_real.c:198 +#: plugins/check_real.c:124 plugins/check_real.c:197 #, c-format msgid "Invalid REAL response received from host on port %d\n" msgstr "" -#: plugins/check_real.c:189 plugins/check_tcp.c:294 +#: plugins/check_real.c:188 plugins/check_tcp.c:295 #, c-format msgid "No data received from host\n" msgstr "" -#: plugins/check_real.c:252 +#: plugins/check_real.c:251 #, c-format msgid "REAL %s - %d second response time\n" msgstr "" -#: plugins/check_real.c:341 plugins/check_smtp.c:581 plugins/check_ups.c:535 +#: plugins/check_real.c:340 plugins/check_smtp.c:582 plugins/check_ups.c:536 msgid "Warning time must be a positive integer" msgstr "Warnung time muss ein positiver Integer sein" -#: plugins/check_real.c:350 plugins/check_smtp.c:572 plugins/check_ups.c:526 +#: plugins/check_real.c:349 plugins/check_smtp.c:573 plugins/check_ups.c:527 msgid "Critical time must be a positive integer" msgstr "Critical time muss ein positiver Integer sein" -#: plugins/check_real.c:386 +#: plugins/check_real.c:385 #, fuzzy msgid "You must provide a server to check" msgstr "%s: Hostname muss angegeben werden\n" -#: plugins/check_real.c:418 +#: plugins/check_real.c:417 #, fuzzy msgid "This plugin tests the REAL service on the specified host." msgstr "" @@ -3833,233 +3942,238 @@ msgstr "" msgid "String to expect in first line of server response (default: %s)\n" msgstr "" -#: plugins/check_real.c:440 +#: plugins/check_real.c:441 #, fuzzy msgid "This plugin will attempt to open an RTSP connection with the host." msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_real.c:441 plugins/check_smtp.c:812 +#: plugins/check_real.c:442 plugins/check_smtp.c:814 msgid "Successul connects return STATE_OK, refusals and timeouts return" msgstr "" -#: plugins/check_real.c:442 -msgid "" -"STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful connects," -msgstr "" - #: plugins/check_real.c:443 msgid "" -"but incorrect reponse messages from the host result in STATE_WARNING return" +"STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful connects," msgstr "" #: plugins/check_real.c:444 +msgid "" +"but incorrect reponse messages from the host result in STATE_WARNING return" +msgstr "" + +#: plugins/check_real.c:445 msgid "values." msgstr "" -#: plugins/check_smtp.c:151 plugins/check_swap.c:268 plugins/check_swap.c:274 +#: plugins/check_smtp.c:150 plugins/check_swap.c:269 plugins/check_swap.c:275 #, c-format msgid "malloc() failed!\n" msgstr "" -#: plugins/check_smtp.c:155 +#: plugins/check_smtp.c:154 #, c-format msgid "gethostname() failed!\n" msgstr "" -#: plugins/check_smtp.c:190 plugins/check_smtp.c:214 +#: plugins/check_smtp.c:189 plugins/check_smtp.c:213 #, c-format msgid "recv() failed\n" msgstr "" -#: plugins/check_smtp.c:201 -#, c-format -msgid "Invalid SMTP response received from host\n" -msgstr "" +#: plugins/check_smtp.c:200 +#, fuzzy, c-format +msgid "Invalid SMTP response received from host: %s\n" +msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_smtp.c:203 -#, c-format -msgid "Invalid SMTP response received from host on port %d\n" -msgstr "" +#: plugins/check_smtp.c:202 +#, fuzzy, c-format +msgid "Invalid SMTP response received from host on port %d: %s\n" +msgstr "Ungültige HTTP Antwort von Host erhalten auf Port %d\n" -#: plugins/check_smtp.c:224 +#: plugins/check_smtp.c:223 #, c-format msgid "WARNING - TLS not supported by server\n" msgstr "" -#: plugins/check_smtp.c:236 +#: plugins/check_smtp.c:235 #, c-format msgid "Server does not support STARTTLS\n" msgstr "" -#: plugins/check_smtp.c:242 +#: plugins/check_smtp.c:241 #, c-format msgid "CRITICAL - Cannot create SSL context.\n" msgstr "" -#: plugins/check_smtp.c:262 +#: plugins/check_smtp.c:261 msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS." msgstr "" -#: plugins/check_smtp.c:267 +#: plugins/check_smtp.c:266 #, c-format msgid "sent %s" msgstr "" -#: plugins/check_smtp.c:269 +#: plugins/check_smtp.c:268 msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS." msgstr "" -#: plugins/check_smtp.c:281 +#: plugins/check_smtp.c:280 #, fuzzy msgid "CRITICAL - Cannot retrieve server certificate." msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n" -#: plugins/check_smtp.c:317 plugins/check_snmp.c:590 +#: plugins/check_smtp.c:316 plugins/check_snmp.c:590 #, c-format msgid "Could Not Compile Regular Expression" msgstr "" -#: plugins/check_smtp.c:326 +#: plugins/check_smtp.c:325 #, c-format msgid "SMTP %s - Invalid response '%s' to command '%s'\n" msgstr "" -#: plugins/check_smtp.c:330 plugins/check_snmp.c:335 +#: plugins/check_smtp.c:329 plugins/check_snmp.c:335 #, c-format msgid "Execute Error: %s\n" msgstr "" -#: plugins/check_smtp.c:344 +#: plugins/check_smtp.c:343 +#, c-format msgid "no authuser specified, " msgstr "" -#: plugins/check_smtp.c:349 +#: plugins/check_smtp.c:348 +#, c-format msgid "no authpass specified, " msgstr "" -#: plugins/check_smtp.c:356 plugins/check_smtp.c:377 plugins/check_smtp.c:397 -#: plugins/check_smtp.c:673 +#: plugins/check_smtp.c:355 plugins/check_smtp.c:377 plugins/check_smtp.c:398 +#: plugins/check_smtp.c:674 #, c-format msgid "sent %s\n" msgstr "" -#: plugins/check_smtp.c:359 -#, fuzzy +#: plugins/check_smtp.c:358 +#, fuzzy, c-format msgid "recv() failed after AUTH LOGIN, " msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_smtp.c:364 plugins/check_smtp.c:385 plugins/check_smtp.c:405 -#: plugins/check_smtp.c:684 +#: plugins/check_smtp.c:363 plugins/check_smtp.c:385 plugins/check_smtp.c:406 +#: plugins/check_smtp.c:685 #, fuzzy, c-format msgid "received %s\n" msgstr "Keine Daten empfangen %s\n" -#: plugins/check_smtp.c:368 -#, fuzzy +#: plugins/check_smtp.c:367 +#, fuzzy, c-format msgid "invalid response received after AUTH LOGIN, " msgstr "Ungültige HTTP Antwort von Host empfangen\n" #: plugins/check_smtp.c:381 +#, c-format msgid "recv() failed after sending authuser, " msgstr "" #: plugins/check_smtp.c:389 -#, fuzzy +#, fuzzy, c-format msgid "invalid response received after authuser, " msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_smtp.c:401 +#: plugins/check_smtp.c:402 +#, c-format msgid "recv() failed after sending authpass, " msgstr "" -#: plugins/check_smtp.c:409 -#, fuzzy +#: plugins/check_smtp.c:410 +#, fuzzy, c-format msgid "invalid response received after authpass, " msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_smtp.c:416 +#: plugins/check_smtp.c:417 +#, c-format msgid "only authtype LOGIN is supported, " msgstr "" -#: plugins/check_smtp.c:440 +#: plugins/check_smtp.c:441 #, fuzzy, c-format msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n" msgstr " - %s - %.3f Sekunden Antwortzeit %s%s|%s %s\n" -#: plugins/check_smtp.c:548 plugins/check_smtp.c:560 +#: plugins/check_smtp.c:549 plugins/check_smtp.c:561 #, c-format msgid "Could not realloc() units [%d]\n" msgstr "" -#: plugins/check_smtp.c:608 +#: plugins/check_smtp.c:609 msgid "SSL support not available - install OpenSSL and recompile" msgstr "" -#: plugins/check_smtp.c:679 +#: plugins/check_smtp.c:680 #, fuzzy, c-format msgid "recv() failed after QUIT." msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_smtp.c:681 +#: plugins/check_smtp.c:682 #, c-format msgid "Connection reset by peer." msgstr "" -#: plugins/check_smtp.c:769 +#: plugins/check_smtp.c:770 #, fuzzy msgid "This plugin will attempt to open an SMTP connection with the host." msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_smtp.c:782 +#: plugins/check_smtp.c:784 #, c-format msgid " String to expect in first line of server response (default: '%s')\n" msgstr "" -#: plugins/check_smtp.c:784 +#: plugins/check_smtp.c:786 msgid "Suppress SMTP command" msgstr "" -#: plugins/check_smtp.c:786 +#: plugins/check_smtp.c:788 msgid "SMTP command (may be used repeatedly)" msgstr "" -#: plugins/check_smtp.c:788 +#: plugins/check_smtp.c:790 msgid "Expected response to command (may be used repeatedly)" msgstr "" -#: plugins/check_smtp.c:790 +#: plugins/check_smtp.c:792 msgid "FROM-address to include in MAIL command, required by Exchange 2000" msgstr "" -#: plugins/check_smtp.c:793 plugins/check_tcp.c:636 +#: plugins/check_smtp.c:795 plugins/check_tcp.c:638 msgid "Minimum number of days a certificate has to be valid." msgstr "" -#: plugins/check_smtp.c:795 +#: plugins/check_smtp.c:797 msgid "Use STARTTLS for the connection." msgstr "" -#: plugins/check_smtp.c:799 +#: plugins/check_smtp.c:801 msgid "SMTP AUTH type to check (default none, only LOGIN supported)" msgstr "" -#: plugins/check_smtp.c:801 +#: plugins/check_smtp.c:803 msgid "SMTP AUTH username" msgstr "" -#: plugins/check_smtp.c:803 +#: plugins/check_smtp.c:805 msgid "SMTP AUTH password" msgstr "" -#: plugins/check_smtp.c:813 +#: plugins/check_smtp.c:815 msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful" msgstr "" -#: plugins/check_smtp.c:814 +#: plugins/check_smtp.c:816 msgid "connects, but incorrect reponse messages from the host result in" msgstr "" -#: plugins/check_smtp.c:815 +#: plugins/check_smtp.c:817 msgid "STATE_WARNING return values." msgstr "" @@ -4135,201 +4249,201 @@ msgstr "" msgid "Check status of remote machines and obtain sustem information via SNMP" msgstr "" -#: plugins/check_snmp.c:943 +#: plugins/check_snmp.c:944 msgid "Use SNMP GETNEXT instead of SNMP GET" msgstr "" -#: plugins/check_snmp.c:945 +#: plugins/check_snmp.c:946 msgid "SNMP protocol version" msgstr "" -#: plugins/check_snmp.c:947 +#: plugins/check_snmp.c:948 msgid "SNMPv3 securityLevel" msgstr "" -#: plugins/check_snmp.c:949 +#: plugins/check_snmp.c:950 msgid "SNMPv3 auth proto" msgstr "" -#: plugins/check_snmp.c:953 +#: plugins/check_snmp.c:954 msgid "Optional community string for SNMP communication" msgstr "" -#: plugins/check_snmp.c:954 +#: plugins/check_snmp.c:955 msgid "default is" msgstr "" -#: plugins/check_snmp.c:956 +#: plugins/check_snmp.c:957 msgid "SNMPv3 username" msgstr "" -#: plugins/check_snmp.c:958 +#: plugins/check_snmp.c:959 msgid "SNMPv3 authentication password" msgstr "" -#: plugins/check_snmp.c:960 +#: plugins/check_snmp.c:961 msgid "SNMPv3 privacy password" msgstr "" -#: plugins/check_snmp.c:964 +#: plugins/check_snmp.c:965 msgid "Object identifier(s) or SNMP variables whose value you wish to query" msgstr "" -#: plugins/check_snmp.c:966 +#: plugins/check_snmp.c:967 msgid "" "List of MIBS to be loaded (default = none if using numeric oids or 'ALL'" msgstr "" -#: plugins/check_snmp.c:967 +#: plugins/check_snmp.c:968 msgid "for symbolic oids.)" msgstr "" -#: plugins/check_snmp.c:969 +#: plugins/check_snmp.c:970 #, c-format msgid " Delimiter to use when parsing returned data. Default is \"%s\"" msgstr "" -#: plugins/check_snmp.c:970 +#: plugins/check_snmp.c:971 msgid "Any data on the right hand side of the delimiter is considered" msgstr "" -#: plugins/check_snmp.c:971 +#: plugins/check_snmp.c:972 msgid "to be the data that should be used in the evaluation." msgstr "" -#: plugins/check_snmp.c:975 +#: plugins/check_snmp.c:976 msgid "Range(s) which will not result in a WARNING status" msgstr "" -#: plugins/check_snmp.c:977 +#: plugins/check_snmp.c:978 msgid "Range(s) which will not result in a CRITICAL status" msgstr "" -#: plugins/check_snmp.c:981 +#: plugins/check_snmp.c:982 msgid "Return OK state (for that OID) if STRING is an exact match" msgstr "" -#: plugins/check_snmp.c:983 +#: plugins/check_snmp.c:984 msgid "" "Return OK state (for that OID) if extended regular expression REGEX matches" msgstr "" -#: plugins/check_snmp.c:985 +#: plugins/check_snmp.c:986 msgid "" "Return OK state (for that OID) if case-insensitive extended REGEX matches" msgstr "" -#: plugins/check_snmp.c:987 +#: plugins/check_snmp.c:988 msgid "Prefix label for output from plugin (default -s 'SNMP')" msgstr "" -#: plugins/check_snmp.c:991 +#: plugins/check_snmp.c:992 msgid "Units label(s) for output data (e.g., 'sec.')." msgstr "" -#: plugins/check_snmp.c:993 +#: plugins/check_snmp.c:994 msgid "Separates output on multiple OID requests" msgstr "" -#: plugins/check_snmp.c:999 +#: plugins/check_snmp.c:1001 msgid "" "This plugin uses the 'snmpget' command included with the NET-SNMP package." msgstr "" -#: plugins/check_snmp.c:1000 +#: plugins/check_snmp.c:1002 msgid "" "if you don't have the package installed, you will need to download it from" msgstr "" -#: plugins/check_snmp.c:1001 +#: plugins/check_snmp.c:1003 msgid "http://net-snmp.sourceforge.net before you can use this plugin." msgstr "" -#: plugins/check_snmp.c:1003 +#: plugins/check_snmp.c:1007 msgid "" "- Multiple OIDs may be indicated by a comma- or space-delimited list (lists " "with" msgstr "" -#: plugins/check_snmp.c:1004 -msgid " internal spaces must be quoted) [max 8 OIDs]" -msgstr "" - -#: plugins/check_snmp.c:1006 -msgid "- Ranges are inclusive and are indicated with colons. When specified as" -msgstr "" - -#: plugins/check_snmp.c:1007 -msgid "" -" 'min:max' a STATE_OK will be returned if the result is within the indicated" -msgstr "" - #: plugins/check_snmp.c:1008 -msgid " range or is equal to the upper or lower bound. A non-OK state will be" +msgid "internal spaces must be quoted) [max 8 OIDs]" msgstr "" -#: plugins/check_snmp.c:1009 -msgid " returned if the result is outside the specified range." +#: plugins/check_snmp.c:1010 +msgid "- Ranges are inclusive and are indicated with colons. When specified as" msgstr "" #: plugins/check_snmp.c:1011 msgid "" -"- If specified in the order 'max:min' a non-OK state will be returned if the" +"'min:max' a STATE_OK will be returned if the result is within the indicated" msgstr "" #: plugins/check_snmp.c:1012 -msgid " result is within the (inclusive) range." +msgid "range or is equal to the upper or lower bound. A non-OK state will be" msgstr "" -#: plugins/check_snmp.c:1014 +#: plugins/check_snmp.c:1013 +msgid "returned if the result is outside the specified range." +msgstr "" + +#: plugins/check_snmp.c:1015 +msgid "" +"- If specified in the order 'max:min' a non-OK state will be returned if the" +msgstr "" + +#: plugins/check_snmp.c:1016 +msgid "result is within the (inclusive) range." +msgstr "" + +#: plugins/check_snmp.c:1018 msgid "" "- Upper or lower bounds may be omitted to skip checking the respective limit." msgstr "" -#: plugins/check_snmp.c:1015 +#: plugins/check_snmp.c:1019 msgid "- Bare integers are interpreted as upper limits." msgstr "" -#: plugins/check_snmp.c:1016 +#: plugins/check_snmp.c:1020 msgid "" "- When checking multiple OIDs, separate ranges by commas like '-w " "1:10,1:,:20'" msgstr "" -#: plugins/check_snmp.c:1017 +#: plugins/check_snmp.c:1021 msgid "- Note that only one string and one regex may be checked at present" msgstr "" -#: plugins/check_snmp.c:1018 +#: plugins/check_snmp.c:1022 msgid "" "- All evaluation methods other than PR, STR, and SUBSTR expect that the value" msgstr "" -#: plugins/check_snmp.c:1019 -msgid " returned from the SNMP query is an unsigned integer." +#: plugins/check_snmp.c:1023 +msgid "returned from the SNMP query is an unsigned integer." msgstr "" -#: plugins/check_ssh.c:170 +#: plugins/check_ssh.c:169 #, fuzzy msgid "Port number must be a positive integer" msgstr "Port muss ein positiver Integer sein" -#: plugins/check_ssh.c:235 +#: plugins/check_ssh.c:234 #, c-format msgid "Server answer: %s" msgstr "" -#: plugins/check_ssh.c:254 +#: plugins/check_ssh.c:253 #, c-format msgid "SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n" msgstr "" -#: plugins/check_ssh.c:261 +#: plugins/check_ssh.c:260 #, c-format msgid "SSH OK - %s (protocol %s)\n" msgstr "" -#: plugins/check_ssh.c:281 +#: plugins/check_ssh.c:280 msgid "Try to connect to an SSH server at specified server and port" msgstr "" @@ -4338,197 +4452,197 @@ msgid "" "Warn if string doesn't match expected server version (ex: OpenSSH_3.9p1)" msgstr "" -#: plugins/check_swap.c:172 +#: plugins/check_swap.c:173 #, c-format msgid "Command: %s\n" msgstr "" -#: plugins/check_swap.c:174 +#: plugins/check_swap.c:175 #, c-format msgid "Format: %s\n" msgstr "" -#: plugins/check_swap.c:210 +#: plugins/check_swap.c:211 #, c-format msgid "total=%.0f, used=%.0f, free=%.0f\n" msgstr "" -#: plugins/check_swap.c:224 +#: plugins/check_swap.c:225 #, c-format msgid "total=%.0f, free=%.0f\n" msgstr "" -#: plugins/check_swap.c:256 +#: plugins/check_swap.c:257 msgid "Error getting swap devices\n" msgstr "" -#: plugins/check_swap.c:259 +#: plugins/check_swap.c:260 msgid "SWAP OK: No swap devices defined\n" msgstr "" -#: plugins/check_swap.c:280 plugins/check_swap.c:322 +#: plugins/check_swap.c:281 plugins/check_swap.c:323 msgid "swapctl failed: " msgstr "" -#: plugins/check_swap.c:281 plugins/check_swap.c:323 +#: plugins/check_swap.c:282 plugins/check_swap.c:324 msgid "Error in swapctl call\n" msgstr "" -#: plugins/check_swap.c:360 +#: plugins/check_swap.c:361 #, c-format msgid "SWAP %s - %d%% free (%d MB out of %d MB) %s|" msgstr "" -#: plugins/check_swap.c:438 +#: plugins/check_swap.c:439 msgid "Warning threshold must be integer or percentage!" msgstr "Warning threshold muss ein Integer oder ein Prozentwert sein" -#: plugins/check_swap.c:456 +#: plugins/check_swap.c:457 msgid "Critical threshold must be integer or percentage!" msgstr "Critical threshold muss ein Integer oder ein Prozentwert sein!" -#: plugins/check_swap.c:510 +#: plugins/check_swap.c:511 #, fuzzy msgid "Warning percentage should be more than critical percentage" msgstr "Warning threshold muss ein Integer oder ein Prozentwert sein" -#: plugins/check_swap.c:514 +#: plugins/check_swap.c:515 msgid "Warning free space should be more than critical free space" msgstr "" -#: plugins/check_swap.c:528 +#: plugins/check_swap.c:529 msgid "Check swap space on local machine." msgstr "" -#: plugins/check_swap.c:537 +#: plugins/check_swap.c:539 msgid "" "Exit with WARNING status if less than INTEGER bytes of swap space are free" msgstr "" -#: plugins/check_swap.c:539 +#: plugins/check_swap.c:541 msgid "Exit with WARNING status if less than PERCENT of swap space is free" msgstr "" -#: plugins/check_swap.c:541 +#: plugins/check_swap.c:543 msgid "" "Exit with CRITICAL status if less than INTEGER bytes of swap space are free" msgstr "" -#: plugins/check_swap.c:543 +#: plugins/check_swap.c:545 msgid "Exit with CRITCAL status if less than PERCENT of swap space is free" msgstr "" -#: plugins/check_swap.c:545 +#: plugins/check_swap.c:547 msgid "Conduct comparisons for all swap partitions, one by one" msgstr "" -#: plugins/check_swap.c:549 -msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s.\n" +#: plugins/check_swap.c:552 +msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s." msgstr "" -#: plugins/check_tcp.c:202 +#: plugins/check_tcp.c:200 msgid "CRITICAL - Generic check_tcp called with unknown service\n" msgstr "" -#: plugins/check_tcp.c:223 +#: plugins/check_tcp.c:224 msgid "With UDP checks, a send/expect string must be specified." msgstr "" -#: plugins/check_tcp.c:242 +#: plugins/check_tcp.c:243 #, c-format msgid "CRITICAL - Cannot retrieve server certificate.\n" msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n" -#: plugins/check_tcp.c:422 +#: plugins/check_tcp.c:423 msgid "No arguments found" msgstr "" -#: plugins/check_tcp.c:523 +#: plugins/check_tcp.c:524 msgid "Maxbytes must be a positive integer" msgstr "Maxbytes muss ein positiver Integer sein" -#: plugins/check_tcp.c:541 +#: plugins/check_tcp.c:542 msgid "Refuse must be one of ok, warn, crit" msgstr "" -#: plugins/check_tcp.c:551 +#: plugins/check_tcp.c:552 msgid "Mismatch must be one of ok, warn, crit" msgstr "" -#: plugins/check_tcp.c:557 +#: plugins/check_tcp.c:558 msgid "Delay must be a positive integer" msgstr "Delay muss ein positiver Integer sein" -#: plugins/check_tcp.c:585 +#: plugins/check_tcp.c:586 #, fuzzy msgid "You must provide a server address" msgstr "%s: Hostname muss angegeben werden\n" -#: plugins/check_tcp.c:587 +#: plugins/check_tcp.c:588 #, fuzzy msgid "Invalid hostname, address or socket" msgstr "Ungültige(r) Hostname/Adresse" -#: plugins/check_tcp.c:601 +#: plugins/check_tcp.c:602 #, fuzzy, c-format msgid "" "This plugin tests %s connections with the specified host (or unix socket).\n" "\n" msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_tcp.c:613 +#: plugins/check_tcp.c:615 msgid "" "Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or " "quit option" msgstr "" -#: plugins/check_tcp.c:614 +#: plugins/check_tcp.c:616 msgid "Default: nothing added to send, \\r\\n added to end of quit" msgstr "" -#: plugins/check_tcp.c:616 +#: plugins/check_tcp.c:618 msgid "String to send to the server" msgstr "" -#: plugins/check_tcp.c:618 +#: plugins/check_tcp.c:620 msgid "String to expect in server response" msgstr "" -#: plugins/check_tcp.c:618 +#: plugins/check_tcp.c:620 msgid "(may be repeated)" msgstr "" -#: plugins/check_tcp.c:620 +#: plugins/check_tcp.c:622 msgid "All expect strings need to occur in server response. Default is any" msgstr "" -#: plugins/check_tcp.c:622 +#: plugins/check_tcp.c:624 msgid "String to send server to initiate a clean close of the connection" msgstr "" -#: plugins/check_tcp.c:624 +#: plugins/check_tcp.c:626 msgid "Accept tcp refusals with states ok, warn, crit (default: crit)" msgstr "" -#: plugins/check_tcp.c:626 +#: plugins/check_tcp.c:628 msgid "" "Accept expected string mismatches with states ok, warn, crit (default: warn)" msgstr "" -#: plugins/check_tcp.c:628 +#: plugins/check_tcp.c:630 #, fuzzy msgid "Hide output from TCP socket" msgstr "Konnte TCP socket nicht öffnen\n" -#: plugins/check_tcp.c:630 +#: plugins/check_tcp.c:632 msgid "Close connection once more than this number of bytes are received" msgstr "" -#: plugins/check_tcp.c:632 +#: plugins/check_tcp.c:634 msgid "Seconds to wait between sending string and polling for response" msgstr "" -#: plugins/check_tcp.c:638 +#: plugins/check_tcp.c:640 msgid "Use SSL for the connection." msgstr "" @@ -4572,136 +4686,137 @@ msgstr "" "Testet den DNS Dienst auf dem angegebenen Host mit dig\n" "\n" -#: plugins/check_time.c:354 +#: plugins/check_time.c:355 msgid "Use UDP to connect, not TCP" msgstr "" -#: plugins/check_time.c:356 +#: plugins/check_time.c:357 msgid "Time difference (sec.) necessary to result in a warning status" msgstr "" -#: plugins/check_time.c:358 +#: plugins/check_time.c:359 msgid "Time difference (sec.) necessary to result in a critical status" msgstr "" -#: plugins/check_time.c:360 +#: plugins/check_time.c:361 msgid "Response time (sec.) necessary to result in warning status" msgstr "" -#: plugins/check_time.c:362 +#: plugins/check_time.c:363 msgid "Response time (sec.) necessary to result in critical status" msgstr "" -#: plugins/check_ups.c:147 +#: plugins/check_ups.c:148 +#, c-format msgid "On Battery, Low Battery" msgstr "" -#: plugins/check_ups.c:152 +#: plugins/check_ups.c:153 msgid "Online" msgstr "" -#: plugins/check_ups.c:155 +#: plugins/check_ups.c:156 msgid "On Battery" msgstr "" -#: plugins/check_ups.c:159 +#: plugins/check_ups.c:160 msgid ", Low Battery" msgstr "" -#: plugins/check_ups.c:163 +#: plugins/check_ups.c:164 msgid ", Calibrating" msgstr "" -#: plugins/check_ups.c:166 +#: plugins/check_ups.c:167 msgid ", Replace Battery" msgstr "" -#: plugins/check_ups.c:170 +#: plugins/check_ups.c:171 msgid ", On Bypass" msgstr "" -#: plugins/check_ups.c:173 +#: plugins/check_ups.c:174 msgid ", Overload" msgstr "" -#: plugins/check_ups.c:176 +#: plugins/check_ups.c:177 msgid ", Trimming" msgstr "" -#: plugins/check_ups.c:179 +#: plugins/check_ups.c:180 msgid ", Boosting" msgstr "" -#: plugins/check_ups.c:182 +#: plugins/check_ups.c:183 msgid ", Charging" msgstr "" -#: plugins/check_ups.c:185 +#: plugins/check_ups.c:186 msgid ", Discharging" msgstr "" -#: plugins/check_ups.c:188 +#: plugins/check_ups.c:189 msgid ", Unknown" msgstr "" -#: plugins/check_ups.c:327 -#, fuzzy +#: plugins/check_ups.c:328 +#, fuzzy, c-format msgid "UPS does not support any available options\n" msgstr "IPv6 Unterstützung nicht vorhanden" -#: plugins/check_ups.c:351 plugins/check_ups.c:411 +#: plugins/check_ups.c:352 plugins/check_ups.c:412 #, fuzzy msgid "Invalid response received from host" msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_ups.c:419 +#: plugins/check_ups.c:420 #, c-format msgid "CRITICAL - no such ups '%s' on that host\n" msgstr "" -#: plugins/check_ups.c:429 +#: plugins/check_ups.c:430 #, fuzzy msgid "CRITICAL - UPS data is stale" msgstr "CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden" -#: plugins/check_ups.c:434 +#: plugins/check_ups.c:435 #, fuzzy, c-format msgid "Unknown error: %s\n" msgstr "Papierfehler" -#: plugins/check_ups.c:441 +#: plugins/check_ups.c:442 msgid "Error: unable to parse variable" msgstr "" -#: plugins/check_ups.c:548 +#: plugins/check_ups.c:549 msgid "Unrecognized UPS variable" msgstr "" -#: plugins/check_ups.c:586 +#: plugins/check_ups.c:587 msgid "Error : no ups indicated" msgstr "" -#: plugins/check_ups.c:606 +#: plugins/check_ups.c:607 #, fuzzy msgid "" -"This plugin tests the UPS service on the specified host.Network UPS Tools " +"This plugin tests the UPS service on the specified host. Network UPS Tools" msgstr "" "Testet den DNS Dienst auf dem angegebenen Host mit dig\n" "\n" -#: plugins/check_ups.c:607 +#: plugins/check_ups.c:608 msgid "from www.networkupstools.org must be running for thisplugin to work." msgstr "" -#: plugins/check_ups.c:618 +#: plugins/check_ups.c:620 msgid "Name of UPS" msgstr "" -#: plugins/check_ups.c:620 +#: plugins/check_ups.c:622 msgid "Output of temperatures in Celsius" msgstr "" -#: plugins/check_ups.c:622 +#: plugins/check_ups.c:624 msgid "Valid values for STRING are" msgstr "" @@ -4730,59 +4845,59 @@ msgstr "" msgid "state." msgstr "" -#: plugins/check_ups.c:641 +#: plugins/check_ups.c:643 msgid "" -"You may also specify a variable to check [such as temperature, utility " +"You may also specify a variable to check (such as temperature, utility " "voltage," msgstr "" -#: plugins/check_ups.c:642 -msgid "" -"battery load, etc.] as well as warning and critical thresholds for the " -"value of" -msgstr "" - -#: plugins/check_ups.c:643 -msgid "" -"that variable. If the remote host has multiple UPS that are being monitored " -"you" -msgstr "" - #: plugins/check_ups.c:644 -msgid "will have to use the [ups] option to specify which UPS to check." +msgid "" +"battery load, etc.) as well as warning and critical thresholds for the value" +msgstr "" + +#: plugins/check_ups.c:645 +msgid "" +"of that variable. If the remote host has multiple UPS that are being " +"monitored" msgstr "" #: plugins/check_ups.c:646 -msgid "" -"This plugin requires that the UPSD daemon distributed with Russel Kroll's" -msgstr "" - -#: plugins/check_ups.c:647 -msgid "" -"Smart UPS Tools be installed on the remote host. If you do not have the" +msgid "you will have to use the --ups option to specify which UPS to check." msgstr "" #: plugins/check_ups.c:648 msgid "" -"package installed on your system, you can download it from http://www." -"networkupstools.org" +"This plugin requires that the UPSD daemon distributed with Russel Kroll's" msgstr "" -#: plugins/check_users.c:94 +#: plugins/check_ups.c:649 +msgid "Smart UPS Tools be installed on the remote host. If you do not have the" +msgstr "" + +#: plugins/check_ups.c:650 +msgid "package installed on your system, you can download it from" +msgstr "" + +#: plugins/check_ups.c:651 +msgid "http://www.networkupstools.org" +msgstr "" + +#: plugins/check_users.c:96 #, c-format msgid "# users=%d" msgstr "" -#: plugins/check_users.c:117 +#: plugins/check_users.c:119 msgid "Unable to read output" msgstr "" -#: plugins/check_users.c:124 +#: plugins/check_users.c:126 #, c-format msgid "USERS %s - %d users currently logged in |%s\n" msgstr "" -#: plugins/check_users.c:209 +#: plugins/check_users.c:211 #, fuzzy msgid "This plugin checks the number of users currently logged in on the local" msgstr "" @@ -4791,722 +4906,733 @@ msgstr "" "unterschritten wird.\n" "\n" -#: plugins/check_users.c:210 +#: plugins/check_users.c:212 msgid "" "system and generates an error if the number exceeds the thresholds specified." msgstr "" -#: plugins/check_users.c:219 +#: plugins/check_users.c:222 msgid "Set WARNING status if more than INTEGER users are logged in" msgstr "" -#: plugins/check_users.c:221 +#: plugins/check_users.c:224 msgid "Set CRITICAL status if more than INTEGER users are logged in" msgstr "" -#: plugins/check_ide_smart.c:231 +#: plugins/check_ide_smart.c:232 #, fuzzy, c-format msgid "CRITICAL - Couldn't open device %s: %s\n" msgstr "CRITICAL - Device konnte nicht geöffnet werden: %s\n" -#: plugins/check_ide_smart.c:236 +#: plugins/check_ide_smart.c:237 #, c-format msgid "CRITICAL - SMART_CMD_ENABLE\n" msgstr "" -#: plugins/check_ide_smart.c:297 +#: plugins/check_ide_smart.c:298 #, c-format msgid "CRITICAL - SMART_READ_VALUES: %s\n" msgstr "" -#: plugins/check_ide_smart.c:366 +#: plugins/check_ide_smart.c:367 #, c-format msgid "CRITICAL - %d Harddrive PreFailure%cDetected! %d/%d tests failed.\n" msgstr "" -#: plugins/check_ide_smart.c:374 +#: plugins/check_ide_smart.c:375 #, c-format msgid "WARNING - %d Harddrive Advisor%s Detected. %d/%d tests failed.\n" msgstr "" -#: plugins/check_ide_smart.c:382 +#: plugins/check_ide_smart.c:383 #, c-format msgid "OK - Operational (%d/%d tests passed)\n" msgstr "" -#: plugins/check_ide_smart.c:386 +#: plugins/check_ide_smart.c:387 #, c-format msgid "ERROR - Status '%d' unkown. %d/%d tests passed\n" msgstr "" -#: plugins/check_ide_smart.c:419 +#: plugins/check_ide_smart.c:420 #, c-format msgid "OffLineStatus=%d {%s}, AutoOffLine=%s, OffLineTimeout=%d minutes\n" msgstr "" -#: plugins/check_ide_smart.c:425 +#: plugins/check_ide_smart.c:426 #, c-format msgid "OffLineCapability=%d {%s %s %s}\n" msgstr "" -#: plugins/check_ide_smart.c:431 +#: plugins/check_ide_smart.c:432 #, c-format msgid "SmartRevision=%d, CheckSum=%d, SmartCapability=%d {%s %s}\n" msgstr "" -#: plugins/check_ide_smart.c:452 +#: plugins/check_ide_smart.c:453 #, c-format msgid "CRITICAL - %s: %s\n" msgstr "" -#: plugins/check_ide_smart.c:471 +#: plugins/check_ide_smart.c:472 #, c-format msgid "CRITICAL - SMART_READ_THRESHOLDS: %s\n" msgstr "" -#: plugins/check_ide_smart.c:488 +#: plugins/check_ide_smart.c:489 #, c-format msgid "" "This plugin checks a local hard drive with the (Linux specific) SMART " "interface [http://smartlinux.sourceforge.net/smart/index.php]." msgstr "" -#: plugins/check_ide_smart.c:497 +#: plugins/check_ide_smart.c:499 msgid "Select device DEVICE" msgstr "" -#: plugins/check_ide_smart.c:498 +#: plugins/check_ide_smart.c:500 msgid "" "Note: if the device is selected with this option, _no_ other options are " "accepted" msgstr "" -#: plugins/check_ide_smart.c:500 +#: plugins/check_ide_smart.c:502 msgid "Perform immediately offline tests" msgstr "" -#: plugins/check_ide_smart.c:502 +#: plugins/check_ide_smart.c:504 msgid "Returns the number of failed tests" msgstr "" -#: plugins/check_ide_smart.c:504 +#: plugins/check_ide_smart.c:506 msgid "Turn on automatic offline tests" msgstr "" -#: plugins/check_ide_smart.c:506 +#: plugins/check_ide_smart.c:508 msgid "Turn off automatic offline tests" msgstr "" -#: plugins/check_ide_smart.c:508 +#: plugins/check_ide_smart.c:510 msgid "Output suitable for Nagios" msgstr "" -#: plugins/negate.c:132 +#: plugins/negate.c:98 #, fuzzy msgid "No data returned from command\n" msgstr "Keine Daten empfangen %s\n" -#: plugins/negate.c:209 +#: plugins/negate.c:168 msgid "" "Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-" "3)." msgstr "" -#: plugins/negate.c:215 +#: plugins/negate.c:174 msgid "" "Warning must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " "integer (0-3)." msgstr "" -#: plugins/negate.c:220 +#: plugins/negate.c:179 msgid "" "Critical must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " "integer (0-3)." msgstr "" -#: plugins/negate.c:225 +#: plugins/negate.c:184 msgid "" "Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " "integer (0-3)." msgstr "" -#: plugins/negate.c:262 +#: plugins/negate.c:211 msgid "Require path to command" msgstr "" -#: plugins/negate.c:298 +#: plugins/negate.c:240 msgid "" "Negates the status of a plugin (returns OK for CRITICAL and vice-versa)." msgstr "" -#: plugins/negate.c:299 +#: plugins/negate.c:241 msgid "Additional switches can be used to control which state becomes what." msgstr "" -#: plugins/negate.c:308 +#: plugins/negate.c:250 msgid "Keep timeout longer than the plugin timeout to retain CRITICAL status." msgstr "" -#: plugins/negate.c:314 +#: plugins/negate.c:256 #, c-format msgid "" " STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n" msgstr "" -#: plugins/negate.c:315 +#: plugins/negate.c:257 #, c-format msgid "" " quotes. Numeric values are accepted. If nothing is specified, permutes\n" msgstr "" -#: plugins/negate.c:316 +#: plugins/negate.c:258 #, c-format msgid " OK and CRITICAL.\n" msgstr "" -#: plugins/negate.c:321 +#: plugins/negate.c:260 +#, c-format +msgid "" +" Substitute output text as well. Will only substitute text in CAPITALS\n" +msgstr "" + +#: plugins/negate.c:265 msgid "Run check_ping and invert result. Must use full path to plugin" msgstr "" -#: plugins/negate.c:323 +#: plugins/negate.c:267 msgid "This will return OK instead of WARNING and UNKNOWN instead of CRITICAL" msgstr "" -#: plugins/negate.c:326 +#: plugins/negate.c:270 msgid "" "This plugin is a wrapper to take the output of another plugin and invert it." msgstr "" -#: plugins/negate.c:327 +#: plugins/negate.c:271 msgid "The full path of the plugin must be provided." msgstr "" -#: plugins/negate.c:328 +#: plugins/negate.c:272 msgid "If the wrapped plugin returns OK, the wrapper will return CRITICAL." msgstr "" -#: plugins/negate.c:329 +#: plugins/negate.c:273 msgid "If the wrapped plugin returns CRITICAL, the wrapper will return OK." msgstr "" -#: plugins/negate.c:330 +#: plugins/negate.c:274 msgid "Otherwise, the output state of the wrapped plugin is unchanged." msgstr "" -#: plugins/netutils.c:53 +#: plugins/netutils.c:52 #, fuzzy, c-format msgid "CRITICAL - Socket timeout after %d seconds\n" msgstr "CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n" -#: plugins/netutils.c:55 +#: plugins/netutils.c:54 #, fuzzy, c-format msgid "CRITICAL - Abnormal timeout after %d seconds\n" msgstr "CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n" -#: plugins/netutils.c:83 plugins/netutils.c:274 +#: plugins/netutils.c:82 plugins/netutils.c:284 msgid "Send failed" msgstr "" -#: plugins/netutils.c:100 plugins/netutils.c:289 +#: plugins/netutils.c:99 plugins/netutils.c:299 #, fuzzy msgid "No data was received from host!" msgstr "Keine Daten empfangen %s\n" -#: plugins/netutils.c:197 plugins/netutils.c:233 +#: plugins/netutils.c:207 plugins/netutils.c:243 msgid "Socket creation failed" msgstr "" -#: plugins/netutils.c:226 +#: plugins/netutils.c:236 msgid "Supplied path too long unix domain socket" msgstr "" -#: plugins/netutils.c:298 +#: plugins/netutils.c:308 msgid "Receive failed" msgstr "" -#: plugins/netutils.c:324 plugins-root/check_dhcp.c:1348 +#: plugins/netutils.c:334 plugins-root/check_dhcp.c:1346 #, fuzzy, c-format msgid "Invalid hostname/address - %s" msgstr "" "Ungültige(r) Name/Adresse: %s\n" "\n" -#: plugins/popen.c:148 +#: plugins/popen.c:145 #, fuzzy msgid "Could not malloc argv array in popen()" msgstr "Konnte addr nicht zuweisen\n" -#: plugins/popen.c:158 +#: plugins/popen.c:155 #, fuzzy msgid "CRITICAL - You need more args!!!" msgstr "CRITICAL - Fehler: %s\n" -#: plugins/popen.c:215 +#: plugins/popen.c:212 #, fuzzy msgid "Cannot catch SIGCHLD" msgstr "Konnte SIGALRM nicht erhalten" -#: plugins/popen.c:310 plugins/utils.c:172 +#: plugins/popen.c:307 plugins/utils.c:186 #, fuzzy, c-format msgid "CRITICAL - Plugin timed out after %d seconds\n" msgstr "CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n" -#: plugins/popen.c:313 +#: plugins/popen.c:310 msgid "CRITICAL - popen timeout received, but no child process" msgstr "" -#: plugins/popen.c:329 +#: plugins/popen.c:326 msgid "sysconf error for _SC_OPEN_MAX" msgstr "" -#: plugins/urlize.c:137 +#: plugins/urlize.c:134 #, c-format msgid "" "%s UNKNOWN - No data received from host\n" "CMD: %s\n" msgstr "" -#: plugins/urlize.c:176 +#: plugins/urlize.c:173 msgid "This plugin wraps the text output of another command (plugin)" msgstr "" -#: plugins/urlize.c:177 +#: plugins/urlize.c:174 msgid "" "in HTML tags, thus displaying the plugin output in as a clickable link in" msgstr "" -#: plugins/urlize.c:178 +#: plugins/urlize.c:175 msgid "" "the Nagios status screen. The return status is the same as the invoked " "plugin." msgstr "" -#: plugins/urlize.c:188 +#: plugins/urlize.c:185 msgid "" "Pay close attention to quoting to ensure that the shell passes the expected" msgstr "" -#: plugins/urlize.c:189 +#: plugins/urlize.c:186 msgid "data to the plugin. For example, in:" msgstr "" -#: plugins/urlize.c:190 +#: plugins/urlize.c:187 msgid "urlize http://example.com/ check_http -H example.com -r 'two words'" msgstr "" -#: plugins/urlize.c:191 +#: plugins/urlize.c:188 msgid "the shell will remove the single quotes and urlize will see:" msgstr "" -#: plugins/urlize.c:192 +#: plugins/urlize.c:189 msgid "urlize http://example.com/ check_http -H example.com -r two words" msgstr "" -#: plugins/urlize.c:193 +#: plugins/urlize.c:190 msgid "You probably want:" msgstr "" -#: plugins/urlize.c:194 +#: plugins/urlize.c:191 msgid "urlize http://example.com/ \"check_http -H example.com -r 'two words'\"" msgstr "" -#: plugins/utils.c:467 +#: plugins/utils.c:481 #, fuzzy msgid "failed realloc in strpcpy\n" msgstr "konnte keinen Speicher für '%s' reservieren\n" -#: plugins/utils.c:509 +#: plugins/utils.c:523 #, fuzzy msgid "failed malloc in strscat\n" msgstr "konnte keinen Speicher für '%s' reservieren\n" -#: plugins-root/check_dhcp.c:327 +#: plugins-root/check_dhcp.c:325 #, c-format msgid "Error: Could not get hardware address of interface '%s'\n" msgstr "" -#: plugins-root/check_dhcp.c:349 +#: plugins-root/check_dhcp.c:347 #, c-format msgid "Error: if_nametoindex error - %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:354 +#: plugins-root/check_dhcp.c:352 #, c-format msgid "Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:359 +#: plugins-root/check_dhcp.c:357 #, c-format msgid "" "Error: Couldn't get hardware address from interface %s. malloc error - %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:364 +#: plugins-root/check_dhcp.c:362 #, c-format msgid "Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:390 +#: plugins-root/check_dhcp.c:388 #, c-format msgid "" "Error: can't find unit number in interface_name (%s) - expecting TypeNumber " "eg lnc0.\n" msgstr "" -#: plugins-root/check_dhcp.c:395 plugins-root/check_dhcp.c:407 +#: plugins-root/check_dhcp.c:393 plugins-root/check_dhcp.c:405 #, c-format msgid "" "Error: can't read MAC address from DLPI streams interface for device %s unit " "%d.\n" msgstr "" -#: plugins-root/check_dhcp.c:413 +#: plugins-root/check_dhcp.c:411 #, c-format msgid "" "Error: can't get MAC address for this architecture. Use the --mac option.\n" msgstr "" -#: plugins-root/check_dhcp.c:432 +#: plugins-root/check_dhcp.c:430 #, c-format msgid "Error: Cannot determine IP address of interface %s\n" msgstr "" -#: plugins-root/check_dhcp.c:440 +#: plugins-root/check_dhcp.c:438 #, c-format msgid "Error: Cannot get interface IP address on this platform.\n" msgstr "" -#: plugins-root/check_dhcp.c:445 +#: plugins-root/check_dhcp.c:443 #, c-format msgid "Pretending to be relay client %s\n" msgstr "" -#: plugins-root/check_dhcp.c:530 +#: plugins-root/check_dhcp.c:528 #, c-format msgid "DHCPDISCOVER to %s port %d\n" msgstr "" -#: plugins-root/check_dhcp.c:582 +#: plugins-root/check_dhcp.c:580 #, c-format msgid "Result=ERROR\n" msgstr "" -#: plugins-root/check_dhcp.c:588 +#: plugins-root/check_dhcp.c:586 #, c-format msgid "Result=OK\n" msgstr "" -#: plugins-root/check_dhcp.c:603 +#: plugins-root/check_dhcp.c:601 #, c-format msgid "DHCPOFFER from IP address %s" msgstr "" -#: plugins-root/check_dhcp.c:604 +#: plugins-root/check_dhcp.c:602 #, c-format msgid " via %s\n" msgstr "" -#: plugins-root/check_dhcp.c:611 +#: plugins-root/check_dhcp.c:609 #, c-format msgid "" "DHCPOFFER XID (%u) did not match DHCPDISCOVER XID (%u) - ignoring packet\n" msgstr "" -#: plugins-root/check_dhcp.c:633 +#: plugins-root/check_dhcp.c:631 #, c-format msgid "DHCPOFFER hardware address did not match our own - ignoring packet\n" msgstr "" -#: plugins-root/check_dhcp.c:651 +#: plugins-root/check_dhcp.c:649 #, c-format msgid "Total responses seen on the wire: %d\n" msgstr "" -#: plugins-root/check_dhcp.c:652 +#: plugins-root/check_dhcp.c:650 #, fuzzy, c-format msgid "Valid responses for this machine: %d\n" msgstr "Keine Antwort vom Host \n" -#: plugins-root/check_dhcp.c:667 +#: plugins-root/check_dhcp.c:665 #, c-format msgid "send_dhcp_packet result: %d\n" msgstr "" -#: plugins-root/check_dhcp.c:700 +#: plugins-root/check_dhcp.c:698 #, fuzzy, c-format msgid "No (more) data received (nfound: %d)\n" msgstr "Keine Daten empfangen %s\n" -#: plugins-root/check_dhcp.c:719 +#: plugins-root/check_dhcp.c:717 #, c-format msgid "recvfrom() failed, " msgstr "" -#: plugins-root/check_dhcp.c:726 +#: plugins-root/check_dhcp.c:724 #, c-format msgid "receive_dhcp_packet() result: %d\n" msgstr "" -#: plugins-root/check_dhcp.c:727 +#: plugins-root/check_dhcp.c:725 #, c-format msgid "receive_dhcp_packet() source: %s\n" msgstr "" -#: plugins-root/check_dhcp.c:757 +#: plugins-root/check_dhcp.c:755 #, c-format msgid "Error: Could not create socket!\n" msgstr "" -#: plugins-root/check_dhcp.c:767 +#: plugins-root/check_dhcp.c:765 #, c-format msgid "Error: Could not set reuse address option on DHCP socket!\n" msgstr "" -#: plugins-root/check_dhcp.c:773 +#: plugins-root/check_dhcp.c:771 #, c-format msgid "Error: Could not set broadcast option on DHCP socket!\n" msgstr "" -#: plugins-root/check_dhcp.c:782 +#: plugins-root/check_dhcp.c:780 #, c-format msgid "" "Error: Could not bind socket to interface %s. Check your privileges...\n" msgstr "" -#: plugins-root/check_dhcp.c:793 +#: plugins-root/check_dhcp.c:791 #, c-format msgid "" "Error: Could not bind to DHCP socket (port %d)! Check your privileges...\n" msgstr "" -#: plugins-root/check_dhcp.c:827 +#: plugins-root/check_dhcp.c:825 #, c-format msgid "Requested server address: %s\n" msgstr "" -#: plugins-root/check_dhcp.c:888 +#: plugins-root/check_dhcp.c:886 #, c-format msgid "Lease Time: Infinite\n" msgstr "" -#: plugins-root/check_dhcp.c:890 +#: plugins-root/check_dhcp.c:888 #, c-format msgid "Lease Time: %lu seconds\n" msgstr "" -#: plugins-root/check_dhcp.c:892 +#: plugins-root/check_dhcp.c:890 #, c-format msgid "Renewal Time: Infinite\n" msgstr "" -#: plugins-root/check_dhcp.c:894 +#: plugins-root/check_dhcp.c:892 #, c-format msgid "Renewal Time: %lu seconds\n" msgstr "" -#: plugins-root/check_dhcp.c:896 +#: plugins-root/check_dhcp.c:894 #, c-format msgid "Rebinding Time: Infinite\n" msgstr "" -#: plugins-root/check_dhcp.c:897 +#: plugins-root/check_dhcp.c:895 #, c-format msgid "Rebinding Time: %lu seconds\n" msgstr "" -#: plugins-root/check_dhcp.c:925 +#: plugins-root/check_dhcp.c:923 #, c-format msgid "Added offer from server @ %s" msgstr "" -#: plugins-root/check_dhcp.c:926 +#: plugins-root/check_dhcp.c:924 #, c-format msgid " of IP address %s\n" msgstr "" -#: plugins-root/check_dhcp.c:993 +#: plugins-root/check_dhcp.c:991 #, c-format msgid "DHCP Server Match: Offerer=%s" msgstr "" -#: plugins-root/check_dhcp.c:994 +#: plugins-root/check_dhcp.c:992 #, c-format msgid " Requested=%s" msgstr "" -#: plugins-root/check_dhcp.c:996 +#: plugins-root/check_dhcp.c:994 #, c-format msgid " (duplicate)" msgstr "" -#: plugins-root/check_dhcp.c:997 +#: plugins-root/check_dhcp.c:995 #, c-format msgid "\n" msgstr "" -#: plugins-root/check_dhcp.c:1045 +#: plugins-root/check_dhcp.c:1043 #, c-format msgid "No DHCPOFFERs were received.\n" msgstr "" -#: plugins-root/check_dhcp.c:1049 +#: plugins-root/check_dhcp.c:1047 #, c-format msgid "Received %d DHCPOFFER(s)" msgstr "" -#: plugins-root/check_dhcp.c:1052 +#: plugins-root/check_dhcp.c:1050 #, c-format msgid ", %s%d of %d requested servers responded" msgstr "" -#: plugins-root/check_dhcp.c:1055 +#: plugins-root/check_dhcp.c:1053 #, c-format msgid ", requested address (%s) was %soffered" msgstr "" -#: plugins-root/check_dhcp.c:1055 +#: plugins-root/check_dhcp.c:1053 msgid "not " msgstr "" -#: plugins-root/check_dhcp.c:1057 +#: plugins-root/check_dhcp.c:1055 #, c-format msgid ", max lease time = " msgstr "" -#: plugins-root/check_dhcp.c:1059 +#: plugins-root/check_dhcp.c:1057 #, c-format msgid "Infinity" msgstr "" -#: plugins-root/check_dhcp.c:1240 +#: plugins-root/check_dhcp.c:1238 #, c-format msgid "Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:1252 +#: plugins-root/check_dhcp.c:1250 #, c-format msgid "Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:1265 +#: plugins-root/check_dhcp.c:1263 #, c-format msgid "Error: DLPI stream API failed to get MAC in put_both/putmsg().\n" msgstr "" -#: plugins-root/check_dhcp.c:1277 +#: plugins-root/check_dhcp.c:1275 #, c-format msgid "" "Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:1301 +#: plugins-root/check_dhcp.c:1299 #, c-format msgid "Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:1380 +#: plugins-root/check_dhcp.c:1378 #, c-format msgid "Hardware address: " msgstr "" -#: plugins-root/check_dhcp.c:1396 +#: plugins-root/check_dhcp.c:1394 msgid "This plugin tests the availability of DHCP servers on a network." msgstr "" -#: plugins-root/check_dhcp.c:1407 +#: plugins-root/check_dhcp.c:1406 msgid "IP address of DHCP server that we must hear from" msgstr "" -#: plugins-root/check_dhcp.c:1409 +#: plugins-root/check_dhcp.c:1408 msgid "IP address that should be offered by at least one DHCP server" msgstr "" -#: plugins-root/check_dhcp.c:1411 +#: plugins-root/check_dhcp.c:1410 msgid "Seconds to wait for DHCPOFFER before timeout occurs" msgstr "" -#: plugins-root/check_dhcp.c:1413 +#: plugins-root/check_dhcp.c:1412 msgid "Interface to to use for listening (i.e. eth0)" msgstr "" -#: plugins-root/check_dhcp.c:1415 +#: plugins-root/check_dhcp.c:1414 msgid "MAC address to use in the DHCP request" msgstr "" -#: plugins-root/check_dhcp.c:1417 +#: plugins-root/check_dhcp.c:1416 msgid "Unicast testing: mimic a DHCP relay, requires -s" msgstr "" -#: plugins-root/check_icmp.c:1227 +#: plugins-root/check_icmp.c:1271 msgid "specify a target" msgstr "" -#: plugins-root/check_icmp.c:1229 +#: plugins-root/check_icmp.c:1273 #, fuzzy msgid "warning threshold (currently " msgstr "Warning threshold Integer sein" -#: plugins-root/check_icmp.c:1232 +#: plugins-root/check_icmp.c:1276 #, fuzzy msgid "critical threshold (currently " msgstr "Critical threshold muss ein Integer sein" -#: plugins-root/check_icmp.c:1235 +#: plugins-root/check_icmp.c:1279 +#, fuzzy +msgid "specify a source IP address or device name" +msgstr "Hostname oder Serveradresse muss angegeben werden" + +#: plugins-root/check_icmp.c:1281 msgid "number of packets to send (currently " msgstr "" -#: plugins-root/check_icmp.c:1238 +#: plugins-root/check_icmp.c:1284 msgid "max packet interval (currently " msgstr "" -#: plugins-root/check_icmp.c:1241 +#: plugins-root/check_icmp.c:1287 msgid "max target interval (currently " msgstr "" -#: plugins-root/check_icmp.c:1244 +#: plugins-root/check_icmp.c:1290 msgid "number of alive hosts required for success" msgstr "" -#: plugins-root/check_icmp.c:1247 +#: plugins-root/check_icmp.c:1293 msgid "TTL on outgoing packets (currently " msgstr "" -#: plugins-root/check_icmp.c:1250 +#: plugins-root/check_icmp.c:1296 msgid "timeout value (seconds, currently " msgstr "" -#: plugins-root/check_icmp.c:1253 +#: plugins-root/check_icmp.c:1299 msgid "icmp packet size (currenly ignored)" msgstr "" -#: plugins-root/check_icmp.c:1255 +#: plugins-root/check_icmp.c:1301 msgid "verbose" msgstr "" -#: plugins-root/check_icmp.c:1258 +#: plugins-root/check_icmp.c:1305 msgid "The -H switch is optional. Naming a host (or several) to check is not." msgstr "" -#: plugins-root/check_icmp.c:1259 +#: plugins-root/check_icmp.c:1307 msgid "" "Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%" msgstr "" -#: plugins-root/check_icmp.c:1260 +#: plugins-root/check_icmp.c:1308 msgid "packet loss. The default values should work well for most users." msgstr "" -#: plugins-root/check_icmp.c:1261 +#: plugins-root/check_icmp.c:1309 msgid "" "You can specify different RTA factors using the standardized abbreviations" msgstr "" -#: plugins-root/check_icmp.c:1262 +#: plugins-root/check_icmp.c:1310 msgid "" "us (microseconds), ms (milliseconds, default) or just plain s for seconds." msgstr "" -#: plugins-root/check_icmp.c:1267 +#: plugins-root/check_icmp.c:1316 msgid "The -v switch can be specified several times for increased verbosity." msgstr "" diff --git a/po/fr.gmo b/po/fr.gmo index edd2932..f3760ff 100644 Binary files a/po/fr.gmo and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po index e10b0bd..6b69cd1 100644 --- a/po/fr.po +++ b/po/fr.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: nagiosplug-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2007-12-13 22:43+0000\n" +"POT-Creation-Date: 2008-05-27 23:06+0100\n" "PO-Revision-Date: 2007-12-10 02:10-0500\n" "Last-Translator: Thomas Guyot-Sionnest \n" "Language-Team: \n" @@ -20,56 +20,61 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" -#: plugins/check_by_ssh.c:83 plugins/check_cluster.c:79 plugins/check_dig.c:89 -#: plugins/check_disk.c:198 plugins/check_dns.c:93 plugins/check_dummy.c:59 -#: plugins/check_fping.c:89 plugins/check_game.c:84 plugins/check_hpjd.c:106 -#: plugins/check_http.c:154 plugins/check_ldap.c:108 plugins/check_load.c:126 -#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:88 -#: plugins/check_nagios.c:94 plugins/check_nt.c:126 plugins/check_ntp.c:767 -#: plugins/check_ntp_peer.c:553 plugins/check_ntp_time.c:544 +#: plugins/check_by_ssh.c:84 plugins/check_cluster.c:81 plugins/check_dig.c:91 +#: plugins/check_disk.c:199 plugins/check_dns.c:106 plugins/check_dummy.c:56 +#: plugins/check_fping.c:90 plugins/check_game.c:86 plugins/check_hpjd.c:107 +#: plugins/check_http.c:154 plugins/check_ldap.c:112 plugins/check_load.c:126 +#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:89 +#: plugins/check_nagios.c:95 plugins/check_nt.c:129 plugins/check_ntp.c:770 +#: plugins/check_ntp_peer.c:559 plugins/check_ntp_time.c:547 #: plugins/check_nwstat.c:177 plugins/check_overcr.c:106 -#: plugins/check_pgsql.c:156 plugins/check_ping.c:99 plugins/check_procs.c:143 -#: plugins/check_radius.c:156 plugins/check_real.c:85 plugins/check_smtp.c:145 -#: plugins/check_snmp.c:183 plugins/check_ssh.c:78 plugins/check_swap.c:113 -#: plugins/check_tcp.c:211 plugins/check_time.c:82 plugins/check_ups.c:125 -#: plugins/check_users.c:70 plugins/negate.c:259 plugins-root/check_dhcp.c:277 +#: plugins/check_pgsql.c:157 plugins/check_ping.c:99 plugins/check_procs.c:150 +#: plugins/check_radius.c:156 plugins/check_real.c:84 plugins/check_smtp.c:144 +#: plugins/check_snmp.c:183 plugins/check_ssh.c:77 plugins/check_swap.c:114 +#: plugins/check_tcp.c:212 plugins/check_time.c:82 plugins/check_ups.c:126 +#: plugins/check_users.c:72 plugins/negate.c:208 plugins-root/check_dhcp.c:275 msgid "Could not parse arguments" msgstr "Impossible de décomposer les arguments" -#: plugins/check_by_ssh.c:87 plugins/check_dig.c:86 plugins/check_dns.c:89 -#: plugins/check_nagios.c:98 plugins/check_pgsql.c:160 -#: plugins/check_ping.c:103 plugins/check_procs.c:150 plugins/negate.c:113 +#: plugins/check_by_ssh.c:88 plugins/check_dig.c:85 plugins/check_dns.c:99 +#: plugins/check_nagios.c:99 plugins/check_pgsql.c:161 +#: plugins/check_ping.c:103 plugins/check_procs.c:157 plugins/negate.c:78 msgid "Cannot catch SIGALRM" msgstr "Impossible d'obtenir le signal SIGALRM" -#: plugins/check_by_ssh.c:104 +#: plugins/check_by_ssh.c:105 #, c-format msgid "Remote command execution failed: %s\n" msgstr "L'exécution de la commande à distance %s à échoué\n" -#: plugins/check_by_ssh.c:116 +#: plugins/check_by_ssh.c:117 #, c-format msgid "%s - check_by_ssh: Remote command '%s' returned status %d\n" msgstr "" -#: plugins/check_by_ssh.c:128 +#: plugins/check_by_ssh.c:129 #, c-format msgid "SSH WARNING: could not open %s\n" msgstr "SSH AVERTISSEMENT: impossible d'ouvrir %s\n" -#: plugins/check_by_ssh.c:214 plugins/check_disk.c:530 -#: plugins/check_http.c:248 plugins/check_ldap.c:292 plugins/check_pgsql.c:237 -#: plugins/check_procs.c:371 plugins/check_radius.c:284 -#: plugins/check_real.c:361 plugins/check_smtp.c:592 plugins/check_snmp.c:516 -#: plugins/check_ssh.c:143 plugins/check_tcp.c:494 plugins/check_time.c:306 -#: plugins/check_ups.c:555 plugins/negate.c:203 +#: plugins/check_by_ssh.c:138 +#, fuzzy, c-format +msgid "%s: Error parsing output\n" +msgstr "Erreur lors de l'utilisation de %s\n" + +#: plugins/check_by_ssh.c:214 plugins/check_disk.c:532 +#: plugins/check_http.c:249 plugins/check_ldap.c:296 plugins/check_pgsql.c:238 +#: plugins/check_procs.c:399 plugins/check_radius.c:290 +#: plugins/check_real.c:360 plugins/check_smtp.c:593 plugins/check_snmp.c:516 +#: plugins/check_ssh.c:142 plugins/check_tcp.c:495 plugins/check_time.c:306 +#: plugins/check_ups.c:556 plugins/negate.c:162 msgid "Timeout interval must be a positive integer" msgstr "Le délai d'attente doit être un entier positif" -#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:261 -#: plugins/check_radius.c:257 plugins/check_real.c:332 -#: plugins/check_smtp.c:519 plugins/check_tcp.c:500 plugins/check_time.c:300 -#: plugins/check_ups.c:517 +#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:262 +#: plugins/check_radius.c:257 plugins/check_real.c:331 +#: plugins/check_smtp.c:520 plugins/check_tcp.c:501 plugins/check_time.c:300 +#: plugins/check_ups.c:518 msgid "Port must be a positive integer" msgstr "Le numéro du port doit être un entier positif" @@ -111,436 +116,445 @@ msgstr "" msgid "This plugin uses SSH to execute commands on a remote host" msgstr "Ce plugin utilise SSH pour exécuter des commandes sur un hôte distant" -#: plugins/check_by_ssh.c:360 +#: plugins/check_by_ssh.c:362 msgid "tell ssh to use Protocol 1 [optional]" msgstr "dire à ssh d'utiliser le protocole version 1 [optionnel]" -#: plugins/check_by_ssh.c:362 +#: plugins/check_by_ssh.c:364 msgid "tell ssh to use Protocol 2 [optional]" msgstr "dire à ssh d'utiliser le protocole 2 [optionnel]" -#: plugins/check_by_ssh.c:364 +#: plugins/check_by_ssh.c:366 msgid "Ignore all or (if specified) first n lines on STDOUT [optional]" msgstr "" -#: plugins/check_by_ssh.c:366 +#: plugins/check_by_ssh.c:368 msgid "Ignore all or (if specified) first n lines on STDERR [optional]" msgstr "" -#: plugins/check_by_ssh.c:368 -msgid "tells ssh to fork rather than create a tty [optional]" +#: plugins/check_by_ssh.c:370 +msgid "" +"tells ssh to fork rather than create a tty [optional]. This will always " +"return OK if ssh is executed" msgstr "" -#: plugins/check_by_ssh.c:370 +#: plugins/check_by_ssh.c:372 msgid "command to execute on the remote machine" msgstr "commande à exécuter sur la machine distante" -#: plugins/check_by_ssh.c:372 +#: plugins/check_by_ssh.c:374 msgid "SSH user name on remote host [optional]" msgstr "Nom d'utilisateur ssh sur la machine distante [optionnel]" -#: plugins/check_by_ssh.c:374 +#: plugins/check_by_ssh.c:376 msgid "identity of an authorized key [optional]" msgstr "Identité de la clé autorisée [optionnel]" -#: plugins/check_by_ssh.c:376 +#: plugins/check_by_ssh.c:378 msgid "external command file for nagios [optional]" msgstr "commande externe pour nagios [optionnel]" -#: plugins/check_by_ssh.c:378 +#: plugins/check_by_ssh.c:380 msgid "list of nagios service names, separated by ':' [optional]" msgstr "liste des services nagios, séparés par ':' [optionnel] " -#: plugins/check_by_ssh.c:380 +#: plugins/check_by_ssh.c:382 msgid "short name of host in nagios configuration [optional]" msgstr "nom court de l'hôte dans la configuration nagios [optionnel]" -#: plugins/check_by_ssh.c:382 +#: plugins/check_by_ssh.c:384 msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]" msgstr "" "appelle ssh avec '-o OPTION' (peut être utilisé plusieurs fois) [optionnel]" -#: plugins/check_by_ssh.c:384 +#: plugins/check_by_ssh.c:386 msgid "Tell ssh to suppress warning and diagnostic messages [optional]" msgstr "" "dire à ssh de supprimer les messages d'erreurs et de diagnostic [optionnel]" -#: plugins/check_by_ssh.c:387 +#: plugins/check_by_ssh.c:391 msgid "The most common mode of use is to refer to a local identity file with" msgstr "" -#: plugins/check_by_ssh.c:388 +#: plugins/check_by_ssh.c:392 msgid "the '-i' option. In this mode, the identity pair should have a null" msgstr "" -#: plugins/check_by_ssh.c:389 +#: plugins/check_by_ssh.c:393 msgid "passphrase and the public key should be listed in the authorized_keys" msgstr "" -#: plugins/check_by_ssh.c:390 +#: plugins/check_by_ssh.c:394 msgid "file of the remote host. Usually the key will be restricted to running" msgstr "" -#: plugins/check_by_ssh.c:391 +#: plugins/check_by_ssh.c:395 msgid "only one command on the remote server. If the remote SSH server tracks" msgstr "" -#: plugins/check_by_ssh.c:392 +#: plugins/check_by_ssh.c:396 msgid "invocation arguments, the one remote program may be an agent that can" msgstr "" -#: plugins/check_by_ssh.c:393 +#: plugins/check_by_ssh.c:397 msgid "execute additional commands as proxy" msgstr "" -#: plugins/check_by_ssh.c:394 +#: plugins/check_by_ssh.c:399 msgid "To use passive mode, provide multiple '-C' options, and provide" msgstr "Pour utiliser le mode passif, utilisez plusieurs fois l'option '-C',et" -#: plugins/check_by_ssh.c:395 +#: plugins/check_by_ssh.c:400 msgid "" "all of -O, -s, and -n options (servicelist order must match '-C'options)" msgstr "" "et les options -O, -s, n (l'ordre des services doit correspondre aux " "multiples options '-C)" -#: plugins/check_by_ssh.c:397 plugins/check_disk.c:954 -#: plugins/check_http.c:1312 plugins/check_nagios.c:303 -#: plugins/check_ntp.c:866 plugins/check_ntp_peer.c:668 -#: plugins/check_ntp_time.c:623 plugins/check_procs.c:735 plugins/negate.c:319 -#: plugins/urlize.c:187 -#, c-format +#: plugins/check_by_ssh.c:402 plugins/check_dig.c:341 plugins/check_disk.c:970 +#: plugins/check_http.c:1323 plugins/check_nagios.c:312 +#: plugins/check_ntp.c:872 plugins/check_ntp_peer.c:680 +#: plugins/check_ntp_time.c:631 plugins/check_procs.c:783 plugins/negate.c:263 +#: plugins/urlize.c:184 msgid "Examples:" msgstr "Exemples:" -#: plugins/check_by_ssh.c:412 plugins/check_cluster.c:273 -#: plugins/check_dig.c:336 plugins/check_disk.c:970 plugins/check_dns.c:447 -#: plugins/check_dummy.c:129 plugins/check_fping.c:407 -#: plugins/check_game.c:334 plugins/check_hpjd.c:415 plugins/check_http.c:1335 -#: plugins/check_ldap.c:449 plugins/check_load.c:328 plugins/check_mrtg.c:383 -#: plugins/check_mysql.c:407 plugins/check_nagios.c:313 plugins/check_nt.c:707 -#: plugins/check_ntp.c:879 plugins/check_ntp_peer.c:683 -#: plugins/check_ntp_time.c:632 plugins/check_nwstat.c:1688 -#: plugins/check_overcr.c:469 plugins/check_pgsql.c:458 -#: plugins/check_ping.c:597 plugins/check_procs.c:753 -#: plugins/check_radius.c:358 plugins/check_real.c:454 -#: plugins/check_smtp.c:825 plugins/check_snmp.c:1029 plugins/check_ssh.c:308 -#: plugins/check_swap.c:559 plugins/check_tcp.c:654 plugins/check_time.c:373 -#: plugins/check_ups.c:657 plugins/check_users.c:230 -#: plugins/check_ide_smart.c:527 plugins/negate.c:340 plugins/urlize.c:204 -#: plugins-root/check_dhcp.c:1426 plugins-root/check_icmp.c:1282 +#: plugins/check_by_ssh.c:411 plugins/check_cluster.c:262 +#: plugins/check_dig.c:347 plugins/check_disk.c:965 plugins/check_dns.c:485 +#: plugins/check_fping.c:405 plugins/check_game.c:322 plugins/check_hpjd.c:412 +#: plugins/check_http.c:1307 plugins/check_ldap.c:437 plugins/check_load.c:325 +#: plugins/check_mrtg.c:367 plugins/check_mrtgtraf.c:367 +#: plugins/check_mysql.c:421 plugins/check_nagios.c:307 plugins/check_nt.c:728 +#: plugins/check_ntp.c:864 plugins/check_ntp_peer.c:667 +#: plugins/check_ntp_time.c:620 plugins/check_nwstat.c:1674 +#: plugins/check_overcr.c:460 plugins/check_pgsql.c:456 +#: plugins/check_ping.c:601 plugins/check_procs.c:778 +#: plugins/check_radius.c:359 plugins/check_real.c:449 +#: plugins/check_smtp.c:821 plugins/check_snmp.c:1006 plugins/check_ssh.c:302 +#: plugins/check_swap.c:551 plugins/check_tcp.c:651 plugins/check_time.c:369 +#: plugins/check_ups.c:642 plugins/check_users.c:228 +#: plugins/check_ide_smart.c:514 plugins/negate.c:269 +#: plugins-root/check_dhcp.c:1420 plugins-root/check_icmp.c:1304 +msgid "Notes:" +msgstr "Notes:" + +#: plugins/check_by_ssh.c:423 plugins/check_cluster.c:277 +#: plugins/check_dig.c:359 plugins/check_disk.c:987 plugins/check_dns.c:496 +#: plugins/check_dummy.c:126 plugins/check_fping.c:416 +#: plugins/check_game.c:339 plugins/check_hpjd.c:424 plugins/check_http.c:1346 +#: plugins/check_ldap.c:459 plugins/check_load.c:335 plugins/check_mrtg.c:389 +#: plugins/check_mysql.c:432 plugins/check_nagios.c:323 plugins/check_nt.c:747 +#: plugins/check_ntp.c:891 plugins/check_ntp_peer.c:697 +#: plugins/check_ntp_time.c:640 plugins/check_nwstat.c:1692 +#: plugins/check_overcr.c:475 plugins/check_pgsql.c:468 +#: plugins/check_ping.c:611 plugins/check_radius.c:371 +#: plugins/check_real.c:461 plugins/check_smtp.c:833 plugins/check_snmp.c:1036 +#: plugins/check_ssh.c:314 plugins/check_swap.c:567 plugins/check_tcp.c:662 +#: plugins/check_time.c:381 plugins/check_ups.c:664 plugins/check_users.c:239 +#: plugins/check_ide_smart.c:536 plugins/negate.c:284 plugins/urlize.c:201 +#: plugins-root/check_dhcp.c:1432 plugins-root/check_icmp.c:1333 #, c-format msgid "Usage:" msgstr "Utilisation:" -#: plugins/check_cluster.c:233 +#: plugins/check_cluster.c:235 #, c-format msgid "Host/Service Cluster Plugin for Nagios 2" msgstr "Plugin de Cluster d'Hôte/Service pour Nagios 2" -#: plugins/check_cluster.c:239 plugins/check_nt.c:632 +#: plugins/check_cluster.c:241 plugins/check_nt.c:652 msgid "Options:" msgstr "Options:" -#: plugins/check_cluster.c:241 +#: plugins/check_cluster.c:244 msgid "Check service cluster status" msgstr "Vérifie l'état d'un cluster de services" -#: plugins/check_cluster.c:243 +#: plugins/check_cluster.c:246 msgid "Check host cluster status" msgstr "Vérifie l'état d'un cluster d'hôtes" -#: plugins/check_cluster.c:245 +#: plugins/check_cluster.c:248 msgid "Optional prepended text output (i.e. \"Host cluster\")" msgstr "Texte optionnel accolé à la sortie (i.e. \"Cluster d'hôtes\")" -#: plugins/check_cluster.c:247 plugins/check_cluster.c:250 +#: plugins/check_cluster.c:250 plugins/check_cluster.c:253 msgid "Specifies the range of hosts or services in cluster that must be in a" msgstr "Défini le nombre d'hôtes ou de services du cluster qui doivent être" -#: plugins/check_cluster.c:248 +#: plugins/check_cluster.c:251 msgid "non-OK state in order to return a WARNING status level" msgstr "dans un état non-OK pour retourner un état AVERTISSEMENT" -#: plugins/check_cluster.c:251 +#: plugins/check_cluster.c:254 msgid "non-OK state in order to return a CRITICAL status level" msgstr "dans un état non-OK pour retourner un état CRITIQUE" -#: plugins/check_cluster.c:253 +#: plugins/check_cluster.c:256 msgid "The status codes of the hosts or services in the cluster, separated by" msgstr "Les codes d'état des hôtes ou des services du cluster, séparés par des" -#: plugins/check_cluster.c:254 +#: plugins/check_cluster.c:257 msgid "commas" msgstr "virgules" -#: plugins/check_cluster.c:259 plugins/check_game.c:318 -#: plugins/check_http.c:1300 plugins/check_mrtg.c:364 -#: plugins/check_mrtgtraf.c:365 plugins/check_nt.c:693 plugins/check_ntp.c:860 -#: plugins/check_ntp_peer.c:655 plugins/check_ntp_time.c:611 -#: plugins/check_nwstat.c:1673 plugins/check_overcr.c:452 -#: plugins/check_swap.c:548 plugins/check_ups.c:633 plugins/negate.c:325 -#, c-format -msgid "Notes:" -msgstr "Notes:" - -#: plugins/check_cluster.c:260 plugins/check_ntp.c:861 -#: plugins/check_ntp_peer.c:663 plugins/check_ntp_time.c:618 -msgid "See:" -msgstr "Voir:" - -#: plugins/check_cluster.c:262 plugins/check_ntp.c:863 -#: plugins/check_ntp_peer.c:665 plugins/check_ntp_time.c:620 -msgid "for THRESHOLD format and examples." -msgstr "pour le format et examples des seuils (THRESHOLD)" - -#: plugins/check_dig.c:101 plugins/check_dig.c:103 +#: plugins/check_dig.c:103 plugins/check_dig.c:105 #, c-format msgid "Looking for: '%s'\n" msgstr "Recherche de: '%s'\n" -#: plugins/check_dig.c:110 +#: plugins/check_dig.c:112 msgid "dig returned an error status" msgstr "dig à renvoyé un état d'erreur" -#: plugins/check_dig.c:135 +#: plugins/check_dig.c:137 msgid "Server not found in ANSWER SECTION" msgstr "Le serveur n'a pas été trouvé dans l'ANSWER SECTION" -#: plugins/check_dig.c:145 +#: plugins/check_dig.c:147 msgid "No ANSWER SECTION found" msgstr "Pas d' ANSWER SECTION trouvé" -#: plugins/check_dig.c:170 +#: plugins/check_dig.c:172 msgid "Probably a non-existent host/domain" msgstr "Probablement un hôte/domaine inexistant" -#: plugins/check_dig.c:229 +#: plugins/check_dig.c:232 #, c-format msgid "Port must be a positive integer - %s" msgstr "Le numéro du port doit être un entier positif - %s" -#: plugins/check_dig.c:240 +#: plugins/check_dig.c:243 #, c-format msgid "Warning interval must be a positive integer - %s" msgstr "Le seuil d'avertissement doit être un entier positif - %s" -#: plugins/check_dig.c:248 +#: plugins/check_dig.c:251 #, c-format msgid "Critical interval must be a positive integer - %s" msgstr "Le seuil critique doit être un entier positif - %s" -#: plugins/check_dig.c:256 +#: plugins/check_dig.c:259 #, c-format msgid "Timeout interval must be a positive integer - %s" msgstr "Le délai d'attente doit être un entier positif - %s" -#: plugins/check_dig.c:309 +#: plugins/check_dig.c:315 #, c-format msgid "This plugin test the DNS service on the specified host using dig" msgstr "Ce plugin teste le service DNS sur l'hôte spécifié en utilisant dig" -#: plugins/check_dig.c:320 -msgid "machine name to lookup" +#: plugins/check_dig.c:328 +#, fuzzy +msgid "Machine name to lookup" msgstr "nom de machine à vérifier" -#: plugins/check_dig.c:322 -msgid "record type to lookup (default: A)" +#: plugins/check_dig.c:330 +#, fuzzy +msgid "Record type to lookup (default: A)" msgstr "type d'enregistrement à vérifier (par défaut: A)" -#: plugins/check_dig.c:324 +#: plugins/check_dig.c:332 +#, fuzzy msgid "" -"an address expected to be in the answer section.if not set, uses whatever " -"was in -l" +"An address expected to be in the answer section. If not set, uses whatever" msgstr "" "une adresse qui devrait se trouver dans l'ANSWER SECTION. Si elle ne si " "trouve pas, utilise ce qui a été précisé avec -l" -#: plugins/check_disk.c:220 +#: plugins/check_dig.c:333 +msgid "was in -l" +msgstr "" + +#: plugins/check_dig.c:335 +msgid "Pass STRING as argument(s) to dig" +msgstr "" + +#: plugins/check_disk.c:221 #, c-format msgid "DISK %s: %s not found\n" msgstr "DISK %s: %s non trouvé\n" -#: plugins/check_disk.c:220 plugins/check_disk.c:985 plugins/check_dns.c:208 -#: plugins/check_dummy.c:81 plugins/check_http.c:951 plugins/check_mysql.c:214 -#: plugins/check_nagios.c:107 plugins/check_nagios.c:171 -#: plugins/check_nagios.c:175 plugins/check_procs.c:302 +#: plugins/check_disk.c:221 plugins/check_disk.c:1002 plugins/check_dns.c:245 +#: plugins/check_dummy.c:78 plugins/check_http.c:956 plugins/check_mysql.c:215 +#: plugins/check_nagios.c:108 plugins/check_nagios.c:172 +#: plugins/check_nagios.c:176 plugins/check_procs.c:325 #, c-format msgid "CRITICAL" msgstr "CRITIQUE" -#: plugins/check_disk.c:604 +#: plugins/check_disk.c:606 #, c-format msgid "unit type %s not known\n" msgstr "unité de type %s inconnue\n" -#: plugins/check_disk.c:607 +#: plugins/check_disk.c:609 #, c-format msgid "failed allocating storage for '%s'\n" msgstr "Impossible d'allouer de l'espace pour '%s'\n" -#: plugins/check_disk.c:631 plugins/check_disk.c:662 plugins/check_disk.c:667 -#: plugins/check_disk.c:674 plugins/check_disk.c:678 plugins/check_disk.c:718 -#: plugins/check_disk.c:724 plugins/check_disk.c:743 plugins/check_dummy.c:84 -#: plugins/check_dummy.c:87 +#: plugins/check_disk.c:633 plugins/check_disk.c:664 plugins/check_disk.c:669 +#: plugins/check_disk.c:676 plugins/check_disk.c:680 plugins/check_disk.c:720 +#: plugins/check_disk.c:726 plugins/check_disk.c:745 plugins/check_dummy.c:81 +#: plugins/check_dummy.c:84 plugins/check_procs.c:486 #, c-format msgid "UNKNOWN" msgstr "INCONNU" -#: plugins/check_disk.c:631 +#: plugins/check_disk.c:633 msgid "Must set a threshold value before using -p\n" msgstr "" -#: plugins/check_disk.c:662 +#: plugins/check_disk.c:664 msgid "Must set -E before selecting pathes\n" msgstr "" -#: plugins/check_disk.c:667 +#: plugins/check_disk.c:669 msgid "Must set group value before selecting pathes \n" msgstr "" -#: plugins/check_disk.c:674 +#: plugins/check_disk.c:676 msgid "" "Pathes need to be selected before using -i/-I. Use -A to select all pathes " "explicitly" msgstr "" -#: plugins/check_disk.c:678 plugins/check_disk.c:724 +#: plugins/check_disk.c:680 plugins/check_disk.c:726 plugins/check_procs.c:486 msgid "Could not compile regular expression" msgstr "Impossible de compiler l'expression rationnelle" -#: plugins/check_disk.c:718 +#: plugins/check_disk.c:720 msgid "Must set a threshold value before using -r/-R\n" msgstr "" -#: plugins/check_disk.c:744 +#: plugins/check_disk.c:746 msgid "Regular expression did not match any path or disk" msgstr "" -#: plugins/check_disk.c:791 +#: plugins/check_disk.c:793 msgid "Unknown argument" msgstr "Argument inconnu" -#: plugins/check_disk.c:825 +#: plugins/check_disk.c:827 #, c-format msgid " for %s\n" msgstr " pour %s\n" -#: plugins/check_disk.c:893 +#: plugins/check_disk.c:901 msgid "" "This plugin checks the amount of used disk space on a mounted file system" msgstr "Ce plugin vérifie la place utilisé sur un système de fichier monté" -#: plugins/check_disk.c:894 +#: plugins/check_disk.c:902 msgid "" "and generates an alert if free space is less than one of the threshold values" msgstr "" "et génère une alerte si la place disponible est plus petite qu'un des seuils " "fourni" -#: plugins/check_disk.c:903 +#: plugins/check_disk.c:912 msgid "Exit with WARNING status if less than INTEGER units of disk are free" msgstr "" "Sortir avec un résultat AVERTISSEMENT si moins de X unités de disques sont " "libres" -#: plugins/check_disk.c:905 +#: plugins/check_disk.c:914 msgid "Exit with WARNING status if less than PERCENT of disk space is free" msgstr "" "Sortir avec un résultat AVERTISSEMENT si moins de X pour-cent du disque est " "libre" -#: plugins/check_disk.c:907 +#: plugins/check_disk.c:916 msgid "Exit with CRITICAL status if less than INTEGER units of disk are free" msgstr "" "Sortir avec un résultat CRITIQUE si moins de X unités du disque sont libres" -#: plugins/check_disk.c:909 +#: plugins/check_disk.c:918 msgid "Exit with CRITCAL status if less than PERCENT of disk space is free" msgstr "" "Sortir avec un résultat CRITIQUE si moins de X pour-cent du disque est libre" -#: plugins/check_disk.c:911 +#: plugins/check_disk.c:920 msgid "Exit with WARNING status if less than PERCENT of inode space is free" msgstr "" "Sortir avec un résultat AVERTISSEMENT si moins de X pour-cent des inodes " "sont libres" -#: plugins/check_disk.c:913 +#: plugins/check_disk.c:922 msgid "Exit with CRITICAL status if less than PERCENT of inode space is free" msgstr "" "Sortir avec un résultat CRITIQUE si moins de X pour-cent des inodes sont " "libres" -#: plugins/check_disk.c:915 +#: plugins/check_disk.c:924 msgid "Path or partition (may be repeated)" msgstr "Répertoire ou partition (peut être utilisé plusieurs fois)" -#: plugins/check_disk.c:917 +#: plugins/check_disk.c:926 msgid "Ignore device (only works if -p unspecified)" msgstr "Ignorer le périphérique (marche seulement lorsque -p est utilisé)" -#: plugins/check_disk.c:919 +#: plugins/check_disk.c:928 msgid "Clear thresholds" msgstr "Effacer les seuils" -#: plugins/check_disk.c:921 +#: plugins/check_disk.c:930 msgid "For paths or partitions specified with -p, only check for exact paths" msgstr "" -#: plugins/check_disk.c:923 +#: plugins/check_disk.c:932 msgid "Display only devices/mountpoints with errors" msgstr "Afficher seulement les périphériques/point de montage avec des erreurs" -#: plugins/check_disk.c:925 +#: plugins/check_disk.c:934 msgid "" "Group pathes. Thresholds apply to (free-)space of all partitions together" msgstr "" -#: plugins/check_disk.c:927 +#: plugins/check_disk.c:936 msgid "Same as '--units kB'" msgstr "Pareil à '--units kB'" -#: plugins/check_disk.c:929 +#: plugins/check_disk.c:938 msgid "Only check local filesystems" msgstr "Vérifier seulement les systèmes de fichiers locaux" -#: plugins/check_disk.c:931 +#: plugins/check_disk.c:940 msgid "" "Only check local filesystems against thresholds. Yet call stat on remote " "filesystems" msgstr "" -#: plugins/check_disk.c:932 +#: plugins/check_disk.c:941 msgid "to test if they are accessible (e.g. to detect Stale NFS Handles)" msgstr "" -#: plugins/check_disk.c:934 +#: plugins/check_disk.c:943 msgid "Display the mountpoint instead of the partition" msgstr "Afficher le point de montage au lieu de la partition" -#: plugins/check_disk.c:936 +#: plugins/check_disk.c:945 msgid "Same as '--units MB'" msgstr "Pareil à '--units MB'" -#: plugins/check_disk.c:938 +#: plugins/check_disk.c:947 msgid "Explicitly select all pathes. This is equivalent to -R '.*'" msgstr "" -#: plugins/check_disk.c:940 +#: plugins/check_disk.c:949 msgid "" "Case insensitive regular expression for path/partition (may be repeated)" msgstr "" "Expression rationnelle indépendante de la case pour un répertoire ou une " "partition (peut être utilisé plusieurs fois)" -#: plugins/check_disk.c:942 +#: plugins/check_disk.c:951 msgid "Regular expression for path or partition (may be repeated)" msgstr "" "Expression rationnelle pour un répertoire ou une partition (peut être " "utilisé plusieurs fois)" -#: plugins/check_disk.c:944 +#: plugins/check_disk.c:953 msgid "" "Regular expression to ignore selected path/partition (case insensitive) (may " "be repeated)" @@ -548,192 +562,192 @@ msgstr "" "Expression rationnelle pour ignorer un répertoire ou une partition (peut " "être utilisé plusieurs fois)" -#: plugins/check_disk.c:946 +#: plugins/check_disk.c:955 msgid "" "Regular expression to ignore selected path or partition (may be repeated)" msgstr "" "Expression rationnelle pour ignorer un répertoire ou une partition (peut " "être utilisé plusieurs fois)" -#: plugins/check_disk.c:949 +#: plugins/check_disk.c:958 msgid "Choose bytes, kB, MB, GB, TB (default: MB)" msgstr "Choisissez octets, kb, MB, GB, TB (par défaut: MB)" -#: plugins/check_disk.c:952 +#: plugins/check_disk.c:961 msgid "Ignore all filesystems of indicated type (may be repeated)" msgstr "" "Ignorer tout les systèmes de fichiers qui correspondent au type indiqué " "(peut être utilisé plusieurs fois)" -#: plugins/check_disk.c:956 +#: plugins/check_disk.c:972 msgid "Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB" msgstr "Vérifie /tmp à 10% et /var à 5% et / à 100MB et 50MB" -#: plugins/check_disk.c:958 +#: plugins/check_disk.c:974 msgid "" "Checks all filesystems not matching -r at 100M and 50M. The fs matching the -" "r regex" msgstr "" -#: plugins/check_disk.c:959 +#: plugins/check_disk.c:975 msgid "" "are grouped which means the freespace thresholds are applied to all disks " "together" msgstr "" -#: plugins/check_disk.c:961 +#: plugins/check_disk.c:977 msgid "" "Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use " "100M/50M" msgstr "" -#: plugins/check_disk.c:986 +#: plugins/check_disk.c:1003 #, c-format msgid "%s %s: %s\n" msgstr "" -#: plugins/check_disk.c:986 +#: plugins/check_disk.c:1003 msgid "is not accessible" msgstr "" -#: plugins/check_dns.c:107 +#: plugins/check_dns.c:120 msgid "nslookup returned an error status" msgstr "nslookup à retourné un code d'erreur" -#: plugins/check_dns.c:120 +#: plugins/check_dns.c:138 msgid "Warning plugin error" msgstr "Alerte erreur de plugin" -#: plugins/check_dns.c:140 +#: plugins/check_dns.c:158 #, c-format msgid "DNS CRITICAL - '%s' returned empty host name string\n" msgstr "DNS CRITIQUE - '%s' à retourné un nom d'hôte vide\n" -#: plugins/check_dns.c:150 +#: plugins/check_dns.c:164 msgid "Non-authoritative answer:" msgstr "Réponse non autoritative:" -#: plugins/check_dns.c:178 +#: plugins/check_dns.c:205 #, c-format msgid "DNS CRITICAL - '%s' msg parsing exited with no address\n" msgstr "DNS CRITIQUE - '%s' n'a pas retourné d'adresse\n" -#: plugins/check_dns.c:184 +#: plugins/check_dns.c:220 #, c-format msgid "expected '%s' but got '%s'" msgstr "j'attendais '%s' mais j'ai reçu '%s'" -#: plugins/check_dns.c:190 +#: plugins/check_dns.c:227 #, c-format msgid "server %s is not authoritative for %s" msgstr "serveur %s n'est pas autoritaire pour %s" -#: plugins/check_dns.c:204 plugins/check_dummy.c:75 plugins/check_nagios.c:185 -#: plugins/check_procs.c:295 +#: plugins/check_dns.c:241 plugins/check_dummy.c:72 plugins/check_nagios.c:186 +#: plugins/check_procs.c:318 #, c-format msgid "OK" msgstr "OK" -#: plugins/check_dns.c:206 plugins/check_dummy.c:78 plugins/check_http.c:953 -#: plugins/check_mysql.c:211 plugins/check_nagios.c:185 -#: plugins/check_procs.c:297 +#: plugins/check_dns.c:243 plugins/check_dummy.c:75 plugins/check_http.c:958 +#: plugins/check_mysql.c:212 plugins/check_nagios.c:186 +#: plugins/check_procs.c:320 #, c-format msgid "WARNING" msgstr "AVERTISSEMENT" -#: plugins/check_dns.c:210 +#: plugins/check_dns.c:247 #, c-format msgid "%.3f second response time" msgid_plural "%.3f seconds response time" msgstr[0] "%.3f secondes de temps de réponse " msgstr[1] "%.3f secondes de temps de réponse " -#: plugins/check_dns.c:211 +#: plugins/check_dns.c:248 #, c-format msgid ". %s returns %s" msgstr ". %s renvoie %s" -#: plugins/check_dns.c:215 +#: plugins/check_dns.c:252 #, c-format msgid "DNS WARNING - %s\n" msgstr "DNS AVERTISSEMENT - %s\n" -#: plugins/check_dns.c:216 plugins/check_dns.c:219 plugins/check_dns.c:222 +#: plugins/check_dns.c:253 plugins/check_dns.c:256 plugins/check_dns.c:259 msgid " Probably a non-existent host/domain" msgstr " Probablement un hôte/domaine inexistant" -#: plugins/check_dns.c:218 +#: plugins/check_dns.c:255 #, c-format msgid "DNS CRITICAL - %s\n" msgstr "DNS CRITIQUE - %s\n" -#: plugins/check_dns.c:221 +#: plugins/check_dns.c:258 #, c-format msgid "DNS UNKNOW - %s\n" msgstr "DNS INCONNU - %s\n" -#: plugins/check_dns.c:234 +#: plugins/check_dns.c:271 msgid "Note: nslookup is deprecated and may be removed from future releases." msgstr "" "Note: nslookup est obsolète et pourra être retiré dans les prochaines " "versions." -#: plugins/check_dns.c:235 +#: plugins/check_dns.c:272 msgid "Consider using the `dig' or `host' programs instead. Run nslookup with" msgstr "" "Veuillez utiliser le programme 'dig' ou 'host' à la place. Faire fonctionner " "nslookup avec" -#: plugins/check_dns.c:236 +#: plugins/check_dns.c:273 msgid "the `-sil[ent]' option to prevent this message from appearing." msgstr "L'option '-sil[ent]' empêche l'apparition de ce message." -#: plugins/check_dns.c:241 +#: plugins/check_dns.c:278 #, c-format msgid "No response from DNS %s\n" msgstr "Pas de réponse du DNS %s\n" -#: plugins/check_dns.c:245 +#: plugins/check_dns.c:282 #, c-format msgid "DNS %s has no records\n" msgstr "Le DNS %s n'a pas d'enregistrements\n" -#: plugins/check_dns.c:253 +#: plugins/check_dns.c:290 #, c-format msgid "Connection to DNS %s was refused\n" msgstr "La connexion au DNS %s à été refusée\n" -#: plugins/check_dns.c:257 +#: plugins/check_dns.c:294 #, c-format msgid "Query was refused by DNS server at %s\n" msgstr "La requête à été refusée par le serveur DNS %s\n" -#: plugins/check_dns.c:261 +#: plugins/check_dns.c:298 #, c-format msgid "No information returned by DNS server at %s\n" msgstr "Pas d'information renvoyée par le serveur DNS %s\n" -#: plugins/check_dns.c:267 +#: plugins/check_dns.c:304 #, c-format msgid "Domain %s was not found by the server\n" msgstr "Le domaine %s n'a pas été trouvé par le serveur\n" -#: plugins/check_dns.c:271 +#: plugins/check_dns.c:308 msgid "Network is unreachable\n" msgstr "Le réseau est inaccessible\n" -#: plugins/check_dns.c:275 +#: plugins/check_dns.c:312 #, c-format msgid "DNS failure for %s\n" msgstr "DNS à échoué pour %s\n" -#: plugins/check_dns.c:339 plugins/check_dns.c:347 plugins/check_dns.c:354 -#: plugins/check_dns.c:359 plugins/check_dns.c:380 plugins/check_dns.c:388 -#: plugins/check_game.c:213 plugins/check_game.c:221 +#: plugins/check_dns.c:376 plugins/check_dns.c:384 plugins/check_dns.c:391 +#: plugins/check_dns.c:396 plugins/check_dns.c:418 plugins/check_dns.c:426 +#: plugins/check_game.c:215 plugins/check_game.c:223 msgid "Input buffer overflow\n" msgstr "Le tampon d'entrée a débordé\n" -#: plugins/check_dns.c:416 +#: plugins/check_dns.c:454 msgid "" "This plugin uses the nslookup program to obtain the IP address for the given " "host/domain query." @@ -741,11 +755,11 @@ msgstr "" "Ce plugin utilise le programme nslookup pour obtenir l'adresse IP de l'hôte/" "domaine à interroger." -#: plugins/check_dns.c:417 +#: plugins/check_dns.c:455 msgid "An optional DNS server to use may be specified." msgstr "Un serveur DNS à utiliser peut être indiqué." -#: plugins/check_dns.c:418 +#: plugins/check_dns.c:456 msgid "" "If no DNS server is specified, the default server(s) specified in /etc/" "resolv.conf will be used." @@ -753,146 +767,162 @@ msgstr "" "Si aucun serveur DNS n'est spécifié, les serveurs spécifiés dans /etc/resolv." "conf seront utilisé." -#: plugins/check_dns.c:427 +#: plugins/check_dns.c:466 msgid "The name or address you want to query" msgstr "Le nom ou l'adresse que vous voulez interroger" -#: plugins/check_dns.c:429 +#: plugins/check_dns.c:468 msgid "Optional DNS server you want to use for the lookup" msgstr "Serveur DNS que vous voulez utiliser pour la recherche" -#: plugins/check_dns.c:431 +#: plugins/check_dns.c:470 +#, fuzzy msgid "" -"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with ." +"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with" msgstr "" "Adresse IP que le serveur DNS doit renvoyer. Les hôtes doivent se terminer " "avec ." -#: plugins/check_dns.c:433 +#: plugins/check_dns.c:471 +msgid "" +"a dot (.). This option can be repeated multiple times (Returns OK if any" +msgstr "" + +#: plugins/check_dns.c:472 +msgid "" +"value match). If multiple addresses are returned at once, you have to match" +msgstr "" + +#: plugins/check_dns.c:473 +msgid "" +"the whole string of addresses separated with commas (sorted alphabetically)." +msgstr "" + +#: plugins/check_dns.c:475 msgid "Optionally expect the DNS server to be authoritative for the lookup" msgstr "Serveur DNS qui doit normalement être autoritaire pour la recherche" -#: plugins/check_dns.c:435 +#: plugins/check_dns.c:477 msgid "Return warning if elapsed time exceeds value. Default off" msgstr "" "Renvoie une alerte si le temps écoulé dépasse la valeur indiquée. Désactivé " "par défaut" -#: plugins/check_dns.c:437 +#: plugins/check_dns.c:479 msgid "Return critical if elapsed time exceeds value. Default off" msgstr "" "Renvoie critique si le temps utilisé dépasse la valeur indiquée. Désactivé " "par défaut" -#: plugins/check_dummy.c:69 +#: plugins/check_dummy.c:66 msgid "Arguments to check_dummy must be an integer" msgstr "Les arguments pour check_dummy doivent être des entiers" -#: plugins/check_dummy.c:89 +#: plugins/check_dummy.c:86 #, c-format msgid "Status %d is not a supported error state\n" msgstr "Le résultat %d n'est pas un résultat supporté\n" -#: plugins/check_dummy.c:111 +#: plugins/check_dummy.c:108 msgid "" "This plugin will simply return the state corresponding to the numeric value" msgstr "" "Ce plugin renverra simplement l'état correspondant à la valeur numérique" -#: plugins/check_dummy.c:113 +#: plugins/check_dummy.c:110 msgid "of the argument with optional text" msgstr "du paramètre avec un texte optionnel" -#: plugins/check_fping.c:103 plugins/check_hpjd.c:131 plugins/check_ping.c:432 -#: plugins/check_procs.c:159 plugins/check_snmp.c:210 plugins/check_swap.c:178 -#: plugins/check_users.c:75 plugins/urlize.c:117 +#: plugins/check_fping.c:104 plugins/check_hpjd.c:132 plugins/check_ping.c:441 +#: plugins/check_procs.c:167 plugins/check_snmp.c:210 plugins/check_swap.c:179 +#: plugins/check_users.c:77 plugins/urlize.c:114 #, c-format msgid "Could not open pipe: %s\n" msgstr "Impossible d'ouvrir le pipe: %s\n" -#: plugins/check_fping.c:109 plugins/check_hpjd.c:137 plugins/check_load.c:157 -#: plugins/check_procs.c:165 plugins/check_snmp.c:217 plugins/check_swap.c:184 -#: plugins/check_users.c:81 plugins/urlize.c:123 +#: plugins/check_fping.c:110 plugins/check_hpjd.c:138 plugins/check_load.c:157 +#: plugins/check_procs.c:172 plugins/check_snmp.c:217 plugins/check_swap.c:185 +#: plugins/check_users.c:83 plugins/urlize.c:120 #, c-format msgid "Could not open stderr for %s\n" msgstr "Impossible d'ouvrir la sortie d'erreur standard pour %s\n" -#: plugins/check_fping.c:149 +#: plugins/check_fping.c:150 #, c-format msgid "FPING UNKNOW - %s not found\n" msgstr "PING INCONNU - Hôte non trouvé (%s)\n" -#: plugins/check_fping.c:153 +#: plugins/check_fping.c:154 #, c-format msgid "FPING CRITICAL - %s is unreachable\n" msgstr "PING CRITIQUE - Hôte inaccessible (%s)\n" -#: plugins/check_fping.c:158 +#: plugins/check_fping.c:159 #, c-format msgid "FPING CRITICAL - %s is down\n" msgstr "FPING CRITIQUE - %s est en panne\n" -#: plugins/check_fping.c:185 +#: plugins/check_fping.c:186 #, c-format msgid "FPING %s - %s (loss=%.0f%%, rta=%f ms)|%s %s\n" msgstr "FPING %s - %s (perte=%.0f%%, rta=%f ms)|%s %s\n" -#: plugins/check_fping.c:206 +#: plugins/check_fping.c:207 #, c-format msgid "FPING %s - %s (loss=%.0f%% )|%s\n" msgstr "FPING %s - %s (perte=%.0f%% )|%s\n" -#: plugins/check_fping.c:273 plugins/check_hpjd.c:341 plugins/check_hpjd.c:364 -#: plugins/check_mysql.c:277 plugins/check_mysql.c:326 plugins/check_ntp.c:709 -#: plugins/check_ntp_peer.c:489 plugins/check_ntp_time.c:494 -#: plugins/check_pgsql.c:255 plugins/check_ping.c:290 plugins/check_ping.c:413 -#: plugins/check_radius.c:249 plugins/check_real.c:319 -#: plugins/check_real.c:381 plugins/check_smtp.c:512 plugins/check_smtp.c:638 -#: plugins/check_ssh.c:162 plugins/check_time.c:244 plugins/check_time.c:319 -#: plugins/check_ups.c:503 plugins/check_ups.c:572 +#: plugins/check_fping.c:274 plugins/check_hpjd.c:342 plugins/check_hpjd.c:365 +#: plugins/check_mysql.c:279 plugins/check_mysql.c:337 plugins/check_ntp.c:709 +#: plugins/check_ntp_peer.c:492 plugins/check_ntp_time.c:494 +#: plugins/check_pgsql.c:256 plugins/check_ping.c:299 plugins/check_ping.c:422 +#: plugins/check_radius.c:249 plugins/check_real.c:318 +#: plugins/check_real.c:380 plugins/check_smtp.c:513 plugins/check_smtp.c:639 +#: plugins/check_ssh.c:161 plugins/check_time.c:244 plugins/check_time.c:319 +#: plugins/check_ups.c:504 plugins/check_ups.c:573 msgid "Invalid hostname/address" msgstr "Adresse/Nom d'hôte invalide" -#: plugins/check_fping.c:307 +#: plugins/check_fping.c:308 msgid "Packet size must be a positive integer" msgstr "La taille du paquet doit être un entier positif" -#: plugins/check_fping.c:313 +#: plugins/check_fping.c:314 msgid "Packet count must be a positive integer" msgstr "Le nombre de paquets doit être un entier positif" -#: plugins/check_fping.c:319 plugins/check_ntp.c:733 -#: plugins/check_ntp_peer.c:513 plugins/check_ntp_time.c:518 -#: plugins/check_radius.c:290 plugins/check_time.c:323 +#: plugins/check_fping.c:320 plugins/check_ntp.c:733 +#: plugins/check_ntp_peer.c:516 plugins/check_ntp_time.c:518 +#: plugins/check_radius.c:296 plugins/check_time.c:323 msgid "Hostname was not supplied" msgstr "Le nom de l'hôte n'a pas été spécifié" -#: plugins/check_fping.c:339 +#: plugins/check_fping.c:340 #, c-format msgid "%s: Only one threshold may be packet loss (%s)\n" msgstr "" "%s: Seulement un seuil peut être utilisé pour les pertes de paquets (%s)\n" -#: plugins/check_fping.c:343 +#: plugins/check_fping.c:344 #, c-format msgid "%s: Only one threshold must be packet loss (%s)\n" msgstr "" "%s: Seulement un seuil doit être utilisé pour les pertes de paquets (%s)\n" -#: plugins/check_fping.c:375 +#: plugins/check_fping.c:376 msgid "" "This plugin will use the fping command to ping the specified host for a fast " "check" msgstr "" "Ce plugin va utiliser la commande fping pour pinger l'hôte de manière rapide." -#: plugins/check_fping.c:377 +#: plugins/check_fping.c:378 msgid "Note that it is necessary to set the suid flag on fping." msgstr "" "Veuillez noter qu'il est nécessaire de mettre le bit suid sur le programme " "fping." -#: plugins/check_fping.c:386 +#: plugins/check_fping.c:388 msgid "" "name or IP Address of host to ping (IP Address bypasses name lookup, " "reducing system load)" @@ -900,25 +930,25 @@ msgstr "" "nom ou adresse IP des hôtes à pinger (l'indication d'un adresse IP évite une " "recherche sur le nom, ce qui réduit la charge système)" -#: plugins/check_fping.c:388 plugins/check_ping.c:567 +#: plugins/check_fping.c:390 plugins/check_ping.c:577 msgid "warning threshold pair" msgstr "Valeurs pour le seuil d'avertissement" -#: plugins/check_fping.c:390 plugins/check_ping.c:569 +#: plugins/check_fping.c:392 plugins/check_ping.c:579 msgid "critical threshold pair" msgstr "Valeurs pour le seuil critique" -#: plugins/check_fping.c:392 +#: plugins/check_fping.c:394 #, c-format msgid "size of ICMP packet (default: %d)" msgstr "taille du paquet ICMP (%d par défaut)" -#: plugins/check_fping.c:394 +#: plugins/check_fping.c:396 #, c-format msgid "number of ICMP packets to send (default: %d)" msgstr "nombre de paquets ICMP à envoyer (%d par défaut)" -#: plugins/check_fping.c:397 +#: plugins/check_fping.c:399 #, c-format msgid "" "THRESHOLD is ,%% where is the round trip average travel time " @@ -927,73 +957,74 @@ msgstr "" "Le seuil est ,%% ou est le temps moyen pour l'aller retour " "(ms)" -#: plugins/check_fping.c:398 +#: plugins/check_fping.c:400 msgid "" "which triggers a WARNING or CRITICAL state, and is the percentage of" msgstr "" "qui déclenche résultat AVERTISSEMENT ou CRITIQUE, et est le pourcentage " "de" -#: plugins/check_fping.c:399 +#: plugins/check_fping.c:401 msgid "packet loss to trigger an alarm state." msgstr "paquets perdu pour déclencher une alarme." -#: plugins/check_game.c:113 +#: plugins/check_game.c:115 #, c-format msgid "CRITICAL - Host type parameter incorrect!\n" msgstr "CRITIQUE - Argument de type hôte incorrect!\n" -#: plugins/check_game.c:128 +#: plugins/check_game.c:130 #, c-format msgid "CRITICAL - Host not found\n" msgstr "CRITIQUE - Hôte non trouvé\n" -#: plugins/check_game.c:132 +#: plugins/check_game.c:134 #, c-format msgid "CRITICAL - Game server down or unavailable\n" msgstr "CRITIQUE - Serveur de jeux en panne ou non disponible\n" -#: plugins/check_game.c:136 +#: plugins/check_game.c:138 #, c-format msgid "CRITICAL - Game server timeout\n" msgstr "CRITIQUE - Temps d'attente pour le serveur de jeux dépassé\n" -#: plugins/check_game.c:299 +#: plugins/check_game.c:301 #, c-format msgid "This plugin tests game server connections with the specified host." msgstr "Le plugin teste la connexion au serveur de jeux avec l'hôte spécifié." -#: plugins/check_game.c:308 +#: plugins/check_game.c:311 msgid "Optional port of which to connect" msgstr "" -#: plugins/check_game.c:310 +#: plugins/check_game.c:313 msgid "Field number in raw qstat output that contains game name" msgstr "" -#: plugins/check_game.c:312 +#: plugins/check_game.c:315 msgid "Field number in raw qstat output that contains map name" msgstr "" -#: plugins/check_game.c:314 +#: plugins/check_game.c:317 msgid "Field number in raw qstat output that contains ping time" msgstr "" -#: plugins/check_game.c:320 +#: plugins/check_game.c:323 +#, fuzzy msgid "" "This plugin uses the 'qstat' command, the popular game server status query " -"tool ." +"tool." msgstr "" "Ce plugin utilise la commande 'qstat', le programme préféré pour tester les " "serveurs de jeux." -#: plugins/check_game.c:322 +#: plugins/check_game.c:324 msgid "" "If you don't have the package installed, you will need to download it from" msgstr "" "Si vous n'avez pas le programme installé, vous devrez le télécharger depuis" -#: plugins/check_game.c:324 +#: plugins/check_game.c:325 msgid "" "http://www.activesw.com/people/steve/qstat.html before you can use this " "plugin." @@ -1001,666 +1032,667 @@ msgstr "" "http://www.activesw.com/people/steve/qstat.html avant de pouvoir utiliser ce " "plugin." -#: plugins/check_hpjd.c:242 +#: plugins/check_hpjd.c:243 msgid "Paper Jam" msgstr "Bourrage Papier" -#: plugins/check_hpjd.c:246 +#: plugins/check_hpjd.c:247 msgid "Out of Paper" msgstr "Plus de Papier" -#: plugins/check_hpjd.c:251 +#: plugins/check_hpjd.c:252 msgid "Printer Offline" msgstr "Imprimante hors ligne" -#: plugins/check_hpjd.c:256 +#: plugins/check_hpjd.c:257 msgid "Peripheral Error" msgstr "Erreur du périphérique" -#: plugins/check_hpjd.c:260 +#: plugins/check_hpjd.c:261 msgid "Intervention Required" msgstr "Intervention Requise" -#: plugins/check_hpjd.c:264 +#: plugins/check_hpjd.c:265 msgid "Toner Low" msgstr "Toner Faible" -#: plugins/check_hpjd.c:268 +#: plugins/check_hpjd.c:269 msgid "Insufficient Memory" msgstr "Mémoire Insuffisante" -#: plugins/check_hpjd.c:272 +#: plugins/check_hpjd.c:273 msgid "A Door is Open" msgstr "Une porte est ouverte" -#: plugins/check_hpjd.c:276 +#: plugins/check_hpjd.c:277 msgid "Output Tray is Full" msgstr "Le bac de sortie est plein" -#: plugins/check_hpjd.c:280 +#: plugins/check_hpjd.c:281 msgid "Data too Slow for Engine" msgstr "Le données arrivent trop lentement pour l'imprimante" -#: plugins/check_hpjd.c:284 +#: plugins/check_hpjd.c:285 msgid "Unknown Paper Error" msgstr "Erreur de papier inconnue" -#: plugins/check_hpjd.c:289 +#: plugins/check_hpjd.c:290 #, c-format msgid "Printer ok - (%s)\n" msgstr "Imprimante ok - (%s)\n" -#: plugins/check_hpjd.c:394 +#: plugins/check_hpjd.c:395 msgid "This plugin tests the STATUS of an HP printer with a JetDirect card." msgstr "Ce plugin teste l'état d'une imprimante HP avec une carte JetDirect." -#: plugins/check_hpjd.c:395 +#: plugins/check_hpjd.c:396 msgid "Net-snmp must be installed on the computer running the plugin." msgstr "Net-snmp doit être installé sur l'ordinateur qui exécute le plugin." -#: plugins/check_hpjd.c:404 +#: plugins/check_hpjd.c:406 msgid "The SNMP community name " msgstr "Le nom de la communauté SNMP " -#: plugins/check_hpjd.c:405 +#: plugins/check_hpjd.c:407 #, c-format msgid "(default=%s)" msgstr "(défaut=%s)" -#: plugins/check_http.c:254 +#: plugins/check_http.c:255 msgid "Critical threshold must be integer" msgstr "le seuil critique doit être un entier positif" -#: plugins/check_http.c:262 +#: plugins/check_http.c:263 msgid "Warning threshold must be integer" msgstr "Le seuil d'avertissement doit être un entier positif" -#: plugins/check_http.c:288 plugins/check_tcp.c:563 +#: plugins/check_http.c:289 plugins/check_tcp.c:564 msgid "Invalid certificate expiration period" msgstr "Période d'expiration du certificat invalide" -#: plugins/check_http.c:297 plugins/check_tcp.c:575 +#: plugins/check_http.c:298 plugins/check_tcp.c:576 msgid "Invalid option - SSL is not available" msgstr "Option invalide - SSL n'est pas disponible" -#: plugins/check_http.c:315 +#: plugins/check_http.c:316 #, c-format msgid "option f:%d \n" msgstr "option f:%d \n" -#: plugins/check_http.c:332 +#: plugins/check_http.c:337 msgid "Invalid port number" msgstr "Numéro de port invalide" -#: plugins/check_http.c:370 +#: plugins/check_http.c:375 #, c-format msgid "Could Not Compile Regular Expression: %s" msgstr "Impossible de compiler l'expression rationnelle: %s" -#: plugins/check_http.c:384 plugins/check_ntp.c:722 -#: plugins/check_ntp_peer.c:502 plugins/check_ntp_time.c:507 -#: plugins/check_smtp.c:618 plugins/check_ssh.c:154 plugins/check_tcp.c:467 +#: plugins/check_http.c:389 plugins/check_ntp.c:722 +#: plugins/check_ntp_peer.c:505 plugins/check_ntp_time.c:507 +#: plugins/check_smtp.c:619 plugins/check_ssh.c:153 plugins/check_tcp.c:468 msgid "IPv6 support not available" msgstr "Support IPv6 non disponible" -#: plugins/check_http.c:446 plugins/check_ping.c:417 +#: plugins/check_http.c:451 plugins/check_ping.c:426 msgid "You must specify a server address or host name" msgstr "Vous devez spécifier une adresse ou un nom d'hôte" -#: plugins/check_http.c:629 +#: plugins/check_http.c:634 msgid "HTTP UNKNOWN - Server date unknown\n" msgstr "HTTP INCONNU - Date du serveur inconnue\n" -#: plugins/check_http.c:631 +#: plugins/check_http.c:636 msgid "HTTP CRITICAL - Document modification date unknown\n" msgstr "HTTP CRITIQUE - Date de modification du document inconnue\n" -#: plugins/check_http.c:637 +#: plugins/check_http.c:642 #, c-format msgid "HTTP CRITICAL - Server date \"%100s\" unparsable" msgstr "HTTP CRITIQUE - Date du serveur \"%100s\" illisible" -#: plugins/check_http.c:639 +#: plugins/check_http.c:644 #, c-format msgid "HTTP CRITICAL - Document date \"%100s\" unparsable" msgstr "HTTP CRITIQUE - Date du document \"%100s\" illisible" -#: plugins/check_http.c:641 +#: plugins/check_http.c:646 #, c-format msgid "HTTP CRITICAL - Document is %d seconds in the future\n" msgstr "HTTP CRITIQUE - La date du document est %d secondes dans le futur\n" -#: plugins/check_http.c:646 +#: plugins/check_http.c:651 #, c-format msgid "HTTP CRITICAL - Last modified %.1f days ago\n" msgstr "HTTP CRITIQUE - Dernière modification %.1f jours auparavant\n" -#: plugins/check_http.c:650 +#: plugins/check_http.c:655 #, c-format msgid "HTTP CRITICAL - Last modified %d:%02d:%02d ago\n" msgstr "HTTP CRITIQUE - Dernière modification %d:%02d:%02d auparavant\n" -#: plugins/check_http.c:731 +#: plugins/check_http.c:736 msgid "HTTP CRITICAL - Unable to open TCP socket\n" msgstr "HTTP CRITIQUE - Impossible d'ouvrir un socket TCP\n" -#: plugins/check_http.c:814 +#: plugins/check_http.c:819 msgid "HTTP CRITICAL - Error on receive\n" msgstr "HTTP CRITIQUE - Erreur dans la réception\n" -#: plugins/check_http.c:824 +#: plugins/check_http.c:829 msgid "HTTP CRITICAL - No data received from host\n" msgstr "HTTP CRITIQUE - Pas de données reçues de l'hôte\n" -#: plugins/check_http.c:874 +#: plugins/check_http.c:879 +#, c-format msgid "Invalid HTTP response received from host\n" msgstr "Réponse HTTP invalide reçue de l'hôte\n" -#: plugins/check_http.c:877 +#: plugins/check_http.c:882 #, c-format msgid "Invalid HTTP response received from host on port %d\n" msgstr "Réponse HTTP invalide reçue de l'hôte sur le port %d\n" -#: plugins/check_http.c:885 +#: plugins/check_http.c:890 #, c-format msgid "HTTP OK: Status line output matched \"%s\"\n" msgstr "HTTP OK: La ligne d'état correspond à \"%s\"\n" -#: plugins/check_http.c:897 +#: plugins/check_http.c:902 #, c-format msgid "HTTP CRITICAL: Invalid Status Line (%s)\n" msgstr "HTTP CRITIQUE: Ligne d'état non valide (%s)\n" -#: plugins/check_http.c:904 +#: plugins/check_http.c:909 #, c-format msgid "HTTP CRITICAL: Invalid Status (%s)\n" msgstr "HTTP CRITIQUE: Etat Invalide (%s)\n" -#: plugins/check_http.c:908 +#: plugins/check_http.c:913 #, c-format msgid "HTTP CRITICAL: %s\n" msgstr "HTTP CRITIQUE: %s\n" -#: plugins/check_http.c:912 +#: plugins/check_http.c:917 #, c-format msgid "HTTP WARNING: %s\n" msgstr "HTTP AVERTISSEMENT: %s\n" -#: plugins/check_http.c:920 +#: plugins/check_http.c:925 #, c-format msgid "HTTP UNKNOWN" msgstr "HTTP INCONNU" -#: plugins/check_http.c:922 +#: plugins/check_http.c:927 #, c-format msgid "HTTP OK" msgstr "" -#: plugins/check_http.c:924 +#: plugins/check_http.c:929 #, c-format msgid "HTTP WARNING" msgstr "HTTP AVERTISSEMENT" -#: plugins/check_http.c:926 plugins/check_http.c:989 +#: plugins/check_http.c:931 plugins/check_http.c:994 #, c-format msgid "HTTP CRITICAL" msgstr "HTTP CRITIQUE" -#: plugins/check_http.c:930 plugins/check_http.c:946 +#: plugins/check_http.c:935 plugins/check_http.c:951 #, c-format msgid " - %s - %.3f second response time %s|%s %s\n" msgstr " - %s - %.3f secondes de temps de réponse %s|%s %s\n" -#: plugins/check_http.c:960 plugins/check_http.c:977 +#: plugins/check_http.c:965 plugins/check_http.c:982 #, c-format msgid "HTTP OK %s - %.3f second response time %s|%s %s\n" msgstr "HTTP OK %s - %.3f secondes de temps de réponse %s|%s %s\n" -#: plugins/check_http.c:967 +#: plugins/check_http.c:972 #, c-format msgid "HTTP CRITICAL - string not found%s|%s %s\n" msgstr "HTTP CRITIQUE - chaîne non trouvée%s|%s %s\n" -#: plugins/check_http.c:985 +#: plugins/check_http.c:990 msgid "pattern not found" msgstr "chaîne non trouvée" -#: plugins/check_http.c:987 +#: plugins/check_http.c:992 msgid "pattern found" msgstr "chaîne de caractère trouvée" -#: plugins/check_http.c:997 +#: plugins/check_http.c:1002 #, c-format msgid "HTTP CRITICAL - Execute Error: %s\n" msgstr "HTTP CRITIQUE - Erreur d'exécution: %s\n" -#: plugins/check_http.c:1006 +#: plugins/check_http.c:1011 #, c-format msgid "HTTP WARNING: page size %d too large%s|%s\n" msgstr "HTTP AVERTISSEMENT: la taille de la page %d est trop grande%s|%s\n" -#: plugins/check_http.c:1010 +#: plugins/check_http.c:1015 #, c-format msgid "HTTP WARNING: page size %d too small%s|%s\n" msgstr "HTTP AVERTISSEMENT: la taille de la page %d est trop petite%s|%s\n" -#: plugins/check_http.c:1015 +#: plugins/check_http.c:1020 #, c-format msgid "HTTP OK %s - %d bytes in %.3f seconds %s|%s %s\n" msgstr "HTTP OK %s - %d bytes en %.3f secondes %s|%s %s\n" -#: plugins/check_http.c:1048 +#: plugins/check_http.c:1053 msgid "HTTP UNKNOWN - Could not allocate addr\n" msgstr "HTTP INCONNU - Impossible d'allouer une adresse\n" -#: plugins/check_http.c:1052 +#: plugins/check_http.c:1057 msgid "HTTP UNKNOWN - Could not allocate url\n" msgstr "HTTP INCONNU - Impossible d'allouer une URL\n" -#: plugins/check_http.c:1061 +#: plugins/check_http.c:1066 #, c-format msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n" msgstr "" "HTTP INCONNU - Impossible de trouver l'endroit de la redirection - %s%s\n" -#: plugins/check_http.c:1076 +#: plugins/check_http.c:1081 #, c-format msgid "HTTP UNKNOWN - Empty redirect location%s\n" msgstr "HTTP INCONNU - endroit de redirection vide%s\n" -#: plugins/check_http.c:1083 +#: plugins/check_http.c:1088 msgid "HTTP UNKNOWN - could not allocate url\n" msgstr "Impossible d'allouer une URL\n" -#: plugins/check_http.c:1123 +#: plugins/check_http.c:1128 #, c-format msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n" msgstr "" "HTTP INCONNU - Impossible de définir l'endroit de la redirection - %s%s\n" -#: plugins/check_http.c:1133 +#: plugins/check_http.c:1138 #, c-format msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n" msgstr "" "HTTP AVERTISSEMENT - le niveau maximum de redirection %d à été dépassé - %" "s://%s:%d%s%s\n" -#: plugins/check_http.c:1141 +#: plugins/check_http.c:1146 #, c-format msgid "HTTP WARNING - redirection creates an infinite loop - %s://%s:%d%s%s\n" msgstr "" "HTTP AVERTISSEMENT - la redirection crée une boucle infinie - %s://%s:%d%s%" "s\n" -#: plugins/check_http.c:1156 +#: plugins/check_http.c:1161 #, c-format msgid "HTTP UNKNOWN - Could not allocate server_url%s\n" msgstr "HTTP INCONNU - Impossible d'allouer server_url%s\n" -#: plugins/check_http.c:1162 +#: plugins/check_http.c:1167 #, c-format msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n" msgstr "HTTP INCONNU - Redirection à un port supérieur à %d - %s://%s:%d%s%s\n" -#: plugins/check_http.c:1167 +#: plugins/check_http.c:1172 #, c-format msgid "Redirection to %s://%s:%d%s\n" msgstr "Redirection vers %s://%s:%d%s\n" -#: plugins/check_http.c:1219 +#: plugins/check_http.c:1224 msgid "This plugin tests the HTTP service on the specified host. It can test" msgstr "" "Ce plugin teste le service HTTP sur l'hôte spécifié. Il peut tester les" -#: plugins/check_http.c:1220 +#: plugins/check_http.c:1225 msgid "normal (http) and secure (https) servers, follow redirects, search for" msgstr "" "serveurs normaux (http) et sécurisés (https), suivre les redirections, " "rechercher des" -#: plugins/check_http.c:1221 +#: plugins/check_http.c:1226 msgid "strings and regular expressions, check connection times, and report on" msgstr "" "chaînes de caractères et expressions rationnelles, vérifier le temps de " "réponse" -#: plugins/check_http.c:1222 +#: plugins/check_http.c:1227 msgid "certificate expiration times." msgstr "et rapporter la date d'expiration du certificat." -#: plugins/check_http.c:1228 +#: plugins/check_http.c:1233 #, c-format msgid "NOTE: One or both of -H and -I must be specified" msgstr "NOTE: les paramètres -H et -I peuvent être spécifiés" -#: plugins/check_http.c:1235 +#: plugins/check_http.c:1241 msgid "Host name argument for servers using host headers (virtual host)" msgstr "" -#: plugins/check_http.c:1236 +#: plugins/check_http.c:1242 msgid "Append a port to include it in the header (eg: example.com:5000)" msgstr "" -#: plugins/check_http.c:1238 +#: plugins/check_http.c:1244 msgid "" "IP address or name (use numeric address if possible to bypass DNS lookup)." msgstr "" -#: plugins/check_http.c:1240 +#: plugins/check_http.c:1246 msgid "Port number (default: " msgstr "Numéro du port (défaut: " -#: plugins/check_http.c:1247 +#: plugins/check_http.c:1253 msgid "Connect via SSL. Port defaults to 443" msgstr "" -#: plugins/check_http.c:1249 +#: plugins/check_http.c:1255 msgid "" "Minimum number of days a certificate has to be valid. Port defaults to 443" msgstr "" "Nombre de jours minimum pour que le certificat soit valide. Port par défaut " "443" -#: plugins/check_http.c:1250 +#: plugins/check_http.c:1256 msgid "(when this option is used the url is not checked.)\n" msgstr "" -#: plugins/check_http.c:1254 +#: plugins/check_http.c:1260 msgid "String to expect in first (status) line of server response (default: " msgstr "Texte attendu dans la première ligne de réponse du serveur (défaut: " -#: plugins/check_http.c:1256 +#: plugins/check_http.c:1262 msgid "" "If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)" msgstr "" -#: plugins/check_http.c:1258 +#: plugins/check_http.c:1264 msgid "String to expect in the content" msgstr "Chaîne de caractère attendue dans le contenu" -#: plugins/check_http.c:1260 +#: plugins/check_http.c:1266 msgid "URL to GET or POST (default: /)" msgstr "URL pour le GET ou le POST (défaut: /)" -#: plugins/check_http.c:1262 +#: plugins/check_http.c:1268 msgid "URL encoded http POST data" msgstr "" -#: plugins/check_http.c:1264 +#: plugins/check_http.c:1270 msgid "Don't wait for document body: stop reading after headers." msgstr "" "Ne pas attendre pour le corps du document: arrêter de lire après les entêtes" -#: plugins/check_http.c:1265 +#: plugins/check_http.c:1271 msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)" msgstr "(Veuillez noter qu'un HTTP GET ou POST est effectué, pas un HEAD.)" -#: plugins/check_http.c:1267 +#: plugins/check_http.c:1273 msgid "Warn if document is more than SECONDS old. the number can also be of" msgstr "" -#: plugins/check_http.c:1268 +#: plugins/check_http.c:1274 msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days." msgstr "" -#: plugins/check_http.c:1270 +#: plugins/check_http.c:1276 msgid "specify Content-Type header media type when POSTing\n" msgstr "" -#: plugins/check_http.c:1273 +#: plugins/check_http.c:1279 msgid "Allow regex to span newlines (must precede -r or -R)" msgstr "" -#: plugins/check_http.c:1275 +#: plugins/check_http.c:1281 msgid "Search page for regex STRING" msgstr "" -#: plugins/check_http.c:1277 +#: plugins/check_http.c:1283 msgid "Search page for case-insensitive regex STRING" msgstr "" -#: plugins/check_http.c:1279 +#: plugins/check_http.c:1285 msgid "Return CRITICAL if found, OK if not\n" msgstr "" -#: plugins/check_http.c:1282 +#: plugins/check_http.c:1288 msgid "Username:password on sites with basic authentication" msgstr "" -#: plugins/check_http.c:1284 +#: plugins/check_http.c:1290 msgid "String to be sent in http header as \"User Agent\"" msgstr "" -#: plugins/check_http.c:1286 +#: plugins/check_http.c:1292 msgid "" " Any other tags to be sent in http header. Use multiple times for additional " "headers" msgstr "" -#: plugins/check_http.c:1288 +#: plugins/check_http.c:1294 msgid "Wrap output in HTML link (obsoleted by urlize)" msgstr "" -#: plugins/check_http.c:1290 +#: plugins/check_http.c:1296 msgid "How to handle redirected pages" msgstr "" -#: plugins/check_http.c:1292 +#: plugins/check_http.c:1298 msgid "Minimum page size required (bytes) : Maximum page size required (bytes)" msgstr "" -#: plugins/check_http.c:1301 +#: plugins/check_http.c:1308 msgid "This plugin will attempt to open an HTTP connection with the host." msgstr "Ce plugin va essayer d'ouvrir un connexion SMTP avec l'hôte." -#: plugins/check_http.c:1302 +#: plugins/check_http.c:1309 msgid "" "Successful connects return STATE_OK, refusals and timeouts return " "STATE_CRITICAL" msgstr "" -#: plugins/check_http.c:1303 +#: plugins/check_http.c:1310 msgid "" "other errors return STATE_UNKNOWN. Successful connects, but incorrect " "reponse" msgstr "" -#: plugins/check_http.c:1304 +#: plugins/check_http.c:1311 msgid "" "messages from the host result in STATE_WARNING return values. If you are" msgstr "" -#: plugins/check_http.c:1305 +#: plugins/check_http.c:1312 msgid "" "checking a virtual server that uses 'host headers' you must supply the FQDN" msgstr "" -#: plugins/check_http.c:1306 +#: plugins/check_http.c:1313 msgid "(fully qualified domain name) as the [host_name] argument." msgstr "" -#: plugins/check_http.c:1309 +#: plugins/check_http.c:1319 msgid "This plugin can also check whether an SSL enabled web server is able to" msgstr "" -#: plugins/check_http.c:1310 +#: plugins/check_http.c:1320 msgid "serve content (optionally within a specified time) or whether the X509 " msgstr "" -#: plugins/check_http.c:1311 +#: plugins/check_http.c:1321 msgid "certificate is still valid for the specified number of days." msgstr "" -#: plugins/check_http.c:1314 +#: plugins/check_http.c:1325 msgid "" "When the 'www.verisign.com' server returns its content within 5 seconds," msgstr "" -#: plugins/check_http.c:1315 +#: plugins/check_http.c:1326 msgid "" "a STATE_OK will be returned. When the server returns its content but exceeds" msgstr "" -#: plugins/check_http.c:1316 +#: plugins/check_http.c:1327 msgid "" "the 5-second threshold, a STATE_WARNING will be returned. When an error " "occurs," msgstr "" -#: plugins/check_http.c:1317 +#: plugins/check_http.c:1328 msgid "a STATE_CRITICAL will be returned." msgstr "" -#: plugins/check_http.c:1320 +#: plugins/check_http.c:1331 msgid "" "When the certificate of 'www.verisign.com' is valid for more than 14 days," msgstr "" -#: plugins/check_http.c:1321 +#: plugins/check_http.c:1332 msgid "" "a STATE_OK is returned. When the certificate is still valid, but for less " "than" msgstr "" -#: plugins/check_http.c:1322 +#: plugins/check_http.c:1333 msgid "" "14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when" msgstr "" -#: plugins/check_http.c:1323 +#: plugins/check_http.c:1334 msgid "the certificate is expired." msgstr "le certificat est expiré." -#: plugins/check_ldap.c:132 +#: plugins/check_ldap.c:136 #, c-format msgid "Could not connect to the server at port %i\n" msgstr "Impossible de se connecter au serveur port %i\n" -#: plugins/check_ldap.c:141 +#: plugins/check_ldap.c:145 #, c-format msgid "Could not set protocol version %d\n" msgstr "Impossible d'utiliser le protocole version %d\n" -#: plugins/check_ldap.c:156 +#: plugins/check_ldap.c:160 #, c-format msgid "Could not init TLS at port %i!\n" msgstr "Impossible d'initialiser TLS sur le port %i!\n" -#: plugins/check_ldap.c:160 +#: plugins/check_ldap.c:164 #, c-format msgid "TLS not supported by the libraries!\n" msgstr "TLS n'est pas supporté!\n" -#: plugins/check_ldap.c:180 +#: plugins/check_ldap.c:184 #, c-format msgid "Could not init startTLS at port %i!\n" msgstr "Impossible d'initialiser startTLS sur le port %i!\n" -#: plugins/check_ldap.c:184 +#: plugins/check_ldap.c:188 #, c-format msgid "startTLS not supported by the library, needs LDAPv3!\n" msgstr "" "startTLS n'est pas supporté par la librairie LDAP, j'ai besoin de LDAPv3!\n" -#: plugins/check_ldap.c:194 +#: plugins/check_ldap.c:198 #, c-format msgid "Could not bind to the ldap-server\n" msgstr "Impossible de se connecter au serveur LDAP\n" -#: plugins/check_ldap.c:203 +#: plugins/check_ldap.c:207 #, c-format msgid "Could not search/find objectclasses in %s\n" msgstr "Impossible de chercher/trouver les objectclasses dans %s\n" -#: plugins/check_ldap.c:226 +#: plugins/check_ldap.c:230 #, c-format msgid "LDAP %s - %.3f seconds response time|%s\n" msgstr "LDAP %s - %.3f secondes de temps de réponse|%s\n" -#: plugins/check_ldap.c:338 plugins/check_ldap.c:345 +#: plugins/check_ldap.c:342 plugins/check_ldap.c:349 #, c-format msgid "%s cannot be combined with %s" msgstr "" -#: plugins/check_ldap.c:351 plugins/check_ping.c:241 +#: plugins/check_ldap.c:355 plugins/check_ping.c:250 msgid "IPv6 support not available\n" msgstr "Support IPv6 non disponible\n" -#: plugins/check_ldap.c:374 +#: plugins/check_ldap.c:378 msgid "Please specify the host name\n" msgstr "Veuillez spécifier le nom de l'hôte\n" -#: plugins/check_ldap.c:377 +#: plugins/check_ldap.c:381 msgid "Please specify the LDAP base\n" msgstr "Veuillez spécifier la base LDAP\n" -#: plugins/check_ldap.c:405 +#: plugins/check_ldap.c:410 msgid "ldap attribute to search (default: \"(objectclass=*)\"" msgstr "" -#: plugins/check_ldap.c:407 +#: plugins/check_ldap.c:412 msgid "ldap base (eg. ou=my unit, o=my org, c=at" msgstr "" -#: plugins/check_ldap.c:409 +#: plugins/check_ldap.c:414 msgid "ldap bind DN (if required)" msgstr "" -#: plugins/check_ldap.c:411 +#: plugins/check_ldap.c:416 msgid "ldap password (if required)" msgstr "" -#: plugins/check_ldap.c:413 +#: plugins/check_ldap.c:418 msgid "use starttls mechanism introduced in protocol version 3" msgstr "utiliser le fonctionnement starttls du protocole version 3" -#: plugins/check_ldap.c:415 -#, c-format -msgid "use ldaps (ldap v2 ssl method). this also sets the default port to %s" +#: plugins/check_ldap.c:420 +msgid "use ldaps (ldap v2 ssl method). this also sets the default port to" msgstr "" -#: plugins/check_ldap.c:419 +#: plugins/check_ldap.c:424 msgid "use ldap protocol version 2" msgstr "utiliser le protocole ldap version 2" -#: plugins/check_ldap.c:421 +#: plugins/check_ldap.c:426 msgid "use ldap protocol version 3" msgstr "utiliser le protocole ldap version 3" -#: plugins/check_ldap.c:431 -msgid "Note:" -msgstr "Note:" +#: plugins/check_ldap.c:427 +#, fuzzy +msgid "default protocol version:" +msgstr "Version du protocole SNMP" -#: plugins/check_ldap.c:432 +#: plugins/check_ldap.c:438 msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be" msgstr "" -#: plugins/check_ldap.c:433 +#: plugins/check_ldap.c:439 #, c-format msgid "" -"implied (using default port %i) unless --port=636 is specified. In that case " -"%s" +" implied (using default port %i) unless --port=636 is specified. In that " +"case\n" msgstr "" -#: plugins/check_ldap.c:434 +#: plugins/check_ldap.c:440 msgid "'SSL on connect' will be used no matter how the plugin was called." msgstr "" -#: plugins/check_ldap.c:435 +#: plugins/check_ldap.c:441 msgid "" "This detection is deprecated, please use 'check_ldap' with the '--starttls' " "or '--ssl' flags" msgstr "" -#: plugins/check_ldap.c:436 +#: plugins/check_ldap.c:442 msgid "to define the behaviour explicitly instead." msgstr "" -#: plugins/check_load.c:94 +#: plugins/check_load.c:91 msgid "Warning threshold must be float or float triplet!\n" msgstr "Le seuil d'alerte doit être un nombre à virgule flottante!\n" -#: plugins/check_load.c:136 plugins/check_load.c:152 +#: plugins/check_load.c:136 plugins/check_load.c:152 plugins/check_procs.c:176 #, c-format msgid "Error opening %s\n" msgstr "Erreur à l'ouverture de %s\n" @@ -1713,20 +1745,20 @@ msgstr "" msgid "This plugin tests the current system load average." msgstr "Ce plugin teste la charge système actuelle." -#: plugins/check_load.c:315 +#: plugins/check_load.c:316 msgid "Exit with WARNING status if load average exceeds WLOADn" msgstr "" "Sortir avec un résultat AVERTISSEMENT si la charge moyenne dépasse WLOAD" -#: plugins/check_load.c:317 +#: plugins/check_load.c:318 msgid "Exit with CRITICAL status if load average exceed CLOADn" msgstr "Sortir avec un résultat CRITIQUE si la charge moyenne excède CLOAD" -#: plugins/check_load.c:318 +#: plugins/check_load.c:319 msgid "the load average format is the same used by \"uptime\" and \"w\"" msgstr "" -#: plugins/check_load.c:320 +#: plugins/check_load.c:321 msgid "Divide the load averages by the number of CPUs (when possible)" msgstr "" @@ -1789,111 +1821,110 @@ msgstr "Ce plugin va vérifier la moyenne ou le maximum d'une " msgid "two variables recorded in an MRTG log file." msgstr "deux variables du fichier de log de MRTG." -#: plugins/check_mrtg.c:335 +#: plugins/check_mrtg.c:336 msgid "The MRTG log file containing the data you want to monitor" msgstr "" -#: plugins/check_mrtg.c:337 +#: plugins/check_mrtg.c:338 msgid "Minutes before MRTG data is considered to be too old" msgstr "" -#: plugins/check_mrtg.c:339 +#: plugins/check_mrtg.c:340 msgid "Should we check average or maximum values?" msgstr "" -#: plugins/check_mrtg.c:341 +#: plugins/check_mrtg.c:342 msgid "Which variable set should we inspect? (1 or 2)" msgstr "" -#: plugins/check_mrtg.c:343 +#: plugins/check_mrtg.c:344 msgid "Threshold value for data to result in WARNING status" msgstr "" -#: plugins/check_mrtg.c:345 +#: plugins/check_mrtg.c:346 msgid "Threshold value for data to result in CRITICAL status" msgstr "" -#: plugins/check_mrtg.c:347 +#: plugins/check_mrtg.c:348 msgid "Type label for data (Examples: Conns, \"Processor Load\", In, Out)" msgstr "" -#: plugins/check_mrtg.c:349 +#: plugins/check_mrtg.c:350 msgid "Option units label for data (Example: Packets/Sec, Errors/Sec," msgstr "" -#: plugins/check_mrtg.c:350 +#: plugins/check_mrtg.c:351 #, c-format msgid "\"Bytes Per Second\", \"%% Utilization\")" msgstr "" -#: plugins/check_mrtg.c:352 +#: plugins/check_mrtg.c:354 msgid "" "If the value exceeds the threshold, a WARNING status is returned. If" msgstr "" -#: plugins/check_mrtg.c:353 +#: plugins/check_mrtg.c:355 msgid "" "the value exceeds the threshold, a CRITICAL status is returned. If" msgstr "" -#: plugins/check_mrtg.c:354 +#: plugins/check_mrtg.c:356 msgid "the data in the log file is older than old, a WARNING" msgstr "" -#: plugins/check_mrtg.c:355 -msgid "status is returned and a warning message is printed." -msgstr "" - #: plugins/check_mrtg.c:357 -msgid "" -"This plugin is useful for monitoring MRTG data that does not correspond to" -msgstr "" - -#: plugins/check_mrtg.c:358 -msgid "" -"bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth)." -msgstr "" - -#: plugins/check_mrtg.c:359 -msgid "" -"It can be used to monitor any kind of data that MRTG is monitoring - errors," +msgid "status is returned and a warning message is printed." msgstr "" #: plugins/check_mrtg.c:360 msgid "" -"packets/sec, etc. I use MRTG in conjuction with the Novell NLM that allows" +"This plugin is useful for monitoring MRTG data that does not correspond to" msgstr "" #: plugins/check_mrtg.c:361 msgid "" -"me to track processor utilization, user connections, drive space, etc and" +"bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth)." msgstr "" #: plugins/check_mrtg.c:362 -msgid "this plugin works well for monitoring that kind of data as well." +msgid "" +"It can be used to monitor any kind of data that MRTG is monitoring - errors," +msgstr "" + +#: plugins/check_mrtg.c:363 +msgid "" +"packets/sec, etc. I use MRTG in conjuction with the Novell NLM that allows" +msgstr "" + +#: plugins/check_mrtg.c:364 +msgid "" +"me to track processor utilization, user connections, drive space, etc and" msgstr "" #: plugins/check_mrtg.c:365 +msgid "this plugin works well for monitoring that kind of data as well." +msgstr "" + +#: plugins/check_mrtg.c:368 msgid "" "- This plugin only monitors one of the two variables stored in the MRTG log" msgstr "" "- Ce plugin vérifie seulement une ou deux variables écrites dans un fichier " "de log MRTG" -#: plugins/check_mrtg.c:366 -msgid " file. If you want to monitor both values you will have to define two" +#: plugins/check_mrtg.c:369 +msgid "file. If you want to monitor both values you will have to define two" msgstr "" -#: plugins/check_mrtg.c:367 -msgid "" -" commands with different values for the argument. Of course," +#: plugins/check_mrtg.c:370 +msgid "commands with different values for the argument. Of course," msgstr "" -#: plugins/check_mrtg.c:368 +#: plugins/check_mrtg.c:371 msgid "you can always hack the code to make this plugin work for you..." msgstr "" -#: plugins/check_mrtg.c:369 +#: plugins/check_mrtg.c:372 msgid "" "- MRTG stands for the Multi Router Traffic Grapher. It can be downloaded " "from" @@ -1943,269 +1974,281 @@ msgstr "" msgid "the or thresholds (in Bytes/sec), a WARNING status results." msgstr "" -#: plugins/check_mrtgtraf.c:355 +#: plugins/check_mrtgtraf.c:356 msgid "File to read log from" msgstr "" -#: plugins/check_mrtgtraf.c:357 +#: plugins/check_mrtgtraf.c:358 msgid "Minutes after which log expires" msgstr "" -#: plugins/check_mrtgtraf.c:359 +#: plugins/check_mrtgtraf.c:360 msgid "Test average or maximum" msgstr "" -#: plugins/check_mrtgtraf.c:361 +#: plugins/check_mrtgtraf.c:362 msgid "Warning threshold pair ," msgstr "Paire de seuils d'avertissement ," -#: plugins/check_mrtgtraf.c:363 +#: plugins/check_mrtgtraf.c:364 msgid "Critical threshold pair ," msgstr "Paire de seuils critique ," -#: plugins/check_mrtgtraf.c:366 +#: plugins/check_mrtgtraf.c:368 msgid "" "- MRTG stands for Multi Router Traffic Grapher. It can be downloaded from" msgstr "" -#: plugins/check_mrtgtraf.c:368 +#: plugins/check_mrtgtraf.c:370 msgid "- While MRTG can monitor things other than traffic rates, this" msgstr "" -#: plugins/check_mrtgtraf.c:369 +#: plugins/check_mrtgtraf.c:371 msgid " plugin probably won't work with much else without modification." msgstr "" -#: plugins/check_mrtgtraf.c:370 +#: plugins/check_mrtgtraf.c:372 msgid "- The calculated i/o rates are a little off from what MRTG actually" msgstr "" -#: plugins/check_mrtgtraf.c:371 +#: plugins/check_mrtgtraf.c:373 msgid " reports. I'm not sure why this is right now, but will look into it" msgstr "" -#: plugins/check_mrtgtraf.c:372 +#: plugins/check_mrtgtraf.c:374 msgid " for future enhancements of this plugin." msgstr "" -#: plugins/check_mrtgtraf.c:382 +#: plugins/check_mrtgtraf.c:387 #, c-format msgid "Usage" msgstr "Utilisation" -#: plugins/check_mysql.c:129 +#: plugins/check_mysql.c:130 #, c-format msgid "slave query error: %s\n" msgstr "erreur de requête de l'esclave: %s\n" -#: plugins/check_mysql.c:136 +#: plugins/check_mysql.c:137 #, c-format msgid "slave store_result error: %s\n" msgstr "erreur slave store_result: %s\n" -#: plugins/check_mysql.c:142 +#: plugins/check_mysql.c:143 msgid "No slaves defined" msgstr "Pas d'esclave spécifié" -#: plugins/check_mysql.c:150 +#: plugins/check_mysql.c:151 #, c-format msgid "slave fetch row error: %s\n" msgstr "erreur esclave lecture d'une ligne: %s\n" -#: plugins/check_mysql.c:155 +#: plugins/check_mysql.c:156 #, c-format msgid "Slave running: %s" msgstr "L'esclave fonctionne: %s" -#: plugins/check_mysql.c:373 +#: plugins/check_mysql.c:384 msgid "This program tests connections to a mysql server" msgstr "Ce plugin teste une connexion vers un serveur mysql" -#: plugins/check_mysql.c:384 +#: plugins/check_mysql.c:395 +msgid "Use the specified socket (has no effect if -H is used)" +msgstr "" + +#: plugins/check_mysql.c:398 msgid "Check database with indicated name" msgstr "" -#: plugins/check_mysql.c:386 +#: plugins/check_mysql.c:400 msgid "Connect using the indicated username" msgstr "" -#: plugins/check_mysql.c:388 +#: plugins/check_mysql.c:402 msgid "Use the indicated password to authenticate the connection" msgstr "" -#: plugins/check_mysql.c:389 -msgid "==> IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!! <==" +#: plugins/check_mysql.c:403 +msgid "IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!" msgstr "" -#: plugins/check_mysql.c:390 -msgid "Your clear-text password will be visible as a process table entry" +#: plugins/check_mysql.c:404 +msgid "Your clear-text password could be visible as a process table entry" msgstr "" -#: plugins/check_mysql.c:392 +#: plugins/check_mysql.c:406 msgid "Check if the slave thread is running properly." msgstr "" -#: plugins/check_mysql.c:394 -msgid "" -"Exit with WARNING status if slave server is more than INTEGER seconds behind " -"master" +#: plugins/check_mysql.c:408 +#, fuzzy +msgid "Exit with WARNING status if slave server is more than INTEGER seconds" msgstr "" "Sortir avec un résultat AVERTISSEMENT si le serveur esclave est plus de X " "secondes en retard sur le maître" -#: plugins/check_mysql.c:396 -msgid "" -"Exit with CRITICAL status if slave server is more then INTEGER seconds " -"behind master" +#: plugins/check_mysql.c:409 plugins/check_mysql.c:412 +msgid "behind master" +msgstr "" + +#: plugins/check_mysql.c:411 +#, fuzzy +msgid "Exit with CRITICAL status if slave server is more then INTEGER seconds" msgstr "" "Sortir avec un résultat CRITIQUE si le serveur esclave est plus de X " "secondes en retard sur le maître" -#: plugins/check_mysql.c:397 -msgid "There are no required arguments. By default, the local database with" +#: plugins/check_mysql.c:415 +#, fuzzy +msgid "" +"There are no required arguments. By default, the local database is checked" msgstr "" "Il n'y a pas d'arguments nécessaires. Par défaut la base de donnée locale" -#: plugins/check_mysql.c:398 -#, c-format -msgid "a server listening on MySQL standard port %d will be checked\n" -msgstr "avec un serveur MySQL écoutant sur le port %d sera vérifiée\n" +#: plugins/check_mysql.c:416 +msgid "" +"using the default unix socket. You can force TCP on localhost by using an" +msgstr "" -#: plugins/check_nagios.c:107 +#: plugins/check_mysql.c:417 +msgid "IP address or FQDN ('localhost' will use the socket as well)." +msgstr "" + +#: plugins/check_nagios.c:108 msgid "Cannot open status log for reading!" msgstr "Impossible d'ouvrir le fichier status log en lecture!" -#: plugins/check_nagios.c:157 +#: plugins/check_nagios.c:158 #, c-format msgid "Found process: %s %s\n" msgstr "Processus trouvé: %s %s\n" -#: plugins/check_nagios.c:171 +#: plugins/check_nagios.c:172 msgid "Could not locate a running Nagios process!" msgstr "Impossible de trouver un processus Nagios actif!" -#: plugins/check_nagios.c:175 +#: plugins/check_nagios.c:176 msgid "Cannot parse Nagios log file for valid time" msgstr "" "Impossible de trouver une date/heure valide dans le fichier de log de Nagios" -#: plugins/check_nagios.c:186 plugins/check_procs.c:307 +#: plugins/check_nagios.c:187 plugins/check_procs.c:330 #, c-format msgid "%d process" msgid_plural "%d processes" msgstr[0] "%d processus" msgstr[1] "%d processus" -#: plugins/check_nagios.c:189 +#: plugins/check_nagios.c:190 #, c-format msgid "status log updated %d second ago" msgid_plural "status log updated %d seconds ago" msgstr[0] "status log mis à jour %d secondes auparavant" msgstr[1] "status log mis à jour %d secondes auparavant" -#: plugins/check_nagios.c:226 plugins/check_nagios.c:255 +#: plugins/check_nagios.c:227 plugins/check_nagios.c:256 msgid "Expiration time must be an integer (seconds)\n" msgstr "Le délai d'expiration doit être un entier (en secondes)\n" -#: plugins/check_nagios.c:267 +#: plugins/check_nagios.c:268 msgid "You must provide the status_log\n" msgstr "Vous devez fournir le status_log\n" -#: plugins/check_nagios.c:270 +#: plugins/check_nagios.c:271 msgid "You must provide a process string\n" msgstr "Vous devez fournir un nom de processus\n" -#: plugins/check_nagios.c:284 +#: plugins/check_nagios.c:285 msgid "" "This plugin checks the status of the Nagios process on the local machine" msgstr "Ce plugin vérifie l'état du processus Nagios sur la machine locale." -#: plugins/check_nagios.c:285 +#: plugins/check_nagios.c:286 msgid "" "The plugin will check to make sure the Nagios status log is no older than" msgstr "Ce plugin vérifie que le status log de Nagios n'est pas plus vieux que" -#: plugins/check_nagios.c:286 +#: plugins/check_nagios.c:287 msgid "the number of minutes specified by the expires option." msgstr "le nombre de minutes spécifies par l'option expire." -#: plugins/check_nagios.c:287 +#: plugins/check_nagios.c:288 msgid "" "It also checks the process table for a process matching the command argument." msgstr "" -#: plugins/check_nagios.c:296 +#: plugins/check_nagios.c:298 msgid "Name of the log file to check" msgstr "Nom du fichier log à vérifier" -#: plugins/check_nagios.c:298 +#: plugins/check_nagios.c:300 msgid "Minutes aging after which logfile is considered stale" msgstr "" -#: plugins/check_nagios.c:300 +#: plugins/check_nagios.c:302 msgid "Substring to search for in process arguments" msgstr "" -#: plugins/check_nt.c:141 +#: plugins/check_nt.c:144 #, c-format msgid "Wrong client version - running: %s, required: %s" msgstr "Mauvaise version du client utilisée: %s, nécessaire: %s" -#: plugins/check_nt.c:152 plugins/check_nt.c:212 +#: plugins/check_nt.c:155 plugins/check_nt.c:215 msgid "missing -l parameters" msgstr "Arguments -l manquants" -#: plugins/check_nt.c:154 +#: plugins/check_nt.c:157 msgid "wrong -l parameter." msgstr "Arguments -l erronés." -#: plugins/check_nt.c:158 +#: plugins/check_nt.c:161 msgid "CPU Load" msgstr "Charge CPU" -#: plugins/check_nt.c:181 +#: plugins/check_nt.c:184 #, c-format msgid " %lu%% (%lu min average)" msgstr " %lu%% (%lu moyenne minimale)" -#: plugins/check_nt.c:183 +#: plugins/check_nt.c:186 #, c-format msgid " '%lu min avg Load'=%lu%%;%lu;%lu;0;100" msgstr " '%lu Charge moyenne minimale'=%lu%%;%lu;%lu;0;100" -#: plugins/check_nt.c:193 +#: plugins/check_nt.c:196 msgid "not enough values for -l parameters" msgstr "pas assez de valeur pour l'argument -l" -#: plugins/check_nt.c:205 +#: plugins/check_nt.c:208 #, c-format msgid "System Uptime - %u day(s) %u hour(s) %u minute(s)" msgstr "Système démarré - %u jour(s) %u heure(s) %u minute(s)" -#: plugins/check_nt.c:214 +#: plugins/check_nt.c:217 msgid "wrong -l argument" msgstr "Argument -l erroné" -#: plugins/check_nt.c:225 +#: plugins/check_nt.c:228 #, c-format msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)" msgstr "" "%s:\\ - total: %.2f Gb - utilisé: %.2f Gb (%.0f%%) - libre %.2f Gb (%.0f%%)" -#: plugins/check_nt.c:228 +#: plugins/check_nt.c:231 #, c-format msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f" msgstr "'%s:\\ Espace Utilisé'=%.2fGb;%.2f;%.2f;0.00;%.2f" -#: plugins/check_nt.c:242 +#: plugins/check_nt.c:245 msgid "Free disk space : Invalid drive " msgstr "Espace disque libre : Lecteur invalide " -#: plugins/check_nt.c:252 +#: plugins/check_nt.c:255 msgid "No service/process specified" msgstr "Pas de service/processus spécifié" -#: plugins/check_nt.c:276 +#: plugins/check_nt.c:279 #, c-format msgid "" "Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)" @@ -2213,384 +2256,455 @@ msgstr "" "Mémoire utilisée: total:%.2f Mb - utilisée: %.2f Mb (%.0f%%) - libre: %.2f " "Mb (%.0f%%)" -#: plugins/check_nt.c:279 +#: plugins/check_nt.c:282 #, c-format msgid "'Memory usage'=%.2fMb;%.2f;%.2f;0.00;%.2f" msgstr "'Mémoire utilisée'=%.2fMb;%.2f;%.2f;0.00;%.2f" -#: plugins/check_nt.c:315 plugins/check_nt.c:401 +#: plugins/check_nt.c:318 plugins/check_nt.c:404 plugins/check_nt.c:434 msgid "No counter specified" msgstr "Pas de compteur spécifié" -#: plugins/check_nt.c:348 +#: plugins/check_nt.c:351 msgid "Minimum value contains non-numbers" msgstr "La valeur minimum contient des caractères non numériques" -#: plugins/check_nt.c:352 +#: plugins/check_nt.c:355 msgid "Maximum value contains non-numbers" msgstr "La valeur maximum contient des caractères non numériques" -#: plugins/check_nt.c:359 +#: plugins/check_nt.c:362 msgid "No unit counter specified" msgstr "Pas de compteur spécifié" -#: plugins/check_nt.c:431 +#: plugins/check_nt.c:449 msgid "Please specify a variable to check" msgstr "Veuillez préciser une variable a vérifier" -#: plugins/check_nt.c:513 +#: plugins/check_nt.c:530 msgid "Server port must be an integer\n" msgstr "Le port du serveur doit être un nombre entier\n" -#: plugins/check_nt.c:566 +#: plugins/check_nt.c:585 msgid "None" msgstr "Aucun" -#: plugins/check_nt.c:579 +#: plugins/check_nt.c:598 msgid "could not fetch information from server\n" msgstr "Impossible d'obtenir l'information depuis le serveur\n" -#: plugins/check_nt.c:623 +#: plugins/check_nt.c:642 msgid "This plugin collects data from the NSClient service running on a" msgstr "" "Ce plugin collecte les données depuis le service NSClient tournant sur un" -#: plugins/check_nt.c:624 +#: plugins/check_nt.c:643 msgid "Windows NT/2000/XP/2003 server." msgstr "Serveur Windows NT/2000/XP/2003." -#: plugins/check_nt.c:634 +#: plugins/check_nt.c:654 msgid "Name of the host to check" msgstr "Nom de l'hôte à vérifier" -#: plugins/check_nt.c:636 +#: plugins/check_nt.c:656 msgid "Optional port number (default: " msgstr "Numéro de port optionnel (défaut: " -#: plugins/check_nt.c:639 +#: plugins/check_nt.c:659 msgid "Password needed for the request" msgstr "Mot de passe nécessaire pour la requête" -#: plugins/check_nt.c:641 plugins/check_nwstat.c:1664 -#: plugins/check_overcr.c:435 +#: plugins/check_nt.c:661 plugins/check_nwstat.c:1665 +#: plugins/check_overcr.c:436 msgid "Threshold which will result in a warning status" msgstr "" -#: plugins/check_nt.c:643 plugins/check_nwstat.c:1666 -#: plugins/check_overcr.c:437 +#: plugins/check_nt.c:663 plugins/check_nwstat.c:1667 +#: plugins/check_overcr.c:438 msgid "Threshold which will result in a critical status" msgstr "" -#: plugins/check_nt.c:645 +#: plugins/check_nt.c:665 msgid "Seconds before connection attempt times out (default: " msgstr "" -#: plugins/check_nt.c:648 +#: plugins/check_nt.c:668 msgid "Print this help screen" msgstr "Afficher l'écran d'aide" -#: plugins/check_nt.c:650 +#: plugins/check_nt.c:670 msgid "Print version information" msgstr "Afficher la version" -#: plugins/check_nt.c:652 +#: plugins/check_nt.c:672 msgid "Variable to check" msgstr "Variable a vérifier" -#: plugins/check_nt.c:653 +#: plugins/check_nt.c:673 msgid "Valid variables are:" msgstr "Les variables valides sont" -#: plugins/check_nt.c:655 +#: plugins/check_nt.c:675 msgid "Get the NSClient version" msgstr "Obtenir la version de NSClient" -#: plugins/check_nt.c:656 +#: plugins/check_nt.c:676 msgid "If -l is specified, will return warning if versions differ." msgstr "" "si l'argument -l est spécifié, une alerte AVERTISSEMENT sera " "renvoyée, si les versions sont différentes." -#: plugins/check_nt.c:658 +#: plugins/check_nt.c:678 msgid "Average CPU load on last x minutes." msgstr "Moyenne de la charge CPU sur les dernières x minutes." -#: plugins/check_nt.c:659 +#: plugins/check_nt.c:679 msgid "Request a -l parameter with the following syntax:" msgstr "Demande un paramètre -l avec la syntaxe suivante:" -#: plugins/check_nt.c:660 +#: plugins/check_nt.c:680 msgid "-l ,,." msgstr "-l ,,." -#: plugins/check_nt.c:661 +#: plugins/check_nt.c:681 msgid " should be less than 24*60." msgstr " devrait être inférieur à 24*60." -#: plugins/check_nt.c:662 +#: plugins/check_nt.c:682 msgid "" "Thresholds are percentage and up to 10 requests can be done in one shot." msgstr "" "Les seuils sonts en pourcentage et un maximum de 10 requêtes peuvent être " "effectuées à la fois." -#: plugins/check_nt.c:665 +#: plugins/check_nt.c:685 msgid "Get the uptime of the machine." msgstr "Obtenir le temps de service de la machine." -#: plugins/check_nt.c:666 +#: plugins/check_nt.c:686 msgid "No specific parameters. No warning or critical threshold" msgstr "Pas d'argument spécifique. Pas de seuil d'avertissement ou critique" -#: plugins/check_nt.c:668 +#: plugins/check_nt.c:688 msgid "Size and percentage of disk use." msgstr "Taille et pourcentage de l'utilisation disque." -#: plugins/check_nt.c:669 +#: plugins/check_nt.c:689 msgid "Request a -l parameter containing the drive letter only." msgstr "Demande un paramètre -l contennant uniquement la lettre du lecteur." -#: plugins/check_nt.c:670 plugins/check_nt.c:673 +#: plugins/check_nt.c:690 plugins/check_nt.c:693 msgid "Warning and critical thresholds can be specified with -w and -c." msgstr "Les seuils d'alerte et critiques peuvent être spécifiés avec -w et -c." -#: plugins/check_nt.c:672 +#: plugins/check_nt.c:692 msgid "Memory use." msgstr "Mémoire utilisée." -#: plugins/check_nt.c:675 +#: plugins/check_nt.c:695 msgid "Check the state of one or several services." msgstr "Vérifier l'état d'un ou plusieurs services." -#: plugins/check_nt.c:676 plugins/check_nt.c:685 +#: plugins/check_nt.c:696 plugins/check_nt.c:705 msgid "Request a -l parameters with the following syntax:" msgstr "Demande un paramètre -l avec la syntaxe suivante:" -#: plugins/check_nt.c:677 +#: plugins/check_nt.c:697 msgid "-l ,,,..." msgstr "-l ,,,..." -#: plugins/check_nt.c:678 +#: plugins/check_nt.c:698 msgid "You can specify -d SHOWALL in case you want to see working services" msgstr "Vous pouvez spécifier -d SHOWALL pour voir les services fonctionnant" -#: plugins/check_nt.c:679 +#: plugins/check_nt.c:699 msgid "in the returned string." msgstr "dans la chaîne de caractère renvoyée." -#: plugins/check_nt.c:681 +#: plugins/check_nt.c:701 msgid "Check if one or several process are running." msgstr "Vérifie si un ou plusieurs processus sont démarrés." -#: plugins/check_nt.c:682 +#: plugins/check_nt.c:702 msgid "Same syntax as SERVICESTATE." msgstr "Même syntaxe que SERVICESTATE." -#: plugins/check_nt.c:684 +#: plugins/check_nt.c:704 msgid "Check any performance counter of Windows NT/2000." msgstr "Vérifier n'importe quel compteur de performance sur Windows NT/2000." -#: plugins/check_nt.c:686 +#: plugins/check_nt.c:706 msgid "-l \"\\\\\\\\counter\",\"" msgstr "-l \"\\\\\\\\compteur\",\"" -#: plugins/check_nt.c:687 +#: plugins/check_nt.c:707 msgid "The parameter is optional and is given to a printf " msgstr "Le paramètre est optionnel et est passé à la fonction " -#: plugins/check_nt.c:688 +#: plugins/check_nt.c:708 msgid "output command which requires a float parameter." msgstr "de sortie printf qui demande un paramètre de type float." -#: plugins/check_nt.c:689 +#: plugins/check_nt.c:709 #, c-format msgid "If does not include \"%%\", it is used as a label." msgstr "Si n'inclus pas \"%%\", il est utilisé comme étiquette." -#: plugins/check_nt.c:690 +#: plugins/check_nt.c:710 plugins/check_nt.c:725 msgid "Some examples:" msgstr "Exemples:" -#: plugins/check_nt.c:694 +#: plugins/check_nt.c:714 +#, fuzzy +msgid "Check any performance counter object of Windows NT/2000." +msgstr "Vérifier n'importe quel compteur de performance sur Windows NT/2000." + +#: plugins/check_nt.c:715 +msgid "" +"Syntax: check_nt -H -p -v INSTANCES -l " +msgstr "" + +#: plugins/check_nt.c:716 +msgid " is a Windows Perfmon Counter object (eg. Process)," +msgstr "" + +#: plugins/check_nt.c:717 +msgid "if it is two words, it should be enclosed in quotes" +msgstr "" + +#: plugins/check_nt.c:718 +msgid "The returned results will be a comma-separated list of instances on " +msgstr "" + +#: plugins/check_nt.c:719 +msgid " the selected computer for that object." +msgstr "" + +#: plugins/check_nt.c:720 +msgid "" +"The purpose of this is to be run from command line to determine what " +"instances" +msgstr "" + +#: plugins/check_nt.c:721 +msgid "" +" are available for monitoring without having to log onto the Windows server" +msgstr "" + +#: plugins/check_nt.c:722 +msgid " to run Perfmon directly." +msgstr "" + +#: plugins/check_nt.c:723 +msgid "It can also be used in scripts that automatically create Nagios service" +msgstr "" + +#: plugins/check_nt.c:724 +#, fuzzy +msgid " configuration files." +msgstr "Fichier de configuration" + +#: plugins/check_nt.c:726 +msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process" +msgstr "" + +#: plugins/check_nt.c:729 msgid "" "- The NSClient service should be running on the server to get any information" msgstr "" "- Le service NSClient doit rouler sur le serveur pour obtenir les " "informations" -#: plugins/check_nt.c:696 +#: plugins/check_nt.c:731 msgid "- Critical thresholds should be lower than warning thresholds" msgstr "" "- Les seuils critiques doivent être plus bas que les seuils d'avertissement" -#: plugins/check_nt.c:697 +#: plugins/check_nt.c:732 msgid "- Default port 1248 is sometimes in use by other services. The error" msgstr "" "- Le port par défaut 1248 est parfois utilisé par d'autres services. L'erreur" -#: plugins/check_nt.c:698 +#: plugins/check_nt.c:733 msgid "" "output when this happens contains \"Cannot map xxxxx to protocol number\"." msgstr "qui en résulte contiens \"Cannot map xxxxx to protocol number\"." -#: plugins/check_nt.c:699 +#: plugins/check_nt.c:734 msgid "One fix for this is to change the port to something else on check_nt " msgstr "" "Une possibilité pour corriger ce problème est de changer le port dans " "check_nt " -#: plugins/check_nt.c:700 +#: plugins/check_nt.c:735 msgid "and on the client service it's connecting to." msgstr "et dans le service auquel il se connecte." -#: plugins/check_ntp.c:804 plugins/check_ntp_peer.c:586 -#: plugins/check_ntp_time.c:563 +#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:592 +#: plugins/check_ntp_time.c:566 +#, c-format msgid "NTP CRITICAL:" msgstr "NTP CRITIQUE:" -#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:589 -#: plugins/check_ntp_time.c:566 +#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:595 +#: plugins/check_ntp_time.c:569 +#, c-format msgid "NTP WARNING:" msgstr "NTP AVERTISSEMENT:" -#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:592 -#: plugins/check_ntp_time.c:569 +#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:598 +#: plugins/check_ntp_time.c:572 +#, c-format msgid "NTP OK:" msgstr "NTP OK:" -#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:595 -#: plugins/check_ntp_time.c:572 +#: plugins/check_ntp.c:816 plugins/check_ntp_peer.c:601 +#: plugins/check_ntp_time.c:575 +#, c-format msgid "NTP UNKNOWN:" msgstr "NTP INCONNU:" -#: plugins/check_ntp.c:817 plugins/check_ntp_peer.c:602 -#: plugins/check_ntp_time.c:576 +#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:610 +#: plugins/check_ntp_time.c:579 msgid "Offset unknown" msgstr "Décalage inconnu" -#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:605 -#: plugins/check_ntp_time.c:579 +#: plugins/check_ntp.c:823 plugins/check_ntp_peer.c:613 +#: plugins/check_ntp_time.c:582 msgid "Offset" msgstr "Décalage" -#: plugins/check_ntp.c:841 plugins/check_ntp_peer.c:630 +#: plugins/check_ntp.c:844 plugins/check_ntp_peer.c:638 msgid "This plugin checks the selected ntp server" msgstr "Ce plugin vérifie le service ntp sur l'hôte" -#: plugins/check_ntp.c:849 plugins/check_ntp_peer.c:640 -#: plugins/check_ntp_time.c:604 +#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:649 +#: plugins/check_ntp_time.c:608 msgid "Offset to result in warning status (seconds)" msgstr "Décalage résultant un avertissement (secondes)" -#: plugins/check_ntp.c:851 plugins/check_ntp_peer.c:642 -#: plugins/check_ntp_time.c:606 +#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:651 +#: plugins/check_ntp_time.c:610 msgid "Offset to result in critical status (seconds)" msgstr "Décalage résultant un état critique (secondes)" -#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:648 +#: plugins/check_ntp.c:857 plugins/check_ntp_peer.c:657 msgid "Warning threshold for jitter" msgstr "Seuil d'avertissement pour la variation (jitter)" -#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:650 +#: plugins/check_ntp.c:859 plugins/check_ntp_peer.c:659 msgid "Critical threshold for jitter" msgstr "Seuil critique pour la variation (jitter)" -#: plugins/check_ntp.c:867 +#: plugins/check_ntp.c:873 msgid "Normal offset check:" msgstr "Vérification normale du décalage:" -#: plugins/check_ntp.c:869 plugins/check_ntp_peer.c:671 +#: plugins/check_ntp.c:876 plugins/check_ntp_peer.c:684 msgid "" "Check jitter too, avoiding critical notifications if jitter isn't available" msgstr "" "Vérifier aussi la variation (jitter) en évitant les notifications s'il n'est " "pas dispoible" -#: plugins/check_ntp.c:870 plugins/check_ntp_peer.c:672 +#: plugins/check_ntp.c:877 plugins/check_ntp_peer.c:685 msgid "(See Notes above for more details on thresholds formats):" msgstr "" "(Voir les Notes ci-dessus pour plus de détails sur le format des seuils)" -#: plugins/check_ntp_peer.c:599 +#: plugins/check_ntp.c:882 plugins/check_ntp.c:889 +msgid "WARNING: check_ntp is deprecated. Please use check_ntp_peer or" +msgstr "" + +#: plugins/check_ntp.c:883 plugins/check_ntp.c:890 +#, fuzzy +msgid "check_ntp_time istead." +msgstr "utiliser check_ntp_peer." + +#: plugins/check_ntp_peer.c:605 msgid "Server not synchronized" msgstr "Le serveur n'est pas synchronisé" -#: plugins/check_ntp_peer.c:638 +#: plugins/check_ntp_peer.c:607 +msgid "Server has the LI_ALARM bit set" +msgstr "" + +#: plugins/check_ntp_peer.c:647 msgid "" "Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized" msgstr "" "Retourne INCONNU au lieu de CRITIQUE ou AVERTISSEMENT si le serveur n'est " "pas synchronisé" -#: plugins/check_ntp_peer.c:644 +#: plugins/check_ntp_peer.c:653 msgid "Warning threshold for stratum" msgstr "Seuil d'avertissement pour le stratum" -#: plugins/check_ntp_peer.c:646 +#: plugins/check_ntp_peer.c:655 msgid "Critical threshold for stratum" msgstr "Seuil critique pour le stratum" -#: plugins/check_ntp_peer.c:656 +#: plugins/check_ntp_peer.c:664 msgid "This plugin checks an NTP server independent of any commandline" msgstr "Ce plugin vérifie un serveur NTP sans recours aux programmes de" -#: plugins/check_ntp_peer.c:657 +#: plugins/check_ntp_peer.c:665 msgid "programs or external libraries." msgstr "la ligne de commande ou libraries externes" -#: plugins/check_ntp_peer.c:658 +#: plugins/check_ntp_peer.c:668 msgid "Use this plugin to check the health of an NTP server. It supports" msgstr "" "Utilisez ce plugin pour vérifier le service NTP sur l'hôte. Il supporte la" -#: plugins/check_ntp_peer.c:659 +#: plugins/check_ntp_peer.c:669 msgid "checking the offset with the sync peer, the jitter and stratum. This" msgstr "" "vérification du décalage avec le pair se synchronisation, la variation " "(jitter) et le stratum." -#: plugins/check_ntp_peer.c:660 +#: plugins/check_ntp_peer.c:670 msgid "plugin will not check the clock offset between the local host and NTP" msgstr "" "Ce plugin ne vérifie pas le décalage entre le serveur local et le serveur" -#: plugins/check_ntp_peer.c:661 +#: plugins/check_ntp_peer.c:671 msgid "server; please use check_ntp_time for that purpose." msgstr "NTP; utilisez plutôt check_ntp_time à cette fin." -#: plugins/check_ntp_peer.c:669 +#: plugins/check_ntp_peer.c:681 msgid "Simple NTP server check:" msgstr "Vérification simple du serveur NTP:" -#: plugins/check_ntp_peer.c:674 +#: plugins/check_ntp_peer.c:688 msgid "Check only stratum:" msgstr "Vérification du stratum seulement:" -#: plugins/check_ntp_time.c:594 +#: plugins/check_ntp_time.c:597 msgid "This plugin checks the clock offset with the ntp server" msgstr "Ce plugin vérifie le décalage de l'horloge avec le serveur ntp" -#: plugins/check_ntp_time.c:602 +#: plugins/check_ntp_time.c:606 msgid "Returns UNKNOWN instead of CRITICAL if offset cannot be found" msgstr "Retourne INCONNU au lieu de CRITIQUE si le décalage est inconnu" -#: plugins/check_ntp_time.c:612 +#: plugins/check_ntp_time.c:615 msgid "This plugin checks the clock offset between the local host and a" msgstr "Ce plugin vérifie le décalage de l'horloge entre se serveur local et" -#: plugins/check_ntp_time.c:613 +#: plugins/check_ntp_time.c:616 msgid "remote NTP server. It is independent of any commandline programs or" msgstr "le serveur NTP distant. Il ne fait aucun recours aux programmes de" -#: plugins/check_ntp_time.c:614 +#: plugins/check_ntp_time.c:617 msgid "external libraries." msgstr "la ligne de commande ou libraries externes." -#: plugins/check_ntp_time.c:615 +#: plugins/check_ntp_time.c:621 msgid "If you'd rather want to monitor an NTP server, please use" msgstr "Si vous voulez plutôt surveiller un serveur NTP, veuillez" -#: plugins/check_ntp_time.c:616 +#: plugins/check_ntp_time.c:622 msgid "check_ntp_peer." msgstr "utiliser check_ntp_peer." @@ -2692,14 +2806,17 @@ msgid "disabled" msgstr "désactivé" #: plugins/check_nwstat.c:564 +#, c-format msgid "CRITICAL - NRM Status is bad!" msgstr "CRITIQUE - le statut NRM est mauvais!" #: plugins/check_nwstat.c:569 +#, c-format msgid "Warning - NRM Status is suspect!" msgstr "" #: plugins/check_nwstat.c:572 +#, c-format msgid "OK - NRM Status is good!" msgstr "OK - Le status du NRM est bon!" @@ -2760,10 +2877,12 @@ msgid "%lu current service processes (%lu max)|Processes=%lu;%lu;%lu;0;%lu" msgstr "%lu processus services actuels (%lu max)|Processus=%lu;%lu;%lu;0;%lu" #: plugins/check_nwstat.c:908 +#, c-format msgid "CRITICAL - Time not in sync with network!" msgstr "CRITIQUE - Le temps n'est pas synchronisé avec le réseau!" #: plugins/check_nwstat.c:911 +#, c-format msgid "OK - Time in sync with network!" msgstr "OK - Le temps est synchronisé avec le réseau!" @@ -2836,216 +2955,216 @@ msgstr "Ce plugin essaye de contacter le NLM MRTGEXT qui s'exécute sur" msgid "Novell server to gather the requested system information." msgstr "un serveur Novell pour récupérer l'information système demandée." -#: plugins/check_nwstat.c:1617 plugins/check_overcr.c:439 +#: plugins/check_nwstat.c:1618 plugins/check_overcr.c:440 msgid "Variable to check. Valid variables include:" msgstr "Variable à vérifier. Les variables valides sont:" -#: plugins/check_nwstat.c:1618 +#: plugins/check_nwstat.c:1619 msgid "LOAD1 = 1 minute average CPU load" msgstr "" -#: plugins/check_nwstat.c:1619 +#: plugins/check_nwstat.c:1620 msgid "LOAD5 = 5 minute average CPU load" msgstr "" -#: plugins/check_nwstat.c:1620 +#: plugins/check_nwstat.c:1621 msgid "LOAD15 = 15 minute average CPU load" msgstr "" -#: plugins/check_nwstat.c:1621 +#: plugins/check_nwstat.c:1622 msgid "CSPROCS = number of current service processes (NW 5.x only)" msgstr "CSPROCS = nombres de processus services actuels (NW 5.x seulement)" -#: plugins/check_nwstat.c:1622 +#: plugins/check_nwstat.c:1623 msgid "ABENDS = number of abended threads (NW 5.x only)" msgstr "" -#: plugins/check_nwstat.c:1623 +#: plugins/check_nwstat.c:1624 msgid "UPTIME = server uptime" msgstr "" -#: plugins/check_nwstat.c:1624 +#: plugins/check_nwstat.c:1625 msgid "LTCH = percent long term cache hits" msgstr "" -#: plugins/check_nwstat.c:1625 +#: plugins/check_nwstat.c:1626 msgid "CBUFF = current number of cache buffers" msgstr "" -#: plugins/check_nwstat.c:1626 +#: plugins/check_nwstat.c:1627 msgid "CDBUFF = current number of dirty cache buffers" msgstr "" -#: plugins/check_nwstat.c:1627 +#: plugins/check_nwstat.c:1628 msgid "DCB = dirty cache buffers as a percentage of the total" msgstr "" -#: plugins/check_nwstat.c:1628 +#: plugins/check_nwstat.c:1629 msgid "TCB = dirty cache buffers as a percentage of the original" msgstr "" -#: plugins/check_nwstat.c:1629 +#: plugins/check_nwstat.c:1630 msgid "OFILES = number of open files" msgstr "" -#: plugins/check_nwstat.c:1630 +#: plugins/check_nwstat.c:1631 msgid " VMF = MB of free space on Volume " msgstr "" -#: plugins/check_nwstat.c:1631 +#: plugins/check_nwstat.c:1632 msgid " VMU = MB used space on Volume " msgstr "" -#: plugins/check_nwstat.c:1632 +#: plugins/check_nwstat.c:1633 msgid " VMP = MB of purgeable space on Volume " msgstr "" -#: plugins/check_nwstat.c:1633 +#: plugins/check_nwstat.c:1634 msgid " VPF = percent free space on volume " msgstr "" -#: plugins/check_nwstat.c:1634 +#: plugins/check_nwstat.c:1635 msgid " VKF = KB of free space on volume " msgstr "" -#: plugins/check_nwstat.c:1635 +#: plugins/check_nwstat.c:1636 msgid " VPP = percent purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1636 +#: plugins/check_nwstat.c:1637 msgid " VKP = KB of purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1637 +#: plugins/check_nwstat.c:1638 msgid " VPNP = percent not yet purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1638 +#: plugins/check_nwstat.c:1639 msgid " VKNP = KB of not yet purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1639 +#: plugins/check_nwstat.c:1640 msgid " LRUM = LRU sitting time in minutes" msgstr "" -#: plugins/check_nwstat.c:1640 +#: plugins/check_nwstat.c:1641 msgid " LRUS = LRU sitting time in seconds" msgstr " LRUS = LRU temps d'attente en secondes" -#: plugins/check_nwstat.c:1641 +#: plugins/check_nwstat.c:1642 msgid " DSDB = check to see if DS Database is open" msgstr "" -#: plugins/check_nwstat.c:1642 +#: plugins/check_nwstat.c:1643 msgid " DSVER = NDS version" msgstr "" -#: plugins/check_nwstat.c:1643 +#: plugins/check_nwstat.c:1644 msgid " UPRB = used packet receive buffers" msgstr " UPRB = paquets du tampon de réception utilisés" -#: plugins/check_nwstat.c:1644 +#: plugins/check_nwstat.c:1645 msgid " PUPRB = percent (of max) used packet receive buffers" msgstr "" -#: plugins/check_nwstat.c:1645 +#: plugins/check_nwstat.c:1646 msgid " SAPENTRIES = number of entries in the SAP table" msgstr "" -#: plugins/check_nwstat.c:1646 +#: plugins/check_nwstat.c:1647 msgid " SAPENTRIES = number of entries in the SAP table for SAP type " msgstr " SAPENTRIES = entrées dans la table SAP pour le type SAP " -#: plugins/check_nwstat.c:1647 +#: plugins/check_nwstat.c:1648 msgid " TSYNC = timesync status" msgstr "" -#: plugins/check_nwstat.c:1648 +#: plugins/check_nwstat.c:1649 msgid " LOGINS = check to see if logins are enabled" msgstr "" -#: plugins/check_nwstat.c:1649 +#: plugins/check_nwstat.c:1650 msgid " CONNS = number of currently licensed connections" msgstr "" -#: plugins/check_nwstat.c:1650 +#: plugins/check_nwstat.c:1651 msgid " NRMH\t= NRM Summary Status" msgstr "" -#: plugins/check_nwstat.c:1651 +#: plugins/check_nwstat.c:1652 msgid " NRMP = Returns the current value for a NRM health item" msgstr "" -#: plugins/check_nwstat.c:1652 +#: plugins/check_nwstat.c:1653 msgid " NRMM = Returns the current memory stats from NRM" msgstr "" -#: plugins/check_nwstat.c:1653 +#: plugins/check_nwstat.c:1654 msgid " NRMS = Returns the current Swapfile stats from NRM" msgstr "" -#: plugins/check_nwstat.c:1654 +#: plugins/check_nwstat.c:1655 msgid " NSS1 = Statistics from _Admin:Manage_NSS\\GeneralStats.xml" msgstr "" -#: plugins/check_nwstat.c:1655 +#: plugins/check_nwstat.c:1656 msgid " NSS3 = Statistics from _Admin:Manage_NSS\\NameCache.xml" msgstr "" -#: plugins/check_nwstat.c:1656 +#: plugins/check_nwstat.c:1657 msgid " NSS4 = Statistics from _Admin:Manage_NSS\\FileStats.xml" msgstr "" -#: plugins/check_nwstat.c:1657 +#: plugins/check_nwstat.c:1658 msgid " NSS5 = Statistics from _Admin:Manage_NSS\\ObjectCache.xml" msgstr "" -#: plugins/check_nwstat.c:1658 +#: plugins/check_nwstat.c:1659 msgid " NSS6 = Statistics from _Admin:Manage_NSS\\Thread.xml" msgstr "" -#: plugins/check_nwstat.c:1659 +#: plugins/check_nwstat.c:1660 msgid "" " NSS7 = Statistics from _Admin:Manage_NSS\\AuthorizationCache.xml" msgstr "" -#: plugins/check_nwstat.c:1660 +#: plugins/check_nwstat.c:1661 msgid " NLM: = check if NLM is loaded and report version" msgstr "" -#: plugins/check_nwstat.c:1661 +#: plugins/check_nwstat.c:1662 msgid " (e.g. NLM:TSANDS.NLM)" msgstr "" -#: plugins/check_nwstat.c:1668 +#: plugins/check_nwstat.c:1669 msgid "Include server version string in results" msgstr "" -#: plugins/check_nwstat.c:1674 +#: plugins/check_nwstat.c:1675 msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG" msgstr "" -#: plugins/check_nwstat.c:1675 +#: plugins/check_nwstat.c:1676 msgid "" " extension for NetWare be loaded on the Novell servers you wish to check." msgstr "" -#: plugins/check_nwstat.c:1676 +#: plugins/check_nwstat.c:1677 msgid " (available from http://www.engr.wisc.edu/~drews/mrtg/)" msgstr " (disponible depuis http://www.engr.wisc.edu/~drews/mrtg/)" -#: plugins/check_nwstat.c:1677 +#: plugins/check_nwstat.c:1678 msgid "" "- Values for critical thresholds should be lower than warning thresholds" msgstr "" -#: plugins/check_nwstat.c:1678 +#: plugins/check_nwstat.c:1679 msgid "" " when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, " msgstr "" -#: plugins/check_nwstat.c:1679 -msgid " TCB, LRUS and LRUM.\n" +#: plugins/check_nwstat.c:1680 +msgid " TCB, LRUS and LRUM." msgstr "" #: plugins/check_overcr.c:127 @@ -3112,162 +3231,167 @@ msgstr "" msgid "remote UNIX server in order to gather the requested system information." msgstr "distant afin de récupérer les informations système demandées." -#: plugins/check_overcr.c:440 +#: plugins/check_overcr.c:441 msgid "LOAD1 = 1 minute average CPU load" msgstr "" -#: plugins/check_overcr.c:441 +#: plugins/check_overcr.c:442 msgid "LOAD5 = 5 minute average CPU load" msgstr "" -#: plugins/check_overcr.c:442 +#: plugins/check_overcr.c:443 msgid "LOAD15 = 15 minute average CPU load" msgstr "" -#: plugins/check_overcr.c:443 +#: plugins/check_overcr.c:444 msgid "DPU = percent used disk space on filesystem " msgstr "" -#: plugins/check_overcr.c:444 +#: plugins/check_overcr.c:445 msgid "PROC = number of running processes with name " msgstr "" -#: plugins/check_overcr.c:445 +#: plugins/check_overcr.c:446 msgid "NET = number of active connections on TCP port " msgstr "" -#: plugins/check_overcr.c:446 +#: plugins/check_overcr.c:447 msgid "UPTIME = system uptime in seconds" msgstr "" #: plugins/check_overcr.c:454 +#, fuzzy +msgid "This plugin requires that Eric Molitors' Over-CR collector daemon be" +msgstr "Ce plugin requiert que le daemon collecteur Over-CR d'Eric Molitors" + +#: plugins/check_overcr.c:455 +msgid "running on the remote server." +msgstr "soit fonctionnel sur le serveur distant" + +#: plugins/check_overcr.c:456 +msgid "Over-CR can be downloaded from http://www.molitor.org/overcr" +msgstr "" + +#: plugins/check_overcr.c:457 +msgid "This plugin was tested with version 0.99.53 of the Over-CR collector" +msgstr "Ce plugin a été testé avec la version 0.99.53 su collecteur Over-CR" + +#: plugins/check_overcr.c:461 msgid "" "For the available options, the critical threshold value should always be" msgstr "" "Pour toutes les options disponibles, le seuil critique doit toujours être" -#: plugins/check_overcr.c:455 +#: plugins/check_overcr.c:462 msgid "" "higher than the warning threshold value, EXCEPT with the uptime variable" msgstr "plus grand que le seuil d'alerte SAUF pour l'option uptime" -#: plugins/check_overcr.c:457 -msgid "This plugin requres that Eric Molitors' Over-CR collector daemon be" -msgstr "Ce plugin requiert que le daemon collecteur Over-CR d'Eric Molitors" - -#: plugins/check_overcr.c:458 -msgid "running on the remote server." -msgstr "soit fonctionnel sur le serveur distant" - -#: plugins/check_overcr.c:460 -msgid "This plugin was tested with version 0.99.53 of the Over-CR collector" -msgstr "Ce plugin a été testé avec la version 0.99.53 su collecteur Over-CR" - -#: plugins/check_pgsql.c:173 +#: plugins/check_pgsql.c:174 #, c-format msgid "CRITICAL - no connection to '%s' (%s).\n" msgstr "CRITIQUE - pas de connexion à '%s' (%s).\n" -#: plugins/check_pgsql.c:188 +#: plugins/check_pgsql.c:189 #, c-format msgid " %s - database %s (%d sec.)|%s\n" msgstr " %s - base de données %s (%d sec.)|%s\n" -#: plugins/check_pgsql.c:243 plugins/check_time.c:281 plugins/check_time.c:293 -#: plugins/check_users.c:168 +#: plugins/check_pgsql.c:244 plugins/check_time.c:281 plugins/check_time.c:293 +#: plugins/check_users.c:170 msgid "Critical threshold must be a positive integer" msgstr "Le seuil critique doit être un entier positif" -#: plugins/check_pgsql.c:249 plugins/check_time.c:262 plugins/check_time.c:286 -#: plugins/check_users.c:174 plugins/check_users.c:184 -#: plugins/check_users.c:191 +#: plugins/check_pgsql.c:250 plugins/check_time.c:262 plugins/check_time.c:286 +#: plugins/check_users.c:176 plugins/check_users.c:186 +#: plugins/check_users.c:193 msgid "Warning threshold must be a positive integer" msgstr "Le seuil d'avertissement doit être un entier positif" -#: plugins/check_pgsql.c:267 +#: plugins/check_pgsql.c:268 msgid "Database name is not valid" msgstr "Le nom de la base de données est invalide" -#: plugins/check_pgsql.c:273 +#: plugins/check_pgsql.c:274 msgid "User name is not valid" msgstr "Le nom de l'utilisateur est invalide" -#: plugins/check_pgsql.c:410 +#: plugins/check_pgsql.c:411 #, c-format msgid "Test whether a PostgreSQL Database is accepting connections." msgstr "Teste si une base de données Postgresql accepte les connections." -#: plugins/check_pgsql.c:423 +#: plugins/check_pgsql.c:425 msgid "Database to check " msgstr "" -#: plugins/check_pgsql.c:424 +#: plugins/check_pgsql.c:426 #, c-format msgid "(default: %s)" msgstr "" -#: plugins/check_pgsql.c:426 +#: plugins/check_pgsql.c:428 msgid "Login name of user" msgstr "Le nom d'un utilisateur" -#: plugins/check_pgsql.c:428 +#: plugins/check_pgsql.c:430 msgid "Password (BIG SECURITY ISSUE)" msgstr "" -#: plugins/check_pgsql.c:437 -msgid "All parameters are optional." -msgstr "" - -#: plugins/check_pgsql.c:438 -msgid "" -"This plugin tests a PostgreSQL DBMS to determine whether it is active and" -msgstr "" - #: plugins/check_pgsql.c:439 -msgid "accepting queries. In its current operation, it simply connects to the" +msgid "All parameters are optional." msgstr "" #: plugins/check_pgsql.c:440 msgid "" -"specified database, and then disconnects. If no database is specified, it" +"This plugin tests a PostgreSQL DBMS to determine whether it is active and" msgstr "" #: plugins/check_pgsql.c:441 +msgid "accepting queries. In its current operation, it simply connects to the" +msgstr "" + +#: plugins/check_pgsql.c:442 +msgid "" +"specified database, and then disconnects. If no database is specified, it" +msgstr "" + +#: plugins/check_pgsql.c:443 msgid "" "connects to the template1 database, which is present in every functioning" msgstr "" -#: plugins/check_pgsql.c:442 +#: plugins/check_pgsql.c:444 msgid "PostgreSQL DBMS." msgstr "" -#: plugins/check_pgsql.c:443 +#: plugins/check_pgsql.c:446 msgid "" "The plugin will connect to a local postmaster if no host is specified. To" msgstr "" "Ce plugin va se connecter sur un postmaster local si aucun hôte n'est " "spécifié." -#: plugins/check_pgsql.c:444 +#: plugins/check_pgsql.c:447 msgid "" "connect to a remote host, be sure that the remote postmaster accepts TCP/IP" msgstr "" -#: plugins/check_pgsql.c:445 +#: plugins/check_pgsql.c:448 msgid "connections (start the postmaster with the -i option)." msgstr "" -#: plugins/check_pgsql.c:446 +#: plugins/check_pgsql.c:450 msgid "" "Typically, the nagios user (unless the --logname option is used) should be" msgstr "" -#: plugins/check_pgsql.c:447 +#: plugins/check_pgsql.c:451 msgid "" "able to connect to the database without a password. The plugin can also send" msgstr "" -#: plugins/check_pgsql.c:448 +#: plugins/check_pgsql.c:452 msgid "a password, but no effort is made to obsure or encrypt the password." msgstr "" @@ -3285,391 +3409,387 @@ msgstr "PING %s - %s Paquets perdus = %d%%" msgid "PING %s - %sPacket loss = %d%%, RTA = %2.2f ms" msgstr "PING %s - %s Paquets perdus = %d%%, RTA = %2.2f ms" -#: plugins/check_ping.c:252 +#: plugins/check_ping.c:261 msgid "Could not realloc() addresses\n" msgstr "Impossible de réallouer les adresses\n" -#: plugins/check_ping.c:267 plugins/check_ping.c:347 +#: plugins/check_ping.c:276 plugins/check_ping.c:356 #, c-format msgid " (%s) must be a non-negative number\n" msgstr " (%s) doit être un nombre positif\n" -#: plugins/check_ping.c:301 +#: plugins/check_ping.c:310 #, c-format msgid " (%s) must be an integer percentage\n" msgstr " (%s) doit être un pourcentage entier\n" -#: plugins/check_ping.c:312 +#: plugins/check_ping.c:321 #, c-format msgid " (%s) must be an integer percentage\n" msgstr " (%s) doit être un pourcentage entier\n" -#: plugins/check_ping.c:323 +#: plugins/check_ping.c:332 #, c-format msgid " (%s) must be a non-negative number\n" msgstr " (%s) doit être un nombre positif\n" -#: plugins/check_ping.c:334 +#: plugins/check_ping.c:343 #, c-format msgid " (%s) must be a non-negative number\n" msgstr " (%s) doit être un nombre positif\n" -#: plugins/check_ping.c:367 +#: plugins/check_ping.c:376 #, c-format msgid "" "%s: Warning threshold must be integer or percentage!\n" "\n" msgstr "%s: Le seuil d'avertissement doit être un entier ou un pourcentage!\n" -#: plugins/check_ping.c:380 +#: plugins/check_ping.c:389 #, c-format msgid " was not set\n" msgstr " n'a pas été indiqué\n" -#: plugins/check_ping.c:384 +#: plugins/check_ping.c:393 #, c-format msgid " was not set\n" msgstr " n'a pas été indiqué\n" -#: plugins/check_ping.c:388 +#: plugins/check_ping.c:397 #, c-format msgid " was not set\n" msgstr " n'a pas été indiqué\n" -#: plugins/check_ping.c:392 +#: plugins/check_ping.c:401 #, c-format msgid " was not set\n" msgstr " n'a pas été indiqué\n" -#: plugins/check_ping.c:396 +#: plugins/check_ping.c:405 #, c-format msgid " (%f) cannot be larger than (%f)\n" msgstr " (%f) ne peut pas être plus large que (%f)\n" -#: plugins/check_ping.c:400 +#: plugins/check_ping.c:409 #, c-format msgid " (%d) cannot be larger than (%d)\n" msgstr " (%d) ne peut pas être plus large que (%d)\n" -#: plugins/check_ping.c:436 +#: plugins/check_ping.c:445 #, c-format msgid "Cannot open stderr for %s\n" msgstr "Impossible d'ouvrir le canal d'erreur standard pour %s\n" -#: plugins/check_ping.c:485 plugins/check_ping.c:487 +#: plugins/check_ping.c:494 plugins/check_ping.c:496 msgid "System call sent warnings to stderr " msgstr "" "Les appel système enverront leurs messages d'avertissement vers le canal " "d'erreur standard" -#: plugins/check_ping.c:514 +#: plugins/check_ping.c:523 #, c-format msgid "CRITICAL - Network Unreachable (%s)" msgstr "CRITIQUE - Le réseau est inaccessible (%s)" -#: plugins/check_ping.c:516 +#: plugins/check_ping.c:525 #, c-format msgid "CRITICAL - Host Unreachable (%s)" msgstr "CRITIQUE - Hôte inaccessible (%s)" -#: plugins/check_ping.c:518 +#: plugins/check_ping.c:527 #, c-format msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)" msgstr "CRITIQUE - Paquet ICMP incorrect: Port inaccessible (%s)" -#: plugins/check_ping.c:520 +#: plugins/check_ping.c:529 #, c-format msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)" msgstr "CRITIQUE - Paquet ICMP incorrect: Protocole inaccessible (%s)" -#: plugins/check_ping.c:522 +#: plugins/check_ping.c:531 #, c-format msgid "CRITICAL - Network Prohibited (%s)" msgstr "CRITIQUE - L'accès au réseau est interdit (%s)" -#: plugins/check_ping.c:524 +#: plugins/check_ping.c:533 #, c-format msgid "CRITICAL - Host Prohibited (%s)" msgstr "CRITIQUE - L'accès a l'hôte est interdit (%s)" -#: plugins/check_ping.c:526 +#: plugins/check_ping.c:535 #, c-format msgid "CRITICAL - Packet Filtered (%s)" msgstr "CRITIQUE - Paquet filtré (%s)" -#: plugins/check_ping.c:528 +#: plugins/check_ping.c:537 #, c-format msgid "CRITICAL - Host not found (%s)" msgstr "CRITIQUE - Hôte non trouvé (%s)" -#: plugins/check_ping.c:530 +#: plugins/check_ping.c:539 #, c-format msgid "CRITICAL - Time to live exceeded (%s)" msgstr "CRITIQUE - La durée de vie du paquet est dépassée (%s)" -#: plugins/check_ping.c:537 +#: plugins/check_ping.c:546 msgid "Unable to realloc warn_text" msgstr "Impossible de réattribuer le texte d'avertissement" -#: plugins/check_ping.c:554 +#: plugins/check_ping.c:563 #, c-format msgid "Use ping to check connection statistics for a remote host." msgstr "" "Utilise ping pour vérifier les statistiques de connections d'un hôte distant." -#: plugins/check_ping.c:565 +#: plugins/check_ping.c:575 msgid "host to ping" msgstr "hôte à tester" -#: plugins/check_ping.c:571 +#: plugins/check_ping.c:581 msgid "number of ICMP ECHO packets to send" msgstr "nombre de paquets ICMP à envoyer" -#: plugins/check_ping.c:572 +#: plugins/check_ping.c:582 #, c-format msgid "(Default: %d)\n" msgstr "(Défaut: %d)\n" -#: plugins/check_ping.c:574 +#: plugins/check_ping.c:584 msgid "show HTML in the plugin output (obsoleted by urlize)" msgstr "" -#: plugins/check_ping.c:578 +#: plugins/check_ping.c:589 msgid "THRESHOLD is ,% where is the round trip average travel" msgstr "" "Le seuil est ,% où est le temps moyen pour l'aller retour (ms)" -#: plugins/check_ping.c:579 +#: plugins/check_ping.c:590 msgid "time (ms) which triggers a WARNING or CRITICAL state, and is the" msgstr "qui déclenche un résultat AVERTISSEMENT ou CRITIQUE, et est le " -#: plugins/check_ping.c:580 +#: plugins/check_ping.c:591 msgid "percentage of packet loss to trigger an alarm state." msgstr "pourcentage de paquets perdus pour déclencher une alarme." -#: plugins/check_ping.c:584 +#: plugins/check_ping.c:594 msgid "" "This plugin uses the ping command to probe the specified host for packet loss" msgstr "" "Ce plugin utilise la commande ping pour vérifier l'hôte spécifié pour les " "pertes de paquets" -#: plugins/check_ping.c:585 +#: plugins/check_ping.c:595 msgid "" "(percentage) and round trip average (milliseconds). It can produce HTML " "output" msgstr "" -#: plugins/check_ping.c:586 +#: plugins/check_ping.c:596 msgid "" "linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in" msgstr "" -#: plugins/check_ping.c:587 +#: plugins/check_ping.c:597 msgid "the contrib area of the downloads section at http://www.nagios.org/" msgstr "" -#: plugins/check_procs.c:155 +#: plugins/check_procs.c:162 #, c-format msgid "CMD: %s\n" msgstr "Commande: %s\n" -#: plugins/check_procs.c:261 +#: plugins/check_procs.c:282 #, c-format msgid "Not parseable: %s" msgstr "Impossible de parcourir les arguments: %s" -#: plugins/check_procs.c:270 +#: plugins/check_procs.c:292 #, c-format msgid "System call sent warnings to stderr\n" msgstr "" "Les alertes du système seront envoyées vers le canal d'erreur standard\n" -#: plugins/check_procs.c:277 +#: plugins/check_procs.c:299 #, c-format msgid "System call returned nonzero status\n" msgstr "L'appel système à retourné un statut non égal à zéro\n" -#: plugins/check_procs.c:282 +#: plugins/check_procs.c:305 #, c-format msgid "Unable to read output\n" msgstr "Impossible de lire les données en entrée\n" -#: plugins/check_procs.c:299 +#: plugins/check_procs.c:322 #, c-format msgid "%d warn out of " msgstr "%d avertissements sur" -#: plugins/check_procs.c:304 +#: plugins/check_procs.c:327 #, c-format msgid "%d crit, %d warn out of " msgstr "%d crit, %d alertes sur " -#: plugins/check_procs.c:310 +#: plugins/check_procs.c:333 #, c-format msgid " with %s" msgstr " avec %s" -#: plugins/check_procs.c:385 +#: plugins/check_procs.c:413 msgid "Critical Process Count must be an integer!" msgstr "Critique Le total des processus doit être un nombre entier!" -#: plugins/check_procs.c:397 +#: plugins/check_procs.c:425 msgid "Warning Process Count must be an integer!" msgstr "Avertissement Le total des processus doit être un nombre entier!" -#: plugins/check_procs.c:405 +#: plugins/check_procs.c:433 msgid "Parent Process ID must be an integer!" msgstr "L'identifiant du processus parent doit être un entier!" -#: plugins/check_procs.c:411 plugins/check_procs.c:513 +#: plugins/check_procs.c:439 plugins/check_procs.c:553 #, c-format msgid "%s%sSTATE = %s" msgstr "%s%sETAT = %s" -#: plugins/check_procs.c:420 -#, c-format -msgid "UID %s was not found" +#: plugins/check_procs.c:448 +#, fuzzy +msgid "UID was not found" msgstr "UID %s n'a pas été trouvé" -#: plugins/check_procs.c:426 -#, c-format -msgid "User name %s was not found" +#: plugins/check_procs.c:454 +#, fuzzy +msgid "User name was not found" msgstr "L'utilisateur %s n'a pas été trouvé" -#: plugins/check_procs.c:441 +#: plugins/check_procs.c:469 #, c-format msgid "%s%scommand name '%s'" msgstr "%s%snom de la commande '%s'" -#: plugins/check_procs.c:460 +#: plugins/check_procs.c:497 msgid "RSS must be an integer!" msgstr "RSS doit être un entier!" -#: plugins/check_procs.c:467 +#: plugins/check_procs.c:504 msgid "VSZ must be an integer!" msgstr "VSZ doit être un entier!" -#: plugins/check_procs.c:475 +#: plugins/check_procs.c:512 msgid "PCPU must be a float!" msgstr "PCPU doit être un nombre en virgule flottante!" -#: plugins/check_procs.c:499 +#: plugins/check_procs.c:536 msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!" msgstr "Metric doit être l'un des PROCS, VSZ, RSS, CPU, ELAPSED!" -#: plugins/check_procs.c:532 +#: plugins/check_procs.c:572 #, c-format msgid "wmax (%d) cannot be greater than cmax (%d)\n" msgstr "wmax (%d) ne peut pas être plus grand que cmax (%d)\n" -#: plugins/check_procs.c:536 +#: plugins/check_procs.c:576 #, c-format msgid "wmin (%d) cannot be less than cmin (%d)\n" msgstr "wmin (%d) ne peut pas être plus petit que cmin (%d)\n" -#: plugins/check_procs.c:673 +#: plugins/check_procs.c:713 msgid "" "Checks all processes and generates WARNING or CRITICAL states if the " "specified" msgstr "" -#: plugins/check_procs.c:674 +#: plugins/check_procs.c:714 msgid "" "metric is outside the required threshold ranges. The metric defaults to " "number" msgstr "" -#: plugins/check_procs.c:675 +#: plugins/check_procs.c:715 msgid "" "of processes. Search filters can be applied to limit the processes to check." msgstr "" -#: plugins/check_procs.c:681 -msgid "Required Arguments:" -msgstr "" - -#: plugins/check_procs.c:683 +#: plugins/check_procs.c:724 msgid "Generate warning state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:685 +#: plugins/check_procs.c:726 msgid "Generate critical state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:687 -msgid "Optional Arguments:" -msgstr "Arguments optionnels:" - -#: plugins/check_procs.c:689 +#: plugins/check_procs.c:728 msgid "Check thresholds against metric. Valid types:" msgstr "" -#: plugins/check_procs.c:690 +#: plugins/check_procs.c:729 msgid "PROCS - number of processes (default)" msgstr "PROCS - nombre de processus (défaut)" -#: plugins/check_procs.c:691 +#: plugins/check_procs.c:730 msgid "VSZ - virtual memory size" msgstr "VSZ - taille mémoire virtuelle" -#: plugins/check_procs.c:692 +#: plugins/check_procs.c:731 msgid "RSS - resident set memory size" msgstr "" -#: plugins/check_procs.c:693 +#: plugins/check_procs.c:732 msgid "CPU - percentage cpu" msgstr "CPU - pourcentage du cpu" -#: plugins/check_procs.c:696 +#: plugins/check_procs.c:735 msgid "ELAPSED - time elapsed in seconds" msgstr "ELAPSED - temps écoulé en secondes" -#: plugins/check_procs.c:701 +#: plugins/check_procs.c:740 msgid "Extra information. Up to 3 verbosity levels" msgstr "informations supplémentaires. Jusqu'à 3 niveaux de verbosité" -#: plugins/check_procs.c:705 +#: plugins/check_procs.c:745 msgid "Only scan for processes that have, in the output of `ps`, one or" msgstr "" -#: plugins/check_procs.c:706 +#: plugins/check_procs.c:746 msgid "more of the status flags you specify (for example R, Z, S, RS," msgstr "" -#: plugins/check_procs.c:707 +#: plugins/check_procs.c:747 msgid "RSZDT, plus others based on the output of your 'ps' command)." msgstr "" -#: plugins/check_procs.c:709 +#: plugins/check_procs.c:749 msgid "Only scan for children of the parent process ID indicated." msgstr "" -#: plugins/check_procs.c:711 +#: plugins/check_procs.c:751 msgid "Only scan for processes with vsz higher than indicated." msgstr "" -#: plugins/check_procs.c:713 +#: plugins/check_procs.c:753 msgid "Only scan for processes with rss higher than indicated." msgstr "" -#: plugins/check_procs.c:715 +#: plugins/check_procs.c:755 msgid "Only scan for processes with pcpu higher than indicated." msgstr "" -#: plugins/check_procs.c:717 +#: plugins/check_procs.c:757 msgid "Only scan for processes with user name or ID indicated." msgstr "" -#: plugins/check_procs.c:719 +#: plugins/check_procs.c:759 msgid "Only scan for processes with args that contain STRING." msgstr "" -#: plugins/check_procs.c:721 +#: plugins/check_procs.c:761 +msgid "Only scan for processes with args that contain the regex STRING." +msgstr "" + +#: plugins/check_procs.c:763 msgid "Only scan for exact matches of COMMAND (without path)." msgstr "" -#: plugins/check_procs.c:723 +#: plugins/check_procs.c:765 #, c-format msgid "" "\n" @@ -3684,7 +3804,7 @@ msgstr "" "est à l'intérieur du seuil\n" "\n" -#: plugins/check_procs.c:728 +#: plugins/check_procs.c:770 #, c-format msgid "" "This plugin checks the number of currently running processes and\n" @@ -3701,31 +3821,36 @@ msgstr "" "état actuel (ex: 'Z'), ou par le nombre de processus en cours d'exécution\n" "\n" -#: plugins/check_procs.c:737 +#: plugins/check_procs.c:785 msgid "Warning if not two processes with command name portsentry." msgstr "" -#: plugins/check_procs.c:738 +#: plugins/check_procs.c:786 msgid "Critical if < 2 or > 1024 processes" msgstr "" -#: plugins/check_procs.c:740 +#: plugins/check_procs.c:788 msgid "Warning alert if > 10 processes with command arguments containing" msgstr "" -#: plugins/check_procs.c:741 +#: plugins/check_procs.c:789 msgid "'/usr/local/bin/perl' and owned by root" msgstr "" -#: plugins/check_procs.c:743 +#: plugins/check_procs.c:791 msgid "Alert if vsz of any processes over 50K or 100K" msgstr "" -#: plugins/check_procs.c:745 +#: plugins/check_procs.c:793 #, c-format msgid "Alert if cpu of any processes over 10%% or 20%%" msgstr "" +#: plugins/check_procs.c:801 +#, fuzzy, c-format +msgid "Usage: " +msgstr "Utilisation:" + #: plugins/check_radius.c:161 msgid "Config file error" msgstr "Erreur dans le fichier de configuration" @@ -3750,138 +3875,135 @@ msgstr "L'authentification à échoué" msgid "Auth OK" msgstr "L'authentification à réussi" -#: plugins/check_radius.c:278 +#: plugins/check_radius.c:284 msgid "Number of retries must be a positive integer" msgstr "Le nombre d'essai doit être un entier positif" -#: plugins/check_radius.c:292 +#: plugins/check_radius.c:298 msgid "User not specified" msgstr "L'utilisateur n'a pas été spécifié" -#: plugins/check_radius.c:294 +#: plugins/check_radius.c:300 msgid "Password not specified" msgstr "Le mot de passe n'a pas été spécifié" -#: plugins/check_radius.c:296 +#: plugins/check_radius.c:302 msgid "Configuration file not specified" msgstr "Le fichier de configuration n'a pas été spécifié" -#: plugins/check_radius.c:314 +#: plugins/check_radius.c:320 msgid "Tests to see if a radius server is accepting connections." msgstr "Teste si un serveur radius accepte les connections." -#: plugins/check_radius.c:325 +#: plugins/check_radius.c:332 msgid "The user to authenticate" msgstr "" -#: plugins/check_radius.c:327 +#: plugins/check_radius.c:334 msgid "Password for autentication (SECURITY RISK)" msgstr "" -#: plugins/check_radius.c:329 +#: plugins/check_radius.c:336 msgid "NAS identifier" msgstr "" -#: plugins/check_radius.c:331 +#: plugins/check_radius.c:338 msgid "Configuration file" msgstr "Fichier de configuration" -#: plugins/check_radius.c:333 +#: plugins/check_radius.c:340 msgid "Response string to expect from the server" msgstr "" -#: plugins/check_radius.c:335 +#: plugins/check_radius.c:342 msgid "Number of times to retry a failed connection" msgstr "" -#: plugins/check_radius.c:339 +#: plugins/check_radius.c:347 msgid "" "This plugin tests a radius server to see if it is accepting connections." msgstr "" "Ce plugin teste un serveur radius afin de vérifier si il accepte les " "connections." -#: plugins/check_radius.c:340 +#: plugins/check_radius.c:348 msgid "" "The server to test must be specified in the invocation, as well as a user" msgstr "" -#: plugins/check_radius.c:341 +#: plugins/check_radius.c:349 msgid "" "name and password. A configuration file may also be present. The format of" msgstr "" -#: plugins/check_radius.c:342 +#: plugins/check_radius.c:350 msgid "" "the configuration file is described in the radiusclient library sources." msgstr "" -#: plugins/check_radius.c:343 +#: plugins/check_radius.c:351 msgid "The password option presents a substantial security issue because the" msgstr "" -#: plugins/check_radius.c:344 -msgid "password can be determined by careful watching of the command line in" +#: plugins/check_radius.c:352 +msgid "" +"password can possibly be determined by careful watching of the command line" msgstr "" -#: plugins/check_radius.c:345 -msgid "a process listing. This risk is exacerbated because nagios will" +#: plugins/check_radius.c:353 +msgid "in a process listing. This risk is exacerbated because nagios will" msgstr "" -#: plugins/check_radius.c:346 -msgid "run the plugin at regular prdictable intervals. Please be sure that" +#: plugins/check_radius.c:354 +msgid "run the plugin at regular predictable intervals. Please be sure that" msgstr "" -#: plugins/check_radius.c:347 -msgid "the password used does not allow access to sensitive system resources," +#: plugins/check_radius.c:355 +msgid "the password used does not allow access to sensitive system resources." msgstr "" -#: plugins/check_radius.c:348 -msgid "otherwise compormise could occur." -msgstr "" - -#: plugins/check_real.c:96 +#: plugins/check_real.c:95 #, c-format msgid "Unable to connect to %s on port %d\n" msgstr "Impossible de se connecter à %s sur le port %d\n" -#: plugins/check_real.c:118 +#: plugins/check_real.c:117 #, c-format msgid "No data received from %s\n" msgstr "Pas de données reçues de %s\n" -#: plugins/check_real.c:123 plugins/check_real.c:196 +#: plugins/check_real.c:122 plugins/check_real.c:195 msgid "Invalid REAL response received from host" msgstr "Réponses REAL invalide reçue de l'hôte" -#: plugins/check_real.c:125 plugins/check_real.c:198 +#: plugins/check_real.c:124 plugins/check_real.c:197 #, c-format msgid "Invalid REAL response received from host on port %d\n" msgstr "Réponses REAL invalide reçue de l'hôte sur le port %d\n" -#: plugins/check_real.c:189 plugins/check_tcp.c:294 +#: plugins/check_real.c:188 plugins/check_tcp.c:295 #, c-format msgid "No data received from host\n" msgstr "Pas de données reçues de l'hôte\n" -#: plugins/check_real.c:252 +#: plugins/check_real.c:251 #, c-format msgid "REAL %s - %d second response time\n" msgstr "REAL %s - %d secondes de temps de réponse\n" -#: plugins/check_real.c:341 plugins/check_smtp.c:581 plugins/check_ups.c:535 +#: plugins/check_real.c:340 plugins/check_smtp.c:582 plugins/check_ups.c:536 msgid "Warning time must be a positive integer" msgstr "Le seuil d'avertissement doit être un entier positif" -#: plugins/check_real.c:350 plugins/check_smtp.c:572 plugins/check_ups.c:526 +#: plugins/check_real.c:349 plugins/check_smtp.c:573 plugins/check_ups.c:527 msgid "Critical time must be a positive integer" msgstr "Le seuil critique doit être un entier positif" -#: plugins/check_real.c:386 +#: plugins/check_real.c:385 msgid "You must provide a server to check" msgstr "Vous devez fournir un serveur à vérifier" -#: plugins/check_real.c:418 +#: plugins/check_real.c:417 msgid "This plugin tests the REAL service on the specified host." msgstr "Ce plugin teste le service REAL sur l'hôte spécifié." @@ -3895,228 +4017,237 @@ msgid "String to expect in first line of server response (default: %s)\n" msgstr "" "Texte attendu dans la première ligne de réponse du serveur (défaut: %s)\n" -#: plugins/check_real.c:440 +#: plugins/check_real.c:441 msgid "This plugin will attempt to open an RTSP connection with the host." msgstr "Ce plugin va essayer d'ouvrir un connexion RTSP avec l'hôte." -#: plugins/check_real.c:441 plugins/check_smtp.c:812 +#: plugins/check_real.c:442 plugins/check_smtp.c:814 msgid "Successul connects return STATE_OK, refusals and timeouts return" msgstr "" -#: plugins/check_real.c:442 -msgid "" -"STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful connects," -msgstr "" - #: plugins/check_real.c:443 msgid "" -"but incorrect reponse messages from the host result in STATE_WARNING return" +"STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful connects," msgstr "" #: plugins/check_real.c:444 +msgid "" +"but incorrect reponse messages from the host result in STATE_WARNING return" +msgstr "" + +#: plugins/check_real.c:445 msgid "values." msgstr "" -#: plugins/check_smtp.c:151 plugins/check_swap.c:268 plugins/check_swap.c:274 +#: plugins/check_smtp.c:150 plugins/check_swap.c:269 plugins/check_swap.c:275 #, c-format msgid "malloc() failed!\n" msgstr "l'allocation mémoire à échoué!\n" -#: plugins/check_smtp.c:155 +#: plugins/check_smtp.c:154 #, c-format msgid "gethostname() failed!\n" msgstr "La commande gethostname() à échoué\n" -#: plugins/check_smtp.c:190 plugins/check_smtp.c:214 +#: plugins/check_smtp.c:189 plugins/check_smtp.c:213 #, c-format msgid "recv() failed\n" msgstr "La commande recv() à échoué\n" -#: plugins/check_smtp.c:201 -#, c-format -msgid "Invalid SMTP response received from host\n" +#: plugins/check_smtp.c:200 +#, fuzzy, c-format +msgid "Invalid SMTP response received from host: %s\n" msgstr "Réponse SMTP invalide reçue de l'hôte\n" -#: plugins/check_smtp.c:203 -#, c-format -msgid "Invalid SMTP response received from host on port %d\n" +#: plugins/check_smtp.c:202 +#, fuzzy, c-format +msgid "Invalid SMTP response received from host on port %d: %s\n" msgstr "Réponse SMTP invalide reçue de l'hôte sur le port %d\n" -#: plugins/check_smtp.c:224 +#: plugins/check_smtp.c:223 #, c-format msgid "WARNING - TLS not supported by server\n" msgstr "AVERTISSEMENT: - TLS n'est pas supporté par ce serveur\n" -#: plugins/check_smtp.c:236 +#: plugins/check_smtp.c:235 #, c-format msgid "Server does not support STARTTLS\n" msgstr "Le serveur ne supporte pas STARTTLS\n" -#: plugins/check_smtp.c:242 +#: plugins/check_smtp.c:241 #, c-format msgid "CRITICAL - Cannot create SSL context.\n" msgstr "CRITIQUE - Impossible de créer le contexte SSL.\n" -#: plugins/check_smtp.c:262 +#: plugins/check_smtp.c:261 msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS." msgstr "" -#: plugins/check_smtp.c:267 +#: plugins/check_smtp.c:266 #, c-format msgid "sent %s" msgstr "envoyé %s" -#: plugins/check_smtp.c:269 +#: plugins/check_smtp.c:268 msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS." msgstr "" -#: plugins/check_smtp.c:281 +#: plugins/check_smtp.c:280 msgid "CRITICAL - Cannot retrieve server certificate." msgstr "CRITIQUE - Impossible d'obtenir le certificat du serveur" -#: plugins/check_smtp.c:317 plugins/check_snmp.c:590 +#: plugins/check_smtp.c:316 plugins/check_snmp.c:590 #, c-format msgid "Could Not Compile Regular Expression" msgstr "Impossible de compiler l'expression rationnelle" -#: plugins/check_smtp.c:326 +#: plugins/check_smtp.c:325 #, c-format msgid "SMTP %s - Invalid response '%s' to command '%s'\n" msgstr "SMTP %s - réponse invalide de '%s' à la commande '%s'\n" -#: plugins/check_smtp.c:330 plugins/check_snmp.c:335 +#: plugins/check_smtp.c:329 plugins/check_snmp.c:335 #, c-format msgid "Execute Error: %s\n" msgstr "Erreur d'exécution: %s\n" -#: plugins/check_smtp.c:344 +#: plugins/check_smtp.c:343 +#, c-format msgid "no authuser specified, " msgstr "Pas d'utilisateur pour l'authentification spécifié, " -#: plugins/check_smtp.c:349 +#: plugins/check_smtp.c:348 +#, c-format msgid "no authpass specified, " msgstr "pas de mot de passe spécifié, " -#: plugins/check_smtp.c:356 plugins/check_smtp.c:377 plugins/check_smtp.c:397 -#: plugins/check_smtp.c:673 +#: plugins/check_smtp.c:355 plugins/check_smtp.c:377 plugins/check_smtp.c:398 +#: plugins/check_smtp.c:674 #, c-format msgid "sent %s\n" msgstr "envoyé %s\n" -#: plugins/check_smtp.c:359 +#: plugins/check_smtp.c:358 +#, c-format msgid "recv() failed after AUTH LOGIN, " msgstr "recv() à échoué après AUTH LOGIN, " -#: plugins/check_smtp.c:364 plugins/check_smtp.c:385 plugins/check_smtp.c:405 -#: plugins/check_smtp.c:684 +#: plugins/check_smtp.c:363 plugins/check_smtp.c:385 plugins/check_smtp.c:406 +#: plugins/check_smtp.c:685 #, c-format msgid "received %s\n" msgstr "reçu %s\n" -#: plugins/check_smtp.c:368 +#: plugins/check_smtp.c:367 +#, c-format msgid "invalid response received after AUTH LOGIN, " msgstr "Réponse invalide reçue après AUTH LOGIN, " #: plugins/check_smtp.c:381 +#, c-format msgid "recv() failed after sending authuser, " msgstr "La commande recv() a échoué après authuser, " #: plugins/check_smtp.c:389 +#, c-format msgid "invalid response received after authuser, " msgstr "Réponse invalide reçue après authuser, " -#: plugins/check_smtp.c:401 +#: plugins/check_smtp.c:402 +#, c-format msgid "recv() failed after sending authpass, " msgstr "la commande recv() à échoué après authpass, " -#: plugins/check_smtp.c:409 +#: plugins/check_smtp.c:410 +#, c-format msgid "invalid response received after authpass, " msgstr "Réponse invalide reçue après authpass, " -#: plugins/check_smtp.c:416 +#: plugins/check_smtp.c:417 +#, c-format msgid "only authtype LOGIN is supported, " msgstr "seul la méthode d'authentification LOGIN est supportée, " -#: plugins/check_smtp.c:440 +#: plugins/check_smtp.c:441 #, c-format msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n" msgstr "SMTP %s - %s%.3f sec. de temps de réponse%s%s|%s\n" -#: plugins/check_smtp.c:548 plugins/check_smtp.c:560 +#: plugins/check_smtp.c:549 plugins/check_smtp.c:561 #, c-format msgid "Could not realloc() units [%d]\n" msgstr "Impossible de réallouer des unités [%d]\n" -#: plugins/check_smtp.c:608 +#: plugins/check_smtp.c:609 msgid "SSL support not available - install OpenSSL and recompile" msgstr "SSL n'est pas disponible - installer OpenSSL et recompilez" -#: plugins/check_smtp.c:679 +#: plugins/check_smtp.c:680 #, c-format msgid "recv() failed after QUIT." msgstr "recv() à échoué après QUIT." -#: plugins/check_smtp.c:681 +#: plugins/check_smtp.c:682 #, c-format msgid "Connection reset by peer." msgstr "" -#: plugins/check_smtp.c:769 +#: plugins/check_smtp.c:770 msgid "This plugin will attempt to open an SMTP connection with the host." msgstr "Ce plugin va essayer d'ouvrir un connexion SMTP avec l'hôte." -#: plugins/check_smtp.c:782 +#: plugins/check_smtp.c:784 #, c-format msgid " String to expect in first line of server response (default: '%s')\n" msgstr "" " Texte attendu dans la première ligne de réponse du serveur (défaut: '%" "s')\n" -#: plugins/check_smtp.c:784 +#: plugins/check_smtp.c:786 msgid "Suppress SMTP command" msgstr "" -#: plugins/check_smtp.c:786 +#: plugins/check_smtp.c:788 msgid "SMTP command (may be used repeatedly)" msgstr "Commande SMTP (peut être utilisé plusieurs fois)" -#: plugins/check_smtp.c:788 +#: plugins/check_smtp.c:790 msgid "Expected response to command (may be used repeatedly)" msgstr "" -#: plugins/check_smtp.c:790 +#: plugins/check_smtp.c:792 msgid "FROM-address to include in MAIL command, required by Exchange 2000" msgstr "" -#: plugins/check_smtp.c:793 plugins/check_tcp.c:636 +#: plugins/check_smtp.c:795 plugins/check_tcp.c:638 msgid "Minimum number of days a certificate has to be valid." msgstr "Nombre de jours minimum pour que le certificat soit valide." -#: plugins/check_smtp.c:795 +#: plugins/check_smtp.c:797 msgid "Use STARTTLS for the connection." msgstr "" -#: plugins/check_smtp.c:799 +#: plugins/check_smtp.c:801 msgid "SMTP AUTH type to check (default none, only LOGIN supported)" msgstr "" -#: plugins/check_smtp.c:801 +#: plugins/check_smtp.c:803 msgid "SMTP AUTH username" msgstr "" -#: plugins/check_smtp.c:803 +#: plugins/check_smtp.c:805 msgid "SMTP AUTH password" msgstr "" -#: plugins/check_smtp.c:813 +#: plugins/check_smtp.c:815 msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful" msgstr "" -#: plugins/check_smtp.c:814 +#: plugins/check_smtp.c:816 msgid "connects, but incorrect reponse messages from the host result in" msgstr "" -#: plugins/check_smtp.c:815 +#: plugins/check_smtp.c:817 msgid "STATE_WARNING return values." msgstr "" @@ -4191,207 +4322,208 @@ msgstr "" "Vérifie l'état des machines distantes et obtient l'information système via " "SNMP" -#: plugins/check_snmp.c:943 +#: plugins/check_snmp.c:944 msgid "Use SNMP GETNEXT instead of SNMP GET" msgstr "Utiliser SNMP GETNEXT au lieu de SNMP GET" -#: plugins/check_snmp.c:945 +#: plugins/check_snmp.c:946 msgid "SNMP protocol version" msgstr "Version du protocole SNMP" -#: plugins/check_snmp.c:947 +#: plugins/check_snmp.c:948 msgid "SNMPv3 securityLevel" msgstr "Niveau de sécurité SNMPv3 (securityLevel)" -#: plugins/check_snmp.c:949 +#: plugins/check_snmp.c:950 msgid "SNMPv3 auth proto" msgstr "Protocole d'authentification SNMPv3" -#: plugins/check_snmp.c:953 +#: plugins/check_snmp.c:954 msgid "Optional community string for SNMP communication" msgstr "Communauté optionnelle pour la communication SNMP" -#: plugins/check_snmp.c:954 +#: plugins/check_snmp.c:955 msgid "default is" msgstr "défaut:" -#: plugins/check_snmp.c:956 +#: plugins/check_snmp.c:957 msgid "SNMPv3 username" msgstr "Nom d'utilisateur SNMPv3" -#: plugins/check_snmp.c:958 +#: plugins/check_snmp.c:959 msgid "SNMPv3 authentication password" msgstr "Mot de passe d'authentification SNMPv3" -#: plugins/check_snmp.c:960 +#: plugins/check_snmp.c:961 msgid "SNMPv3 privacy password" msgstr "Mot de passe de confidentialité SNMPv3" -#: plugins/check_snmp.c:964 +#: plugins/check_snmp.c:965 msgid "Object identifier(s) or SNMP variables whose value you wish to query" msgstr "" -#: plugins/check_snmp.c:966 +#: plugins/check_snmp.c:967 msgid "" "List of MIBS to be loaded (default = none if using numeric oids or 'ALL'" msgstr "" -#: plugins/check_snmp.c:967 +#: plugins/check_snmp.c:968 msgid "for symbolic oids.)" msgstr "" -#: plugins/check_snmp.c:969 +#: plugins/check_snmp.c:970 #, c-format msgid " Delimiter to use when parsing returned data. Default is \"%s\"" msgstr "" -#: plugins/check_snmp.c:970 +#: plugins/check_snmp.c:971 msgid "Any data on the right hand side of the delimiter is considered" msgstr "" -#: plugins/check_snmp.c:971 +#: plugins/check_snmp.c:972 msgid "to be the data that should be used in the evaluation." msgstr "" -#: plugins/check_snmp.c:975 +#: plugins/check_snmp.c:976 msgid "Range(s) which will not result in a WARNING status" msgstr "" -#: plugins/check_snmp.c:977 +#: plugins/check_snmp.c:978 msgid "Range(s) which will not result in a CRITICAL status" msgstr "" -#: plugins/check_snmp.c:981 +#: plugins/check_snmp.c:982 msgid "Return OK state (for that OID) if STRING is an exact match" msgstr "" -#: plugins/check_snmp.c:983 +#: plugins/check_snmp.c:984 msgid "" "Return OK state (for that OID) if extended regular expression REGEX matches" msgstr "" -#: plugins/check_snmp.c:985 +#: plugins/check_snmp.c:986 msgid "" "Return OK state (for that OID) if case-insensitive extended REGEX matches" msgstr "" -#: plugins/check_snmp.c:987 +#: plugins/check_snmp.c:988 msgid "Prefix label for output from plugin (default -s 'SNMP')" msgstr "" -#: plugins/check_snmp.c:991 +#: plugins/check_snmp.c:992 msgid "Units label(s) for output data (e.g., 'sec.')." msgstr "" -#: plugins/check_snmp.c:993 +#: plugins/check_snmp.c:994 msgid "Separates output on multiple OID requests" msgstr "" -#: plugins/check_snmp.c:999 +#: plugins/check_snmp.c:1001 msgid "" "This plugin uses the 'snmpget' command included with the NET-SNMP package." msgstr "" -#: plugins/check_snmp.c:1000 +#: plugins/check_snmp.c:1002 msgid "" "if you don't have the package installed, you will need to download it from" msgstr "" "Si vous n'avez pas le programme installé, vous devrez le télécharger depuis" -#: plugins/check_snmp.c:1001 +#: plugins/check_snmp.c:1003 msgid "http://net-snmp.sourceforge.net before you can use this plugin." msgstr "http://net-snmp.sourceforge.net avant de pouvoir utiliser ce plugin." -#: plugins/check_snmp.c:1003 +#: plugins/check_snmp.c:1007 msgid "" "- Multiple OIDs may be indicated by a comma- or space-delimited list (lists " "with" msgstr "" "- Des OIDs multiples peuvent être indiquées par une virgule ou par des listes" -#: plugins/check_snmp.c:1004 -msgid " internal spaces must be quoted) [max 8 OIDs]" +#: plugins/check_snmp.c:1008 +msgid "internal spaces must be quoted) [max 8 OIDs]" msgstr "" -#: plugins/check_snmp.c:1006 +#: plugins/check_snmp.c:1010 msgid "- Ranges are inclusive and are indicated with colons. When specified as" msgstr "" -#: plugins/check_snmp.c:1007 +#: plugins/check_snmp.c:1011 +#, fuzzy msgid "" -" 'min:max' a STATE_OK will be returned if the result is within the indicated" +"'min:max' a STATE_OK will be returned if the result is within the indicated" msgstr "" " 'max:min' un résultat STATE_OK sera retourné si le résultat est dans " "l'écart spécifié." -#: plugins/check_snmp.c:1008 -msgid " range or is equal to the upper or lower bound. A non-OK state will be" +#: plugins/check_snmp.c:1012 +msgid "range or is equal to the upper or lower bound. A non-OK state will be" msgstr "" -#: plugins/check_snmp.c:1009 -msgid " returned if the result is outside the specified range." +#: plugins/check_snmp.c:1013 +msgid "returned if the result is outside the specified range." msgstr "" -#: plugins/check_snmp.c:1011 +#: plugins/check_snmp.c:1015 msgid "" "- If specified in the order 'max:min' a non-OK state will be returned if the" msgstr "" "- Si l'écart est indiqué comme 'max:min' un résultat autre que STATE_OK sera " "retourné si le" -#: plugins/check_snmp.c:1012 -msgid " result is within the (inclusive) range." +#: plugins/check_snmp.c:1016 +msgid "result is within the (inclusive) range." msgstr "" -#: plugins/check_snmp.c:1014 +#: plugins/check_snmp.c:1018 msgid "" "- Upper or lower bounds may be omitted to skip checking the respective limit." msgstr "" -#: plugins/check_snmp.c:1015 +#: plugins/check_snmp.c:1019 msgid "- Bare integers are interpreted as upper limits." msgstr "" -#: plugins/check_snmp.c:1016 +#: plugins/check_snmp.c:1020 msgid "" "- When checking multiple OIDs, separate ranges by commas like '-w " "1:10,1:,:20'" msgstr "" -#: plugins/check_snmp.c:1017 +#: plugins/check_snmp.c:1021 msgid "- Note that only one string and one regex may be checked at present" msgstr "" -#: plugins/check_snmp.c:1018 +#: plugins/check_snmp.c:1022 msgid "" "- All evaluation methods other than PR, STR, and SUBSTR expect that the value" msgstr "" -#: plugins/check_snmp.c:1019 -msgid " returned from the SNMP query is an unsigned integer." +#: plugins/check_snmp.c:1023 +msgid "returned from the SNMP query is an unsigned integer." msgstr "" -#: plugins/check_ssh.c:170 +#: plugins/check_ssh.c:169 msgid "Port number must be a positive integer" msgstr "Le numéro du port doit être un nombre entier positif" -#: plugins/check_ssh.c:235 +#: plugins/check_ssh.c:234 #, c-format msgid "Server answer: %s" msgstr "Réponse du serveur: %s" -#: plugins/check_ssh.c:254 +#: plugins/check_ssh.c:253 #, c-format msgid "SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n" msgstr "" "SSH AVERTISSEMENT - %s (protocole %s) différence de version, attendu'%s'\n" -#: plugins/check_ssh.c:261 +#: plugins/check_ssh.c:260 #, c-format msgid "SSH OK - %s (protocol %s)\n" msgstr "SSH OK - %s (protocole %s)\n" -#: plugins/check_ssh.c:281 +#: plugins/check_ssh.c:280 msgid "Try to connect to an SSH server at specified server and port" msgstr "Essaye de se connecter à un serveur SSH précisé à un port précis" @@ -4402,152 +4534,153 @@ msgstr "" "AVERTISSEMENT si la chaîne ne correspond pas à la version précisée (ex: " "OpenSSH_3.9p1)" -#: plugins/check_swap.c:172 +#: plugins/check_swap.c:173 #, c-format msgid "Command: %s\n" msgstr "Commande: %s\n" -#: plugins/check_swap.c:174 +#: plugins/check_swap.c:175 #, c-format msgid "Format: %s\n" msgstr "Format: %s\n" -#: plugins/check_swap.c:210 +#: plugins/check_swap.c:211 #, c-format msgid "total=%.0f, used=%.0f, free=%.0f\n" msgstr "total=%.0f, utilisé=%.0f, libre=%.0ff\n" -#: plugins/check_swap.c:224 +#: plugins/check_swap.c:225 #, c-format msgid "total=%.0f, free=%.0f\n" msgstr "total=%.0f, libre=%.0f\n" -#: plugins/check_swap.c:256 +#: plugins/check_swap.c:257 msgid "Error getting swap devices\n" msgstr "" -#: plugins/check_swap.c:259 +#: plugins/check_swap.c:260 msgid "SWAP OK: No swap devices defined\n" msgstr "SWAP OK: Pas de périphériques swap définis\n" -#: plugins/check_swap.c:280 plugins/check_swap.c:322 +#: plugins/check_swap.c:281 plugins/check_swap.c:323 msgid "swapctl failed: " msgstr "swapctl à échoué:" -#: plugins/check_swap.c:281 plugins/check_swap.c:323 +#: plugins/check_swap.c:282 plugins/check_swap.c:324 msgid "Error in swapctl call\n" msgstr "" -#: plugins/check_swap.c:360 +#: plugins/check_swap.c:361 #, c-format msgid "SWAP %s - %d%% free (%d MB out of %d MB) %s|" msgstr "SWAP %s - %d%% libre (%d MB sur un total de %d MB) %s|" -#: plugins/check_swap.c:438 +#: plugins/check_swap.c:439 msgid "Warning threshold must be integer or percentage!" msgstr "Le seuil d'avertissement doit être un entier ou un pourcentage!" -#: plugins/check_swap.c:456 +#: plugins/check_swap.c:457 msgid "Critical threshold must be integer or percentage!" msgstr "Le seuil critique doit être un entier ou un pourcentage!" -#: plugins/check_swap.c:510 +#: plugins/check_swap.c:511 msgid "Warning percentage should be more than critical percentage" msgstr "" "Le pourcentage d'avertissement doit être plus important que le pourcentage " "critique" -#: plugins/check_swap.c:514 +#: plugins/check_swap.c:515 msgid "Warning free space should be more than critical free space" msgstr "" "Le seuil d'avertissement pour la place libre doit être plus grand que le " "seuil critique" -#: plugins/check_swap.c:528 +#: plugins/check_swap.c:529 msgid "Check swap space on local machine." msgstr "Vérifie l'espace swap sur la machine locale." -#: plugins/check_swap.c:537 +#: plugins/check_swap.c:539 msgid "" "Exit with WARNING status if less than INTEGER bytes of swap space are free" msgstr "" "Sortir avec un résultat AVERTISSEMENT si moins de X octets de mémoire " "virtuelle sont libres" -#: plugins/check_swap.c:539 +#: plugins/check_swap.c:541 msgid "Exit with WARNING status if less than PERCENT of swap space is free" msgstr "" "Sortir avec un résultat AVERTISSEMENT si moins de X pour cent de mémoire " "virtuelle est libre" -#: plugins/check_swap.c:541 +#: plugins/check_swap.c:543 msgid "" "Exit with CRITICAL status if less than INTEGER bytes of swap space are free" msgstr "" "Sortir avec un résultat CRITIQUE si moins de X octets de mémoire virtuelle " "sont libres" -#: plugins/check_swap.c:543 +#: plugins/check_swap.c:545 msgid "Exit with CRITCAL status if less than PERCENT of swap space is free" msgstr "" "Sortir avec un résultat CRITIQUE si moins de X pour cent de mémoire " "virtuelle est libre" -#: plugins/check_swap.c:545 +#: plugins/check_swap.c:547 msgid "Conduct comparisons for all swap partitions, one by one" msgstr "Vérifier chacune des partitions de mémoire virtuelle séparément" -#: plugins/check_swap.c:549 -msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s.\n" +#: plugins/check_swap.c:552 +#, fuzzy +msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s." msgstr "" "Sur AIX, si -a est spécifié, le plugin utilise lsps -a, au sinon il utilise " "lsps -s.\n" -#: plugins/check_tcp.c:202 +#: plugins/check_tcp.c:200 msgid "CRITICAL - Generic check_tcp called with unknown service\n" msgstr "" "CRITIQUE -check_tcp version générique utilisé avec un service inconnu\n" -#: plugins/check_tcp.c:223 +#: plugins/check_tcp.c:224 msgid "With UDP checks, a send/expect string must be specified." msgstr "" "Avec la surveillance UDP, une chaîne d'envoi et un chaîne de réponse doit " "être spécifiée." -#: plugins/check_tcp.c:242 +#: plugins/check_tcp.c:243 #, c-format msgid "CRITICAL - Cannot retrieve server certificate.\n" msgstr "CRITIQUE - Impossible d'obtenir le certificat du serveur.\n" -#: plugins/check_tcp.c:422 +#: plugins/check_tcp.c:423 msgid "No arguments found" msgstr "Pas de paramètres" -#: plugins/check_tcp.c:523 +#: plugins/check_tcp.c:524 msgid "Maxbytes must be a positive integer" msgstr "Maxbytes doit être un entier positif" -#: plugins/check_tcp.c:541 +#: plugins/check_tcp.c:542 msgid "Refuse must be one of ok, warn, crit" msgstr "Refuse doit être parmis ok, warn, crit" -#: plugins/check_tcp.c:551 +#: plugins/check_tcp.c:552 msgid "Mismatch must be one of ok, warn, crit" msgstr "Mismatch doit être parmis ok, warn, crit" -#: plugins/check_tcp.c:557 +#: plugins/check_tcp.c:558 msgid "Delay must be a positive integer" msgstr "Delay doit être un entier positif" -#: plugins/check_tcp.c:585 +#: plugins/check_tcp.c:586 msgid "You must provide a server address" msgstr "Vous devez fournir une adresse serveur" -#: plugins/check_tcp.c:587 +#: plugins/check_tcp.c:588 msgid "Invalid hostname, address or socket" msgstr "Adresse/Nom/Socket invalide" -#: plugins/check_tcp.c:601 +#: plugins/check_tcp.c:602 #, c-format msgid "" "This plugin tests %s connections with the specified host (or unix socket).\n" @@ -4556,7 +4689,7 @@ msgstr "" "Ce plugin teste %s connections avec l'hôte spécifié (ou socket unix).\n" "\n" -#: plugins/check_tcp.c:613 +#: plugins/check_tcp.c:615 msgid "" "Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or " "quit option" @@ -4564,55 +4697,55 @@ msgstr "" "Permet d'utiliser \\n, \\r, \\t ou \\ dans la chaîne de caractères send ou " "quit. Doit être placé avant ces dernières." -#: plugins/check_tcp.c:614 +#: plugins/check_tcp.c:616 msgid "Default: nothing added to send, \\r\\n added to end of quit" msgstr "" "Par défaut: Rien n'est ajouté à send, \\r\\n est ajouté à la fin de quit" -#: plugins/check_tcp.c:616 +#: plugins/check_tcp.c:618 msgid "String to send to the server" msgstr "Chaîne de caractères à envoyer au serveur" -#: plugins/check_tcp.c:618 +#: plugins/check_tcp.c:620 msgid "String to expect in server response" msgstr "Chaîne de caractères à attendre en réponse" -#: plugins/check_tcp.c:618 +#: plugins/check_tcp.c:620 msgid "(may be repeated)" msgstr "(peut être utilisé plusieurs fois)" -#: plugins/check_tcp.c:620 +#: plugins/check_tcp.c:622 msgid "All expect strings need to occur in server response. Default is any" msgstr "" "Toutes les chaînes attendus (expect) doivent être repérés dans la réponse. " "Par défaut, n'importe laquelle suffit." -#: plugins/check_tcp.c:622 +#: plugins/check_tcp.c:624 msgid "String to send server to initiate a clean close of the connection" msgstr "Chaîne de caractères à envoyer pour fermer gracieusement la connection" -#: plugins/check_tcp.c:624 +#: plugins/check_tcp.c:626 msgid "Accept tcp refusals with states ok, warn, crit (default: crit)" msgstr "" -#: plugins/check_tcp.c:626 +#: plugins/check_tcp.c:628 msgid "" "Accept expected string mismatches with states ok, warn, crit (default: warn)" msgstr "" -#: plugins/check_tcp.c:628 +#: plugins/check_tcp.c:630 msgid "Hide output from TCP socket" msgstr "Cacher la réponse provenant du socket TCP" -#: plugins/check_tcp.c:630 +#: plugins/check_tcp.c:632 msgid "Close connection once more than this number of bytes are received" msgstr "" -#: plugins/check_tcp.c:632 +#: plugins/check_tcp.c:634 msgid "Seconds to wait between sending string and polling for response" msgstr "" -#: plugins/check_tcp.c:638 +#: plugins/check_tcp.c:640 msgid "Use SSL for the connection." msgstr "" @@ -4655,134 +4788,137 @@ msgstr "Les seuils critiques doivent être un entier positif" msgid "This plugin will check the time on the specified host." msgstr "Ce plugin va vérifier l'heure sur l'hôte spécifié." -#: plugins/check_time.c:354 +#: plugins/check_time.c:355 msgid "Use UDP to connect, not TCP" msgstr "" -#: plugins/check_time.c:356 +#: plugins/check_time.c:357 msgid "Time difference (sec.) necessary to result in a warning status" msgstr "" -#: plugins/check_time.c:358 +#: plugins/check_time.c:359 msgid "Time difference (sec.) necessary to result in a critical status" msgstr "" -#: plugins/check_time.c:360 +#: plugins/check_time.c:361 msgid "Response time (sec.) necessary to result in warning status" msgstr "" -#: plugins/check_time.c:362 +#: plugins/check_time.c:363 msgid "Response time (sec.) necessary to result in critical status" msgstr "" -#: plugins/check_ups.c:147 +#: plugins/check_ups.c:148 +#, c-format msgid "On Battery, Low Battery" msgstr "Sur Batterie, Batterie faible" -#: plugins/check_ups.c:152 +#: plugins/check_ups.c:153 msgid "Online" msgstr "En marche" -#: plugins/check_ups.c:155 +#: plugins/check_ups.c:156 msgid "On Battery" msgstr "Sur Batterie" -#: plugins/check_ups.c:159 +#: plugins/check_ups.c:160 msgid ", Low Battery" msgstr ", Batterie faible" -#: plugins/check_ups.c:163 +#: plugins/check_ups.c:164 msgid ", Calibrating" msgstr ", Calibration" -#: plugins/check_ups.c:166 +#: plugins/check_ups.c:167 msgid ", Replace Battery" msgstr ", Remplacer la batterie" -#: plugins/check_ups.c:170 +#: plugins/check_ups.c:171 msgid ", On Bypass" msgstr ", Sur Secteur" -#: plugins/check_ups.c:173 +#: plugins/check_ups.c:174 msgid ", Overload" msgstr ", Surcharge" -#: plugins/check_ups.c:176 +#: plugins/check_ups.c:177 msgid ", Trimming" msgstr ", En Test" -#: plugins/check_ups.c:179 +#: plugins/check_ups.c:180 msgid ", Boosting" msgstr "" -#: plugins/check_ups.c:182 +#: plugins/check_ups.c:183 msgid ", Charging" msgstr ", En charge" -#: plugins/check_ups.c:185 +#: plugins/check_ups.c:186 msgid ", Discharging" msgstr ", Déchargement" -#: plugins/check_ups.c:188 +#: plugins/check_ups.c:189 msgid ", Unknown" msgstr ", Inconnu" -#: plugins/check_ups.c:327 +#: plugins/check_ups.c:328 +#, c-format msgid "UPS does not support any available options\n" msgstr "L'UPS ne supporte aucune des options disponibles\n" -#: plugins/check_ups.c:351 plugins/check_ups.c:411 +#: plugins/check_ups.c:352 plugins/check_ups.c:412 msgid "Invalid response received from host" msgstr "Réponse invalide reçue de l'hôte" -#: plugins/check_ups.c:419 +#: plugins/check_ups.c:420 #, c-format msgid "CRITICAL - no such ups '%s' on that host\n" msgstr "CRITIQUE - pas d'ups '%s' sur cet hôte\n" -#: plugins/check_ups.c:429 +#: plugins/check_ups.c:430 msgid "CRITICAL - UPS data is stale" msgstr "CRITIQUE - les données de l'ups ne sont plus valables" -#: plugins/check_ups.c:434 +#: plugins/check_ups.c:435 #, c-format msgid "Unknown error: %s\n" msgstr "Erreur inconnue: %s\n" -#: plugins/check_ups.c:441 +#: plugins/check_ups.c:442 msgid "Error: unable to parse variable" msgstr "Erreur: impossible de lire la variable" -#: plugins/check_ups.c:548 +#: plugins/check_ups.c:549 msgid "Unrecognized UPS variable" msgstr "Variable d'UPS non reconnue" -#: plugins/check_ups.c:586 +#: plugins/check_ups.c:587 msgid "Error : no ups indicated" msgstr "Erreur: pas d'ups indiqué" -#: plugins/check_ups.c:606 +#: plugins/check_ups.c:607 +#, fuzzy msgid "" -"This plugin tests the UPS service on the specified host.Network UPS Tools " +"This plugin tests the UPS service on the specified host. Network UPS Tools" msgstr "" "Ce plugin teste le service UPS sur l'hôte spécifié en utilisant Network UPS " "Tools " -#: plugins/check_ups.c:607 +#: plugins/check_ups.c:608 msgid "from www.networkupstools.org must be running for thisplugin to work." msgstr "" "de www.networkupstools.org doit fonctionner sur l'hôte pour que ce plugin " "fonctionne." -#: plugins/check_ups.c:618 +#: plugins/check_ups.c:620 msgid "Name of UPS" msgstr "" -#: plugins/check_ups.c:620 +#: plugins/check_ups.c:622 msgid "Output of temperatures in Celsius" msgstr "Affichage des températures en Celsius" -#: plugins/check_ups.c:622 +#: plugins/check_ups.c:624 msgid "Valid values for STRING are" msgstr "Les variables valides pour STRING sont" @@ -4811,146 +4947,148 @@ msgstr "" msgid "state." msgstr "" -#: plugins/check_ups.c:641 +#: plugins/check_ups.c:643 msgid "" -"You may also specify a variable to check [such as temperature, utility " +"You may also specify a variable to check (such as temperature, utility " "voltage," msgstr "" -#: plugins/check_ups.c:642 -msgid "" -"battery load, etc.] as well as warning and critical thresholds for the " -"value of" -msgstr "" - -#: plugins/check_ups.c:643 -msgid "" -"that variable. If the remote host has multiple UPS that are being monitored " -"you" -msgstr "" - #: plugins/check_ups.c:644 -msgid "will have to use the [ups] option to specify which UPS to check." +msgid "" +"battery load, etc.) as well as warning and critical thresholds for the value" +msgstr "" + +#: plugins/check_ups.c:645 +msgid "" +"of that variable. If the remote host has multiple UPS that are being " +"monitored" msgstr "" #: plugins/check_ups.c:646 -msgid "" -"This plugin requires that the UPSD daemon distributed with Russel Kroll's" -msgstr "" - -#: plugins/check_ups.c:647 -msgid "" -"Smart UPS Tools be installed on the remote host. If you do not have the" +msgid "you will have to use the --ups option to specify which UPS to check." msgstr "" #: plugins/check_ups.c:648 msgid "" -"package installed on your system, you can download it from http://www." -"networkupstools.org" +"This plugin requires that the UPSD daemon distributed with Russel Kroll's" msgstr "" -#: plugins/check_users.c:94 +#: plugins/check_ups.c:649 +msgid "Smart UPS Tools be installed on the remote host. If you do not have the" +msgstr "" + +#: plugins/check_ups.c:650 +#, fuzzy +msgid "package installed on your system, you can download it from" +msgstr "" +"Si vous n'avez pas le programme installé, vous devrez le télécharger depuis" + +#: plugins/check_ups.c:651 +msgid "http://www.networkupstools.org" +msgstr "" + +#: plugins/check_users.c:96 #, c-format msgid "# users=%d" msgstr "# utilisateurs=%d" -#: plugins/check_users.c:117 +#: plugins/check_users.c:119 msgid "Unable to read output" msgstr "Impossible de lire les données en entrée" -#: plugins/check_users.c:124 +#: plugins/check_users.c:126 #, c-format msgid "USERS %s - %d users currently logged in |%s\n" msgstr "UTILISATEURS %s - %d utilisateurs actuellement connectés sur |%s\n" -#: plugins/check_users.c:209 +#: plugins/check_users.c:211 msgid "This plugin checks the number of users currently logged in on the local" msgstr "" "Ce plugin vérifie le nombre d'utilisateurs actuellement connecté sur le " "système local" -#: plugins/check_users.c:210 +#: plugins/check_users.c:212 msgid "" "system and generates an error if the number exceeds the thresholds specified." msgstr "et génère une erreur si le nombre excède le seuil spécifié." -#: plugins/check_users.c:219 +#: plugins/check_users.c:222 msgid "Set WARNING status if more than INTEGER users are logged in" msgstr "" "Sortir avec un résultat AVERTISSEMENT si plus de INTEGER utilisateurs sont " "connectés" -#: plugins/check_users.c:221 +#: plugins/check_users.c:224 msgid "Set CRITICAL status if more than INTEGER users are logged in" msgstr "" "Sortir avec un résultat CRITIQUE si plus de INTEGER utilisateurs sont " "connectés" -#: plugins/check_ide_smart.c:231 +#: plugins/check_ide_smart.c:232 #, c-format msgid "CRITICAL - Couldn't open device %s: %s\n" msgstr "Critique - Impossible d'ouvrir le périphérique %s: %s\n" -#: plugins/check_ide_smart.c:236 +#: plugins/check_ide_smart.c:237 #, c-format msgid "CRITICAL - SMART_CMD_ENABLE\n" msgstr "CRITIQUE - SMART_CMD_ENABLE\n" -#: plugins/check_ide_smart.c:297 +#: plugins/check_ide_smart.c:298 #, c-format msgid "CRITICAL - SMART_READ_VALUES: %s\n" msgstr "CRITIQUE - SMART_READ_VALUES: %s\n" -#: plugins/check_ide_smart.c:366 +#: plugins/check_ide_smart.c:367 #, c-format msgid "CRITICAL - %d Harddrive PreFailure%cDetected! %d/%d tests failed.\n" msgstr "" "CRITIQUE - %d État de pré-panne %c Détecté! %d/%d les tests on échoués.\n" -#: plugins/check_ide_smart.c:374 +#: plugins/check_ide_smart.c:375 #, c-format msgid "WARNING - %d Harddrive Advisor%s Detected. %d/%d tests failed.\n" msgstr "" "AVERTISSEMENT - %d État de pré-panne %s Détecté! %d/%d les tests on " "échoués.\n" -#: plugins/check_ide_smart.c:382 +#: plugins/check_ide_smart.c:383 #, c-format msgid "OK - Operational (%d/%d tests passed)\n" msgstr "OK - En fonctionnement (%d/%d les tests on été réussi)\n" -#: plugins/check_ide_smart.c:386 +#: plugins/check_ide_smart.c:387 #, c-format msgid "ERROR - Status '%d' unkown. %d/%d tests passed\n" msgstr "ERREUR - État '%d' inconnu. %d/%d les tests on réussi\n" -#: plugins/check_ide_smart.c:419 +#: plugins/check_ide_smart.c:420 #, c-format msgid "OffLineStatus=%d {%s}, AutoOffLine=%s, OffLineTimeout=%d minutes\n" msgstr "" "Etat Hors Ligne=%d {%s}, Hors Ligne Auto=%s, Temps avant arrêt=%d minutes\n" -#: plugins/check_ide_smart.c:425 +#: plugins/check_ide_smart.c:426 #, c-format msgid "OffLineCapability=%d {%s %s %s}\n" msgstr "Capacité Hors Ligne=%d {%s %s %s}\n" -#: plugins/check_ide_smart.c:431 +#: plugins/check_ide_smart.c:432 #, c-format msgid "SmartRevision=%d, CheckSum=%d, SmartCapability=%d {%s %s}\n" msgstr "Révision Smart=%d, Somme de contrôle=%d, Capacité Smart=%d {%s %s}\n" -#: plugins/check_ide_smart.c:452 +#: plugins/check_ide_smart.c:453 #, c-format msgid "CRITICAL - %s: %s\n" msgstr "CRITIQUE - %s: %s\n" -#: plugins/check_ide_smart.c:471 +#: plugins/check_ide_smart.c:472 #, c-format msgid "CRITICAL - SMART_READ_THRESHOLDS: %s\n" msgstr "CRITIQUE - SMART_READ_THRESHOLDS: %s\n" -#: plugins/check_ide_smart.c:488 +#: plugins/check_ide_smart.c:489 #, c-format msgid "" "This plugin checks a local hard drive with the (Linux specific) SMART " @@ -4959,41 +5097,41 @@ msgstr "" "Ce plugin vérifie un disque dur local à l'aide de l'interface SMART (pour " "Linux) [http://smartlinux.sourceforge.net/smart/index.php]." -#: plugins/check_ide_smart.c:497 +#: plugins/check_ide_smart.c:499 msgid "Select device DEVICE" msgstr "" -#: plugins/check_ide_smart.c:498 +#: plugins/check_ide_smart.c:500 msgid "" "Note: if the device is selected with this option, _no_ other options are " "accepted" msgstr "" -#: plugins/check_ide_smart.c:500 +#: plugins/check_ide_smart.c:502 msgid "Perform immediately offline tests" msgstr "" -#: plugins/check_ide_smart.c:502 +#: plugins/check_ide_smart.c:504 msgid "Returns the number of failed tests" msgstr "" -#: plugins/check_ide_smart.c:504 +#: plugins/check_ide_smart.c:506 msgid "Turn on automatic offline tests" msgstr "" -#: plugins/check_ide_smart.c:506 +#: plugins/check_ide_smart.c:508 msgid "Turn off automatic offline tests" msgstr "" -#: plugins/check_ide_smart.c:508 +#: plugins/check_ide_smart.c:510 msgid "Output suitable for Nagios" msgstr "" -#: plugins/negate.c:132 +#: plugins/negate.c:98 msgid "No data returned from command\n" msgstr "Pas de données reçues de la commande\n" -#: plugins/negate.c:209 +#: plugins/negate.c:168 msgid "" "Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-" "3)." @@ -5001,7 +5139,7 @@ msgstr "" "Ok doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou un " "nombre entier (0-3)." -#: plugins/negate.c:215 +#: plugins/negate.c:174 msgid "" "Warning must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " "integer (0-3)." @@ -5009,7 +5147,7 @@ msgstr "" "Warning doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou " "un nombre entier (0-3)." -#: plugins/negate.c:220 +#: plugins/negate.c:179 msgid "" "Critical must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " "integer (0-3)." @@ -5017,7 +5155,7 @@ msgstr "" "Critical doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou " "un nombre entier (0-3)." -#: plugins/negate.c:225 +#: plugins/negate.c:184 msgid "" "Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " "integer (0-3)." @@ -5025,29 +5163,29 @@ msgstr "" "Unknown doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou " "un nombre entier (0-3)." -#: plugins/negate.c:262 +#: plugins/negate.c:211 msgid "Require path to command" msgstr "Chemin vers la commande requis" -#: plugins/negate.c:298 +#: plugins/negate.c:240 msgid "" "Negates the status of a plugin (returns OK for CRITICAL and vice-versa)." msgstr "" "Inverse le statut d'un plugin (retourne OK pour CRITIQUE et vice-versa)." -#: plugins/negate.c:299 +#: plugins/negate.c:241 msgid "Additional switches can be used to control which state becomes what." msgstr "" "Des options additionnelles peuvent être utilisées pour contrôler quel état " "devient quoi." -#: plugins/negate.c:308 +#: plugins/negate.c:250 msgid "Keep timeout longer than the plugin timeout to retain CRITICAL status." msgstr "" "Utilisez un délai de réponse plus long que celui du plugin afin de conserver " "les résultats CRITIQUE" -#: plugins/negate.c:314 +#: plugins/negate.c:256 #, c-format msgid "" " STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n" @@ -5055,114 +5193,120 @@ msgstr "" " STATUS peut être 'OK', 'WARNING', 'CRITICAL' ou 'UNKNOWN' sans les " "simple\n" -#: plugins/negate.c:315 +#: plugins/negate.c:257 #, c-format msgid "" " quotes. Numeric values are accepted. If nothing is specified, permutes\n" msgstr " quotes. Les valeurs numériques sont acceptées. Si rien n'est\n" -#: plugins/negate.c:316 +#: plugins/negate.c:258 #, c-format msgid " OK and CRITICAL.\n" msgstr " spécifié, inverse OK et CRITIQUE.\n" -#: plugins/negate.c:321 +#: plugins/negate.c:260 +#, c-format +msgid "" +" Substitute output text as well. Will only substitute text in CAPITALS\n" +msgstr "" + +#: plugins/negate.c:265 msgid "Run check_ping and invert result. Must use full path to plugin" msgstr "" "Execute check_ping et inverse le résultat. Le chemin complet du plug-in doit " "être spécifié" -#: plugins/negate.c:323 +#: plugins/negate.c:267 msgid "This will return OK instead of WARNING and UNKNOWN instead of CRITICAL" msgstr "" "Ceci retournera OK au lieu de AVERTISSEMENT et INCONNU au lieu de CRITIQUE" -#: plugins/negate.c:326 +#: plugins/negate.c:270 msgid "" "This plugin is a wrapper to take the output of another plugin and invert it." msgstr "" "Ce plugin est un adaptateur qui prends l'état d'un autre plug-in et " "l'inverse." -#: plugins/negate.c:327 +#: plugins/negate.c:271 msgid "The full path of the plugin must be provided." msgstr "Le chemin complet du plugin doit être spécifié." -#: plugins/negate.c:328 +#: plugins/negate.c:272 msgid "If the wrapped plugin returns OK, the wrapper will return CRITICAL." msgstr "Si le plugin executé retourne OK, l'adaptateur retournera CRITIQUE." -#: plugins/negate.c:329 +#: plugins/negate.c:273 msgid "If the wrapped plugin returns CRITICAL, the wrapper will return OK." msgstr "Si le plugin executé retourne CRITIQUE, l'adaptateur retournera OK." -#: plugins/negate.c:330 +#: plugins/negate.c:274 msgid "Otherwise, the output state of the wrapped plugin is unchanged." msgstr "Autrement, l'état du plugin executé reste inchangé." -#: plugins/netutils.c:53 +#: plugins/netutils.c:52 #, c-format msgid "CRITICAL - Socket timeout after %d seconds\n" msgstr "CRITIQUE - le socket n'as pas répondu dans les %d secondes\n" -#: plugins/netutils.c:55 +#: plugins/netutils.c:54 #, c-format msgid "CRITICAL - Abnormal timeout after %d seconds\n" msgstr "CRITIQUE - dépassement anormal du temps de réponse après %d secondes\n" -#: plugins/netutils.c:83 plugins/netutils.c:274 +#: plugins/netutils.c:82 plugins/netutils.c:284 msgid "Send failed" msgstr "L'envoi à échoué" -#: plugins/netutils.c:100 plugins/netutils.c:289 +#: plugins/netutils.c:99 plugins/netutils.c:299 msgid "No data was received from host!" msgstr "Pas de données reçues de l'hôte!" -#: plugins/netutils.c:197 plugins/netutils.c:233 +#: plugins/netutils.c:207 plugins/netutils.c:243 msgid "Socket creation failed" msgstr "La création du socket à échoué " -#: plugins/netutils.c:226 +#: plugins/netutils.c:236 msgid "Supplied path too long unix domain socket" msgstr "Le chemin fourni est trop long pour un socket unix" -#: plugins/netutils.c:298 +#: plugins/netutils.c:308 msgid "Receive failed" msgstr "La réception à échoué" -#: plugins/netutils.c:324 plugins-root/check_dhcp.c:1348 +#: plugins/netutils.c:334 plugins-root/check_dhcp.c:1346 #, c-format msgid "Invalid hostname/address - %s" msgstr "Adresse/Nom invalide - %s" -#: plugins/popen.c:148 +#: plugins/popen.c:145 msgid "Could not malloc argv array in popen()" msgstr "Impossible de réallouer un tableau pour les paramètres dans popen()" -#: plugins/popen.c:158 +#: plugins/popen.c:155 msgid "CRITICAL - You need more args!!!" msgstr "CRITIQUE - Vous devez spécifier plus d'arguments!!!" -#: plugins/popen.c:215 +#: plugins/popen.c:212 msgid "Cannot catch SIGCHLD" msgstr "impossible d'obtenir le signal SIGCHLD" -#: plugins/popen.c:310 plugins/utils.c:172 +#: plugins/popen.c:307 plugins/utils.c:186 #, c-format msgid "CRITICAL - Plugin timed out after %d seconds\n" msgstr "CRITIQUE - Le plugin n'as pas répondu dans les %d secondes\n" -#: plugins/popen.c:313 +#: plugins/popen.c:310 msgid "CRITICAL - popen timeout received, but no child process" msgstr "" "CRITIQUE - le temps d'attente à été dépassé dans la fonction popen, mais il " "n'y a pas de processus fils" -#: plugins/popen.c:329 +#: plugins/popen.c:326 msgid "sysconf error for _SC_OPEN_MAX" msgstr "" -#: plugins/urlize.c:137 +#: plugins/urlize.c:134 #, c-format msgid "" "%s UNKNOWN - No data received from host\n" @@ -5171,77 +5315,77 @@ msgstr "" "%s INCONNU - Pas de données reçues de l'hôte\n" "Commande: %s\n" -#: plugins/urlize.c:176 +#: plugins/urlize.c:173 msgid "This plugin wraps the text output of another command (plugin)" msgstr "" -#: plugins/urlize.c:177 +#: plugins/urlize.c:174 msgid "" "in HTML tags, thus displaying the plugin output in as a clickable link in" msgstr "" -#: plugins/urlize.c:178 +#: plugins/urlize.c:175 msgid "" "the Nagios status screen. The return status is the same as the invoked " "plugin." msgstr "" -#: plugins/urlize.c:188 +#: plugins/urlize.c:185 msgid "" "Pay close attention to quoting to ensure that the shell passes the expected" msgstr "" -#: plugins/urlize.c:189 +#: plugins/urlize.c:186 msgid "data to the plugin. For example, in:" msgstr "" -#: plugins/urlize.c:190 +#: plugins/urlize.c:187 msgid "urlize http://example.com/ check_http -H example.com -r 'two words'" msgstr "" -#: plugins/urlize.c:191 +#: plugins/urlize.c:188 msgid "the shell will remove the single quotes and urlize will see:" msgstr "" -#: plugins/urlize.c:192 +#: plugins/urlize.c:189 msgid "urlize http://example.com/ check_http -H example.com -r two words" msgstr "" -#: plugins/urlize.c:193 +#: plugins/urlize.c:190 msgid "You probably want:" msgstr "" -#: plugins/urlize.c:194 +#: plugins/urlize.c:191 msgid "urlize http://example.com/ \"check_http -H example.com -r 'two words'\"" msgstr "" -#: plugins/utils.c:467 +#: plugins/utils.c:481 msgid "failed realloc in strpcpy\n" msgstr "La fonction realloc à échoué dans strpcpy\n" -#: plugins/utils.c:509 +#: plugins/utils.c:523 msgid "failed malloc in strscat\n" msgstr "La fonction malloc à échoué dans strscat\n" -#: plugins-root/check_dhcp.c:327 +#: plugins-root/check_dhcp.c:325 #, c-format msgid "Error: Could not get hardware address of interface '%s'\n" msgstr "" "Erreur: Impossible d'obtenir l'adresse matérielle pour l'interface '%s'\n" -#: plugins-root/check_dhcp.c:349 +#: plugins-root/check_dhcp.c:347 #, c-format msgid "Error: if_nametoindex error - %s.\n" msgstr "Erreur: if_nametoindex erreur - %s.\n" -#: plugins-root/check_dhcp.c:354 +#: plugins-root/check_dhcp.c:352 #, c-format msgid "Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n" msgstr "" "Erreur: Impossible d'obtenir l'adresse matérielle depuis %s. erreur sysctl 1 " "- %s.\n" -#: plugins-root/check_dhcp.c:359 +#: plugins-root/check_dhcp.c:357 #, c-format msgid "" "Error: Couldn't get hardware address from interface %s. malloc error - %s.\n" @@ -5249,14 +5393,14 @@ msgstr "" "Erreur: Impossible d'obtenir l'adresse matérielle depuis l'interface %s\n" " erreur malloc - %s.\n" -#: plugins-root/check_dhcp.c:364 +#: plugins-root/check_dhcp.c:362 #, c-format msgid "Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n" msgstr "" "Erreur: Impossible d'obtenir l'adresse matérielle depuis %s erreur sysctl 2 " "- %s.\n" -#: plugins-root/check_dhcp.c:390 +#: plugins-root/check_dhcp.c:388 #, c-format msgid "" "Error: can't find unit number in interface_name (%s) - expecting TypeNumber " @@ -5265,7 +5409,7 @@ msgstr "" "Erreur: impossible de trouver le numéro dans le nom de l'interface (%s).\n" "J'attendais le nom suivi du type ex lnc0.\n" -#: plugins-root/check_dhcp.c:395 plugins-root/check_dhcp.c:407 +#: plugins-root/check_dhcp.c:393 plugins-root/check_dhcp.c:405 #, c-format msgid "" "Error: can't read MAC address from DLPI streams interface for device %s unit " @@ -5274,7 +5418,7 @@ msgstr "" "Erreur: impossible de lire l'adresse MAC depuis l'interface DLPI pour le \n" "périphérique %s numéro %d.\n" -#: plugins-root/check_dhcp.c:413 +#: plugins-root/check_dhcp.c:411 #, c-format msgid "" "Error: can't get MAC address for this architecture. Use the --mac option.\n" @@ -5282,47 +5426,47 @@ msgstr "" "Erreur: impossible d'obtenir l'adresse MAC sur cette architecture. Utilisez " "l'option --mac.\n" -#: plugins-root/check_dhcp.c:432 +#: plugins-root/check_dhcp.c:430 #, c-format msgid "Error: Cannot determine IP address of interface %s\n" msgstr "Erreur: Impossible d'obtenir l'adresse IP de l'interface %s\n" -#: plugins-root/check_dhcp.c:440 +#: plugins-root/check_dhcp.c:438 #, c-format msgid "Error: Cannot get interface IP address on this platform.\n" msgstr "Erreur: Impossible d'obtenir l'adresse IP sur cette architecture.\n" -#: plugins-root/check_dhcp.c:445 +#: plugins-root/check_dhcp.c:443 #, c-format msgid "Pretending to be relay client %s\n" msgstr "" -#: plugins-root/check_dhcp.c:530 +#: plugins-root/check_dhcp.c:528 #, c-format msgid "DHCPDISCOVER to %s port %d\n" msgstr "DHCPDISCOVER vers %s port %d\n" -#: plugins-root/check_dhcp.c:582 +#: plugins-root/check_dhcp.c:580 #, c-format msgid "Result=ERROR\n" msgstr "Résultat=ERREUR\n" -#: plugins-root/check_dhcp.c:588 +#: plugins-root/check_dhcp.c:586 #, c-format msgid "Result=OK\n" msgstr "Résultat=OK\n" -#: plugins-root/check_dhcp.c:603 +#: plugins-root/check_dhcp.c:601 #, c-format msgid "DHCPOFFER from IP address %s" msgstr "DHCPOFFER depuis l'adresse IP %s" -#: plugins-root/check_dhcp.c:604 +#: plugins-root/check_dhcp.c:602 #, c-format msgid " via %s\n" msgstr " depuis %s\n" -#: plugins-root/check_dhcp.c:611 +#: plugins-root/check_dhcp.c:609 #, c-format msgid "" "DHCPOFFER XID (%u) did not match DHCPDISCOVER XID (%u) - ignoring packet\n" @@ -5330,67 +5474,67 @@ msgstr "" "DHCPOFFER XID (%u) ne correspond pas au DHCPDISCOVER XID (%u) - paquet " "ignoré\n" -#: plugins-root/check_dhcp.c:633 +#: plugins-root/check_dhcp.c:631 #, c-format msgid "DHCPOFFER hardware address did not match our own - ignoring packet\n" msgstr "" "l'adresse matérielle du DHCPOFFER ne correspond pas à la notre paquet " "ignoré\n" -#: plugins-root/check_dhcp.c:651 +#: plugins-root/check_dhcp.c:649 #, c-format msgid "Total responses seen on the wire: %d\n" msgstr "Nombre total de réponses vues: %d\n" -#: plugins-root/check_dhcp.c:652 +#: plugins-root/check_dhcp.c:650 #, c-format msgid "Valid responses for this machine: %d\n" msgstr "Nombre de réponse valides pour cette machine: %d\n" -#: plugins-root/check_dhcp.c:667 +#: plugins-root/check_dhcp.c:665 #, c-format msgid "send_dhcp_packet result: %d\n" msgstr "résultat de send_dchp_packet: %d\n" -#: plugins-root/check_dhcp.c:700 +#: plugins-root/check_dhcp.c:698 #, c-format msgid "No (more) data received (nfound: %d)\n" msgstr "Plus de données reçues (nfound: %d)\n" -#: plugins-root/check_dhcp.c:719 +#: plugins-root/check_dhcp.c:717 #, c-format msgid "recvfrom() failed, " msgstr "recvfrom() a échoué, " -#: plugins-root/check_dhcp.c:726 +#: plugins-root/check_dhcp.c:724 #, c-format msgid "receive_dhcp_packet() result: %d\n" msgstr "résultat de receive_dchp_packet(): %d\n" -#: plugins-root/check_dhcp.c:727 +#: plugins-root/check_dhcp.c:725 #, c-format msgid "receive_dhcp_packet() source: %s\n" msgstr "source de receive_dchp_packet(): %s\n" -#: plugins-root/check_dhcp.c:757 +#: plugins-root/check_dhcp.c:755 #, c-format msgid "Error: Could not create socket!\n" msgstr "Erreur: Impossible de créer un socket!\n" -#: plugins-root/check_dhcp.c:767 +#: plugins-root/check_dhcp.c:765 #, c-format msgid "Error: Could not set reuse address option on DHCP socket!\n" msgstr "" "Erreur: Impossible de configurer l'option de réutilisation de l'adresse sur\n" "le socket DHCP!\n" -#: plugins-root/check_dhcp.c:773 +#: plugins-root/check_dhcp.c:771 #, c-format msgid "Error: Could not set broadcast option on DHCP socket!\n" msgstr "" "Erreur: Impossible de configurer l'option broadcast sur le socket DHCP!\n" -#: plugins-root/check_dhcp.c:782 +#: plugins-root/check_dhcp.c:780 #, c-format msgid "" "Error: Could not bind socket to interface %s. Check your privileges...\n" @@ -5398,7 +5542,7 @@ msgstr "" "Erreur: Impossible de connecter le socket à l'interface %s.\n" "Vérifiez vos droits...\n" -#: plugins-root/check_dhcp.c:793 +#: plugins-root/check_dhcp.c:791 #, c-format msgid "" "Error: Could not bind to DHCP socket (port %d)! Check your privileges...\n" @@ -5406,125 +5550,125 @@ msgstr "" "Erreur: Impossible de se connecter au socket (port %d)! Vérifiez vos " "droits..\n" -#: plugins-root/check_dhcp.c:827 +#: plugins-root/check_dhcp.c:825 #, c-format msgid "Requested server address: %s\n" msgstr "Adresse serveur demandée: %s\n" -#: plugins-root/check_dhcp.c:888 +#: plugins-root/check_dhcp.c:886 #, c-format msgid "Lease Time: Infinite\n" msgstr "Durée du Bail: Infini\n" -#: plugins-root/check_dhcp.c:890 +#: plugins-root/check_dhcp.c:888 #, c-format msgid "Lease Time: %lu seconds\n" msgstr "Durée du Bail: %lu secondes\n" -#: plugins-root/check_dhcp.c:892 +#: plugins-root/check_dhcp.c:890 #, c-format msgid "Renewal Time: Infinite\n" msgstr "Renouvellement du bail: Infini\n" -#: plugins-root/check_dhcp.c:894 +#: plugins-root/check_dhcp.c:892 #, c-format msgid "Renewal Time: %lu seconds\n" msgstr "Durée du renouvellement = %lu secondes\n" -#: plugins-root/check_dhcp.c:896 +#: plugins-root/check_dhcp.c:894 #, c-format msgid "Rebinding Time: Infinite\n" msgstr "Délai de nouvelle demande: Infini\n" -#: plugins-root/check_dhcp.c:897 +#: plugins-root/check_dhcp.c:895 #, c-format msgid "Rebinding Time: %lu seconds\n" msgstr "Délai de nouvelle demande: %lu secondes\n" -#: plugins-root/check_dhcp.c:925 +#: plugins-root/check_dhcp.c:923 #, c-format msgid "Added offer from server @ %s" msgstr "Rajouté offre du serveur @ %s" -#: plugins-root/check_dhcp.c:926 +#: plugins-root/check_dhcp.c:924 #, c-format msgid " of IP address %s\n" msgstr "de l'adresse IP %s\n" -#: plugins-root/check_dhcp.c:993 +#: plugins-root/check_dhcp.c:991 #, c-format msgid "DHCP Server Match: Offerer=%s" msgstr "Correspondance du serveur DHCP: Offrant=%s" -#: plugins-root/check_dhcp.c:994 +#: plugins-root/check_dhcp.c:992 #, c-format msgid " Requested=%s" msgstr " Demandé=%s" -#: plugins-root/check_dhcp.c:996 +#: plugins-root/check_dhcp.c:994 #, c-format msgid " (duplicate)" msgstr "" -#: plugins-root/check_dhcp.c:997 +#: plugins-root/check_dhcp.c:995 #, c-format msgid "\n" msgstr "" -#: plugins-root/check_dhcp.c:1045 +#: plugins-root/check_dhcp.c:1043 #, c-format msgid "No DHCPOFFERs were received.\n" msgstr "Pas de DHCPOFFERs reçus.\n" -#: plugins-root/check_dhcp.c:1049 +#: plugins-root/check_dhcp.c:1047 #, c-format msgid "Received %d DHCPOFFER(s)" msgstr "Reçu %d DHCPOFFER(s)" -#: plugins-root/check_dhcp.c:1052 +#: plugins-root/check_dhcp.c:1050 #, c-format msgid ", %s%d of %d requested servers responded" msgstr ", %s%d de %d serveurs ont répondus" -#: plugins-root/check_dhcp.c:1055 +#: plugins-root/check_dhcp.c:1053 #, c-format msgid ", requested address (%s) was %soffered" msgstr ", l'adresse demandée (%s) %s été offerte" -#: plugins-root/check_dhcp.c:1055 +#: plugins-root/check_dhcp.c:1053 msgid "not " msgstr "n'as pas" -#: plugins-root/check_dhcp.c:1057 +#: plugins-root/check_dhcp.c:1055 #, c-format msgid ", max lease time = " msgstr ", bail maximum = " -#: plugins-root/check_dhcp.c:1059 +#: plugins-root/check_dhcp.c:1057 #, c-format msgid "Infinity" msgstr "Infini" -#: plugins-root/check_dhcp.c:1240 +#: plugins-root/check_dhcp.c:1238 #, c-format msgid "Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n" msgstr "" "Erreur: Impossible d'obtenir la MAC par l'API DLPI dans check_ctrl: %s.\n" -#: plugins-root/check_dhcp.c:1252 +#: plugins-root/check_dhcp.c:1250 #, c-format msgid "Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n" msgstr "" "Erreur: Impossible d'obtenir la MAC par l'API DLPI dans put_ctrl/putmsg(): %" "s.\n" -#: plugins-root/check_dhcp.c:1265 +#: plugins-root/check_dhcp.c:1263 #, c-format msgid "Error: DLPI stream API failed to get MAC in put_both/putmsg().\n" msgstr "" "Erreur: Impossible d'obtenir la MAC par l'API DLPI dans put_both/putmsg().\n" -#: plugins-root/check_dhcp.c:1277 +#: plugins-root/check_dhcp.c:1275 #, c-format msgid "" "Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n" @@ -5532,113 +5676,137 @@ msgstr "" "Erreur: Impossible d'obtenir la MAC par l'API DLPI dans dl_attach_req/open(%" "s..): %s.\n" -#: plugins-root/check_dhcp.c:1301 +#: plugins-root/check_dhcp.c:1299 #, c-format msgid "Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n" msgstr "" "Erreur: Impossible d'obtenir la MAC par l'API DLPI dans dl_bind/check_ctrl" "(): %s.\n" -#: plugins-root/check_dhcp.c:1380 +#: plugins-root/check_dhcp.c:1378 #, c-format msgid "Hardware address: " msgstr "Adresse matérielle: " -#: plugins-root/check_dhcp.c:1396 +#: plugins-root/check_dhcp.c:1394 msgid "This plugin tests the availability of DHCP servers on a network." msgstr "Ce plugin teste la disponibilité de serveurs DHCP dans un réseau." -#: plugins-root/check_dhcp.c:1407 +#: plugins-root/check_dhcp.c:1406 msgid "IP address of DHCP server that we must hear from" msgstr "" -#: plugins-root/check_dhcp.c:1409 +#: plugins-root/check_dhcp.c:1408 msgid "IP address that should be offered by at least one DHCP server" msgstr "" -#: plugins-root/check_dhcp.c:1411 +#: plugins-root/check_dhcp.c:1410 msgid "Seconds to wait for DHCPOFFER before timeout occurs" msgstr "" -#: plugins-root/check_dhcp.c:1413 +#: plugins-root/check_dhcp.c:1412 msgid "Interface to to use for listening (i.e. eth0)" msgstr "" -#: plugins-root/check_dhcp.c:1415 +#: plugins-root/check_dhcp.c:1414 msgid "MAC address to use in the DHCP request" msgstr "" -#: plugins-root/check_dhcp.c:1417 +#: plugins-root/check_dhcp.c:1416 msgid "Unicast testing: mimic a DHCP relay, requires -s" msgstr "" -#: plugins-root/check_icmp.c:1227 +#: plugins-root/check_icmp.c:1271 msgid "specify a target" msgstr "" -#: plugins-root/check_icmp.c:1229 +#: plugins-root/check_icmp.c:1273 msgid "warning threshold (currently " msgstr "Valeurs pour le seuil d'avertissement (actuellement " -#: plugins-root/check_icmp.c:1232 +#: plugins-root/check_icmp.c:1276 msgid "critical threshold (currently " msgstr "Valeurs pour le seuil critique (actuellement " -#: plugins-root/check_icmp.c:1235 +#: plugins-root/check_icmp.c:1279 +#, fuzzy +msgid "specify a source IP address or device name" +msgstr "Vous devez spécifier une adresse ou un nom d'hôte" + +#: plugins-root/check_icmp.c:1281 msgid "number of packets to send (currently " msgstr "nombre de paquets à envoyer (actuellement " -#: plugins-root/check_icmp.c:1238 +#: plugins-root/check_icmp.c:1284 msgid "max packet interval (currently " msgstr "" -#: plugins-root/check_icmp.c:1241 +#: plugins-root/check_icmp.c:1287 msgid "max target interval (currently " msgstr "" -#: plugins-root/check_icmp.c:1244 +#: plugins-root/check_icmp.c:1290 msgid "number of alive hosts required for success" msgstr "nombre d'hôtes vivants requis pour réussite" -#: plugins-root/check_icmp.c:1247 +#: plugins-root/check_icmp.c:1293 msgid "TTL on outgoing packets (currently " msgstr "" -#: plugins-root/check_icmp.c:1250 +#: plugins-root/check_icmp.c:1296 msgid "timeout value (seconds, currently " msgstr "" -#: plugins-root/check_icmp.c:1253 +#: plugins-root/check_icmp.c:1299 msgid "icmp packet size (currenly ignored)" msgstr "" -#: plugins-root/check_icmp.c:1255 +#: plugins-root/check_icmp.c:1301 msgid "verbose" msgstr "" -#: plugins-root/check_icmp.c:1258 +#: plugins-root/check_icmp.c:1305 msgid "The -H switch is optional. Naming a host (or several) to check is not." msgstr "" -#: plugins-root/check_icmp.c:1259 +#: plugins-root/check_icmp.c:1307 msgid "" "Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%" msgstr "" -#: plugins-root/check_icmp.c:1260 +#: plugins-root/check_icmp.c:1308 msgid "packet loss. The default values should work well for most users." msgstr "" -#: plugins-root/check_icmp.c:1261 +#: plugins-root/check_icmp.c:1309 msgid "" "You can specify different RTA factors using the standardized abbreviations" msgstr "" -#: plugins-root/check_icmp.c:1262 +#: plugins-root/check_icmp.c:1310 msgid "" "us (microseconds), ms (milliseconds, default) or just plain s for seconds." msgstr "" -#: plugins-root/check_icmp.c:1267 +#: plugins-root/check_icmp.c:1316 msgid "The -v switch can be specified several times for increased verbosity." msgstr "" + +#~ msgid "See:" +#~ msgstr "Voir:" + +#~ msgid "for THRESHOLD format and examples." +#~ msgstr "pour le format et examples des seuils (THRESHOLD)" + +#, fuzzy +#~ msgid "for --extra-opts usage and examples." +#~ msgstr "pour le format et examples des seuils (THRESHOLD)" + +#~ msgid "Note:" +#~ msgstr "Note:" + +#~ msgid "a server listening on MySQL standard port %d will be checked\n" +#~ msgstr "avec un serveur MySQL écoutant sur le port %d sera vérifiée\n" + +#~ msgid "Optional Arguments:" +#~ msgstr "Arguments optionnels:" diff --git a/po/nagios-plugins.pot b/po/nagios-plugins.pot index 8cdd89c..d415ba2 100644 --- a/po/nagios-plugins.pot +++ b/po/nagios-plugins.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: nagiosplug-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2007-12-13 22:43+0000\n" +"POT-Creation-Date: 2008-05-27 23:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,56 +17,61 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: plugins/check_by_ssh.c:83 plugins/check_cluster.c:79 plugins/check_dig.c:89 -#: plugins/check_disk.c:198 plugins/check_dns.c:93 plugins/check_dummy.c:59 -#: plugins/check_fping.c:89 plugins/check_game.c:84 plugins/check_hpjd.c:106 -#: plugins/check_http.c:154 plugins/check_ldap.c:108 plugins/check_load.c:126 -#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:88 -#: plugins/check_nagios.c:94 plugins/check_nt.c:126 plugins/check_ntp.c:767 -#: plugins/check_ntp_peer.c:553 plugins/check_ntp_time.c:544 +#: plugins/check_by_ssh.c:84 plugins/check_cluster.c:81 plugins/check_dig.c:91 +#: plugins/check_disk.c:199 plugins/check_dns.c:106 plugins/check_dummy.c:56 +#: plugins/check_fping.c:90 plugins/check_game.c:86 plugins/check_hpjd.c:107 +#: plugins/check_http.c:154 plugins/check_ldap.c:112 plugins/check_load.c:126 +#: plugins/check_mrtgtraf.c:87 plugins/check_mysql.c:89 +#: plugins/check_nagios.c:95 plugins/check_nt.c:129 plugins/check_ntp.c:770 +#: plugins/check_ntp_peer.c:559 plugins/check_ntp_time.c:547 #: plugins/check_nwstat.c:177 plugins/check_overcr.c:106 -#: plugins/check_pgsql.c:156 plugins/check_ping.c:99 plugins/check_procs.c:143 -#: plugins/check_radius.c:156 plugins/check_real.c:85 plugins/check_smtp.c:145 -#: plugins/check_snmp.c:183 plugins/check_ssh.c:78 plugins/check_swap.c:113 -#: plugins/check_tcp.c:211 plugins/check_time.c:82 plugins/check_ups.c:125 -#: plugins/check_users.c:70 plugins/negate.c:259 plugins-root/check_dhcp.c:277 +#: plugins/check_pgsql.c:157 plugins/check_ping.c:99 plugins/check_procs.c:150 +#: plugins/check_radius.c:156 plugins/check_real.c:84 plugins/check_smtp.c:144 +#: plugins/check_snmp.c:183 plugins/check_ssh.c:77 plugins/check_swap.c:114 +#: plugins/check_tcp.c:212 plugins/check_time.c:82 plugins/check_ups.c:126 +#: plugins/check_users.c:72 plugins/negate.c:208 plugins-root/check_dhcp.c:275 msgid "Could not parse arguments" msgstr "" -#: plugins/check_by_ssh.c:87 plugins/check_dig.c:86 plugins/check_dns.c:89 -#: plugins/check_nagios.c:98 plugins/check_pgsql.c:160 -#: plugins/check_ping.c:103 plugins/check_procs.c:150 plugins/negate.c:113 +#: plugins/check_by_ssh.c:88 plugins/check_dig.c:85 plugins/check_dns.c:99 +#: plugins/check_nagios.c:99 plugins/check_pgsql.c:161 +#: plugins/check_ping.c:103 plugins/check_procs.c:157 plugins/negate.c:78 msgid "Cannot catch SIGALRM" msgstr "" -#: plugins/check_by_ssh.c:104 +#: plugins/check_by_ssh.c:105 #, c-format msgid "Remote command execution failed: %s\n" msgstr "" -#: plugins/check_by_ssh.c:116 +#: plugins/check_by_ssh.c:117 #, c-format msgid "%s - check_by_ssh: Remote command '%s' returned status %d\n" msgstr "" -#: plugins/check_by_ssh.c:128 +#: plugins/check_by_ssh.c:129 #, c-format msgid "SSH WARNING: could not open %s\n" msgstr "" -#: plugins/check_by_ssh.c:214 plugins/check_disk.c:530 -#: plugins/check_http.c:248 plugins/check_ldap.c:292 plugins/check_pgsql.c:237 -#: plugins/check_procs.c:371 plugins/check_radius.c:284 -#: plugins/check_real.c:361 plugins/check_smtp.c:592 plugins/check_snmp.c:516 -#: plugins/check_ssh.c:143 plugins/check_tcp.c:494 plugins/check_time.c:306 -#: plugins/check_ups.c:555 plugins/negate.c:203 +#: plugins/check_by_ssh.c:138 +#, c-format +msgid "%s: Error parsing output\n" +msgstr "" + +#: plugins/check_by_ssh.c:214 plugins/check_disk.c:532 +#: plugins/check_http.c:249 plugins/check_ldap.c:296 plugins/check_pgsql.c:238 +#: plugins/check_procs.c:399 plugins/check_radius.c:290 +#: plugins/check_real.c:360 plugins/check_smtp.c:593 plugins/check_snmp.c:516 +#: plugins/check_ssh.c:142 plugins/check_tcp.c:495 plugins/check_time.c:306 +#: plugins/check_ups.c:556 plugins/negate.c:162 msgid "Timeout interval must be a positive integer" msgstr "" -#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:261 -#: plugins/check_radius.c:257 plugins/check_real.c:332 -#: plugins/check_smtp.c:519 plugins/check_tcp.c:500 plugins/check_time.c:300 -#: plugins/check_ups.c:517 +#: plugins/check_by_ssh.c:224 plugins/check_pgsql.c:262 +#: plugins/check_radius.c:257 plugins/check_real.c:331 +#: plugins/check_smtp.c:520 plugins/check_tcp.c:501 plugins/check_time.c:300 +#: plugins/check_ups.c:518 msgid "Port must be a positive integer" msgstr "" @@ -105,1482 +110,1503 @@ msgstr "" msgid "This plugin uses SSH to execute commands on a remote host" msgstr "" -#: plugins/check_by_ssh.c:360 +#: plugins/check_by_ssh.c:362 msgid "tell ssh to use Protocol 1 [optional]" msgstr "" -#: plugins/check_by_ssh.c:362 +#: plugins/check_by_ssh.c:364 msgid "tell ssh to use Protocol 2 [optional]" msgstr "" -#: plugins/check_by_ssh.c:364 +#: plugins/check_by_ssh.c:366 msgid "Ignore all or (if specified) first n lines on STDOUT [optional]" msgstr "" -#: plugins/check_by_ssh.c:366 +#: plugins/check_by_ssh.c:368 msgid "Ignore all or (if specified) first n lines on STDERR [optional]" msgstr "" -#: plugins/check_by_ssh.c:368 -msgid "tells ssh to fork rather than create a tty [optional]" -msgstr "" - #: plugins/check_by_ssh.c:370 -msgid "command to execute on the remote machine" +msgid "" +"tells ssh to fork rather than create a tty [optional]. This will always " +"return OK if ssh is executed" msgstr "" #: plugins/check_by_ssh.c:372 -msgid "SSH user name on remote host [optional]" +msgid "command to execute on the remote machine" msgstr "" #: plugins/check_by_ssh.c:374 -msgid "identity of an authorized key [optional]" +msgid "SSH user name on remote host [optional]" msgstr "" #: plugins/check_by_ssh.c:376 -msgid "external command file for nagios [optional]" +msgid "identity of an authorized key [optional]" msgstr "" #: plugins/check_by_ssh.c:378 -msgid "list of nagios service names, separated by ':' [optional]" +msgid "external command file for nagios [optional]" msgstr "" #: plugins/check_by_ssh.c:380 -msgid "short name of host in nagios configuration [optional]" +msgid "list of nagios service names, separated by ':' [optional]" msgstr "" #: plugins/check_by_ssh.c:382 -msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]" +msgid "short name of host in nagios configuration [optional]" msgstr "" #: plugins/check_by_ssh.c:384 +msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:386 msgid "Tell ssh to suppress warning and diagnostic messages [optional]" msgstr "" -#: plugins/check_by_ssh.c:387 +#: plugins/check_by_ssh.c:391 msgid "The most common mode of use is to refer to a local identity file with" msgstr "" -#: plugins/check_by_ssh.c:388 +#: plugins/check_by_ssh.c:392 msgid "the '-i' option. In this mode, the identity pair should have a null" msgstr "" -#: plugins/check_by_ssh.c:389 +#: plugins/check_by_ssh.c:393 msgid "passphrase and the public key should be listed in the authorized_keys" msgstr "" -#: plugins/check_by_ssh.c:390 +#: plugins/check_by_ssh.c:394 msgid "file of the remote host. Usually the key will be restricted to running" msgstr "" -#: plugins/check_by_ssh.c:391 +#: plugins/check_by_ssh.c:395 msgid "only one command on the remote server. If the remote SSH server tracks" msgstr "" -#: plugins/check_by_ssh.c:392 +#: plugins/check_by_ssh.c:396 msgid "invocation arguments, the one remote program may be an agent that can" msgstr "" -#: plugins/check_by_ssh.c:393 +#: plugins/check_by_ssh.c:397 msgid "execute additional commands as proxy" msgstr "" -#: plugins/check_by_ssh.c:394 +#: plugins/check_by_ssh.c:399 msgid "To use passive mode, provide multiple '-C' options, and provide" msgstr "" -#: plugins/check_by_ssh.c:395 +#: plugins/check_by_ssh.c:400 msgid "" "all of -O, -s, and -n options (servicelist order must match '-C'options)" msgstr "" -#: plugins/check_by_ssh.c:397 plugins/check_disk.c:954 -#: plugins/check_http.c:1312 plugins/check_nagios.c:303 -#: plugins/check_ntp.c:866 plugins/check_ntp_peer.c:668 -#: plugins/check_ntp_time.c:623 plugins/check_procs.c:735 plugins/negate.c:319 -#: plugins/urlize.c:187 -#, c-format +#: plugins/check_by_ssh.c:402 plugins/check_dig.c:341 plugins/check_disk.c:970 +#: plugins/check_http.c:1323 plugins/check_nagios.c:312 +#: plugins/check_ntp.c:872 plugins/check_ntp_peer.c:680 +#: plugins/check_ntp_time.c:631 plugins/check_procs.c:783 plugins/negate.c:263 +#: plugins/urlize.c:184 msgid "Examples:" msgstr "" -#: plugins/check_by_ssh.c:412 plugins/check_cluster.c:273 -#: plugins/check_dig.c:336 plugins/check_disk.c:970 plugins/check_dns.c:447 -#: plugins/check_dummy.c:129 plugins/check_fping.c:407 -#: plugins/check_game.c:334 plugins/check_hpjd.c:415 plugins/check_http.c:1335 -#: plugins/check_ldap.c:449 plugins/check_load.c:328 plugins/check_mrtg.c:383 -#: plugins/check_mysql.c:407 plugins/check_nagios.c:313 plugins/check_nt.c:707 -#: plugins/check_ntp.c:879 plugins/check_ntp_peer.c:683 -#: plugins/check_ntp_time.c:632 plugins/check_nwstat.c:1688 -#: plugins/check_overcr.c:469 plugins/check_pgsql.c:458 -#: plugins/check_ping.c:597 plugins/check_procs.c:753 -#: plugins/check_radius.c:358 plugins/check_real.c:454 -#: plugins/check_smtp.c:825 plugins/check_snmp.c:1029 plugins/check_ssh.c:308 -#: plugins/check_swap.c:559 plugins/check_tcp.c:654 plugins/check_time.c:373 -#: plugins/check_ups.c:657 plugins/check_users.c:230 -#: plugins/check_ide_smart.c:527 plugins/negate.c:340 plugins/urlize.c:204 -#: plugins-root/check_dhcp.c:1426 plugins-root/check_icmp.c:1282 +#: plugins/check_by_ssh.c:411 plugins/check_cluster.c:262 +#: plugins/check_dig.c:347 plugins/check_disk.c:965 plugins/check_dns.c:485 +#: plugins/check_fping.c:405 plugins/check_game.c:322 plugins/check_hpjd.c:412 +#: plugins/check_http.c:1307 plugins/check_ldap.c:437 plugins/check_load.c:325 +#: plugins/check_mrtg.c:367 plugins/check_mrtgtraf.c:367 +#: plugins/check_mysql.c:421 plugins/check_nagios.c:307 plugins/check_nt.c:728 +#: plugins/check_ntp.c:864 plugins/check_ntp_peer.c:667 +#: plugins/check_ntp_time.c:620 plugins/check_nwstat.c:1674 +#: plugins/check_overcr.c:460 plugins/check_pgsql.c:456 +#: plugins/check_ping.c:601 plugins/check_procs.c:778 +#: plugins/check_radius.c:359 plugins/check_real.c:449 +#: plugins/check_smtp.c:821 plugins/check_snmp.c:1006 plugins/check_ssh.c:302 +#: plugins/check_swap.c:551 plugins/check_tcp.c:651 plugins/check_time.c:369 +#: plugins/check_ups.c:642 plugins/check_users.c:228 +#: plugins/check_ide_smart.c:514 plugins/negate.c:269 +#: plugins-root/check_dhcp.c:1420 plugins-root/check_icmp.c:1304 +msgid "Notes:" +msgstr "" + +#: plugins/check_by_ssh.c:423 plugins/check_cluster.c:277 +#: plugins/check_dig.c:359 plugins/check_disk.c:987 plugins/check_dns.c:496 +#: plugins/check_dummy.c:126 plugins/check_fping.c:416 +#: plugins/check_game.c:339 plugins/check_hpjd.c:424 plugins/check_http.c:1346 +#: plugins/check_ldap.c:459 plugins/check_load.c:335 plugins/check_mrtg.c:389 +#: plugins/check_mysql.c:432 plugins/check_nagios.c:323 plugins/check_nt.c:747 +#: plugins/check_ntp.c:891 plugins/check_ntp_peer.c:697 +#: plugins/check_ntp_time.c:640 plugins/check_nwstat.c:1692 +#: plugins/check_overcr.c:475 plugins/check_pgsql.c:468 +#: plugins/check_ping.c:611 plugins/check_radius.c:371 +#: plugins/check_real.c:461 plugins/check_smtp.c:833 plugins/check_snmp.c:1036 +#: plugins/check_ssh.c:314 plugins/check_swap.c:567 plugins/check_tcp.c:662 +#: plugins/check_time.c:381 plugins/check_ups.c:664 plugins/check_users.c:239 +#: plugins/check_ide_smart.c:536 plugins/negate.c:284 plugins/urlize.c:201 +#: plugins-root/check_dhcp.c:1432 plugins-root/check_icmp.c:1333 #, c-format msgid "Usage:" msgstr "" -#: plugins/check_cluster.c:233 +#: plugins/check_cluster.c:235 #, c-format msgid "Host/Service Cluster Plugin for Nagios 2" msgstr "" -#: plugins/check_cluster.c:239 plugins/check_nt.c:632 +#: plugins/check_cluster.c:241 plugins/check_nt.c:652 msgid "Options:" msgstr "" -#: plugins/check_cluster.c:241 +#: plugins/check_cluster.c:244 msgid "Check service cluster status" msgstr "" -#: plugins/check_cluster.c:243 +#: plugins/check_cluster.c:246 msgid "Check host cluster status" msgstr "" -#: plugins/check_cluster.c:245 +#: plugins/check_cluster.c:248 msgid "Optional prepended text output (i.e. \"Host cluster\")" msgstr "" -#: plugins/check_cluster.c:247 plugins/check_cluster.c:250 +#: plugins/check_cluster.c:250 plugins/check_cluster.c:253 msgid "Specifies the range of hosts or services in cluster that must be in a" msgstr "" -#: plugins/check_cluster.c:248 +#: plugins/check_cluster.c:251 msgid "non-OK state in order to return a WARNING status level" msgstr "" -#: plugins/check_cluster.c:251 +#: plugins/check_cluster.c:254 msgid "non-OK state in order to return a CRITICAL status level" msgstr "" -#: plugins/check_cluster.c:253 +#: plugins/check_cluster.c:256 msgid "The status codes of the hosts or services in the cluster, separated by" msgstr "" -#: plugins/check_cluster.c:254 +#: plugins/check_cluster.c:257 msgid "commas" msgstr "" -#: plugins/check_cluster.c:259 plugins/check_game.c:318 -#: plugins/check_http.c:1300 plugins/check_mrtg.c:364 -#: plugins/check_mrtgtraf.c:365 plugins/check_nt.c:693 plugins/check_ntp.c:860 -#: plugins/check_ntp_peer.c:655 plugins/check_ntp_time.c:611 -#: plugins/check_nwstat.c:1673 plugins/check_overcr.c:452 -#: plugins/check_swap.c:548 plugins/check_ups.c:633 plugins/negate.c:325 -#, c-format -msgid "Notes:" -msgstr "" - -#: plugins/check_cluster.c:260 plugins/check_ntp.c:861 -#: plugins/check_ntp_peer.c:663 plugins/check_ntp_time.c:618 -msgid "See:" -msgstr "" - -#: plugins/check_cluster.c:262 plugins/check_ntp.c:863 -#: plugins/check_ntp_peer.c:665 plugins/check_ntp_time.c:620 -msgid "for THRESHOLD format and examples." -msgstr "" - -#: plugins/check_dig.c:101 plugins/check_dig.c:103 +#: plugins/check_dig.c:103 plugins/check_dig.c:105 #, c-format msgid "Looking for: '%s'\n" msgstr "" -#: plugins/check_dig.c:110 +#: plugins/check_dig.c:112 msgid "dig returned an error status" msgstr "" -#: plugins/check_dig.c:135 +#: plugins/check_dig.c:137 msgid "Server not found in ANSWER SECTION" msgstr "" -#: plugins/check_dig.c:145 +#: plugins/check_dig.c:147 msgid "No ANSWER SECTION found" msgstr "" -#: plugins/check_dig.c:170 +#: plugins/check_dig.c:172 msgid "Probably a non-existent host/domain" msgstr "" -#: plugins/check_dig.c:229 +#: plugins/check_dig.c:232 #, c-format msgid "Port must be a positive integer - %s" msgstr "" -#: plugins/check_dig.c:240 +#: plugins/check_dig.c:243 #, c-format msgid "Warning interval must be a positive integer - %s" msgstr "" -#: plugins/check_dig.c:248 +#: plugins/check_dig.c:251 #, c-format msgid "Critical interval must be a positive integer - %s" msgstr "" -#: plugins/check_dig.c:256 +#: plugins/check_dig.c:259 #, c-format msgid "Timeout interval must be a positive integer - %s" msgstr "" -#: plugins/check_dig.c:309 +#: plugins/check_dig.c:315 #, c-format msgid "This plugin test the DNS service on the specified host using dig" msgstr "" -#: plugins/check_dig.c:320 -msgid "machine name to lookup" +#: plugins/check_dig.c:328 +msgid "Machine name to lookup" msgstr "" -#: plugins/check_dig.c:322 -msgid "record type to lookup (default: A)" +#: plugins/check_dig.c:330 +msgid "Record type to lookup (default: A)" msgstr "" -#: plugins/check_dig.c:324 +#: plugins/check_dig.c:332 msgid "" -"an address expected to be in the answer section.if not set, uses whatever " -"was in -l" +"An address expected to be in the answer section. If not set, uses whatever" msgstr "" -#: plugins/check_disk.c:220 +#: plugins/check_dig.c:333 +msgid "was in -l" +msgstr "" + +#: plugins/check_dig.c:335 +msgid "Pass STRING as argument(s) to dig" +msgstr "" + +#: plugins/check_disk.c:221 #, c-format msgid "DISK %s: %s not found\n" msgstr "" -#: plugins/check_disk.c:220 plugins/check_disk.c:985 plugins/check_dns.c:208 -#: plugins/check_dummy.c:81 plugins/check_http.c:951 plugins/check_mysql.c:214 -#: plugins/check_nagios.c:107 plugins/check_nagios.c:171 -#: plugins/check_nagios.c:175 plugins/check_procs.c:302 +#: plugins/check_disk.c:221 plugins/check_disk.c:1002 plugins/check_dns.c:245 +#: plugins/check_dummy.c:78 plugins/check_http.c:956 plugins/check_mysql.c:215 +#: plugins/check_nagios.c:108 plugins/check_nagios.c:172 +#: plugins/check_nagios.c:176 plugins/check_procs.c:325 #, c-format msgid "CRITICAL" msgstr "" -#: plugins/check_disk.c:604 +#: plugins/check_disk.c:606 #, c-format msgid "unit type %s not known\n" msgstr "" -#: plugins/check_disk.c:607 +#: plugins/check_disk.c:609 #, c-format msgid "failed allocating storage for '%s'\n" msgstr "" -#: plugins/check_disk.c:631 plugins/check_disk.c:662 plugins/check_disk.c:667 -#: plugins/check_disk.c:674 plugins/check_disk.c:678 plugins/check_disk.c:718 -#: plugins/check_disk.c:724 plugins/check_disk.c:743 plugins/check_dummy.c:84 -#: plugins/check_dummy.c:87 +#: plugins/check_disk.c:633 plugins/check_disk.c:664 plugins/check_disk.c:669 +#: plugins/check_disk.c:676 plugins/check_disk.c:680 plugins/check_disk.c:720 +#: plugins/check_disk.c:726 plugins/check_disk.c:745 plugins/check_dummy.c:81 +#: plugins/check_dummy.c:84 plugins/check_procs.c:486 #, c-format msgid "UNKNOWN" msgstr "" -#: plugins/check_disk.c:631 +#: plugins/check_disk.c:633 msgid "Must set a threshold value before using -p\n" msgstr "" -#: plugins/check_disk.c:662 +#: plugins/check_disk.c:664 msgid "Must set -E before selecting pathes\n" msgstr "" -#: plugins/check_disk.c:667 +#: plugins/check_disk.c:669 msgid "Must set group value before selecting pathes \n" msgstr "" -#: plugins/check_disk.c:674 +#: plugins/check_disk.c:676 msgid "" "Pathes need to be selected before using -i/-I. Use -A to select all pathes " "explicitly" msgstr "" -#: plugins/check_disk.c:678 plugins/check_disk.c:724 +#: plugins/check_disk.c:680 plugins/check_disk.c:726 plugins/check_procs.c:486 msgid "Could not compile regular expression" msgstr "" -#: plugins/check_disk.c:718 +#: plugins/check_disk.c:720 msgid "Must set a threshold value before using -r/-R\n" msgstr "" -#: plugins/check_disk.c:744 +#: plugins/check_disk.c:746 msgid "Regular expression did not match any path or disk" msgstr "" -#: plugins/check_disk.c:791 +#: plugins/check_disk.c:793 msgid "Unknown argument" msgstr "" -#: plugins/check_disk.c:825 +#: plugins/check_disk.c:827 #, c-format msgid " for %s\n" msgstr "" -#: plugins/check_disk.c:893 +#: plugins/check_disk.c:901 msgid "" "This plugin checks the amount of used disk space on a mounted file system" msgstr "" -#: plugins/check_disk.c:894 +#: plugins/check_disk.c:902 msgid "" "and generates an alert if free space is less than one of the threshold values" msgstr "" -#: plugins/check_disk.c:903 +#: plugins/check_disk.c:912 msgid "Exit with WARNING status if less than INTEGER units of disk are free" msgstr "" -#: plugins/check_disk.c:905 +#: plugins/check_disk.c:914 msgid "Exit with WARNING status if less than PERCENT of disk space is free" msgstr "" -#: plugins/check_disk.c:907 +#: plugins/check_disk.c:916 msgid "Exit with CRITICAL status if less than INTEGER units of disk are free" msgstr "" -#: plugins/check_disk.c:909 +#: plugins/check_disk.c:918 msgid "Exit with CRITCAL status if less than PERCENT of disk space is free" msgstr "" -#: plugins/check_disk.c:911 +#: plugins/check_disk.c:920 msgid "Exit with WARNING status if less than PERCENT of inode space is free" msgstr "" -#: plugins/check_disk.c:913 +#: plugins/check_disk.c:922 msgid "Exit with CRITICAL status if less than PERCENT of inode space is free" msgstr "" -#: plugins/check_disk.c:915 +#: plugins/check_disk.c:924 msgid "Path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:917 +#: plugins/check_disk.c:926 msgid "Ignore device (only works if -p unspecified)" msgstr "" -#: plugins/check_disk.c:919 +#: plugins/check_disk.c:928 msgid "Clear thresholds" msgstr "" -#: plugins/check_disk.c:921 +#: plugins/check_disk.c:930 msgid "For paths or partitions specified with -p, only check for exact paths" msgstr "" -#: plugins/check_disk.c:923 +#: plugins/check_disk.c:932 msgid "Display only devices/mountpoints with errors" msgstr "" -#: plugins/check_disk.c:925 +#: plugins/check_disk.c:934 msgid "" "Group pathes. Thresholds apply to (free-)space of all partitions together" msgstr "" -#: plugins/check_disk.c:927 +#: plugins/check_disk.c:936 msgid "Same as '--units kB'" msgstr "" -#: plugins/check_disk.c:929 +#: plugins/check_disk.c:938 msgid "Only check local filesystems" msgstr "" -#: plugins/check_disk.c:931 +#: plugins/check_disk.c:940 msgid "" "Only check local filesystems against thresholds. Yet call stat on remote " "filesystems" msgstr "" -#: plugins/check_disk.c:932 +#: plugins/check_disk.c:941 msgid "to test if they are accessible (e.g. to detect Stale NFS Handles)" msgstr "" -#: plugins/check_disk.c:934 +#: plugins/check_disk.c:943 msgid "Display the mountpoint instead of the partition" msgstr "" -#: plugins/check_disk.c:936 +#: plugins/check_disk.c:945 msgid "Same as '--units MB'" msgstr "" -#: plugins/check_disk.c:938 +#: plugins/check_disk.c:947 msgid "Explicitly select all pathes. This is equivalent to -R '.*'" msgstr "" -#: plugins/check_disk.c:940 +#: plugins/check_disk.c:949 msgid "" "Case insensitive regular expression for path/partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:942 +#: plugins/check_disk.c:951 msgid "Regular expression for path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:944 +#: plugins/check_disk.c:953 msgid "" "Regular expression to ignore selected path/partition (case insensitive) (may " "be repeated)" msgstr "" -#: plugins/check_disk.c:946 +#: plugins/check_disk.c:955 msgid "" "Regular expression to ignore selected path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:949 +#: plugins/check_disk.c:958 msgid "Choose bytes, kB, MB, GB, TB (default: MB)" msgstr "" -#: plugins/check_disk.c:952 +#: plugins/check_disk.c:961 msgid "Ignore all filesystems of indicated type (may be repeated)" msgstr "" -#: plugins/check_disk.c:956 +#: plugins/check_disk.c:972 msgid "Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB" msgstr "" -#: plugins/check_disk.c:958 +#: plugins/check_disk.c:974 msgid "" "Checks all filesystems not matching -r at 100M and 50M. The fs matching the -" "r regex" msgstr "" -#: plugins/check_disk.c:959 +#: plugins/check_disk.c:975 msgid "" "are grouped which means the freespace thresholds are applied to all disks " "together" msgstr "" -#: plugins/check_disk.c:961 +#: plugins/check_disk.c:977 msgid "" "Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use " "100M/50M" msgstr "" -#: plugins/check_disk.c:986 +#: plugins/check_disk.c:1003 #, c-format msgid "%s %s: %s\n" msgstr "" -#: plugins/check_disk.c:986 +#: plugins/check_disk.c:1003 msgid "is not accessible" msgstr "" -#: plugins/check_dns.c:107 +#: plugins/check_dns.c:120 msgid "nslookup returned an error status" msgstr "" -#: plugins/check_dns.c:120 +#: plugins/check_dns.c:138 msgid "Warning plugin error" msgstr "" -#: plugins/check_dns.c:140 +#: plugins/check_dns.c:158 #, c-format msgid "DNS CRITICAL - '%s' returned empty host name string\n" msgstr "" -#: plugins/check_dns.c:150 +#: plugins/check_dns.c:164 msgid "Non-authoritative answer:" msgstr "" -#: plugins/check_dns.c:178 +#: plugins/check_dns.c:205 #, c-format msgid "DNS CRITICAL - '%s' msg parsing exited with no address\n" msgstr "" -#: plugins/check_dns.c:184 +#: plugins/check_dns.c:220 #, c-format msgid "expected '%s' but got '%s'" msgstr "" -#: plugins/check_dns.c:190 +#: plugins/check_dns.c:227 #, c-format msgid "server %s is not authoritative for %s" msgstr "" -#: plugins/check_dns.c:204 plugins/check_dummy.c:75 plugins/check_nagios.c:185 -#: plugins/check_procs.c:295 +#: plugins/check_dns.c:241 plugins/check_dummy.c:72 plugins/check_nagios.c:186 +#: plugins/check_procs.c:318 #, c-format msgid "OK" msgstr "" -#: plugins/check_dns.c:206 plugins/check_dummy.c:78 plugins/check_http.c:953 -#: plugins/check_mysql.c:211 plugins/check_nagios.c:185 -#: plugins/check_procs.c:297 +#: plugins/check_dns.c:243 plugins/check_dummy.c:75 plugins/check_http.c:958 +#: plugins/check_mysql.c:212 plugins/check_nagios.c:186 +#: plugins/check_procs.c:320 #, c-format msgid "WARNING" msgstr "" -#: plugins/check_dns.c:210 +#: plugins/check_dns.c:247 #, c-format msgid "%.3f second response time" msgid_plural "%.3f seconds response time" msgstr[0] "" msgstr[1] "" -#: plugins/check_dns.c:211 +#: plugins/check_dns.c:248 #, c-format msgid ". %s returns %s" msgstr "" -#: plugins/check_dns.c:215 +#: plugins/check_dns.c:252 #, c-format msgid "DNS WARNING - %s\n" msgstr "" -#: plugins/check_dns.c:216 plugins/check_dns.c:219 plugins/check_dns.c:222 +#: plugins/check_dns.c:253 plugins/check_dns.c:256 plugins/check_dns.c:259 msgid " Probably a non-existent host/domain" msgstr "" -#: plugins/check_dns.c:218 +#: plugins/check_dns.c:255 #, c-format msgid "DNS CRITICAL - %s\n" msgstr "" -#: plugins/check_dns.c:221 +#: plugins/check_dns.c:258 #, c-format msgid "DNS UNKNOW - %s\n" msgstr "" -#: plugins/check_dns.c:234 +#: plugins/check_dns.c:271 msgid "Note: nslookup is deprecated and may be removed from future releases." msgstr "" -#: plugins/check_dns.c:235 +#: plugins/check_dns.c:272 msgid "Consider using the `dig' or `host' programs instead. Run nslookup with" msgstr "" -#: plugins/check_dns.c:236 +#: plugins/check_dns.c:273 msgid "the `-sil[ent]' option to prevent this message from appearing." msgstr "" -#: plugins/check_dns.c:241 +#: plugins/check_dns.c:278 #, c-format msgid "No response from DNS %s\n" msgstr "" -#: plugins/check_dns.c:245 +#: plugins/check_dns.c:282 #, c-format msgid "DNS %s has no records\n" msgstr "" -#: plugins/check_dns.c:253 +#: plugins/check_dns.c:290 #, c-format msgid "Connection to DNS %s was refused\n" msgstr "" -#: plugins/check_dns.c:257 +#: plugins/check_dns.c:294 #, c-format msgid "Query was refused by DNS server at %s\n" msgstr "" -#: plugins/check_dns.c:261 +#: plugins/check_dns.c:298 #, c-format msgid "No information returned by DNS server at %s\n" msgstr "" -#: plugins/check_dns.c:267 +#: plugins/check_dns.c:304 #, c-format msgid "Domain %s was not found by the server\n" msgstr "" -#: plugins/check_dns.c:271 +#: plugins/check_dns.c:308 msgid "Network is unreachable\n" msgstr "" -#: plugins/check_dns.c:275 +#: plugins/check_dns.c:312 #, c-format msgid "DNS failure for %s\n" msgstr "" -#: plugins/check_dns.c:339 plugins/check_dns.c:347 plugins/check_dns.c:354 -#: plugins/check_dns.c:359 plugins/check_dns.c:380 plugins/check_dns.c:388 -#: plugins/check_game.c:213 plugins/check_game.c:221 +#: plugins/check_dns.c:376 plugins/check_dns.c:384 plugins/check_dns.c:391 +#: plugins/check_dns.c:396 plugins/check_dns.c:418 plugins/check_dns.c:426 +#: plugins/check_game.c:215 plugins/check_game.c:223 msgid "Input buffer overflow\n" msgstr "" -#: plugins/check_dns.c:416 +#: plugins/check_dns.c:454 msgid "" "This plugin uses the nslookup program to obtain the IP address for the given " "host/domain query." msgstr "" -#: plugins/check_dns.c:417 +#: plugins/check_dns.c:455 msgid "An optional DNS server to use may be specified." msgstr "" -#: plugins/check_dns.c:418 +#: plugins/check_dns.c:456 msgid "" "If no DNS server is specified, the default server(s) specified in /etc/" "resolv.conf will be used." msgstr "" -#: plugins/check_dns.c:427 +#: plugins/check_dns.c:466 msgid "The name or address you want to query" msgstr "" -#: plugins/check_dns.c:429 +#: plugins/check_dns.c:468 msgid "Optional DNS server you want to use for the lookup" msgstr "" -#: plugins/check_dns.c:431 +#: plugins/check_dns.c:470 msgid "" -"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with ." +"Optional IP-ADDRESS you expect the DNS server to return. HOST must end with" msgstr "" -#: plugins/check_dns.c:433 +#: plugins/check_dns.c:471 +msgid "" +"a dot (.). This option can be repeated multiple times (Returns OK if any" +msgstr "" + +#: plugins/check_dns.c:472 +msgid "" +"value match). If multiple addresses are returned at once, you have to match" +msgstr "" + +#: plugins/check_dns.c:473 +msgid "" +"the whole string of addresses separated with commas (sorted alphabetically)." +msgstr "" + +#: plugins/check_dns.c:475 msgid "Optionally expect the DNS server to be authoritative for the lookup" msgstr "" -#: plugins/check_dns.c:435 +#: plugins/check_dns.c:477 msgid "Return warning if elapsed time exceeds value. Default off" msgstr "" -#: plugins/check_dns.c:437 +#: plugins/check_dns.c:479 msgid "Return critical if elapsed time exceeds value. Default off" msgstr "" -#: plugins/check_dummy.c:69 +#: plugins/check_dummy.c:66 msgid "Arguments to check_dummy must be an integer" msgstr "" -#: plugins/check_dummy.c:89 +#: plugins/check_dummy.c:86 #, c-format msgid "Status %d is not a supported error state\n" msgstr "" -#: plugins/check_dummy.c:111 +#: plugins/check_dummy.c:108 msgid "" "This plugin will simply return the state corresponding to the numeric value" msgstr "" -#: plugins/check_dummy.c:113 +#: plugins/check_dummy.c:110 msgid "of the argument with optional text" msgstr "" -#: plugins/check_fping.c:103 plugins/check_hpjd.c:131 plugins/check_ping.c:432 -#: plugins/check_procs.c:159 plugins/check_snmp.c:210 plugins/check_swap.c:178 -#: plugins/check_users.c:75 plugins/urlize.c:117 +#: plugins/check_fping.c:104 plugins/check_hpjd.c:132 plugins/check_ping.c:441 +#: plugins/check_procs.c:167 plugins/check_snmp.c:210 plugins/check_swap.c:179 +#: plugins/check_users.c:77 plugins/urlize.c:114 #, c-format msgid "Could not open pipe: %s\n" msgstr "" -#: plugins/check_fping.c:109 plugins/check_hpjd.c:137 plugins/check_load.c:157 -#: plugins/check_procs.c:165 plugins/check_snmp.c:217 plugins/check_swap.c:184 -#: plugins/check_users.c:81 plugins/urlize.c:123 +#: plugins/check_fping.c:110 plugins/check_hpjd.c:138 plugins/check_load.c:157 +#: plugins/check_procs.c:172 plugins/check_snmp.c:217 plugins/check_swap.c:185 +#: plugins/check_users.c:83 plugins/urlize.c:120 #, c-format msgid "Could not open stderr for %s\n" msgstr "" -#: plugins/check_fping.c:149 +#: plugins/check_fping.c:150 #, c-format msgid "FPING UNKNOW - %s not found\n" msgstr "" -#: plugins/check_fping.c:153 +#: plugins/check_fping.c:154 #, c-format msgid "FPING CRITICAL - %s is unreachable\n" msgstr "" -#: plugins/check_fping.c:158 +#: plugins/check_fping.c:159 #, c-format msgid "FPING CRITICAL - %s is down\n" msgstr "" -#: plugins/check_fping.c:185 +#: plugins/check_fping.c:186 #, c-format msgid "FPING %s - %s (loss=%.0f%%, rta=%f ms)|%s %s\n" msgstr "" -#: plugins/check_fping.c:206 +#: plugins/check_fping.c:207 #, c-format msgid "FPING %s - %s (loss=%.0f%% )|%s\n" msgstr "" -#: plugins/check_fping.c:273 plugins/check_hpjd.c:341 plugins/check_hpjd.c:364 -#: plugins/check_mysql.c:277 plugins/check_mysql.c:326 plugins/check_ntp.c:709 -#: plugins/check_ntp_peer.c:489 plugins/check_ntp_time.c:494 -#: plugins/check_pgsql.c:255 plugins/check_ping.c:290 plugins/check_ping.c:413 -#: plugins/check_radius.c:249 plugins/check_real.c:319 -#: plugins/check_real.c:381 plugins/check_smtp.c:512 plugins/check_smtp.c:638 -#: plugins/check_ssh.c:162 plugins/check_time.c:244 plugins/check_time.c:319 -#: plugins/check_ups.c:503 plugins/check_ups.c:572 +#: plugins/check_fping.c:274 plugins/check_hpjd.c:342 plugins/check_hpjd.c:365 +#: plugins/check_mysql.c:279 plugins/check_mysql.c:337 plugins/check_ntp.c:709 +#: plugins/check_ntp_peer.c:492 plugins/check_ntp_time.c:494 +#: plugins/check_pgsql.c:256 plugins/check_ping.c:299 plugins/check_ping.c:422 +#: plugins/check_radius.c:249 plugins/check_real.c:318 +#: plugins/check_real.c:380 plugins/check_smtp.c:513 plugins/check_smtp.c:639 +#: plugins/check_ssh.c:161 plugins/check_time.c:244 plugins/check_time.c:319 +#: plugins/check_ups.c:504 plugins/check_ups.c:573 msgid "Invalid hostname/address" msgstr "" -#: plugins/check_fping.c:307 +#: plugins/check_fping.c:308 msgid "Packet size must be a positive integer" msgstr "" -#: plugins/check_fping.c:313 +#: plugins/check_fping.c:314 msgid "Packet count must be a positive integer" msgstr "" -#: plugins/check_fping.c:319 plugins/check_ntp.c:733 -#: plugins/check_ntp_peer.c:513 plugins/check_ntp_time.c:518 -#: plugins/check_radius.c:290 plugins/check_time.c:323 +#: plugins/check_fping.c:320 plugins/check_ntp.c:733 +#: plugins/check_ntp_peer.c:516 plugins/check_ntp_time.c:518 +#: plugins/check_radius.c:296 plugins/check_time.c:323 msgid "Hostname was not supplied" msgstr "" -#: plugins/check_fping.c:339 +#: plugins/check_fping.c:340 #, c-format msgid "%s: Only one threshold may be packet loss (%s)\n" msgstr "" -#: plugins/check_fping.c:343 +#: plugins/check_fping.c:344 #, c-format msgid "%s: Only one threshold must be packet loss (%s)\n" msgstr "" -#: plugins/check_fping.c:375 +#: plugins/check_fping.c:376 msgid "" "This plugin will use the fping command to ping the specified host for a fast " "check" msgstr "" -#: plugins/check_fping.c:377 +#: plugins/check_fping.c:378 msgid "Note that it is necessary to set the suid flag on fping." msgstr "" -#: plugins/check_fping.c:386 +#: plugins/check_fping.c:388 msgid "" "name or IP Address of host to ping (IP Address bypasses name lookup, " "reducing system load)" msgstr "" -#: plugins/check_fping.c:388 plugins/check_ping.c:567 +#: plugins/check_fping.c:390 plugins/check_ping.c:577 msgid "warning threshold pair" msgstr "" -#: plugins/check_fping.c:390 plugins/check_ping.c:569 +#: plugins/check_fping.c:392 plugins/check_ping.c:579 msgid "critical threshold pair" msgstr "" -#: plugins/check_fping.c:392 -#, c-format -msgid "size of ICMP packet (default: %d)" -msgstr "" - #: plugins/check_fping.c:394 #, c-format +msgid "size of ICMP packet (default: %d)" +msgstr "" + +#: plugins/check_fping.c:396 +#, c-format msgid "number of ICMP packets to send (default: %d)" msgstr "" -#: plugins/check_fping.c:397 +#: plugins/check_fping.c:399 #, c-format msgid "" "THRESHOLD is ,%% where is the round trip average travel time " "(ms)" msgstr "" -#: plugins/check_fping.c:398 +#: plugins/check_fping.c:400 msgid "" "which triggers a WARNING or CRITICAL state, and is the percentage of" msgstr "" -#: plugins/check_fping.c:399 +#: plugins/check_fping.c:401 msgid "packet loss to trigger an alarm state." msgstr "" -#: plugins/check_game.c:113 +#: plugins/check_game.c:115 #, c-format msgid "CRITICAL - Host type parameter incorrect!\n" msgstr "" -#: plugins/check_game.c:128 +#: plugins/check_game.c:130 #, c-format msgid "CRITICAL - Host not found\n" msgstr "" -#: plugins/check_game.c:132 +#: plugins/check_game.c:134 #, c-format msgid "CRITICAL - Game server down or unavailable\n" msgstr "" -#: plugins/check_game.c:136 +#: plugins/check_game.c:138 #, c-format msgid "CRITICAL - Game server timeout\n" msgstr "" -#: plugins/check_game.c:299 +#: plugins/check_game.c:301 #, c-format msgid "This plugin tests game server connections with the specified host." msgstr "" -#: plugins/check_game.c:308 +#: plugins/check_game.c:311 msgid "Optional port of which to connect" msgstr "" -#: plugins/check_game.c:310 +#: plugins/check_game.c:313 msgid "Field number in raw qstat output that contains game name" msgstr "" -#: plugins/check_game.c:312 +#: plugins/check_game.c:315 msgid "Field number in raw qstat output that contains map name" msgstr "" -#: plugins/check_game.c:314 +#: plugins/check_game.c:317 msgid "Field number in raw qstat output that contains ping time" msgstr "" -#: plugins/check_game.c:320 +#: plugins/check_game.c:323 msgid "" "This plugin uses the 'qstat' command, the popular game server status query " -"tool ." +"tool." msgstr "" -#: plugins/check_game.c:322 +#: plugins/check_game.c:324 msgid "" "If you don't have the package installed, you will need to download it from" msgstr "" -#: plugins/check_game.c:324 +#: plugins/check_game.c:325 msgid "" "http://www.activesw.com/people/steve/qstat.html before you can use this " "plugin." msgstr "" -#: plugins/check_hpjd.c:242 +#: plugins/check_hpjd.c:243 msgid "Paper Jam" msgstr "" -#: plugins/check_hpjd.c:246 +#: plugins/check_hpjd.c:247 msgid "Out of Paper" msgstr "" -#: plugins/check_hpjd.c:251 +#: plugins/check_hpjd.c:252 msgid "Printer Offline" msgstr "" -#: plugins/check_hpjd.c:256 +#: plugins/check_hpjd.c:257 msgid "Peripheral Error" msgstr "" -#: plugins/check_hpjd.c:260 +#: plugins/check_hpjd.c:261 msgid "Intervention Required" msgstr "" -#: plugins/check_hpjd.c:264 +#: plugins/check_hpjd.c:265 msgid "Toner Low" msgstr "" -#: plugins/check_hpjd.c:268 +#: plugins/check_hpjd.c:269 msgid "Insufficient Memory" msgstr "" -#: plugins/check_hpjd.c:272 +#: plugins/check_hpjd.c:273 msgid "A Door is Open" msgstr "" -#: plugins/check_hpjd.c:276 +#: plugins/check_hpjd.c:277 msgid "Output Tray is Full" msgstr "" -#: plugins/check_hpjd.c:280 +#: plugins/check_hpjd.c:281 msgid "Data too Slow for Engine" msgstr "" -#: plugins/check_hpjd.c:284 +#: plugins/check_hpjd.c:285 msgid "Unknown Paper Error" msgstr "" -#: plugins/check_hpjd.c:289 +#: plugins/check_hpjd.c:290 #, c-format msgid "Printer ok - (%s)\n" msgstr "" -#: plugins/check_hpjd.c:394 +#: plugins/check_hpjd.c:395 msgid "This plugin tests the STATUS of an HP printer with a JetDirect card." msgstr "" -#: plugins/check_hpjd.c:395 +#: plugins/check_hpjd.c:396 msgid "Net-snmp must be installed on the computer running the plugin." msgstr "" -#: plugins/check_hpjd.c:404 +#: plugins/check_hpjd.c:406 msgid "The SNMP community name " msgstr "" -#: plugins/check_hpjd.c:405 +#: plugins/check_hpjd.c:407 #, c-format msgid "(default=%s)" msgstr "" -#: plugins/check_http.c:254 +#: plugins/check_http.c:255 msgid "Critical threshold must be integer" msgstr "" -#: plugins/check_http.c:262 +#: plugins/check_http.c:263 msgid "Warning threshold must be integer" msgstr "" -#: plugins/check_http.c:288 plugins/check_tcp.c:563 +#: plugins/check_http.c:289 plugins/check_tcp.c:564 msgid "Invalid certificate expiration period" msgstr "" -#: plugins/check_http.c:297 plugins/check_tcp.c:575 +#: plugins/check_http.c:298 plugins/check_tcp.c:576 msgid "Invalid option - SSL is not available" msgstr "" -#: plugins/check_http.c:315 +#: plugins/check_http.c:316 #, c-format msgid "option f:%d \n" msgstr "" -#: plugins/check_http.c:332 +#: plugins/check_http.c:337 msgid "Invalid port number" msgstr "" -#: plugins/check_http.c:370 +#: plugins/check_http.c:375 #, c-format msgid "Could Not Compile Regular Expression: %s" msgstr "" -#: plugins/check_http.c:384 plugins/check_ntp.c:722 -#: plugins/check_ntp_peer.c:502 plugins/check_ntp_time.c:507 -#: plugins/check_smtp.c:618 plugins/check_ssh.c:154 plugins/check_tcp.c:467 +#: plugins/check_http.c:389 plugins/check_ntp.c:722 +#: plugins/check_ntp_peer.c:505 plugins/check_ntp_time.c:507 +#: plugins/check_smtp.c:619 plugins/check_ssh.c:153 plugins/check_tcp.c:468 msgid "IPv6 support not available" msgstr "" -#: plugins/check_http.c:446 plugins/check_ping.c:417 +#: plugins/check_http.c:451 plugins/check_ping.c:426 msgid "You must specify a server address or host name" msgstr "" -#: plugins/check_http.c:629 +#: plugins/check_http.c:634 msgid "HTTP UNKNOWN - Server date unknown\n" msgstr "" -#: plugins/check_http.c:631 +#: plugins/check_http.c:636 msgid "HTTP CRITICAL - Document modification date unknown\n" msgstr "" -#: plugins/check_http.c:637 +#: plugins/check_http.c:642 #, c-format msgid "HTTP CRITICAL - Server date \"%100s\" unparsable" msgstr "" -#: plugins/check_http.c:639 +#: plugins/check_http.c:644 #, c-format msgid "HTTP CRITICAL - Document date \"%100s\" unparsable" msgstr "" -#: plugins/check_http.c:641 +#: plugins/check_http.c:646 #, c-format msgid "HTTP CRITICAL - Document is %d seconds in the future\n" msgstr "" -#: plugins/check_http.c:646 +#: plugins/check_http.c:651 #, c-format msgid "HTTP CRITICAL - Last modified %.1f days ago\n" msgstr "" -#: plugins/check_http.c:650 +#: plugins/check_http.c:655 #, c-format msgid "HTTP CRITICAL - Last modified %d:%02d:%02d ago\n" msgstr "" -#: plugins/check_http.c:731 +#: plugins/check_http.c:736 msgid "HTTP CRITICAL - Unable to open TCP socket\n" msgstr "" -#: plugins/check_http.c:814 +#: plugins/check_http.c:819 msgid "HTTP CRITICAL - Error on receive\n" msgstr "" -#: plugins/check_http.c:824 +#: plugins/check_http.c:829 msgid "HTTP CRITICAL - No data received from host\n" msgstr "" -#: plugins/check_http.c:874 +#: plugins/check_http.c:879 +#, c-format msgid "Invalid HTTP response received from host\n" msgstr "" -#: plugins/check_http.c:877 +#: plugins/check_http.c:882 #, c-format msgid "Invalid HTTP response received from host on port %d\n" msgstr "" -#: plugins/check_http.c:885 +#: plugins/check_http.c:890 #, c-format msgid "HTTP OK: Status line output matched \"%s\"\n" msgstr "" -#: plugins/check_http.c:897 +#: plugins/check_http.c:902 #, c-format msgid "HTTP CRITICAL: Invalid Status Line (%s)\n" msgstr "" -#: plugins/check_http.c:904 +#: plugins/check_http.c:909 #, c-format msgid "HTTP CRITICAL: Invalid Status (%s)\n" msgstr "" -#: plugins/check_http.c:908 +#: plugins/check_http.c:913 #, c-format msgid "HTTP CRITICAL: %s\n" msgstr "" -#: plugins/check_http.c:912 +#: plugins/check_http.c:917 #, c-format msgid "HTTP WARNING: %s\n" msgstr "" -#: plugins/check_http.c:920 +#: plugins/check_http.c:925 #, c-format msgid "HTTP UNKNOWN" msgstr "" -#: plugins/check_http.c:922 +#: plugins/check_http.c:927 #, c-format msgid "HTTP OK" msgstr "" -#: plugins/check_http.c:924 +#: plugins/check_http.c:929 #, c-format msgid "HTTP WARNING" msgstr "" -#: plugins/check_http.c:926 plugins/check_http.c:989 +#: plugins/check_http.c:931 plugins/check_http.c:994 #, c-format msgid "HTTP CRITICAL" msgstr "" -#: plugins/check_http.c:930 plugins/check_http.c:946 +#: plugins/check_http.c:935 plugins/check_http.c:951 #, c-format msgid " - %s - %.3f second response time %s|%s %s\n" msgstr "" -#: plugins/check_http.c:960 plugins/check_http.c:977 +#: plugins/check_http.c:965 plugins/check_http.c:982 #, c-format msgid "HTTP OK %s - %.3f second response time %s|%s %s\n" msgstr "" -#: plugins/check_http.c:967 +#: plugins/check_http.c:972 #, c-format msgid "HTTP CRITICAL - string not found%s|%s %s\n" msgstr "" -#: plugins/check_http.c:985 +#: plugins/check_http.c:990 msgid "pattern not found" msgstr "" -#: plugins/check_http.c:987 +#: plugins/check_http.c:992 msgid "pattern found" msgstr "" -#: plugins/check_http.c:997 +#: plugins/check_http.c:1002 #, c-format msgid "HTTP CRITICAL - Execute Error: %s\n" msgstr "" -#: plugins/check_http.c:1006 +#: plugins/check_http.c:1011 #, c-format msgid "HTTP WARNING: page size %d too large%s|%s\n" msgstr "" -#: plugins/check_http.c:1010 +#: plugins/check_http.c:1015 #, c-format msgid "HTTP WARNING: page size %d too small%s|%s\n" msgstr "" -#: plugins/check_http.c:1015 +#: plugins/check_http.c:1020 #, c-format msgid "HTTP OK %s - %d bytes in %.3f seconds %s|%s %s\n" msgstr "" -#: plugins/check_http.c:1048 +#: plugins/check_http.c:1053 msgid "HTTP UNKNOWN - Could not allocate addr\n" msgstr "" -#: plugins/check_http.c:1052 +#: plugins/check_http.c:1057 msgid "HTTP UNKNOWN - Could not allocate url\n" msgstr "" -#: plugins/check_http.c:1061 +#: plugins/check_http.c:1066 #, c-format msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n" msgstr "" -#: plugins/check_http.c:1076 +#: plugins/check_http.c:1081 #, c-format msgid "HTTP UNKNOWN - Empty redirect location%s\n" msgstr "" -#: plugins/check_http.c:1083 +#: plugins/check_http.c:1088 msgid "HTTP UNKNOWN - could not allocate url\n" msgstr "" -#: plugins/check_http.c:1123 +#: plugins/check_http.c:1128 #, c-format msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n" msgstr "" -#: plugins/check_http.c:1133 +#: plugins/check_http.c:1138 #, c-format msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n" msgstr "" -#: plugins/check_http.c:1141 +#: plugins/check_http.c:1146 #, c-format msgid "HTTP WARNING - redirection creates an infinite loop - %s://%s:%d%s%s\n" msgstr "" -#: plugins/check_http.c:1156 +#: plugins/check_http.c:1161 #, c-format msgid "HTTP UNKNOWN - Could not allocate server_url%s\n" msgstr "" -#: plugins/check_http.c:1162 +#: plugins/check_http.c:1167 #, c-format msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n" msgstr "" -#: plugins/check_http.c:1167 +#: plugins/check_http.c:1172 #, c-format msgid "Redirection to %s://%s:%d%s\n" msgstr "" -#: plugins/check_http.c:1219 +#: plugins/check_http.c:1224 msgid "This plugin tests the HTTP service on the specified host. It can test" msgstr "" -#: plugins/check_http.c:1220 +#: plugins/check_http.c:1225 msgid "normal (http) and secure (https) servers, follow redirects, search for" msgstr "" -#: plugins/check_http.c:1221 +#: plugins/check_http.c:1226 msgid "strings and regular expressions, check connection times, and report on" msgstr "" -#: plugins/check_http.c:1222 +#: plugins/check_http.c:1227 msgid "certificate expiration times." msgstr "" -#: plugins/check_http.c:1228 +#: plugins/check_http.c:1233 #, c-format msgid "NOTE: One or both of -H and -I must be specified" msgstr "" -#: plugins/check_http.c:1235 +#: plugins/check_http.c:1241 msgid "Host name argument for servers using host headers (virtual host)" msgstr "" -#: plugins/check_http.c:1236 +#: plugins/check_http.c:1242 msgid "Append a port to include it in the header (eg: example.com:5000)" msgstr "" -#: plugins/check_http.c:1238 +#: plugins/check_http.c:1244 msgid "" "IP address or name (use numeric address if possible to bypass DNS lookup)." msgstr "" -#: plugins/check_http.c:1240 +#: plugins/check_http.c:1246 msgid "Port number (default: " msgstr "" -#: plugins/check_http.c:1247 +#: plugins/check_http.c:1253 msgid "Connect via SSL. Port defaults to 443" msgstr "" -#: plugins/check_http.c:1249 +#: plugins/check_http.c:1255 msgid "" "Minimum number of days a certificate has to be valid. Port defaults to 443" msgstr "" -#: plugins/check_http.c:1250 +#: plugins/check_http.c:1256 msgid "(when this option is used the url is not checked.)\n" msgstr "" -#: plugins/check_http.c:1254 +#: plugins/check_http.c:1260 msgid "String to expect in first (status) line of server response (default: " msgstr "" -#: plugins/check_http.c:1256 +#: plugins/check_http.c:1262 msgid "" "If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)" msgstr "" -#: plugins/check_http.c:1258 +#: plugins/check_http.c:1264 msgid "String to expect in the content" msgstr "" -#: plugins/check_http.c:1260 +#: plugins/check_http.c:1266 msgid "URL to GET or POST (default: /)" msgstr "" -#: plugins/check_http.c:1262 +#: plugins/check_http.c:1268 msgid "URL encoded http POST data" msgstr "" -#: plugins/check_http.c:1264 +#: plugins/check_http.c:1270 msgid "Don't wait for document body: stop reading after headers." msgstr "" -#: plugins/check_http.c:1265 +#: plugins/check_http.c:1271 msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)" msgstr "" -#: plugins/check_http.c:1267 +#: plugins/check_http.c:1273 msgid "Warn if document is more than SECONDS old. the number can also be of" msgstr "" -#: plugins/check_http.c:1268 +#: plugins/check_http.c:1274 msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days." msgstr "" -#: plugins/check_http.c:1270 +#: plugins/check_http.c:1276 msgid "specify Content-Type header media type when POSTing\n" msgstr "" -#: plugins/check_http.c:1273 +#: plugins/check_http.c:1279 msgid "Allow regex to span newlines (must precede -r or -R)" msgstr "" -#: plugins/check_http.c:1275 +#: plugins/check_http.c:1281 msgid "Search page for regex STRING" msgstr "" -#: plugins/check_http.c:1277 +#: plugins/check_http.c:1283 msgid "Search page for case-insensitive regex STRING" msgstr "" -#: plugins/check_http.c:1279 +#: plugins/check_http.c:1285 msgid "Return CRITICAL if found, OK if not\n" msgstr "" -#: plugins/check_http.c:1282 +#: plugins/check_http.c:1288 msgid "Username:password on sites with basic authentication" msgstr "" -#: plugins/check_http.c:1284 +#: plugins/check_http.c:1290 msgid "String to be sent in http header as \"User Agent\"" msgstr "" -#: plugins/check_http.c:1286 +#: plugins/check_http.c:1292 msgid "" " Any other tags to be sent in http header. Use multiple times for additional " "headers" msgstr "" -#: plugins/check_http.c:1288 +#: plugins/check_http.c:1294 msgid "Wrap output in HTML link (obsoleted by urlize)" msgstr "" -#: plugins/check_http.c:1290 +#: plugins/check_http.c:1296 msgid "How to handle redirected pages" msgstr "" -#: plugins/check_http.c:1292 +#: plugins/check_http.c:1298 msgid "Minimum page size required (bytes) : Maximum page size required (bytes)" msgstr "" -#: plugins/check_http.c:1301 +#: plugins/check_http.c:1308 msgid "This plugin will attempt to open an HTTP connection with the host." msgstr "" -#: plugins/check_http.c:1302 +#: plugins/check_http.c:1309 msgid "" "Successful connects return STATE_OK, refusals and timeouts return " "STATE_CRITICAL" msgstr "" -#: plugins/check_http.c:1303 +#: plugins/check_http.c:1310 msgid "" "other errors return STATE_UNKNOWN. Successful connects, but incorrect " "reponse" msgstr "" -#: plugins/check_http.c:1304 +#: plugins/check_http.c:1311 msgid "" "messages from the host result in STATE_WARNING return values. If you are" msgstr "" -#: plugins/check_http.c:1305 +#: plugins/check_http.c:1312 msgid "" "checking a virtual server that uses 'host headers' you must supply the FQDN" msgstr "" -#: plugins/check_http.c:1306 +#: plugins/check_http.c:1313 msgid "(fully qualified domain name) as the [host_name] argument." msgstr "" -#: plugins/check_http.c:1309 +#: plugins/check_http.c:1319 msgid "This plugin can also check whether an SSL enabled web server is able to" msgstr "" -#: plugins/check_http.c:1310 +#: plugins/check_http.c:1320 msgid "serve content (optionally within a specified time) or whether the X509 " msgstr "" -#: plugins/check_http.c:1311 +#: plugins/check_http.c:1321 msgid "certificate is still valid for the specified number of days." msgstr "" -#: plugins/check_http.c:1314 +#: plugins/check_http.c:1325 msgid "" "When the 'www.verisign.com' server returns its content within 5 seconds," msgstr "" -#: plugins/check_http.c:1315 +#: plugins/check_http.c:1326 msgid "" "a STATE_OK will be returned. When the server returns its content but exceeds" msgstr "" -#: plugins/check_http.c:1316 +#: plugins/check_http.c:1327 msgid "" "the 5-second threshold, a STATE_WARNING will be returned. When an error " "occurs," msgstr "" -#: plugins/check_http.c:1317 +#: plugins/check_http.c:1328 msgid "a STATE_CRITICAL will be returned." msgstr "" -#: plugins/check_http.c:1320 +#: plugins/check_http.c:1331 msgid "" "When the certificate of 'www.verisign.com' is valid for more than 14 days," msgstr "" -#: plugins/check_http.c:1321 +#: plugins/check_http.c:1332 msgid "" "a STATE_OK is returned. When the certificate is still valid, but for less " "than" msgstr "" -#: plugins/check_http.c:1322 +#: plugins/check_http.c:1333 msgid "" "14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when" msgstr "" -#: plugins/check_http.c:1323 +#: plugins/check_http.c:1334 msgid "the certificate is expired." msgstr "" -#: plugins/check_ldap.c:132 +#: plugins/check_ldap.c:136 #, c-format msgid "Could not connect to the server at port %i\n" msgstr "" -#: plugins/check_ldap.c:141 +#: plugins/check_ldap.c:145 #, c-format msgid "Could not set protocol version %d\n" msgstr "" -#: plugins/check_ldap.c:156 +#: plugins/check_ldap.c:160 #, c-format msgid "Could not init TLS at port %i!\n" msgstr "" -#: plugins/check_ldap.c:160 +#: plugins/check_ldap.c:164 #, c-format msgid "TLS not supported by the libraries!\n" msgstr "" -#: plugins/check_ldap.c:180 +#: plugins/check_ldap.c:184 #, c-format msgid "Could not init startTLS at port %i!\n" msgstr "" -#: plugins/check_ldap.c:184 +#: plugins/check_ldap.c:188 #, c-format msgid "startTLS not supported by the library, needs LDAPv3!\n" msgstr "" -#: plugins/check_ldap.c:194 +#: plugins/check_ldap.c:198 #, c-format msgid "Could not bind to the ldap-server\n" msgstr "" -#: plugins/check_ldap.c:203 +#: plugins/check_ldap.c:207 #, c-format msgid "Could not search/find objectclasses in %s\n" msgstr "" -#: plugins/check_ldap.c:226 +#: plugins/check_ldap.c:230 #, c-format msgid "LDAP %s - %.3f seconds response time|%s\n" msgstr "" -#: plugins/check_ldap.c:338 plugins/check_ldap.c:345 +#: plugins/check_ldap.c:342 plugins/check_ldap.c:349 #, c-format msgid "%s cannot be combined with %s" msgstr "" -#: plugins/check_ldap.c:351 plugins/check_ping.c:241 +#: plugins/check_ldap.c:355 plugins/check_ping.c:250 msgid "IPv6 support not available\n" msgstr "" -#: plugins/check_ldap.c:374 +#: plugins/check_ldap.c:378 msgid "Please specify the host name\n" msgstr "" -#: plugins/check_ldap.c:377 +#: plugins/check_ldap.c:381 msgid "Please specify the LDAP base\n" msgstr "" -#: plugins/check_ldap.c:405 +#: plugins/check_ldap.c:410 msgid "ldap attribute to search (default: \"(objectclass=*)\"" msgstr "" -#: plugins/check_ldap.c:407 +#: plugins/check_ldap.c:412 msgid "ldap base (eg. ou=my unit, o=my org, c=at" msgstr "" -#: plugins/check_ldap.c:409 +#: plugins/check_ldap.c:414 msgid "ldap bind DN (if required)" msgstr "" -#: plugins/check_ldap.c:411 +#: plugins/check_ldap.c:416 msgid "ldap password (if required)" msgstr "" -#: plugins/check_ldap.c:413 +#: plugins/check_ldap.c:418 msgid "use starttls mechanism introduced in protocol version 3" msgstr "" -#: plugins/check_ldap.c:415 -#, c-format -msgid "use ldaps (ldap v2 ssl method). this also sets the default port to %s" +#: plugins/check_ldap.c:420 +msgid "use ldaps (ldap v2 ssl method). this also sets the default port to" msgstr "" -#: plugins/check_ldap.c:419 +#: plugins/check_ldap.c:424 msgid "use ldap protocol version 2" msgstr "" -#: plugins/check_ldap.c:421 +#: plugins/check_ldap.c:426 msgid "use ldap protocol version 3" msgstr "" -#: plugins/check_ldap.c:431 -msgid "Note:" +#: plugins/check_ldap.c:427 +msgid "default protocol version:" msgstr "" -#: plugins/check_ldap.c:432 +#: plugins/check_ldap.c:438 msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be" msgstr "" -#: plugins/check_ldap.c:433 +#: plugins/check_ldap.c:439 #, c-format msgid "" -"implied (using default port %i) unless --port=636 is specified. In that case " -"%s" +" implied (using default port %i) unless --port=636 is specified. In that " +"case\n" msgstr "" -#: plugins/check_ldap.c:434 +#: plugins/check_ldap.c:440 msgid "'SSL on connect' will be used no matter how the plugin was called." msgstr "" -#: plugins/check_ldap.c:435 +#: plugins/check_ldap.c:441 msgid "" "This detection is deprecated, please use 'check_ldap' with the '--starttls' " "or '--ssl' flags" msgstr "" -#: plugins/check_ldap.c:436 +#: plugins/check_ldap.c:442 msgid "to define the behaviour explicitly instead." msgstr "" -#: plugins/check_load.c:94 +#: plugins/check_load.c:91 msgid "Warning threshold must be float or float triplet!\n" msgstr "" -#: plugins/check_load.c:136 plugins/check_load.c:152 +#: plugins/check_load.c:136 plugins/check_load.c:152 plugins/check_procs.c:176 #, c-format msgid "Error opening %s\n" msgstr "" @@ -1627,19 +1653,19 @@ msgstr "" msgid "This plugin tests the current system load average." msgstr "" -#: plugins/check_load.c:315 +#: plugins/check_load.c:316 msgid "Exit with WARNING status if load average exceeds WLOADn" msgstr "" -#: plugins/check_load.c:317 +#: plugins/check_load.c:318 msgid "Exit with CRITICAL status if load average exceed CLOADn" msgstr "" -#: plugins/check_load.c:318 +#: plugins/check_load.c:319 msgid "the load average format is the same used by \"uptime\" and \"w\"" msgstr "" -#: plugins/check_load.c:320 +#: plugins/check_load.c:321 msgid "Divide the load averages by the number of CPUs (when possible)" msgstr "" @@ -1700,109 +1726,108 @@ msgstr "" msgid "two variables recorded in an MRTG log file." msgstr "" -#: plugins/check_mrtg.c:335 +#: plugins/check_mrtg.c:336 msgid "The MRTG log file containing the data you want to monitor" msgstr "" -#: plugins/check_mrtg.c:337 +#: plugins/check_mrtg.c:338 msgid "Minutes before MRTG data is considered to be too old" msgstr "" -#: plugins/check_mrtg.c:339 +#: plugins/check_mrtg.c:340 msgid "Should we check average or maximum values?" msgstr "" -#: plugins/check_mrtg.c:341 +#: plugins/check_mrtg.c:342 msgid "Which variable set should we inspect? (1 or 2)" msgstr "" -#: plugins/check_mrtg.c:343 +#: plugins/check_mrtg.c:344 msgid "Threshold value for data to result in WARNING status" msgstr "" -#: plugins/check_mrtg.c:345 +#: plugins/check_mrtg.c:346 msgid "Threshold value for data to result in CRITICAL status" msgstr "" -#: plugins/check_mrtg.c:347 +#: plugins/check_mrtg.c:348 msgid "Type label for data (Examples: Conns, \"Processor Load\", In, Out)" msgstr "" -#: plugins/check_mrtg.c:349 +#: plugins/check_mrtg.c:350 msgid "Option units label for data (Example: Packets/Sec, Errors/Sec," msgstr "" -#: plugins/check_mrtg.c:350 +#: plugins/check_mrtg.c:351 #, c-format msgid "\"Bytes Per Second\", \"%% Utilization\")" msgstr "" -#: plugins/check_mrtg.c:352 +#: plugins/check_mrtg.c:354 msgid "" "If the value exceeds the threshold, a WARNING status is returned. If" msgstr "" -#: plugins/check_mrtg.c:353 +#: plugins/check_mrtg.c:355 msgid "" "the value exceeds the threshold, a CRITICAL status is returned. If" msgstr "" -#: plugins/check_mrtg.c:354 +#: plugins/check_mrtg.c:356 msgid "the data in the log file is older than old, a WARNING" msgstr "" -#: plugins/check_mrtg.c:355 -msgid "status is returned and a warning message is printed." -msgstr "" - #: plugins/check_mrtg.c:357 -msgid "" -"This plugin is useful for monitoring MRTG data that does not correspond to" -msgstr "" - -#: plugins/check_mrtg.c:358 -msgid "" -"bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth)." -msgstr "" - -#: plugins/check_mrtg.c:359 -msgid "" -"It can be used to monitor any kind of data that MRTG is monitoring - errors," +msgid "status is returned and a warning message is printed." msgstr "" #: plugins/check_mrtg.c:360 msgid "" -"packets/sec, etc. I use MRTG in conjuction with the Novell NLM that allows" +"This plugin is useful for monitoring MRTG data that does not correspond to" msgstr "" #: plugins/check_mrtg.c:361 msgid "" -"me to track processor utilization, user connections, drive space, etc and" +"bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth)." msgstr "" #: plugins/check_mrtg.c:362 -msgid "this plugin works well for monitoring that kind of data as well." +msgid "" +"It can be used to monitor any kind of data that MRTG is monitoring - errors," +msgstr "" + +#: plugins/check_mrtg.c:363 +msgid "" +"packets/sec, etc. I use MRTG in conjuction with the Novell NLM that allows" +msgstr "" + +#: plugins/check_mrtg.c:364 +msgid "" +"me to track processor utilization, user connections, drive space, etc and" msgstr "" #: plugins/check_mrtg.c:365 +msgid "this plugin works well for monitoring that kind of data as well." +msgstr "" + +#: plugins/check_mrtg.c:368 msgid "" "- This plugin only monitors one of the two variables stored in the MRTG log" msgstr "" -#: plugins/check_mrtg.c:366 -msgid " file. If you want to monitor both values you will have to define two" +#: plugins/check_mrtg.c:369 +msgid "file. If you want to monitor both values you will have to define two" msgstr "" -#: plugins/check_mrtg.c:367 -msgid "" -" commands with different values for the argument. Of course," +#: plugins/check_mrtg.c:370 +msgid "commands with different values for the argument. Of course," msgstr "" -#: plugins/check_mrtg.c:368 +#: plugins/check_mrtg.c:371 msgid "you can always hack the code to make this plugin work for you..." msgstr "" -#: plugins/check_mrtg.c:369 +#: plugins/check_mrtg.c:372 msgid "" "- MRTG stands for the Multi Router Traffic Grapher. It can be downloaded " "from" @@ -1851,625 +1876,702 @@ msgstr "" msgid "the or thresholds (in Bytes/sec), a WARNING status results." msgstr "" -#: plugins/check_mrtgtraf.c:355 +#: plugins/check_mrtgtraf.c:356 msgid "File to read log from" msgstr "" -#: plugins/check_mrtgtraf.c:357 +#: plugins/check_mrtgtraf.c:358 msgid "Minutes after which log expires" msgstr "" -#: plugins/check_mrtgtraf.c:359 +#: plugins/check_mrtgtraf.c:360 msgid "Test average or maximum" msgstr "" -#: plugins/check_mrtgtraf.c:361 +#: plugins/check_mrtgtraf.c:362 msgid "Warning threshold pair ," msgstr "" -#: plugins/check_mrtgtraf.c:363 +#: plugins/check_mrtgtraf.c:364 msgid "Critical threshold pair ," msgstr "" -#: plugins/check_mrtgtraf.c:366 +#: plugins/check_mrtgtraf.c:368 msgid "" "- MRTG stands for Multi Router Traffic Grapher. It can be downloaded from" msgstr "" -#: plugins/check_mrtgtraf.c:368 +#: plugins/check_mrtgtraf.c:370 msgid "- While MRTG can monitor things other than traffic rates, this" msgstr "" -#: plugins/check_mrtgtraf.c:369 +#: plugins/check_mrtgtraf.c:371 msgid " plugin probably won't work with much else without modification." msgstr "" -#: plugins/check_mrtgtraf.c:370 +#: plugins/check_mrtgtraf.c:372 msgid "- The calculated i/o rates are a little off from what MRTG actually" msgstr "" -#: plugins/check_mrtgtraf.c:371 +#: plugins/check_mrtgtraf.c:373 msgid " reports. I'm not sure why this is right now, but will look into it" msgstr "" -#: plugins/check_mrtgtraf.c:372 +#: plugins/check_mrtgtraf.c:374 msgid " for future enhancements of this plugin." msgstr "" -#: plugins/check_mrtgtraf.c:382 +#: plugins/check_mrtgtraf.c:387 #, c-format msgid "Usage" msgstr "" -#: plugins/check_mysql.c:129 +#: plugins/check_mysql.c:130 #, c-format msgid "slave query error: %s\n" msgstr "" -#: plugins/check_mysql.c:136 +#: plugins/check_mysql.c:137 #, c-format msgid "slave store_result error: %s\n" msgstr "" -#: plugins/check_mysql.c:142 +#: plugins/check_mysql.c:143 msgid "No slaves defined" msgstr "" -#: plugins/check_mysql.c:150 +#: plugins/check_mysql.c:151 #, c-format msgid "slave fetch row error: %s\n" msgstr "" -#: plugins/check_mysql.c:155 +#: plugins/check_mysql.c:156 #, c-format msgid "Slave running: %s" msgstr "" -#: plugins/check_mysql.c:373 +#: plugins/check_mysql.c:384 msgid "This program tests connections to a mysql server" msgstr "" -#: plugins/check_mysql.c:384 -msgid "Check database with indicated name" -msgstr "" - -#: plugins/check_mysql.c:386 -msgid "Connect using the indicated username" -msgstr "" - -#: plugins/check_mysql.c:388 -msgid "Use the indicated password to authenticate the connection" -msgstr "" - -#: plugins/check_mysql.c:389 -msgid "==> IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!! <==" -msgstr "" - -#: plugins/check_mysql.c:390 -msgid "Your clear-text password will be visible as a process table entry" -msgstr "" - -#: plugins/check_mysql.c:392 -msgid "Check if the slave thread is running properly." -msgstr "" - -#: plugins/check_mysql.c:394 -msgid "" -"Exit with WARNING status if slave server is more than INTEGER seconds behind " -"master" -msgstr "" - -#: plugins/check_mysql.c:396 -msgid "" -"Exit with CRITICAL status if slave server is more then INTEGER seconds " -"behind master" -msgstr "" - -#: plugins/check_mysql.c:397 -msgid "There are no required arguments. By default, the local database with" +#: plugins/check_mysql.c:395 +msgid "Use the specified socket (has no effect if -H is used)" msgstr "" #: plugins/check_mysql.c:398 -#, c-format -msgid "a server listening on MySQL standard port %d will be checked\n" +msgid "Check database with indicated name" msgstr "" -#: plugins/check_nagios.c:107 +#: plugins/check_mysql.c:400 +msgid "Connect using the indicated username" +msgstr "" + +#: plugins/check_mysql.c:402 +msgid "Use the indicated password to authenticate the connection" +msgstr "" + +#: plugins/check_mysql.c:403 +msgid "IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!" +msgstr "" + +#: plugins/check_mysql.c:404 +msgid "Your clear-text password could be visible as a process table entry" +msgstr "" + +#: plugins/check_mysql.c:406 +msgid "Check if the slave thread is running properly." +msgstr "" + +#: plugins/check_mysql.c:408 +msgid "Exit with WARNING status if slave server is more than INTEGER seconds" +msgstr "" + +#: plugins/check_mysql.c:409 plugins/check_mysql.c:412 +msgid "behind master" +msgstr "" + +#: plugins/check_mysql.c:411 +msgid "Exit with CRITICAL status if slave server is more then INTEGER seconds" +msgstr "" + +#: plugins/check_mysql.c:415 +msgid "" +"There are no required arguments. By default, the local database is checked" +msgstr "" + +#: plugins/check_mysql.c:416 +msgid "" +"using the default unix socket. You can force TCP on localhost by using an" +msgstr "" + +#: plugins/check_mysql.c:417 +msgid "IP address or FQDN ('localhost' will use the socket as well)." +msgstr "" + +#: plugins/check_nagios.c:108 msgid "Cannot open status log for reading!" msgstr "" -#: plugins/check_nagios.c:157 +#: plugins/check_nagios.c:158 #, c-format msgid "Found process: %s %s\n" msgstr "" -#: plugins/check_nagios.c:171 +#: plugins/check_nagios.c:172 msgid "Could not locate a running Nagios process!" msgstr "" -#: plugins/check_nagios.c:175 +#: plugins/check_nagios.c:176 msgid "Cannot parse Nagios log file for valid time" msgstr "" -#: plugins/check_nagios.c:186 plugins/check_procs.c:307 +#: plugins/check_nagios.c:187 plugins/check_procs.c:330 #, c-format msgid "%d process" msgid_plural "%d processes" msgstr[0] "" msgstr[1] "" -#: plugins/check_nagios.c:189 +#: plugins/check_nagios.c:190 #, c-format msgid "status log updated %d second ago" msgid_plural "status log updated %d seconds ago" msgstr[0] "" msgstr[1] "" -#: plugins/check_nagios.c:226 plugins/check_nagios.c:255 +#: plugins/check_nagios.c:227 plugins/check_nagios.c:256 msgid "Expiration time must be an integer (seconds)\n" msgstr "" -#: plugins/check_nagios.c:267 +#: plugins/check_nagios.c:268 msgid "You must provide the status_log\n" msgstr "" -#: plugins/check_nagios.c:270 +#: plugins/check_nagios.c:271 msgid "You must provide a process string\n" msgstr "" -#: plugins/check_nagios.c:284 -msgid "" -"This plugin checks the status of the Nagios process on the local machine" -msgstr "" - #: plugins/check_nagios.c:285 msgid "" -"The plugin will check to make sure the Nagios status log is no older than" +"This plugin checks the status of the Nagios process on the local machine" msgstr "" #: plugins/check_nagios.c:286 -msgid "the number of minutes specified by the expires option." +msgid "" +"The plugin will check to make sure the Nagios status log is no older than" msgstr "" #: plugins/check_nagios.c:287 +msgid "the number of minutes specified by the expires option." +msgstr "" + +#: plugins/check_nagios.c:288 msgid "" "It also checks the process table for a process matching the command argument." msgstr "" -#: plugins/check_nagios.c:296 +#: plugins/check_nagios.c:298 msgid "Name of the log file to check" msgstr "" -#: plugins/check_nagios.c:298 +#: plugins/check_nagios.c:300 msgid "Minutes aging after which logfile is considered stale" msgstr "" -#: plugins/check_nagios.c:300 +#: plugins/check_nagios.c:302 msgid "Substring to search for in process arguments" msgstr "" -#: plugins/check_nt.c:141 +#: plugins/check_nt.c:144 #, c-format msgid "Wrong client version - running: %s, required: %s" msgstr "" -#: plugins/check_nt.c:152 plugins/check_nt.c:212 +#: plugins/check_nt.c:155 plugins/check_nt.c:215 msgid "missing -l parameters" msgstr "" -#: plugins/check_nt.c:154 +#: plugins/check_nt.c:157 msgid "wrong -l parameter." msgstr "" -#: plugins/check_nt.c:158 +#: plugins/check_nt.c:161 msgid "CPU Load" msgstr "" -#: plugins/check_nt.c:181 +#: plugins/check_nt.c:184 #, c-format msgid " %lu%% (%lu min average)" msgstr "" -#: plugins/check_nt.c:183 +#: plugins/check_nt.c:186 #, c-format msgid " '%lu min avg Load'=%lu%%;%lu;%lu;0;100" msgstr "" -#: plugins/check_nt.c:193 +#: plugins/check_nt.c:196 msgid "not enough values for -l parameters" msgstr "" -#: plugins/check_nt.c:205 +#: plugins/check_nt.c:208 #, c-format msgid "System Uptime - %u day(s) %u hour(s) %u minute(s)" msgstr "" -#: plugins/check_nt.c:214 +#: plugins/check_nt.c:217 msgid "wrong -l argument" msgstr "" -#: plugins/check_nt.c:225 -#, c-format -msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)" -msgstr "" - #: plugins/check_nt.c:228 #, c-format +msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)" +msgstr "" + +#: plugins/check_nt.c:231 +#, c-format msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f" msgstr "" -#: plugins/check_nt.c:242 +#: plugins/check_nt.c:245 msgid "Free disk space : Invalid drive " msgstr "" -#: plugins/check_nt.c:252 +#: plugins/check_nt.c:255 msgid "No service/process specified" msgstr "" -#: plugins/check_nt.c:276 +#: plugins/check_nt.c:279 #, c-format msgid "" "Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)" msgstr "" -#: plugins/check_nt.c:279 +#: plugins/check_nt.c:282 #, c-format msgid "'Memory usage'=%.2fMb;%.2f;%.2f;0.00;%.2f" msgstr "" -#: plugins/check_nt.c:315 plugins/check_nt.c:401 +#: plugins/check_nt.c:318 plugins/check_nt.c:404 plugins/check_nt.c:434 msgid "No counter specified" msgstr "" -#: plugins/check_nt.c:348 +#: plugins/check_nt.c:351 msgid "Minimum value contains non-numbers" msgstr "" -#: plugins/check_nt.c:352 +#: plugins/check_nt.c:355 msgid "Maximum value contains non-numbers" msgstr "" -#: plugins/check_nt.c:359 +#: plugins/check_nt.c:362 msgid "No unit counter specified" msgstr "" -#: plugins/check_nt.c:431 +#: plugins/check_nt.c:449 msgid "Please specify a variable to check" msgstr "" -#: plugins/check_nt.c:513 +#: plugins/check_nt.c:530 msgid "Server port must be an integer\n" msgstr "" -#: plugins/check_nt.c:566 +#: plugins/check_nt.c:585 msgid "None" msgstr "" -#: plugins/check_nt.c:579 +#: plugins/check_nt.c:598 msgid "could not fetch information from server\n" msgstr "" -#: plugins/check_nt.c:623 +#: plugins/check_nt.c:642 msgid "This plugin collects data from the NSClient service running on a" msgstr "" -#: plugins/check_nt.c:624 +#: plugins/check_nt.c:643 msgid "Windows NT/2000/XP/2003 server." msgstr "" -#: plugins/check_nt.c:634 +#: plugins/check_nt.c:654 msgid "Name of the host to check" msgstr "" -#: plugins/check_nt.c:636 +#: plugins/check_nt.c:656 msgid "Optional port number (default: " msgstr "" -#: plugins/check_nt.c:639 +#: plugins/check_nt.c:659 msgid "Password needed for the request" msgstr "" -#: plugins/check_nt.c:641 plugins/check_nwstat.c:1664 -#: plugins/check_overcr.c:435 +#: plugins/check_nt.c:661 plugins/check_nwstat.c:1665 +#: plugins/check_overcr.c:436 msgid "Threshold which will result in a warning status" msgstr "" -#: plugins/check_nt.c:643 plugins/check_nwstat.c:1666 -#: plugins/check_overcr.c:437 +#: plugins/check_nt.c:663 plugins/check_nwstat.c:1667 +#: plugins/check_overcr.c:438 msgid "Threshold which will result in a critical status" msgstr "" -#: plugins/check_nt.c:645 +#: plugins/check_nt.c:665 msgid "Seconds before connection attempt times out (default: " msgstr "" -#: plugins/check_nt.c:648 +#: plugins/check_nt.c:668 msgid "Print this help screen" msgstr "" -#: plugins/check_nt.c:650 +#: plugins/check_nt.c:670 msgid "Print version information" msgstr "" -#: plugins/check_nt.c:652 +#: plugins/check_nt.c:672 msgid "Variable to check" msgstr "" -#: plugins/check_nt.c:653 +#: plugins/check_nt.c:673 msgid "Valid variables are:" msgstr "" -#: plugins/check_nt.c:655 +#: plugins/check_nt.c:675 msgid "Get the NSClient version" msgstr "" -#: plugins/check_nt.c:656 +#: plugins/check_nt.c:676 msgid "If -l is specified, will return warning if versions differ." msgstr "" -#: plugins/check_nt.c:658 +#: plugins/check_nt.c:678 msgid "Average CPU load on last x minutes." msgstr "" -#: plugins/check_nt.c:659 +#: plugins/check_nt.c:679 msgid "Request a -l parameter with the following syntax:" msgstr "" -#: plugins/check_nt.c:660 +#: plugins/check_nt.c:680 msgid "-l ,,." msgstr "" -#: plugins/check_nt.c:661 +#: plugins/check_nt.c:681 msgid " should be less than 24*60." msgstr "" -#: plugins/check_nt.c:662 +#: plugins/check_nt.c:682 msgid "" "Thresholds are percentage and up to 10 requests can be done in one shot." msgstr "" -#: plugins/check_nt.c:665 +#: plugins/check_nt.c:685 msgid "Get the uptime of the machine." msgstr "" -#: plugins/check_nt.c:666 +#: plugins/check_nt.c:686 msgid "No specific parameters. No warning or critical threshold" msgstr "" -#: plugins/check_nt.c:668 +#: plugins/check_nt.c:688 msgid "Size and percentage of disk use." msgstr "" -#: plugins/check_nt.c:669 +#: plugins/check_nt.c:689 msgid "Request a -l parameter containing the drive letter only." msgstr "" -#: plugins/check_nt.c:670 plugins/check_nt.c:673 +#: plugins/check_nt.c:690 plugins/check_nt.c:693 msgid "Warning and critical thresholds can be specified with -w and -c." msgstr "" -#: plugins/check_nt.c:672 +#: plugins/check_nt.c:692 msgid "Memory use." msgstr "" -#: plugins/check_nt.c:675 +#: plugins/check_nt.c:695 msgid "Check the state of one or several services." msgstr "" -#: plugins/check_nt.c:676 plugins/check_nt.c:685 +#: plugins/check_nt.c:696 plugins/check_nt.c:705 msgid "Request a -l parameters with the following syntax:" msgstr "" -#: plugins/check_nt.c:677 +#: plugins/check_nt.c:697 msgid "-l ,,,..." msgstr "" -#: plugins/check_nt.c:678 +#: plugins/check_nt.c:698 msgid "You can specify -d SHOWALL in case you want to see working services" msgstr "" -#: plugins/check_nt.c:679 +#: plugins/check_nt.c:699 msgid "in the returned string." msgstr "" -#: plugins/check_nt.c:681 +#: plugins/check_nt.c:701 msgid "Check if one or several process are running." msgstr "" -#: plugins/check_nt.c:682 +#: plugins/check_nt.c:702 msgid "Same syntax as SERVICESTATE." msgstr "" -#: plugins/check_nt.c:684 +#: plugins/check_nt.c:704 msgid "Check any performance counter of Windows NT/2000." msgstr "" -#: plugins/check_nt.c:686 +#: plugins/check_nt.c:706 msgid "-l \"\\\\\\\\counter\",\"" msgstr "" -#: plugins/check_nt.c:687 +#: plugins/check_nt.c:707 msgid "The parameter is optional and is given to a printf " msgstr "" -#: plugins/check_nt.c:688 +#: plugins/check_nt.c:708 msgid "output command which requires a float parameter." msgstr "" -#: plugins/check_nt.c:689 +#: plugins/check_nt.c:709 #, c-format msgid "If does not include \"%%\", it is used as a label." msgstr "" -#: plugins/check_nt.c:690 +#: plugins/check_nt.c:710 plugins/check_nt.c:725 msgid "Some examples:" msgstr "" -#: plugins/check_nt.c:694 +#: plugins/check_nt.c:714 +msgid "Check any performance counter object of Windows NT/2000." +msgstr "" + +#: plugins/check_nt.c:715 +msgid "" +"Syntax: check_nt -H -p -v INSTANCES -l " +msgstr "" + +#: plugins/check_nt.c:716 +msgid " is a Windows Perfmon Counter object (eg. Process)," +msgstr "" + +#: plugins/check_nt.c:717 +msgid "if it is two words, it should be enclosed in quotes" +msgstr "" + +#: plugins/check_nt.c:718 +msgid "The returned results will be a comma-separated list of instances on " +msgstr "" + +#: plugins/check_nt.c:719 +msgid " the selected computer for that object." +msgstr "" + +#: plugins/check_nt.c:720 +msgid "" +"The purpose of this is to be run from command line to determine what " +"instances" +msgstr "" + +#: plugins/check_nt.c:721 +msgid "" +" are available for monitoring without having to log onto the Windows server" +msgstr "" + +#: plugins/check_nt.c:722 +msgid " to run Perfmon directly." +msgstr "" + +#: plugins/check_nt.c:723 +msgid "It can also be used in scripts that automatically create Nagios service" +msgstr "" + +#: plugins/check_nt.c:724 +msgid " configuration files." +msgstr "" + +#: plugins/check_nt.c:726 +msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process" +msgstr "" + +#: plugins/check_nt.c:729 msgid "" "- The NSClient service should be running on the server to get any information" msgstr "" -#: plugins/check_nt.c:696 +#: plugins/check_nt.c:731 msgid "- Critical thresholds should be lower than warning thresholds" msgstr "" -#: plugins/check_nt.c:697 +#: plugins/check_nt.c:732 msgid "- Default port 1248 is sometimes in use by other services. The error" msgstr "" -#: plugins/check_nt.c:698 +#: plugins/check_nt.c:733 msgid "" "output when this happens contains \"Cannot map xxxxx to protocol number\"." msgstr "" -#: plugins/check_nt.c:699 +#: plugins/check_nt.c:734 msgid "One fix for this is to change the port to something else on check_nt " msgstr "" -#: plugins/check_nt.c:700 +#: plugins/check_nt.c:735 msgid "and on the client service it's connecting to." msgstr "" -#: plugins/check_ntp.c:804 plugins/check_ntp_peer.c:586 -#: plugins/check_ntp_time.c:563 +#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:592 +#: plugins/check_ntp_time.c:566 +#, c-format msgid "NTP CRITICAL:" msgstr "" -#: plugins/check_ntp.c:807 plugins/check_ntp_peer.c:589 -#: plugins/check_ntp_time.c:566 +#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:595 +#: plugins/check_ntp_time.c:569 +#, c-format msgid "NTP WARNING:" msgstr "" -#: plugins/check_ntp.c:810 plugins/check_ntp_peer.c:592 -#: plugins/check_ntp_time.c:569 +#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:598 +#: plugins/check_ntp_time.c:572 +#, c-format msgid "NTP OK:" msgstr "" -#: plugins/check_ntp.c:813 plugins/check_ntp_peer.c:595 -#: plugins/check_ntp_time.c:572 +#: plugins/check_ntp.c:816 plugins/check_ntp_peer.c:601 +#: plugins/check_ntp_time.c:575 +#, c-format msgid "NTP UNKNOWN:" msgstr "" -#: plugins/check_ntp.c:817 plugins/check_ntp_peer.c:602 -#: plugins/check_ntp_time.c:576 +#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:610 +#: plugins/check_ntp_time.c:579 msgid "Offset unknown" msgstr "" -#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:605 -#: plugins/check_ntp_time.c:579 +#: plugins/check_ntp.c:823 plugins/check_ntp_peer.c:613 +#: plugins/check_ntp_time.c:582 msgid "Offset" msgstr "" -#: plugins/check_ntp.c:841 plugins/check_ntp_peer.c:630 +#: plugins/check_ntp.c:844 plugins/check_ntp_peer.c:638 msgid "This plugin checks the selected ntp server" msgstr "" -#: plugins/check_ntp.c:849 plugins/check_ntp_peer.c:640 -#: plugins/check_ntp_time.c:604 +#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:649 +#: plugins/check_ntp_time.c:608 msgid "Offset to result in warning status (seconds)" msgstr "" -#: plugins/check_ntp.c:851 plugins/check_ntp_peer.c:642 -#: plugins/check_ntp_time.c:606 +#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:651 +#: plugins/check_ntp_time.c:610 msgid "Offset to result in critical status (seconds)" msgstr "" -#: plugins/check_ntp.c:853 plugins/check_ntp_peer.c:648 +#: plugins/check_ntp.c:857 plugins/check_ntp_peer.c:657 msgid "Warning threshold for jitter" msgstr "" -#: plugins/check_ntp.c:855 plugins/check_ntp_peer.c:650 +#: plugins/check_ntp.c:859 plugins/check_ntp_peer.c:659 msgid "Critical threshold for jitter" msgstr "" -#: plugins/check_ntp.c:867 +#: plugins/check_ntp.c:873 msgid "Normal offset check:" msgstr "" -#: plugins/check_ntp.c:869 plugins/check_ntp_peer.c:671 +#: plugins/check_ntp.c:876 plugins/check_ntp_peer.c:684 msgid "" "Check jitter too, avoiding critical notifications if jitter isn't available" msgstr "" -#: plugins/check_ntp.c:870 plugins/check_ntp_peer.c:672 +#: plugins/check_ntp.c:877 plugins/check_ntp_peer.c:685 msgid "(See Notes above for more details on thresholds formats):" msgstr "" -#: plugins/check_ntp_peer.c:599 +#: plugins/check_ntp.c:882 plugins/check_ntp.c:889 +msgid "WARNING: check_ntp is deprecated. Please use check_ntp_peer or" +msgstr "" + +#: plugins/check_ntp.c:883 plugins/check_ntp.c:890 +msgid "check_ntp_time istead." +msgstr "" + +#: plugins/check_ntp_peer.c:605 msgid "Server not synchronized" msgstr "" -#: plugins/check_ntp_peer.c:638 +#: plugins/check_ntp_peer.c:607 +msgid "Server has the LI_ALARM bit set" +msgstr "" + +#: plugins/check_ntp_peer.c:647 msgid "" "Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized" msgstr "" -#: plugins/check_ntp_peer.c:644 +#: plugins/check_ntp_peer.c:653 msgid "Warning threshold for stratum" msgstr "" -#: plugins/check_ntp_peer.c:646 +#: plugins/check_ntp_peer.c:655 msgid "Critical threshold for stratum" msgstr "" -#: plugins/check_ntp_peer.c:656 +#: plugins/check_ntp_peer.c:664 msgid "This plugin checks an NTP server independent of any commandline" msgstr "" -#: plugins/check_ntp_peer.c:657 +#: plugins/check_ntp_peer.c:665 msgid "programs or external libraries." msgstr "" -#: plugins/check_ntp_peer.c:658 +#: plugins/check_ntp_peer.c:668 msgid "Use this plugin to check the health of an NTP server. It supports" msgstr "" -#: plugins/check_ntp_peer.c:659 +#: plugins/check_ntp_peer.c:669 msgid "checking the offset with the sync peer, the jitter and stratum. This" msgstr "" -#: plugins/check_ntp_peer.c:660 +#: plugins/check_ntp_peer.c:670 msgid "plugin will not check the clock offset between the local host and NTP" msgstr "" -#: plugins/check_ntp_peer.c:661 +#: plugins/check_ntp_peer.c:671 msgid "server; please use check_ntp_time for that purpose." msgstr "" -#: plugins/check_ntp_peer.c:669 +#: plugins/check_ntp_peer.c:681 msgid "Simple NTP server check:" msgstr "" -#: plugins/check_ntp_peer.c:674 +#: plugins/check_ntp_peer.c:688 msgid "Check only stratum:" msgstr "" -#: plugins/check_ntp_time.c:594 +#: plugins/check_ntp_time.c:597 msgid "This plugin checks the clock offset with the ntp server" msgstr "" -#: plugins/check_ntp_time.c:602 +#: plugins/check_ntp_time.c:606 msgid "Returns UNKNOWN instead of CRITICAL if offset cannot be found" msgstr "" -#: plugins/check_ntp_time.c:612 +#: plugins/check_ntp_time.c:615 msgid "This plugin checks the clock offset between the local host and a" msgstr "" -#: plugins/check_ntp_time.c:613 +#: plugins/check_ntp_time.c:616 msgid "remote NTP server. It is independent of any commandline programs or" msgstr "" -#: plugins/check_ntp_time.c:614 +#: plugins/check_ntp_time.c:617 msgid "external libraries." msgstr "" -#: plugins/check_ntp_time.c:615 +#: plugins/check_ntp_time.c:621 msgid "If you'd rather want to monitor an NTP server, please use" msgstr "" -#: plugins/check_ntp_time.c:616 +#: plugins/check_ntp_time.c:622 msgid "check_ntp_peer." msgstr "" @@ -2568,14 +2670,17 @@ msgid "disabled" msgstr "" #: plugins/check_nwstat.c:564 +#, c-format msgid "CRITICAL - NRM Status is bad!" msgstr "" #: plugins/check_nwstat.c:569 +#, c-format msgid "Warning - NRM Status is suspect!" msgstr "" #: plugins/check_nwstat.c:572 +#, c-format msgid "OK - NRM Status is good!" msgstr "" @@ -2635,10 +2740,12 @@ msgid "%lu current service processes (%lu max)|Processes=%lu;%lu;%lu;0;%lu" msgstr "" #: plugins/check_nwstat.c:908 +#, c-format msgid "CRITICAL - Time not in sync with network!" msgstr "" #: plugins/check_nwstat.c:911 +#, c-format msgid "OK - Time in sync with network!" msgstr "" @@ -2711,216 +2818,216 @@ msgstr "" msgid "Novell server to gather the requested system information." msgstr "" -#: plugins/check_nwstat.c:1617 plugins/check_overcr.c:439 +#: plugins/check_nwstat.c:1618 plugins/check_overcr.c:440 msgid "Variable to check. Valid variables include:" msgstr "" -#: plugins/check_nwstat.c:1618 +#: plugins/check_nwstat.c:1619 msgid "LOAD1 = 1 minute average CPU load" msgstr "" -#: plugins/check_nwstat.c:1619 +#: plugins/check_nwstat.c:1620 msgid "LOAD5 = 5 minute average CPU load" msgstr "" -#: plugins/check_nwstat.c:1620 +#: plugins/check_nwstat.c:1621 msgid "LOAD15 = 15 minute average CPU load" msgstr "" -#: plugins/check_nwstat.c:1621 +#: plugins/check_nwstat.c:1622 msgid "CSPROCS = number of current service processes (NW 5.x only)" msgstr "" -#: plugins/check_nwstat.c:1622 +#: plugins/check_nwstat.c:1623 msgid "ABENDS = number of abended threads (NW 5.x only)" msgstr "" -#: plugins/check_nwstat.c:1623 +#: plugins/check_nwstat.c:1624 msgid "UPTIME = server uptime" msgstr "" -#: plugins/check_nwstat.c:1624 +#: plugins/check_nwstat.c:1625 msgid "LTCH = percent long term cache hits" msgstr "" -#: plugins/check_nwstat.c:1625 +#: plugins/check_nwstat.c:1626 msgid "CBUFF = current number of cache buffers" msgstr "" -#: plugins/check_nwstat.c:1626 +#: plugins/check_nwstat.c:1627 msgid "CDBUFF = current number of dirty cache buffers" msgstr "" -#: plugins/check_nwstat.c:1627 +#: plugins/check_nwstat.c:1628 msgid "DCB = dirty cache buffers as a percentage of the total" msgstr "" -#: plugins/check_nwstat.c:1628 +#: plugins/check_nwstat.c:1629 msgid "TCB = dirty cache buffers as a percentage of the original" msgstr "" -#: plugins/check_nwstat.c:1629 +#: plugins/check_nwstat.c:1630 msgid "OFILES = number of open files" msgstr "" -#: plugins/check_nwstat.c:1630 +#: plugins/check_nwstat.c:1631 msgid " VMF = MB of free space on Volume " msgstr "" -#: plugins/check_nwstat.c:1631 +#: plugins/check_nwstat.c:1632 msgid " VMU = MB used space on Volume " msgstr "" -#: plugins/check_nwstat.c:1632 +#: plugins/check_nwstat.c:1633 msgid " VMP = MB of purgeable space on Volume " msgstr "" -#: plugins/check_nwstat.c:1633 +#: plugins/check_nwstat.c:1634 msgid " VPF = percent free space on volume " msgstr "" -#: plugins/check_nwstat.c:1634 +#: plugins/check_nwstat.c:1635 msgid " VKF = KB of free space on volume " msgstr "" -#: plugins/check_nwstat.c:1635 +#: plugins/check_nwstat.c:1636 msgid " VPP = percent purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1636 +#: plugins/check_nwstat.c:1637 msgid " VKP = KB of purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1637 +#: plugins/check_nwstat.c:1638 msgid " VPNP = percent not yet purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1638 +#: plugins/check_nwstat.c:1639 msgid " VKNP = KB of not yet purgeable space on volume " msgstr "" -#: plugins/check_nwstat.c:1639 +#: plugins/check_nwstat.c:1640 msgid " LRUM = LRU sitting time in minutes" msgstr "" -#: plugins/check_nwstat.c:1640 +#: plugins/check_nwstat.c:1641 msgid " LRUS = LRU sitting time in seconds" msgstr "" -#: plugins/check_nwstat.c:1641 +#: plugins/check_nwstat.c:1642 msgid " DSDB = check to see if DS Database is open" msgstr "" -#: plugins/check_nwstat.c:1642 +#: plugins/check_nwstat.c:1643 msgid " DSVER = NDS version" msgstr "" -#: plugins/check_nwstat.c:1643 +#: plugins/check_nwstat.c:1644 msgid " UPRB = used packet receive buffers" msgstr "" -#: plugins/check_nwstat.c:1644 +#: plugins/check_nwstat.c:1645 msgid " PUPRB = percent (of max) used packet receive buffers" msgstr "" -#: plugins/check_nwstat.c:1645 +#: plugins/check_nwstat.c:1646 msgid " SAPENTRIES = number of entries in the SAP table" msgstr "" -#: plugins/check_nwstat.c:1646 +#: plugins/check_nwstat.c:1647 msgid " SAPENTRIES = number of entries in the SAP table for SAP type " msgstr "" -#: plugins/check_nwstat.c:1647 +#: plugins/check_nwstat.c:1648 msgid " TSYNC = timesync status" msgstr "" -#: plugins/check_nwstat.c:1648 +#: plugins/check_nwstat.c:1649 msgid " LOGINS = check to see if logins are enabled" msgstr "" -#: plugins/check_nwstat.c:1649 +#: plugins/check_nwstat.c:1650 msgid " CONNS = number of currently licensed connections" msgstr "" -#: plugins/check_nwstat.c:1650 +#: plugins/check_nwstat.c:1651 msgid " NRMH\t= NRM Summary Status" msgstr "" -#: plugins/check_nwstat.c:1651 +#: plugins/check_nwstat.c:1652 msgid " NRMP = Returns the current value for a NRM health item" msgstr "" -#: plugins/check_nwstat.c:1652 +#: plugins/check_nwstat.c:1653 msgid " NRMM = Returns the current memory stats from NRM" msgstr "" -#: plugins/check_nwstat.c:1653 +#: plugins/check_nwstat.c:1654 msgid " NRMS = Returns the current Swapfile stats from NRM" msgstr "" -#: plugins/check_nwstat.c:1654 +#: plugins/check_nwstat.c:1655 msgid " NSS1 = Statistics from _Admin:Manage_NSS\\GeneralStats.xml" msgstr "" -#: plugins/check_nwstat.c:1655 +#: plugins/check_nwstat.c:1656 msgid " NSS3 = Statistics from _Admin:Manage_NSS\\NameCache.xml" msgstr "" -#: plugins/check_nwstat.c:1656 +#: plugins/check_nwstat.c:1657 msgid " NSS4 = Statistics from _Admin:Manage_NSS\\FileStats.xml" msgstr "" -#: plugins/check_nwstat.c:1657 +#: plugins/check_nwstat.c:1658 msgid " NSS5 = Statistics from _Admin:Manage_NSS\\ObjectCache.xml" msgstr "" -#: plugins/check_nwstat.c:1658 +#: plugins/check_nwstat.c:1659 msgid " NSS6 = Statistics from _Admin:Manage_NSS\\Thread.xml" msgstr "" -#: plugins/check_nwstat.c:1659 +#: plugins/check_nwstat.c:1660 msgid "" " NSS7 = Statistics from _Admin:Manage_NSS\\AuthorizationCache.xml" msgstr "" -#: plugins/check_nwstat.c:1660 +#: plugins/check_nwstat.c:1661 msgid " NLM: = check if NLM is loaded and report version" msgstr "" -#: plugins/check_nwstat.c:1661 +#: plugins/check_nwstat.c:1662 msgid " (e.g. NLM:TSANDS.NLM)" msgstr "" -#: plugins/check_nwstat.c:1668 +#: plugins/check_nwstat.c:1669 msgid "Include server version string in results" msgstr "" -#: plugins/check_nwstat.c:1674 +#: plugins/check_nwstat.c:1675 msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG" msgstr "" -#: plugins/check_nwstat.c:1675 +#: plugins/check_nwstat.c:1676 msgid "" " extension for NetWare be loaded on the Novell servers you wish to check." msgstr "" -#: plugins/check_nwstat.c:1676 -msgid " (available from http://www.engr.wisc.edu/~drews/mrtg/)" -msgstr "" - #: plugins/check_nwstat.c:1677 -msgid "" -"- Values for critical thresholds should be lower than warning thresholds" +msgid " (available from http://www.engr.wisc.edu/~drews/mrtg/)" msgstr "" #: plugins/check_nwstat.c:1678 msgid "" -" when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, " +"- Values for critical thresholds should be lower than warning thresholds" msgstr "" #: plugins/check_nwstat.c:1679 -msgid " TCB, LRUS and LRUM.\n" +msgid "" +" when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, " +msgstr "" + +#: plugins/check_nwstat.c:1680 +msgid " TCB, LRUS and LRUM." msgstr "" #: plugins/check_overcr.c:127 @@ -2985,159 +3092,163 @@ msgstr "" msgid "remote UNIX server in order to gather the requested system information." msgstr "" -#: plugins/check_overcr.c:440 +#: plugins/check_overcr.c:441 msgid "LOAD1 = 1 minute average CPU load" msgstr "" -#: plugins/check_overcr.c:441 +#: plugins/check_overcr.c:442 msgid "LOAD5 = 5 minute average CPU load" msgstr "" -#: plugins/check_overcr.c:442 +#: plugins/check_overcr.c:443 msgid "LOAD15 = 15 minute average CPU load" msgstr "" -#: plugins/check_overcr.c:443 +#: plugins/check_overcr.c:444 msgid "DPU = percent used disk space on filesystem " msgstr "" -#: plugins/check_overcr.c:444 +#: plugins/check_overcr.c:445 msgid "PROC = number of running processes with name " msgstr "" -#: plugins/check_overcr.c:445 +#: plugins/check_overcr.c:446 msgid "NET = number of active connections on TCP port " msgstr "" -#: plugins/check_overcr.c:446 +#: plugins/check_overcr.c:447 msgid "UPTIME = system uptime in seconds" msgstr "" #: plugins/check_overcr.c:454 +msgid "This plugin requires that Eric Molitors' Over-CR collector daemon be" +msgstr "" + +#: plugins/check_overcr.c:455 +msgid "running on the remote server." +msgstr "" + +#: plugins/check_overcr.c:456 +msgid "Over-CR can be downloaded from http://www.molitor.org/overcr" +msgstr "" + +#: plugins/check_overcr.c:457 +msgid "This plugin was tested with version 0.99.53 of the Over-CR collector" +msgstr "" + +#: plugins/check_overcr.c:461 msgid "" "For the available options, the critical threshold value should always be" msgstr "" -#: plugins/check_overcr.c:455 +#: plugins/check_overcr.c:462 msgid "" "higher than the warning threshold value, EXCEPT with the uptime variable" msgstr "" -#: plugins/check_overcr.c:457 -msgid "This plugin requres that Eric Molitors' Over-CR collector daemon be" -msgstr "" - -#: plugins/check_overcr.c:458 -msgid "running on the remote server." -msgstr "" - -#: plugins/check_overcr.c:460 -msgid "This plugin was tested with version 0.99.53 of the Over-CR collector" -msgstr "" - -#: plugins/check_pgsql.c:173 +#: plugins/check_pgsql.c:174 #, c-format msgid "CRITICAL - no connection to '%s' (%s).\n" msgstr "" -#: plugins/check_pgsql.c:188 +#: plugins/check_pgsql.c:189 #, c-format msgid " %s - database %s (%d sec.)|%s\n" msgstr "" -#: plugins/check_pgsql.c:243 plugins/check_time.c:281 plugins/check_time.c:293 -#: plugins/check_users.c:168 +#: plugins/check_pgsql.c:244 plugins/check_time.c:281 plugins/check_time.c:293 +#: plugins/check_users.c:170 msgid "Critical threshold must be a positive integer" msgstr "" -#: plugins/check_pgsql.c:249 plugins/check_time.c:262 plugins/check_time.c:286 -#: plugins/check_users.c:174 plugins/check_users.c:184 -#: plugins/check_users.c:191 +#: plugins/check_pgsql.c:250 plugins/check_time.c:262 plugins/check_time.c:286 +#: plugins/check_users.c:176 plugins/check_users.c:186 +#: plugins/check_users.c:193 msgid "Warning threshold must be a positive integer" msgstr "" -#: plugins/check_pgsql.c:267 +#: plugins/check_pgsql.c:268 msgid "Database name is not valid" msgstr "" -#: plugins/check_pgsql.c:273 +#: plugins/check_pgsql.c:274 msgid "User name is not valid" msgstr "" -#: plugins/check_pgsql.c:410 +#: plugins/check_pgsql.c:411 #, c-format msgid "Test whether a PostgreSQL Database is accepting connections." msgstr "" -#: plugins/check_pgsql.c:423 +#: plugins/check_pgsql.c:425 msgid "Database to check " msgstr "" -#: plugins/check_pgsql.c:424 +#: plugins/check_pgsql.c:426 #, c-format msgid "(default: %s)" msgstr "" -#: plugins/check_pgsql.c:426 +#: plugins/check_pgsql.c:428 msgid "Login name of user" msgstr "" -#: plugins/check_pgsql.c:428 +#: plugins/check_pgsql.c:430 msgid "Password (BIG SECURITY ISSUE)" msgstr "" -#: plugins/check_pgsql.c:437 -msgid "All parameters are optional." -msgstr "" - -#: plugins/check_pgsql.c:438 -msgid "" -"This plugin tests a PostgreSQL DBMS to determine whether it is active and" -msgstr "" - #: plugins/check_pgsql.c:439 -msgid "accepting queries. In its current operation, it simply connects to the" +msgid "All parameters are optional." msgstr "" #: plugins/check_pgsql.c:440 msgid "" -"specified database, and then disconnects. If no database is specified, it" +"This plugin tests a PostgreSQL DBMS to determine whether it is active and" msgstr "" #: plugins/check_pgsql.c:441 -msgid "" -"connects to the template1 database, which is present in every functioning" +msgid "accepting queries. In its current operation, it simply connects to the" msgstr "" #: plugins/check_pgsql.c:442 -msgid "PostgreSQL DBMS." +msgid "" +"specified database, and then disconnects. If no database is specified, it" msgstr "" #: plugins/check_pgsql.c:443 msgid "" -"The plugin will connect to a local postmaster if no host is specified. To" +"connects to the template1 database, which is present in every functioning" msgstr "" #: plugins/check_pgsql.c:444 -msgid "" -"connect to a remote host, be sure that the remote postmaster accepts TCP/IP" -msgstr "" - -#: plugins/check_pgsql.c:445 -msgid "connections (start the postmaster with the -i option)." +msgid "PostgreSQL DBMS." msgstr "" #: plugins/check_pgsql.c:446 msgid "" -"Typically, the nagios user (unless the --logname option is used) should be" +"The plugin will connect to a local postmaster if no host is specified. To" msgstr "" #: plugins/check_pgsql.c:447 msgid "" -"able to connect to the database without a password. The plugin can also send" +"connect to a remote host, be sure that the remote postmaster accepts TCP/IP" msgstr "" #: plugins/check_pgsql.c:448 +msgid "connections (start the postmaster with the -i option)." +msgstr "" + +#: plugins/check_pgsql.c:450 +msgid "" +"Typically, the nagios user (unless the --logname option is used) should be" +msgstr "" + +#: plugins/check_pgsql.c:451 +msgid "" +"able to connect to the database without a password. The plugin can also send" +msgstr "" + +#: plugins/check_pgsql.c:452 msgid "a password, but no effort is made to obsure or encrypt the password." msgstr "" @@ -3155,384 +3266,378 @@ msgstr "" msgid "PING %s - %sPacket loss = %d%%, RTA = %2.2f ms" msgstr "" -#: plugins/check_ping.c:252 +#: plugins/check_ping.c:261 msgid "Could not realloc() addresses\n" msgstr "" -#: plugins/check_ping.c:267 plugins/check_ping.c:347 +#: plugins/check_ping.c:276 plugins/check_ping.c:356 #, c-format msgid " (%s) must be a non-negative number\n" msgstr "" -#: plugins/check_ping.c:301 +#: plugins/check_ping.c:310 #, c-format msgid " (%s) must be an integer percentage\n" msgstr "" -#: plugins/check_ping.c:312 +#: plugins/check_ping.c:321 #, c-format msgid " (%s) must be an integer percentage\n" msgstr "" -#: plugins/check_ping.c:323 +#: plugins/check_ping.c:332 #, c-format msgid " (%s) must be a non-negative number\n" msgstr "" -#: plugins/check_ping.c:334 +#: plugins/check_ping.c:343 #, c-format msgid " (%s) must be a non-negative number\n" msgstr "" -#: plugins/check_ping.c:367 +#: plugins/check_ping.c:376 #, c-format msgid "" "%s: Warning threshold must be integer or percentage!\n" "\n" msgstr "" -#: plugins/check_ping.c:380 +#: plugins/check_ping.c:389 #, c-format msgid " was not set\n" msgstr "" -#: plugins/check_ping.c:384 +#: plugins/check_ping.c:393 #, c-format msgid " was not set\n" msgstr "" -#: plugins/check_ping.c:388 +#: plugins/check_ping.c:397 #, c-format msgid " was not set\n" msgstr "" -#: plugins/check_ping.c:392 +#: plugins/check_ping.c:401 #, c-format msgid " was not set\n" msgstr "" -#: plugins/check_ping.c:396 +#: plugins/check_ping.c:405 #, c-format msgid " (%f) cannot be larger than (%f)\n" msgstr "" -#: plugins/check_ping.c:400 +#: plugins/check_ping.c:409 #, c-format msgid " (%d) cannot be larger than (%d)\n" msgstr "" -#: plugins/check_ping.c:436 +#: plugins/check_ping.c:445 #, c-format msgid "Cannot open stderr for %s\n" msgstr "" -#: plugins/check_ping.c:485 plugins/check_ping.c:487 +#: plugins/check_ping.c:494 plugins/check_ping.c:496 msgid "System call sent warnings to stderr " msgstr "" -#: plugins/check_ping.c:514 +#: plugins/check_ping.c:523 #, c-format msgid "CRITICAL - Network Unreachable (%s)" msgstr "" -#: plugins/check_ping.c:516 +#: plugins/check_ping.c:525 #, c-format msgid "CRITICAL - Host Unreachable (%s)" msgstr "" -#: plugins/check_ping.c:518 +#: plugins/check_ping.c:527 #, c-format msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)" msgstr "" -#: plugins/check_ping.c:520 +#: plugins/check_ping.c:529 #, c-format msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)" msgstr "" -#: plugins/check_ping.c:522 +#: plugins/check_ping.c:531 #, c-format msgid "CRITICAL - Network Prohibited (%s)" msgstr "" -#: plugins/check_ping.c:524 +#: plugins/check_ping.c:533 #, c-format msgid "CRITICAL - Host Prohibited (%s)" msgstr "" -#: plugins/check_ping.c:526 +#: plugins/check_ping.c:535 #, c-format msgid "CRITICAL - Packet Filtered (%s)" msgstr "" -#: plugins/check_ping.c:528 +#: plugins/check_ping.c:537 #, c-format msgid "CRITICAL - Host not found (%s)" msgstr "" -#: plugins/check_ping.c:530 +#: plugins/check_ping.c:539 #, c-format msgid "CRITICAL - Time to live exceeded (%s)" msgstr "" -#: plugins/check_ping.c:537 +#: plugins/check_ping.c:546 msgid "Unable to realloc warn_text" msgstr "" -#: plugins/check_ping.c:554 +#: plugins/check_ping.c:563 #, c-format msgid "Use ping to check connection statistics for a remote host." msgstr "" -#: plugins/check_ping.c:565 +#: plugins/check_ping.c:575 msgid "host to ping" msgstr "" -#: plugins/check_ping.c:571 +#: plugins/check_ping.c:581 msgid "number of ICMP ECHO packets to send" msgstr "" -#: plugins/check_ping.c:572 +#: plugins/check_ping.c:582 #, c-format msgid "(Default: %d)\n" msgstr "" -#: plugins/check_ping.c:574 +#: plugins/check_ping.c:584 msgid "show HTML in the plugin output (obsoleted by urlize)" msgstr "" -#: plugins/check_ping.c:578 +#: plugins/check_ping.c:589 msgid "THRESHOLD is ,% where is the round trip average travel" msgstr "" -#: plugins/check_ping.c:579 +#: plugins/check_ping.c:590 msgid "time (ms) which triggers a WARNING or CRITICAL state, and is the" msgstr "" -#: plugins/check_ping.c:580 +#: plugins/check_ping.c:591 msgid "percentage of packet loss to trigger an alarm state." msgstr "" -#: plugins/check_ping.c:584 +#: plugins/check_ping.c:594 msgid "" "This plugin uses the ping command to probe the specified host for packet loss" msgstr "" -#: plugins/check_ping.c:585 +#: plugins/check_ping.c:595 msgid "" "(percentage) and round trip average (milliseconds). It can produce HTML " "output" msgstr "" -#: plugins/check_ping.c:586 +#: plugins/check_ping.c:596 msgid "" "linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in" msgstr "" -#: plugins/check_ping.c:587 +#: plugins/check_ping.c:597 msgid "the contrib area of the downloads section at http://www.nagios.org/" msgstr "" -#: plugins/check_procs.c:155 +#: plugins/check_procs.c:162 #, c-format msgid "CMD: %s\n" msgstr "" -#: plugins/check_procs.c:261 +#: plugins/check_procs.c:282 #, c-format msgid "Not parseable: %s" msgstr "" -#: plugins/check_procs.c:270 +#: plugins/check_procs.c:292 #, c-format msgid "System call sent warnings to stderr\n" msgstr "" -#: plugins/check_procs.c:277 +#: plugins/check_procs.c:299 #, c-format msgid "System call returned nonzero status\n" msgstr "" -#: plugins/check_procs.c:282 +#: plugins/check_procs.c:305 #, c-format msgid "Unable to read output\n" msgstr "" -#: plugins/check_procs.c:299 +#: plugins/check_procs.c:322 #, c-format msgid "%d warn out of " msgstr "" -#: plugins/check_procs.c:304 +#: plugins/check_procs.c:327 #, c-format msgid "%d crit, %d warn out of " msgstr "" -#: plugins/check_procs.c:310 +#: plugins/check_procs.c:333 #, c-format msgid " with %s" msgstr "" -#: plugins/check_procs.c:385 +#: plugins/check_procs.c:413 msgid "Critical Process Count must be an integer!" msgstr "" -#: plugins/check_procs.c:397 +#: plugins/check_procs.c:425 msgid "Warning Process Count must be an integer!" msgstr "" -#: plugins/check_procs.c:405 +#: plugins/check_procs.c:433 msgid "Parent Process ID must be an integer!" msgstr "" -#: plugins/check_procs.c:411 plugins/check_procs.c:513 +#: plugins/check_procs.c:439 plugins/check_procs.c:553 #, c-format msgid "%s%sSTATE = %s" msgstr "" -#: plugins/check_procs.c:420 -#, c-format -msgid "UID %s was not found" +#: plugins/check_procs.c:448 +msgid "UID was not found" msgstr "" -#: plugins/check_procs.c:426 -#, c-format -msgid "User name %s was not found" +#: plugins/check_procs.c:454 +msgid "User name was not found" msgstr "" -#: plugins/check_procs.c:441 +#: plugins/check_procs.c:469 #, c-format msgid "%s%scommand name '%s'" msgstr "" -#: plugins/check_procs.c:460 +#: plugins/check_procs.c:497 msgid "RSS must be an integer!" msgstr "" -#: plugins/check_procs.c:467 +#: plugins/check_procs.c:504 msgid "VSZ must be an integer!" msgstr "" -#: plugins/check_procs.c:475 +#: plugins/check_procs.c:512 msgid "PCPU must be a float!" msgstr "" -#: plugins/check_procs.c:499 +#: plugins/check_procs.c:536 msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!" msgstr "" -#: plugins/check_procs.c:532 +#: plugins/check_procs.c:572 #, c-format msgid "wmax (%d) cannot be greater than cmax (%d)\n" msgstr "" -#: plugins/check_procs.c:536 +#: plugins/check_procs.c:576 #, c-format msgid "wmin (%d) cannot be less than cmin (%d)\n" msgstr "" -#: plugins/check_procs.c:673 +#: plugins/check_procs.c:713 msgid "" "Checks all processes and generates WARNING or CRITICAL states if the " "specified" msgstr "" -#: plugins/check_procs.c:674 +#: plugins/check_procs.c:714 msgid "" "metric is outside the required threshold ranges. The metric defaults to " "number" msgstr "" -#: plugins/check_procs.c:675 +#: plugins/check_procs.c:715 msgid "" "of processes. Search filters can be applied to limit the processes to check." msgstr "" -#: plugins/check_procs.c:681 -msgid "Required Arguments:" -msgstr "" - -#: plugins/check_procs.c:683 +#: plugins/check_procs.c:724 msgid "Generate warning state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:685 +#: plugins/check_procs.c:726 msgid "Generate critical state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:687 -msgid "Optional Arguments:" -msgstr "" - -#: plugins/check_procs.c:689 +#: plugins/check_procs.c:728 msgid "Check thresholds against metric. Valid types:" msgstr "" -#: plugins/check_procs.c:690 +#: plugins/check_procs.c:729 msgid "PROCS - number of processes (default)" msgstr "" -#: plugins/check_procs.c:691 +#: plugins/check_procs.c:730 msgid "VSZ - virtual memory size" msgstr "" -#: plugins/check_procs.c:692 +#: plugins/check_procs.c:731 msgid "RSS - resident set memory size" msgstr "" -#: plugins/check_procs.c:693 +#: plugins/check_procs.c:732 msgid "CPU - percentage cpu" msgstr "" -#: plugins/check_procs.c:696 +#: plugins/check_procs.c:735 msgid "ELAPSED - time elapsed in seconds" msgstr "" -#: plugins/check_procs.c:701 +#: plugins/check_procs.c:740 msgid "Extra information. Up to 3 verbosity levels" msgstr "" -#: plugins/check_procs.c:705 +#: plugins/check_procs.c:745 msgid "Only scan for processes that have, in the output of `ps`, one or" msgstr "" -#: plugins/check_procs.c:706 +#: plugins/check_procs.c:746 msgid "more of the status flags you specify (for example R, Z, S, RS," msgstr "" -#: plugins/check_procs.c:707 +#: plugins/check_procs.c:747 msgid "RSZDT, plus others based on the output of your 'ps' command)." msgstr "" -#: plugins/check_procs.c:709 +#: plugins/check_procs.c:749 msgid "Only scan for children of the parent process ID indicated." msgstr "" -#: plugins/check_procs.c:711 +#: plugins/check_procs.c:751 msgid "Only scan for processes with vsz higher than indicated." msgstr "" -#: plugins/check_procs.c:713 +#: plugins/check_procs.c:753 msgid "Only scan for processes with rss higher than indicated." msgstr "" -#: plugins/check_procs.c:715 +#: plugins/check_procs.c:755 msgid "Only scan for processes with pcpu higher than indicated." msgstr "" -#: plugins/check_procs.c:717 +#: plugins/check_procs.c:757 msgid "Only scan for processes with user name or ID indicated." msgstr "" -#: plugins/check_procs.c:719 +#: plugins/check_procs.c:759 msgid "Only scan for processes with args that contain STRING." msgstr "" -#: plugins/check_procs.c:721 +#: plugins/check_procs.c:761 +msgid "Only scan for processes with args that contain the regex STRING." +msgstr "" + +#: plugins/check_procs.c:763 msgid "Only scan for exact matches of COMMAND (without path)." msgstr "" -#: plugins/check_procs.c:723 +#: plugins/check_procs.c:765 #, c-format msgid "" "\n" @@ -3542,7 +3647,7 @@ msgid "" "\n" msgstr "" -#: plugins/check_procs.c:728 +#: plugins/check_procs.c:770 #, c-format msgid "" "This plugin checks the number of currently running processes and\n" @@ -3553,31 +3658,36 @@ msgid "" "\n" msgstr "" -#: plugins/check_procs.c:737 +#: plugins/check_procs.c:785 msgid "Warning if not two processes with command name portsentry." msgstr "" -#: plugins/check_procs.c:738 +#: plugins/check_procs.c:786 msgid "Critical if < 2 or > 1024 processes" msgstr "" -#: plugins/check_procs.c:740 +#: plugins/check_procs.c:788 msgid "Warning alert if > 10 processes with command arguments containing" msgstr "" -#: plugins/check_procs.c:741 +#: plugins/check_procs.c:789 msgid "'/usr/local/bin/perl' and owned by root" msgstr "" -#: plugins/check_procs.c:743 +#: plugins/check_procs.c:791 msgid "Alert if vsz of any processes over 50K or 100K" msgstr "" -#: plugins/check_procs.c:745 +#: plugins/check_procs.c:793 #, c-format msgid "Alert if cpu of any processes over 10%% or 20%%" msgstr "" +#: plugins/check_procs.c:801 +#, c-format +msgid "Usage: " +msgstr "" + #: plugins/check_radius.c:161 msgid "Config file error" msgstr "" @@ -3602,136 +3712,133 @@ msgstr "" msgid "Auth OK" msgstr "" -#: plugins/check_radius.c:278 +#: plugins/check_radius.c:284 msgid "Number of retries must be a positive integer" msgstr "" -#: plugins/check_radius.c:292 +#: plugins/check_radius.c:298 msgid "User not specified" msgstr "" -#: plugins/check_radius.c:294 +#: plugins/check_radius.c:300 msgid "Password not specified" msgstr "" -#: plugins/check_radius.c:296 +#: plugins/check_radius.c:302 msgid "Configuration file not specified" msgstr "" -#: plugins/check_radius.c:314 +#: plugins/check_radius.c:320 msgid "Tests to see if a radius server is accepting connections." msgstr "" -#: plugins/check_radius.c:325 +#: plugins/check_radius.c:332 msgid "The user to authenticate" msgstr "" -#: plugins/check_radius.c:327 +#: plugins/check_radius.c:334 msgid "Password for autentication (SECURITY RISK)" msgstr "" -#: plugins/check_radius.c:329 +#: plugins/check_radius.c:336 msgid "NAS identifier" msgstr "" -#: plugins/check_radius.c:331 +#: plugins/check_radius.c:338 msgid "Configuration file" msgstr "" -#: plugins/check_radius.c:333 +#: plugins/check_radius.c:340 msgid "Response string to expect from the server" msgstr "" -#: plugins/check_radius.c:335 +#: plugins/check_radius.c:342 msgid "Number of times to retry a failed connection" msgstr "" -#: plugins/check_radius.c:339 +#: plugins/check_radius.c:347 msgid "" "This plugin tests a radius server to see if it is accepting connections." msgstr "" -#: plugins/check_radius.c:340 +#: plugins/check_radius.c:348 msgid "" "The server to test must be specified in the invocation, as well as a user" msgstr "" -#: plugins/check_radius.c:341 +#: plugins/check_radius.c:349 msgid "" "name and password. A configuration file may also be present. The format of" msgstr "" -#: plugins/check_radius.c:342 +#: plugins/check_radius.c:350 msgid "" "the configuration file is described in the radiusclient library sources." msgstr "" -#: plugins/check_radius.c:343 +#: plugins/check_radius.c:351 msgid "The password option presents a substantial security issue because the" msgstr "" -#: plugins/check_radius.c:344 -msgid "password can be determined by careful watching of the command line in" +#: plugins/check_radius.c:352 +msgid "" +"password can possibly be determined by careful watching of the command line" msgstr "" -#: plugins/check_radius.c:345 -msgid "a process listing. This risk is exacerbated because nagios will" +#: plugins/check_radius.c:353 +msgid "in a process listing. This risk is exacerbated because nagios will" msgstr "" -#: plugins/check_radius.c:346 -msgid "run the plugin at regular prdictable intervals. Please be sure that" +#: plugins/check_radius.c:354 +msgid "run the plugin at regular predictable intervals. Please be sure that" msgstr "" -#: plugins/check_radius.c:347 -msgid "the password used does not allow access to sensitive system resources," +#: plugins/check_radius.c:355 +msgid "the password used does not allow access to sensitive system resources." msgstr "" -#: plugins/check_radius.c:348 -msgid "otherwise compormise could occur." -msgstr "" - -#: plugins/check_real.c:96 +#: plugins/check_real.c:95 #, c-format msgid "Unable to connect to %s on port %d\n" msgstr "" -#: plugins/check_real.c:118 +#: plugins/check_real.c:117 #, c-format msgid "No data received from %s\n" msgstr "" -#: plugins/check_real.c:123 plugins/check_real.c:196 +#: plugins/check_real.c:122 plugins/check_real.c:195 msgid "Invalid REAL response received from host" msgstr "" -#: plugins/check_real.c:125 plugins/check_real.c:198 +#: plugins/check_real.c:124 plugins/check_real.c:197 #, c-format msgid "Invalid REAL response received from host on port %d\n" msgstr "" -#: plugins/check_real.c:189 plugins/check_tcp.c:294 +#: plugins/check_real.c:188 plugins/check_tcp.c:295 #, c-format msgid "No data received from host\n" msgstr "" -#: plugins/check_real.c:252 +#: plugins/check_real.c:251 #, c-format msgid "REAL %s - %d second response time\n" msgstr "" -#: plugins/check_real.c:341 plugins/check_smtp.c:581 plugins/check_ups.c:535 +#: plugins/check_real.c:340 plugins/check_smtp.c:582 plugins/check_ups.c:536 msgid "Warning time must be a positive integer" msgstr "" -#: plugins/check_real.c:350 plugins/check_smtp.c:572 plugins/check_ups.c:526 +#: plugins/check_real.c:349 plugins/check_smtp.c:573 plugins/check_ups.c:527 msgid "Critical time must be a positive integer" msgstr "" -#: plugins/check_real.c:386 +#: plugins/check_real.c:385 msgid "You must provide a server to check" msgstr "" -#: plugins/check_real.c:418 +#: plugins/check_real.c:417 msgid "This plugin tests the REAL service on the specified host." msgstr "" @@ -3744,226 +3851,235 @@ msgstr "" msgid "String to expect in first line of server response (default: %s)\n" msgstr "" -#: plugins/check_real.c:440 +#: plugins/check_real.c:441 msgid "This plugin will attempt to open an RTSP connection with the host." msgstr "" -#: plugins/check_real.c:441 plugins/check_smtp.c:812 +#: plugins/check_real.c:442 plugins/check_smtp.c:814 msgid "Successul connects return STATE_OK, refusals and timeouts return" msgstr "" -#: plugins/check_real.c:442 -msgid "" -"STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful connects," -msgstr "" - #: plugins/check_real.c:443 msgid "" -"but incorrect reponse messages from the host result in STATE_WARNING return" +"STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful connects," msgstr "" #: plugins/check_real.c:444 +msgid "" +"but incorrect reponse messages from the host result in STATE_WARNING return" +msgstr "" + +#: plugins/check_real.c:445 msgid "values." msgstr "" -#: plugins/check_smtp.c:151 plugins/check_swap.c:268 plugins/check_swap.c:274 +#: plugins/check_smtp.c:150 plugins/check_swap.c:269 plugins/check_swap.c:275 #, c-format msgid "malloc() failed!\n" msgstr "" -#: plugins/check_smtp.c:155 +#: plugins/check_smtp.c:154 #, c-format msgid "gethostname() failed!\n" msgstr "" -#: plugins/check_smtp.c:190 plugins/check_smtp.c:214 +#: plugins/check_smtp.c:189 plugins/check_smtp.c:213 #, c-format msgid "recv() failed\n" msgstr "" -#: plugins/check_smtp.c:201 +#: plugins/check_smtp.c:200 #, c-format -msgid "Invalid SMTP response received from host\n" +msgid "Invalid SMTP response received from host: %s\n" msgstr "" -#: plugins/check_smtp.c:203 +#: plugins/check_smtp.c:202 #, c-format -msgid "Invalid SMTP response received from host on port %d\n" +msgid "Invalid SMTP response received from host on port %d: %s\n" msgstr "" -#: plugins/check_smtp.c:224 +#: plugins/check_smtp.c:223 #, c-format msgid "WARNING - TLS not supported by server\n" msgstr "" -#: plugins/check_smtp.c:236 +#: plugins/check_smtp.c:235 #, c-format msgid "Server does not support STARTTLS\n" msgstr "" -#: plugins/check_smtp.c:242 +#: plugins/check_smtp.c:241 #, c-format msgid "CRITICAL - Cannot create SSL context.\n" msgstr "" -#: plugins/check_smtp.c:262 +#: plugins/check_smtp.c:261 msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS." msgstr "" -#: plugins/check_smtp.c:267 +#: plugins/check_smtp.c:266 #, c-format msgid "sent %s" msgstr "" -#: plugins/check_smtp.c:269 +#: plugins/check_smtp.c:268 msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS." msgstr "" -#: plugins/check_smtp.c:281 +#: plugins/check_smtp.c:280 msgid "CRITICAL - Cannot retrieve server certificate." msgstr "" -#: plugins/check_smtp.c:317 plugins/check_snmp.c:590 +#: plugins/check_smtp.c:316 plugins/check_snmp.c:590 #, c-format msgid "Could Not Compile Regular Expression" msgstr "" -#: plugins/check_smtp.c:326 +#: plugins/check_smtp.c:325 #, c-format msgid "SMTP %s - Invalid response '%s' to command '%s'\n" msgstr "" -#: plugins/check_smtp.c:330 plugins/check_snmp.c:335 +#: plugins/check_smtp.c:329 plugins/check_snmp.c:335 #, c-format msgid "Execute Error: %s\n" msgstr "" -#: plugins/check_smtp.c:344 +#: plugins/check_smtp.c:343 +#, c-format msgid "no authuser specified, " msgstr "" -#: plugins/check_smtp.c:349 +#: plugins/check_smtp.c:348 +#, c-format msgid "no authpass specified, " msgstr "" -#: plugins/check_smtp.c:356 plugins/check_smtp.c:377 plugins/check_smtp.c:397 -#: plugins/check_smtp.c:673 +#: plugins/check_smtp.c:355 plugins/check_smtp.c:377 plugins/check_smtp.c:398 +#: plugins/check_smtp.c:674 #, c-format msgid "sent %s\n" msgstr "" -#: plugins/check_smtp.c:359 +#: plugins/check_smtp.c:358 +#, c-format msgid "recv() failed after AUTH LOGIN, " msgstr "" -#: plugins/check_smtp.c:364 plugins/check_smtp.c:385 plugins/check_smtp.c:405 -#: plugins/check_smtp.c:684 +#: plugins/check_smtp.c:363 plugins/check_smtp.c:385 plugins/check_smtp.c:406 +#: plugins/check_smtp.c:685 #, c-format msgid "received %s\n" msgstr "" -#: plugins/check_smtp.c:368 +#: plugins/check_smtp.c:367 +#, c-format msgid "invalid response received after AUTH LOGIN, " msgstr "" #: plugins/check_smtp.c:381 +#, c-format msgid "recv() failed after sending authuser, " msgstr "" #: plugins/check_smtp.c:389 +#, c-format msgid "invalid response received after authuser, " msgstr "" -#: plugins/check_smtp.c:401 +#: plugins/check_smtp.c:402 +#, c-format msgid "recv() failed after sending authpass, " msgstr "" -#: plugins/check_smtp.c:409 +#: plugins/check_smtp.c:410 +#, c-format msgid "invalid response received after authpass, " msgstr "" -#: plugins/check_smtp.c:416 +#: plugins/check_smtp.c:417 +#, c-format msgid "only authtype LOGIN is supported, " msgstr "" -#: plugins/check_smtp.c:440 +#: plugins/check_smtp.c:441 #, c-format msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n" msgstr "" -#: plugins/check_smtp.c:548 plugins/check_smtp.c:560 +#: plugins/check_smtp.c:549 plugins/check_smtp.c:561 #, c-format msgid "Could not realloc() units [%d]\n" msgstr "" -#: plugins/check_smtp.c:608 +#: plugins/check_smtp.c:609 msgid "SSL support not available - install OpenSSL and recompile" msgstr "" -#: plugins/check_smtp.c:679 +#: plugins/check_smtp.c:680 #, c-format msgid "recv() failed after QUIT." msgstr "" -#: plugins/check_smtp.c:681 +#: plugins/check_smtp.c:682 #, c-format msgid "Connection reset by peer." msgstr "" -#: plugins/check_smtp.c:769 +#: plugins/check_smtp.c:770 msgid "This plugin will attempt to open an SMTP connection with the host." msgstr "" -#: plugins/check_smtp.c:782 +#: plugins/check_smtp.c:784 #, c-format msgid " String to expect in first line of server response (default: '%s')\n" msgstr "" -#: plugins/check_smtp.c:784 +#: plugins/check_smtp.c:786 msgid "Suppress SMTP command" msgstr "" -#: plugins/check_smtp.c:786 +#: plugins/check_smtp.c:788 msgid "SMTP command (may be used repeatedly)" msgstr "" -#: plugins/check_smtp.c:788 +#: plugins/check_smtp.c:790 msgid "Expected response to command (may be used repeatedly)" msgstr "" -#: plugins/check_smtp.c:790 +#: plugins/check_smtp.c:792 msgid "FROM-address to include in MAIL command, required by Exchange 2000" msgstr "" -#: plugins/check_smtp.c:793 plugins/check_tcp.c:636 +#: plugins/check_smtp.c:795 plugins/check_tcp.c:638 msgid "Minimum number of days a certificate has to be valid." msgstr "" -#: plugins/check_smtp.c:795 +#: plugins/check_smtp.c:797 msgid "Use STARTTLS for the connection." msgstr "" -#: plugins/check_smtp.c:799 +#: plugins/check_smtp.c:801 msgid "SMTP AUTH type to check (default none, only LOGIN supported)" msgstr "" -#: plugins/check_smtp.c:801 +#: plugins/check_smtp.c:803 msgid "SMTP AUTH username" msgstr "" -#: plugins/check_smtp.c:803 +#: plugins/check_smtp.c:805 msgid "SMTP AUTH password" msgstr "" -#: plugins/check_smtp.c:813 +#: plugins/check_smtp.c:815 msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful" msgstr "" -#: plugins/check_smtp.c:814 +#: plugins/check_smtp.c:816 msgid "connects, but incorrect reponse messages from the host result in" msgstr "" -#: plugins/check_smtp.c:815 +#: plugins/check_smtp.c:817 msgid "STATE_WARNING return values." msgstr "" @@ -4034,200 +4150,200 @@ msgstr "" msgid "Check status of remote machines and obtain sustem information via SNMP" msgstr "" -#: plugins/check_snmp.c:943 +#: plugins/check_snmp.c:944 msgid "Use SNMP GETNEXT instead of SNMP GET" msgstr "" -#: plugins/check_snmp.c:945 +#: plugins/check_snmp.c:946 msgid "SNMP protocol version" msgstr "" -#: plugins/check_snmp.c:947 +#: plugins/check_snmp.c:948 msgid "SNMPv3 securityLevel" msgstr "" -#: plugins/check_snmp.c:949 +#: plugins/check_snmp.c:950 msgid "SNMPv3 auth proto" msgstr "" -#: plugins/check_snmp.c:953 +#: plugins/check_snmp.c:954 msgid "Optional community string for SNMP communication" msgstr "" -#: plugins/check_snmp.c:954 +#: plugins/check_snmp.c:955 msgid "default is" msgstr "" -#: plugins/check_snmp.c:956 +#: plugins/check_snmp.c:957 msgid "SNMPv3 username" msgstr "" -#: plugins/check_snmp.c:958 +#: plugins/check_snmp.c:959 msgid "SNMPv3 authentication password" msgstr "" -#: plugins/check_snmp.c:960 +#: plugins/check_snmp.c:961 msgid "SNMPv3 privacy password" msgstr "" -#: plugins/check_snmp.c:964 +#: plugins/check_snmp.c:965 msgid "Object identifier(s) or SNMP variables whose value you wish to query" msgstr "" -#: plugins/check_snmp.c:966 +#: plugins/check_snmp.c:967 msgid "" "List of MIBS to be loaded (default = none if using numeric oids or 'ALL'" msgstr "" -#: plugins/check_snmp.c:967 +#: plugins/check_snmp.c:968 msgid "for symbolic oids.)" msgstr "" -#: plugins/check_snmp.c:969 +#: plugins/check_snmp.c:970 #, c-format msgid " Delimiter to use when parsing returned data. Default is \"%s\"" msgstr "" -#: plugins/check_snmp.c:970 +#: plugins/check_snmp.c:971 msgid "Any data on the right hand side of the delimiter is considered" msgstr "" -#: plugins/check_snmp.c:971 +#: plugins/check_snmp.c:972 msgid "to be the data that should be used in the evaluation." msgstr "" -#: plugins/check_snmp.c:975 +#: plugins/check_snmp.c:976 msgid "Range(s) which will not result in a WARNING status" msgstr "" -#: plugins/check_snmp.c:977 +#: plugins/check_snmp.c:978 msgid "Range(s) which will not result in a CRITICAL status" msgstr "" -#: plugins/check_snmp.c:981 +#: plugins/check_snmp.c:982 msgid "Return OK state (for that OID) if STRING is an exact match" msgstr "" -#: plugins/check_snmp.c:983 +#: plugins/check_snmp.c:984 msgid "" "Return OK state (for that OID) if extended regular expression REGEX matches" msgstr "" -#: plugins/check_snmp.c:985 +#: plugins/check_snmp.c:986 msgid "" "Return OK state (for that OID) if case-insensitive extended REGEX matches" msgstr "" -#: plugins/check_snmp.c:987 +#: plugins/check_snmp.c:988 msgid "Prefix label for output from plugin (default -s 'SNMP')" msgstr "" -#: plugins/check_snmp.c:991 +#: plugins/check_snmp.c:992 msgid "Units label(s) for output data (e.g., 'sec.')." msgstr "" -#: plugins/check_snmp.c:993 +#: plugins/check_snmp.c:994 msgid "Separates output on multiple OID requests" msgstr "" -#: plugins/check_snmp.c:999 +#: plugins/check_snmp.c:1001 msgid "" "This plugin uses the 'snmpget' command included with the NET-SNMP package." msgstr "" -#: plugins/check_snmp.c:1000 +#: plugins/check_snmp.c:1002 msgid "" "if you don't have the package installed, you will need to download it from" msgstr "" -#: plugins/check_snmp.c:1001 +#: plugins/check_snmp.c:1003 msgid "http://net-snmp.sourceforge.net before you can use this plugin." msgstr "" -#: plugins/check_snmp.c:1003 +#: plugins/check_snmp.c:1007 msgid "" "- Multiple OIDs may be indicated by a comma- or space-delimited list (lists " "with" msgstr "" -#: plugins/check_snmp.c:1004 -msgid " internal spaces must be quoted) [max 8 OIDs]" -msgstr "" - -#: plugins/check_snmp.c:1006 -msgid "- Ranges are inclusive and are indicated with colons. When specified as" -msgstr "" - -#: plugins/check_snmp.c:1007 -msgid "" -" 'min:max' a STATE_OK will be returned if the result is within the indicated" -msgstr "" - #: plugins/check_snmp.c:1008 -msgid " range or is equal to the upper or lower bound. A non-OK state will be" +msgid "internal spaces must be quoted) [max 8 OIDs]" msgstr "" -#: plugins/check_snmp.c:1009 -msgid " returned if the result is outside the specified range." +#: plugins/check_snmp.c:1010 +msgid "- Ranges are inclusive and are indicated with colons. When specified as" msgstr "" #: plugins/check_snmp.c:1011 msgid "" -"- If specified in the order 'max:min' a non-OK state will be returned if the" +"'min:max' a STATE_OK will be returned if the result is within the indicated" msgstr "" #: plugins/check_snmp.c:1012 -msgid " result is within the (inclusive) range." +msgid "range or is equal to the upper or lower bound. A non-OK state will be" msgstr "" -#: plugins/check_snmp.c:1014 +#: plugins/check_snmp.c:1013 +msgid "returned if the result is outside the specified range." +msgstr "" + +#: plugins/check_snmp.c:1015 +msgid "" +"- If specified in the order 'max:min' a non-OK state will be returned if the" +msgstr "" + +#: plugins/check_snmp.c:1016 +msgid "result is within the (inclusive) range." +msgstr "" + +#: plugins/check_snmp.c:1018 msgid "" "- Upper or lower bounds may be omitted to skip checking the respective limit." msgstr "" -#: plugins/check_snmp.c:1015 +#: plugins/check_snmp.c:1019 msgid "- Bare integers are interpreted as upper limits." msgstr "" -#: plugins/check_snmp.c:1016 +#: plugins/check_snmp.c:1020 msgid "" "- When checking multiple OIDs, separate ranges by commas like '-w " "1:10,1:,:20'" msgstr "" -#: plugins/check_snmp.c:1017 +#: plugins/check_snmp.c:1021 msgid "- Note that only one string and one regex may be checked at present" msgstr "" -#: plugins/check_snmp.c:1018 +#: plugins/check_snmp.c:1022 msgid "" "- All evaluation methods other than PR, STR, and SUBSTR expect that the value" msgstr "" -#: plugins/check_snmp.c:1019 -msgid " returned from the SNMP query is an unsigned integer." +#: plugins/check_snmp.c:1023 +msgid "returned from the SNMP query is an unsigned integer." msgstr "" -#: plugins/check_ssh.c:170 +#: plugins/check_ssh.c:169 msgid "Port number must be a positive integer" msgstr "" -#: plugins/check_ssh.c:235 +#: plugins/check_ssh.c:234 #, c-format msgid "Server answer: %s" msgstr "" -#: plugins/check_ssh.c:254 +#: plugins/check_ssh.c:253 #, c-format msgid "SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n" msgstr "" -#: plugins/check_ssh.c:261 +#: plugins/check_ssh.c:260 #, c-format msgid "SSH OK - %s (protocol %s)\n" msgstr "" -#: plugins/check_ssh.c:281 +#: plugins/check_ssh.c:280 msgid "Try to connect to an SSH server at specified server and port" msgstr "" @@ -4236,193 +4352,193 @@ msgid "" "Warn if string doesn't match expected server version (ex: OpenSSH_3.9p1)" msgstr "" -#: plugins/check_swap.c:172 +#: plugins/check_swap.c:173 #, c-format msgid "Command: %s\n" msgstr "" -#: plugins/check_swap.c:174 +#: plugins/check_swap.c:175 #, c-format msgid "Format: %s\n" msgstr "" -#: plugins/check_swap.c:210 +#: plugins/check_swap.c:211 #, c-format msgid "total=%.0f, used=%.0f, free=%.0f\n" msgstr "" -#: plugins/check_swap.c:224 +#: plugins/check_swap.c:225 #, c-format msgid "total=%.0f, free=%.0f\n" msgstr "" -#: plugins/check_swap.c:256 +#: plugins/check_swap.c:257 msgid "Error getting swap devices\n" msgstr "" -#: plugins/check_swap.c:259 +#: plugins/check_swap.c:260 msgid "SWAP OK: No swap devices defined\n" msgstr "" -#: plugins/check_swap.c:280 plugins/check_swap.c:322 +#: plugins/check_swap.c:281 plugins/check_swap.c:323 msgid "swapctl failed: " msgstr "" -#: plugins/check_swap.c:281 plugins/check_swap.c:323 +#: plugins/check_swap.c:282 plugins/check_swap.c:324 msgid "Error in swapctl call\n" msgstr "" -#: plugins/check_swap.c:360 +#: plugins/check_swap.c:361 #, c-format msgid "SWAP %s - %d%% free (%d MB out of %d MB) %s|" msgstr "" -#: plugins/check_swap.c:438 +#: plugins/check_swap.c:439 msgid "Warning threshold must be integer or percentage!" msgstr "" -#: plugins/check_swap.c:456 +#: plugins/check_swap.c:457 msgid "Critical threshold must be integer or percentage!" msgstr "" -#: plugins/check_swap.c:510 +#: plugins/check_swap.c:511 msgid "Warning percentage should be more than critical percentage" msgstr "" -#: plugins/check_swap.c:514 +#: plugins/check_swap.c:515 msgid "Warning free space should be more than critical free space" msgstr "" -#: plugins/check_swap.c:528 +#: plugins/check_swap.c:529 msgid "Check swap space on local machine." msgstr "" -#: plugins/check_swap.c:537 +#: plugins/check_swap.c:539 msgid "" "Exit with WARNING status if less than INTEGER bytes of swap space are free" msgstr "" -#: plugins/check_swap.c:539 +#: plugins/check_swap.c:541 msgid "Exit with WARNING status if less than PERCENT of swap space is free" msgstr "" -#: plugins/check_swap.c:541 +#: plugins/check_swap.c:543 msgid "" "Exit with CRITICAL status if less than INTEGER bytes of swap space are free" msgstr "" -#: plugins/check_swap.c:543 +#: plugins/check_swap.c:545 msgid "Exit with CRITCAL status if less than PERCENT of swap space is free" msgstr "" -#: plugins/check_swap.c:545 +#: plugins/check_swap.c:547 msgid "Conduct comparisons for all swap partitions, one by one" msgstr "" -#: plugins/check_swap.c:549 -msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s.\n" +#: plugins/check_swap.c:552 +msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s." msgstr "" -#: plugins/check_tcp.c:202 +#: plugins/check_tcp.c:200 msgid "CRITICAL - Generic check_tcp called with unknown service\n" msgstr "" -#: plugins/check_tcp.c:223 +#: plugins/check_tcp.c:224 msgid "With UDP checks, a send/expect string must be specified." msgstr "" -#: plugins/check_tcp.c:242 +#: plugins/check_tcp.c:243 #, c-format msgid "CRITICAL - Cannot retrieve server certificate.\n" msgstr "" -#: plugins/check_tcp.c:422 +#: plugins/check_tcp.c:423 msgid "No arguments found" msgstr "" -#: plugins/check_tcp.c:523 +#: plugins/check_tcp.c:524 msgid "Maxbytes must be a positive integer" msgstr "" -#: plugins/check_tcp.c:541 +#: plugins/check_tcp.c:542 msgid "Refuse must be one of ok, warn, crit" msgstr "" -#: plugins/check_tcp.c:551 +#: plugins/check_tcp.c:552 msgid "Mismatch must be one of ok, warn, crit" msgstr "" -#: plugins/check_tcp.c:557 +#: plugins/check_tcp.c:558 msgid "Delay must be a positive integer" msgstr "" -#: plugins/check_tcp.c:585 +#: plugins/check_tcp.c:586 msgid "You must provide a server address" msgstr "" -#: plugins/check_tcp.c:587 +#: plugins/check_tcp.c:588 msgid "Invalid hostname, address or socket" msgstr "" -#: plugins/check_tcp.c:601 +#: plugins/check_tcp.c:602 #, c-format msgid "" "This plugin tests %s connections with the specified host (or unix socket).\n" "\n" msgstr "" -#: plugins/check_tcp.c:613 +#: plugins/check_tcp.c:615 msgid "" "Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or " "quit option" msgstr "" -#: plugins/check_tcp.c:614 +#: plugins/check_tcp.c:616 msgid "Default: nothing added to send, \\r\\n added to end of quit" msgstr "" -#: plugins/check_tcp.c:616 +#: plugins/check_tcp.c:618 msgid "String to send to the server" msgstr "" -#: plugins/check_tcp.c:618 +#: plugins/check_tcp.c:620 msgid "String to expect in server response" msgstr "" -#: plugins/check_tcp.c:618 +#: plugins/check_tcp.c:620 msgid "(may be repeated)" msgstr "" -#: plugins/check_tcp.c:620 +#: plugins/check_tcp.c:622 msgid "All expect strings need to occur in server response. Default is any" msgstr "" -#: plugins/check_tcp.c:622 +#: plugins/check_tcp.c:624 msgid "String to send server to initiate a clean close of the connection" msgstr "" -#: plugins/check_tcp.c:624 +#: plugins/check_tcp.c:626 msgid "Accept tcp refusals with states ok, warn, crit (default: crit)" msgstr "" -#: plugins/check_tcp.c:626 +#: plugins/check_tcp.c:628 msgid "" "Accept expected string mismatches with states ok, warn, crit (default: warn)" msgstr "" -#: plugins/check_tcp.c:628 +#: plugins/check_tcp.c:630 msgid "Hide output from TCP socket" msgstr "" -#: plugins/check_tcp.c:630 +#: plugins/check_tcp.c:632 msgid "Close connection once more than this number of bytes are received" msgstr "" -#: plugins/check_tcp.c:632 +#: plugins/check_tcp.c:634 msgid "Seconds to wait between sending string and polling for response" msgstr "" -#: plugins/check_tcp.c:638 +#: plugins/check_tcp.c:640 msgid "Use SSL for the connection." msgstr "" @@ -4463,130 +4579,132 @@ msgstr "" msgid "This plugin will check the time on the specified host." msgstr "" -#: plugins/check_time.c:354 +#: plugins/check_time.c:355 msgid "Use UDP to connect, not TCP" msgstr "" -#: plugins/check_time.c:356 +#: plugins/check_time.c:357 msgid "Time difference (sec.) necessary to result in a warning status" msgstr "" -#: plugins/check_time.c:358 +#: plugins/check_time.c:359 msgid "Time difference (sec.) necessary to result in a critical status" msgstr "" -#: plugins/check_time.c:360 +#: plugins/check_time.c:361 msgid "Response time (sec.) necessary to result in warning status" msgstr "" -#: plugins/check_time.c:362 +#: plugins/check_time.c:363 msgid "Response time (sec.) necessary to result in critical status" msgstr "" -#: plugins/check_ups.c:147 +#: plugins/check_ups.c:148 +#, c-format msgid "On Battery, Low Battery" msgstr "" -#: plugins/check_ups.c:152 +#: plugins/check_ups.c:153 msgid "Online" msgstr "" -#: plugins/check_ups.c:155 +#: plugins/check_ups.c:156 msgid "On Battery" msgstr "" -#: plugins/check_ups.c:159 +#: plugins/check_ups.c:160 msgid ", Low Battery" msgstr "" -#: plugins/check_ups.c:163 +#: plugins/check_ups.c:164 msgid ", Calibrating" msgstr "" -#: plugins/check_ups.c:166 +#: plugins/check_ups.c:167 msgid ", Replace Battery" msgstr "" -#: plugins/check_ups.c:170 +#: plugins/check_ups.c:171 msgid ", On Bypass" msgstr "" -#: plugins/check_ups.c:173 +#: plugins/check_ups.c:174 msgid ", Overload" msgstr "" -#: plugins/check_ups.c:176 +#: plugins/check_ups.c:177 msgid ", Trimming" msgstr "" -#: plugins/check_ups.c:179 +#: plugins/check_ups.c:180 msgid ", Boosting" msgstr "" -#: plugins/check_ups.c:182 +#: plugins/check_ups.c:183 msgid ", Charging" msgstr "" -#: plugins/check_ups.c:185 +#: plugins/check_ups.c:186 msgid ", Discharging" msgstr "" -#: plugins/check_ups.c:188 +#: plugins/check_ups.c:189 msgid ", Unknown" msgstr "" -#: plugins/check_ups.c:327 +#: plugins/check_ups.c:328 +#, c-format msgid "UPS does not support any available options\n" msgstr "" -#: plugins/check_ups.c:351 plugins/check_ups.c:411 +#: plugins/check_ups.c:352 plugins/check_ups.c:412 msgid "Invalid response received from host" msgstr "" -#: plugins/check_ups.c:419 +#: plugins/check_ups.c:420 #, c-format msgid "CRITICAL - no such ups '%s' on that host\n" msgstr "" -#: plugins/check_ups.c:429 +#: plugins/check_ups.c:430 msgid "CRITICAL - UPS data is stale" msgstr "" -#: plugins/check_ups.c:434 +#: plugins/check_ups.c:435 #, c-format msgid "Unknown error: %s\n" msgstr "" -#: plugins/check_ups.c:441 +#: plugins/check_ups.c:442 msgid "Error: unable to parse variable" msgstr "" -#: plugins/check_ups.c:548 +#: plugins/check_ups.c:549 msgid "Unrecognized UPS variable" msgstr "" -#: plugins/check_ups.c:586 +#: plugins/check_ups.c:587 msgid "Error : no ups indicated" msgstr "" -#: plugins/check_ups.c:606 +#: plugins/check_ups.c:607 msgid "" -"This plugin tests the UPS service on the specified host.Network UPS Tools " +"This plugin tests the UPS service on the specified host. Network UPS Tools" msgstr "" -#: plugins/check_ups.c:607 +#: plugins/check_ups.c:608 msgid "from www.networkupstools.org must be running for thisplugin to work." msgstr "" -#: plugins/check_ups.c:618 +#: plugins/check_ups.c:620 msgid "Name of UPS" msgstr "" -#: plugins/check_ups.c:620 +#: plugins/check_ups.c:622 msgid "Output of temperatures in Celsius" msgstr "" -#: plugins/check_ups.c:622 +#: plugins/check_ups.c:624 msgid "Valid values for STRING are" msgstr "" @@ -4615,766 +4733,776 @@ msgstr "" msgid "state." msgstr "" -#: plugins/check_ups.c:641 +#: plugins/check_ups.c:643 msgid "" -"You may also specify a variable to check [such as temperature, utility " +"You may also specify a variable to check (such as temperature, utility " "voltage," msgstr "" -#: plugins/check_ups.c:642 -msgid "" -"battery load, etc.] as well as warning and critical thresholds for the " -"value of" -msgstr "" - -#: plugins/check_ups.c:643 -msgid "" -"that variable. If the remote host has multiple UPS that are being monitored " -"you" -msgstr "" - #: plugins/check_ups.c:644 -msgid "will have to use the [ups] option to specify which UPS to check." +msgid "" +"battery load, etc.) as well as warning and critical thresholds for the value" +msgstr "" + +#: plugins/check_ups.c:645 +msgid "" +"of that variable. If the remote host has multiple UPS that are being " +"monitored" msgstr "" #: plugins/check_ups.c:646 -msgid "" -"This plugin requires that the UPSD daemon distributed with Russel Kroll's" -msgstr "" - -#: plugins/check_ups.c:647 -msgid "" -"Smart UPS Tools be installed on the remote host. If you do not have the" +msgid "you will have to use the --ups option to specify which UPS to check." msgstr "" #: plugins/check_ups.c:648 msgid "" -"package installed on your system, you can download it from http://www." -"networkupstools.org" +"This plugin requires that the UPSD daemon distributed with Russel Kroll's" msgstr "" -#: plugins/check_users.c:94 +#: plugins/check_ups.c:649 +msgid "Smart UPS Tools be installed on the remote host. If you do not have the" +msgstr "" + +#: plugins/check_ups.c:650 +msgid "package installed on your system, you can download it from" +msgstr "" + +#: plugins/check_ups.c:651 +msgid "http://www.networkupstools.org" +msgstr "" + +#: plugins/check_users.c:96 #, c-format msgid "# users=%d" msgstr "" -#: plugins/check_users.c:117 +#: plugins/check_users.c:119 msgid "Unable to read output" msgstr "" -#: plugins/check_users.c:124 +#: plugins/check_users.c:126 #, c-format msgid "USERS %s - %d users currently logged in |%s\n" msgstr "" -#: plugins/check_users.c:209 +#: plugins/check_users.c:211 msgid "This plugin checks the number of users currently logged in on the local" msgstr "" -#: plugins/check_users.c:210 +#: plugins/check_users.c:212 msgid "" "system and generates an error if the number exceeds the thresholds specified." msgstr "" -#: plugins/check_users.c:219 +#: plugins/check_users.c:222 msgid "Set WARNING status if more than INTEGER users are logged in" msgstr "" -#: plugins/check_users.c:221 +#: plugins/check_users.c:224 msgid "Set CRITICAL status if more than INTEGER users are logged in" msgstr "" -#: plugins/check_ide_smart.c:231 +#: plugins/check_ide_smart.c:232 #, c-format msgid "CRITICAL - Couldn't open device %s: %s\n" msgstr "" -#: plugins/check_ide_smart.c:236 +#: plugins/check_ide_smart.c:237 #, c-format msgid "CRITICAL - SMART_CMD_ENABLE\n" msgstr "" -#: plugins/check_ide_smart.c:297 +#: plugins/check_ide_smart.c:298 #, c-format msgid "CRITICAL - SMART_READ_VALUES: %s\n" msgstr "" -#: plugins/check_ide_smart.c:366 +#: plugins/check_ide_smart.c:367 #, c-format msgid "CRITICAL - %d Harddrive PreFailure%cDetected! %d/%d tests failed.\n" msgstr "" -#: plugins/check_ide_smart.c:374 +#: plugins/check_ide_smart.c:375 #, c-format msgid "WARNING - %d Harddrive Advisor%s Detected. %d/%d tests failed.\n" msgstr "" -#: plugins/check_ide_smart.c:382 +#: plugins/check_ide_smart.c:383 #, c-format msgid "OK - Operational (%d/%d tests passed)\n" msgstr "" -#: plugins/check_ide_smart.c:386 +#: plugins/check_ide_smart.c:387 #, c-format msgid "ERROR - Status '%d' unkown. %d/%d tests passed\n" msgstr "" -#: plugins/check_ide_smart.c:419 +#: plugins/check_ide_smart.c:420 #, c-format msgid "OffLineStatus=%d {%s}, AutoOffLine=%s, OffLineTimeout=%d minutes\n" msgstr "" -#: plugins/check_ide_smart.c:425 +#: plugins/check_ide_smart.c:426 #, c-format msgid "OffLineCapability=%d {%s %s %s}\n" msgstr "" -#: plugins/check_ide_smart.c:431 +#: plugins/check_ide_smart.c:432 #, c-format msgid "SmartRevision=%d, CheckSum=%d, SmartCapability=%d {%s %s}\n" msgstr "" -#: plugins/check_ide_smart.c:452 +#: plugins/check_ide_smart.c:453 #, c-format msgid "CRITICAL - %s: %s\n" msgstr "" -#: plugins/check_ide_smart.c:471 +#: plugins/check_ide_smart.c:472 #, c-format msgid "CRITICAL - SMART_READ_THRESHOLDS: %s\n" msgstr "" -#: plugins/check_ide_smart.c:488 +#: plugins/check_ide_smart.c:489 #, c-format msgid "" "This plugin checks a local hard drive with the (Linux specific) SMART " "interface [http://smartlinux.sourceforge.net/smart/index.php]." msgstr "" -#: plugins/check_ide_smart.c:497 +#: plugins/check_ide_smart.c:499 msgid "Select device DEVICE" msgstr "" -#: plugins/check_ide_smart.c:498 +#: plugins/check_ide_smart.c:500 msgid "" "Note: if the device is selected with this option, _no_ other options are " "accepted" msgstr "" -#: plugins/check_ide_smart.c:500 +#: plugins/check_ide_smart.c:502 msgid "Perform immediately offline tests" msgstr "" -#: plugins/check_ide_smart.c:502 +#: plugins/check_ide_smart.c:504 msgid "Returns the number of failed tests" msgstr "" -#: plugins/check_ide_smart.c:504 +#: plugins/check_ide_smart.c:506 msgid "Turn on automatic offline tests" msgstr "" -#: plugins/check_ide_smart.c:506 +#: plugins/check_ide_smart.c:508 msgid "Turn off automatic offline tests" msgstr "" -#: plugins/check_ide_smart.c:508 +#: plugins/check_ide_smart.c:510 msgid "Output suitable for Nagios" msgstr "" -#: plugins/negate.c:132 +#: plugins/negate.c:98 msgid "No data returned from command\n" msgstr "" -#: plugins/negate.c:209 +#: plugins/negate.c:168 msgid "" "Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-" "3)." msgstr "" -#: plugins/negate.c:215 +#: plugins/negate.c:174 msgid "" "Warning must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " "integer (0-3)." msgstr "" -#: plugins/negate.c:220 +#: plugins/negate.c:179 msgid "" "Critical must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " "integer (0-3)." msgstr "" -#: plugins/negate.c:225 +#: plugins/negate.c:184 msgid "" "Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " "integer (0-3)." msgstr "" -#: plugins/negate.c:262 +#: plugins/negate.c:211 msgid "Require path to command" msgstr "" -#: plugins/negate.c:298 +#: plugins/negate.c:240 msgid "" "Negates the status of a plugin (returns OK for CRITICAL and vice-versa)." msgstr "" -#: plugins/negate.c:299 +#: plugins/negate.c:241 msgid "Additional switches can be used to control which state becomes what." msgstr "" -#: plugins/negate.c:308 +#: plugins/negate.c:250 msgid "Keep timeout longer than the plugin timeout to retain CRITICAL status." msgstr "" -#: plugins/negate.c:314 +#: plugins/negate.c:256 #, c-format msgid "" " STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n" msgstr "" -#: plugins/negate.c:315 +#: plugins/negate.c:257 #, c-format msgid "" " quotes. Numeric values are accepted. If nothing is specified, permutes\n" msgstr "" -#: plugins/negate.c:316 +#: plugins/negate.c:258 #, c-format msgid " OK and CRITICAL.\n" msgstr "" -#: plugins/negate.c:321 +#: plugins/negate.c:260 +#, c-format +msgid "" +" Substitute output text as well. Will only substitute text in CAPITALS\n" +msgstr "" + +#: plugins/negate.c:265 msgid "Run check_ping and invert result. Must use full path to plugin" msgstr "" -#: plugins/negate.c:323 +#: plugins/negate.c:267 msgid "This will return OK instead of WARNING and UNKNOWN instead of CRITICAL" msgstr "" -#: plugins/negate.c:326 +#: plugins/negate.c:270 msgid "" "This plugin is a wrapper to take the output of another plugin and invert it." msgstr "" -#: plugins/negate.c:327 +#: plugins/negate.c:271 msgid "The full path of the plugin must be provided." msgstr "" -#: plugins/negate.c:328 +#: plugins/negate.c:272 msgid "If the wrapped plugin returns OK, the wrapper will return CRITICAL." msgstr "" -#: plugins/negate.c:329 +#: plugins/negate.c:273 msgid "If the wrapped plugin returns CRITICAL, the wrapper will return OK." msgstr "" -#: plugins/negate.c:330 +#: plugins/negate.c:274 msgid "Otherwise, the output state of the wrapped plugin is unchanged." msgstr "" -#: plugins/netutils.c:53 +#: plugins/netutils.c:52 #, c-format msgid "CRITICAL - Socket timeout after %d seconds\n" msgstr "" -#: plugins/netutils.c:55 +#: plugins/netutils.c:54 #, c-format msgid "CRITICAL - Abnormal timeout after %d seconds\n" msgstr "" -#: plugins/netutils.c:83 plugins/netutils.c:274 +#: plugins/netutils.c:82 plugins/netutils.c:284 msgid "Send failed" msgstr "" -#: plugins/netutils.c:100 plugins/netutils.c:289 +#: plugins/netutils.c:99 plugins/netutils.c:299 msgid "No data was received from host!" msgstr "" -#: plugins/netutils.c:197 plugins/netutils.c:233 +#: plugins/netutils.c:207 plugins/netutils.c:243 msgid "Socket creation failed" msgstr "" -#: plugins/netutils.c:226 +#: plugins/netutils.c:236 msgid "Supplied path too long unix domain socket" msgstr "" -#: plugins/netutils.c:298 +#: plugins/netutils.c:308 msgid "Receive failed" msgstr "" -#: plugins/netutils.c:324 plugins-root/check_dhcp.c:1348 +#: plugins/netutils.c:334 plugins-root/check_dhcp.c:1346 #, c-format msgid "Invalid hostname/address - %s" msgstr "" -#: plugins/popen.c:148 +#: plugins/popen.c:145 msgid "Could not malloc argv array in popen()" msgstr "" -#: plugins/popen.c:158 +#: plugins/popen.c:155 msgid "CRITICAL - You need more args!!!" msgstr "" -#: plugins/popen.c:215 +#: plugins/popen.c:212 msgid "Cannot catch SIGCHLD" msgstr "" -#: plugins/popen.c:310 plugins/utils.c:172 +#: plugins/popen.c:307 plugins/utils.c:186 #, c-format msgid "CRITICAL - Plugin timed out after %d seconds\n" msgstr "" -#: plugins/popen.c:313 +#: plugins/popen.c:310 msgid "CRITICAL - popen timeout received, but no child process" msgstr "" -#: plugins/popen.c:329 +#: plugins/popen.c:326 msgid "sysconf error for _SC_OPEN_MAX" msgstr "" -#: plugins/urlize.c:137 +#: plugins/urlize.c:134 #, c-format msgid "" "%s UNKNOWN - No data received from host\n" "CMD: %s\n" msgstr "" -#: plugins/urlize.c:176 +#: plugins/urlize.c:173 msgid "This plugin wraps the text output of another command (plugin)" msgstr "" -#: plugins/urlize.c:177 +#: plugins/urlize.c:174 msgid "" "in HTML tags, thus displaying the plugin output in as a clickable link in" msgstr "" -#: plugins/urlize.c:178 +#: plugins/urlize.c:175 msgid "" "the Nagios status screen. The return status is the same as the invoked " "plugin." msgstr "" -#: plugins/urlize.c:188 +#: plugins/urlize.c:185 msgid "" "Pay close attention to quoting to ensure that the shell passes the expected" msgstr "" -#: plugins/urlize.c:189 +#: plugins/urlize.c:186 msgid "data to the plugin. For example, in:" msgstr "" -#: plugins/urlize.c:190 +#: plugins/urlize.c:187 msgid "urlize http://example.com/ check_http -H example.com -r 'two words'" msgstr "" -#: plugins/urlize.c:191 +#: plugins/urlize.c:188 msgid "the shell will remove the single quotes and urlize will see:" msgstr "" -#: plugins/urlize.c:192 +#: plugins/urlize.c:189 msgid "urlize http://example.com/ check_http -H example.com -r two words" msgstr "" -#: plugins/urlize.c:193 +#: plugins/urlize.c:190 msgid "You probably want:" msgstr "" -#: plugins/urlize.c:194 +#: plugins/urlize.c:191 msgid "urlize http://example.com/ \"check_http -H example.com -r 'two words'\"" msgstr "" -#: plugins/utils.c:467 +#: plugins/utils.c:481 msgid "failed realloc in strpcpy\n" msgstr "" -#: plugins/utils.c:509 +#: plugins/utils.c:523 msgid "failed malloc in strscat\n" msgstr "" -#: plugins-root/check_dhcp.c:327 +#: plugins-root/check_dhcp.c:325 #, c-format msgid "Error: Could not get hardware address of interface '%s'\n" msgstr "" -#: plugins-root/check_dhcp.c:349 +#: plugins-root/check_dhcp.c:347 #, c-format msgid "Error: if_nametoindex error - %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:354 +#: plugins-root/check_dhcp.c:352 #, c-format msgid "Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:359 +#: plugins-root/check_dhcp.c:357 #, c-format msgid "" "Error: Couldn't get hardware address from interface %s. malloc error - %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:364 +#: plugins-root/check_dhcp.c:362 #, c-format msgid "Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:390 +#: plugins-root/check_dhcp.c:388 #, c-format msgid "" "Error: can't find unit number in interface_name (%s) - expecting TypeNumber " "eg lnc0.\n" msgstr "" -#: plugins-root/check_dhcp.c:395 plugins-root/check_dhcp.c:407 +#: plugins-root/check_dhcp.c:393 plugins-root/check_dhcp.c:405 #, c-format msgid "" "Error: can't read MAC address from DLPI streams interface for device %s unit " "%d.\n" msgstr "" -#: plugins-root/check_dhcp.c:413 +#: plugins-root/check_dhcp.c:411 #, c-format msgid "" "Error: can't get MAC address for this architecture. Use the --mac option.\n" msgstr "" -#: plugins-root/check_dhcp.c:432 +#: plugins-root/check_dhcp.c:430 #, c-format msgid "Error: Cannot determine IP address of interface %s\n" msgstr "" -#: plugins-root/check_dhcp.c:440 +#: plugins-root/check_dhcp.c:438 #, c-format msgid "Error: Cannot get interface IP address on this platform.\n" msgstr "" -#: plugins-root/check_dhcp.c:445 +#: plugins-root/check_dhcp.c:443 #, c-format msgid "Pretending to be relay client %s\n" msgstr "" -#: plugins-root/check_dhcp.c:530 +#: plugins-root/check_dhcp.c:528 #, c-format msgid "DHCPDISCOVER to %s port %d\n" msgstr "" -#: plugins-root/check_dhcp.c:582 +#: plugins-root/check_dhcp.c:580 #, c-format msgid "Result=ERROR\n" msgstr "" -#: plugins-root/check_dhcp.c:588 +#: plugins-root/check_dhcp.c:586 #, c-format msgid "Result=OK\n" msgstr "" -#: plugins-root/check_dhcp.c:603 +#: plugins-root/check_dhcp.c:601 #, c-format msgid "DHCPOFFER from IP address %s" msgstr "" -#: plugins-root/check_dhcp.c:604 +#: plugins-root/check_dhcp.c:602 #, c-format msgid " via %s\n" msgstr "" -#: plugins-root/check_dhcp.c:611 +#: plugins-root/check_dhcp.c:609 #, c-format msgid "" "DHCPOFFER XID (%u) did not match DHCPDISCOVER XID (%u) - ignoring packet\n" msgstr "" -#: plugins-root/check_dhcp.c:633 +#: plugins-root/check_dhcp.c:631 #, c-format msgid "DHCPOFFER hardware address did not match our own - ignoring packet\n" msgstr "" -#: plugins-root/check_dhcp.c:651 +#: plugins-root/check_dhcp.c:649 #, c-format msgid "Total responses seen on the wire: %d\n" msgstr "" -#: plugins-root/check_dhcp.c:652 +#: plugins-root/check_dhcp.c:650 #, c-format msgid "Valid responses for this machine: %d\n" msgstr "" -#: plugins-root/check_dhcp.c:667 +#: plugins-root/check_dhcp.c:665 #, c-format msgid "send_dhcp_packet result: %d\n" msgstr "" -#: plugins-root/check_dhcp.c:700 +#: plugins-root/check_dhcp.c:698 #, c-format msgid "No (more) data received (nfound: %d)\n" msgstr "" -#: plugins-root/check_dhcp.c:719 +#: plugins-root/check_dhcp.c:717 #, c-format msgid "recvfrom() failed, " msgstr "" -#: plugins-root/check_dhcp.c:726 +#: plugins-root/check_dhcp.c:724 #, c-format msgid "receive_dhcp_packet() result: %d\n" msgstr "" -#: plugins-root/check_dhcp.c:727 +#: plugins-root/check_dhcp.c:725 #, c-format msgid "receive_dhcp_packet() source: %s\n" msgstr "" -#: plugins-root/check_dhcp.c:757 +#: plugins-root/check_dhcp.c:755 #, c-format msgid "Error: Could not create socket!\n" msgstr "" -#: plugins-root/check_dhcp.c:767 +#: plugins-root/check_dhcp.c:765 #, c-format msgid "Error: Could not set reuse address option on DHCP socket!\n" msgstr "" -#: plugins-root/check_dhcp.c:773 +#: plugins-root/check_dhcp.c:771 #, c-format msgid "Error: Could not set broadcast option on DHCP socket!\n" msgstr "" -#: plugins-root/check_dhcp.c:782 +#: plugins-root/check_dhcp.c:780 #, c-format msgid "" "Error: Could not bind socket to interface %s. Check your privileges...\n" msgstr "" -#: plugins-root/check_dhcp.c:793 +#: plugins-root/check_dhcp.c:791 #, c-format msgid "" "Error: Could not bind to DHCP socket (port %d)! Check your privileges...\n" msgstr "" -#: plugins-root/check_dhcp.c:827 +#: plugins-root/check_dhcp.c:825 #, c-format msgid "Requested server address: %s\n" msgstr "" -#: plugins-root/check_dhcp.c:888 +#: plugins-root/check_dhcp.c:886 #, c-format msgid "Lease Time: Infinite\n" msgstr "" -#: plugins-root/check_dhcp.c:890 +#: plugins-root/check_dhcp.c:888 #, c-format msgid "Lease Time: %lu seconds\n" msgstr "" -#: plugins-root/check_dhcp.c:892 +#: plugins-root/check_dhcp.c:890 #, c-format msgid "Renewal Time: Infinite\n" msgstr "" -#: plugins-root/check_dhcp.c:894 +#: plugins-root/check_dhcp.c:892 #, c-format msgid "Renewal Time: %lu seconds\n" msgstr "" -#: plugins-root/check_dhcp.c:896 +#: plugins-root/check_dhcp.c:894 #, c-format msgid "Rebinding Time: Infinite\n" msgstr "" -#: plugins-root/check_dhcp.c:897 +#: plugins-root/check_dhcp.c:895 #, c-format msgid "Rebinding Time: %lu seconds\n" msgstr "" -#: plugins-root/check_dhcp.c:925 +#: plugins-root/check_dhcp.c:923 #, c-format msgid "Added offer from server @ %s" msgstr "" -#: plugins-root/check_dhcp.c:926 +#: plugins-root/check_dhcp.c:924 #, c-format msgid " of IP address %s\n" msgstr "" -#: plugins-root/check_dhcp.c:993 +#: plugins-root/check_dhcp.c:991 #, c-format msgid "DHCP Server Match: Offerer=%s" msgstr "" -#: plugins-root/check_dhcp.c:994 +#: plugins-root/check_dhcp.c:992 #, c-format msgid " Requested=%s" msgstr "" -#: plugins-root/check_dhcp.c:996 +#: plugins-root/check_dhcp.c:994 #, c-format msgid " (duplicate)" msgstr "" -#: plugins-root/check_dhcp.c:997 +#: plugins-root/check_dhcp.c:995 #, c-format msgid "\n" msgstr "" -#: plugins-root/check_dhcp.c:1045 +#: plugins-root/check_dhcp.c:1043 #, c-format msgid "No DHCPOFFERs were received.\n" msgstr "" -#: plugins-root/check_dhcp.c:1049 +#: plugins-root/check_dhcp.c:1047 #, c-format msgid "Received %d DHCPOFFER(s)" msgstr "" -#: plugins-root/check_dhcp.c:1052 +#: plugins-root/check_dhcp.c:1050 #, c-format msgid ", %s%d of %d requested servers responded" msgstr "" -#: plugins-root/check_dhcp.c:1055 +#: plugins-root/check_dhcp.c:1053 #, c-format msgid ", requested address (%s) was %soffered" msgstr "" -#: plugins-root/check_dhcp.c:1055 +#: plugins-root/check_dhcp.c:1053 msgid "not " msgstr "" -#: plugins-root/check_dhcp.c:1057 +#: plugins-root/check_dhcp.c:1055 #, c-format msgid ", max lease time = " msgstr "" -#: plugins-root/check_dhcp.c:1059 +#: plugins-root/check_dhcp.c:1057 #, c-format msgid "Infinity" msgstr "" -#: plugins-root/check_dhcp.c:1240 +#: plugins-root/check_dhcp.c:1238 #, c-format msgid "Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:1252 +#: plugins-root/check_dhcp.c:1250 #, c-format msgid "Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:1265 +#: plugins-root/check_dhcp.c:1263 #, c-format msgid "Error: DLPI stream API failed to get MAC in put_both/putmsg().\n" msgstr "" -#: plugins-root/check_dhcp.c:1277 +#: plugins-root/check_dhcp.c:1275 #, c-format msgid "" "Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:1301 +#: plugins-root/check_dhcp.c:1299 #, c-format msgid "Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n" msgstr "" -#: plugins-root/check_dhcp.c:1380 +#: plugins-root/check_dhcp.c:1378 #, c-format msgid "Hardware address: " msgstr "" -#: plugins-root/check_dhcp.c:1396 +#: plugins-root/check_dhcp.c:1394 msgid "This plugin tests the availability of DHCP servers on a network." msgstr "" -#: plugins-root/check_dhcp.c:1407 +#: plugins-root/check_dhcp.c:1406 msgid "IP address of DHCP server that we must hear from" msgstr "" -#: plugins-root/check_dhcp.c:1409 +#: plugins-root/check_dhcp.c:1408 msgid "IP address that should be offered by at least one DHCP server" msgstr "" -#: plugins-root/check_dhcp.c:1411 +#: plugins-root/check_dhcp.c:1410 msgid "Seconds to wait for DHCPOFFER before timeout occurs" msgstr "" -#: plugins-root/check_dhcp.c:1413 +#: plugins-root/check_dhcp.c:1412 msgid "Interface to to use for listening (i.e. eth0)" msgstr "" -#: plugins-root/check_dhcp.c:1415 +#: plugins-root/check_dhcp.c:1414 msgid "MAC address to use in the DHCP request" msgstr "" -#: plugins-root/check_dhcp.c:1417 +#: plugins-root/check_dhcp.c:1416 msgid "Unicast testing: mimic a DHCP relay, requires -s" msgstr "" -#: plugins-root/check_icmp.c:1227 +#: plugins-root/check_icmp.c:1271 msgid "specify a target" msgstr "" -#: plugins-root/check_icmp.c:1229 +#: plugins-root/check_icmp.c:1273 msgid "warning threshold (currently " msgstr "" -#: plugins-root/check_icmp.c:1232 +#: plugins-root/check_icmp.c:1276 msgid "critical threshold (currently " msgstr "" -#: plugins-root/check_icmp.c:1235 +#: plugins-root/check_icmp.c:1279 +msgid "specify a source IP address or device name" +msgstr "" + +#: plugins-root/check_icmp.c:1281 msgid "number of packets to send (currently " msgstr "" -#: plugins-root/check_icmp.c:1238 +#: plugins-root/check_icmp.c:1284 msgid "max packet interval (currently " msgstr "" -#: plugins-root/check_icmp.c:1241 +#: plugins-root/check_icmp.c:1287 msgid "max target interval (currently " msgstr "" -#: plugins-root/check_icmp.c:1244 +#: plugins-root/check_icmp.c:1290 msgid "number of alive hosts required for success" msgstr "" -#: plugins-root/check_icmp.c:1247 +#: plugins-root/check_icmp.c:1293 msgid "TTL on outgoing packets (currently " msgstr "" -#: plugins-root/check_icmp.c:1250 +#: plugins-root/check_icmp.c:1296 msgid "timeout value (seconds, currently " msgstr "" -#: plugins-root/check_icmp.c:1253 +#: plugins-root/check_icmp.c:1299 msgid "icmp packet size (currenly ignored)" msgstr "" -#: plugins-root/check_icmp.c:1255 +#: plugins-root/check_icmp.c:1301 msgid "verbose" msgstr "" -#: plugins-root/check_icmp.c:1258 +#: plugins-root/check_icmp.c:1305 msgid "The -H switch is optional. Naming a host (or several) to check is not." msgstr "" -#: plugins-root/check_icmp.c:1259 +#: plugins-root/check_icmp.c:1307 msgid "" "Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%" msgstr "" -#: plugins-root/check_icmp.c:1260 +#: plugins-root/check_icmp.c:1308 msgid "packet loss. The default values should work well for most users." msgstr "" -#: plugins-root/check_icmp.c:1261 +#: plugins-root/check_icmp.c:1309 msgid "" "You can specify different RTA factors using the standardized abbreviations" msgstr "" -#: plugins-root/check_icmp.c:1262 +#: plugins-root/check_icmp.c:1310 msgid "" "us (microseconds), ms (milliseconds, default) or just plain s for seconds." msgstr "" -#: plugins-root/check_icmp.c:1267 +#: plugins-root/check_icmp.c:1316 msgid "The -v switch can be specified several times for increased verbosity." msgstr "" diff --git a/tools/build_perl_modules b/tools/build_perl_modules index fb47145..4bdb81b 100755 --- a/tools/build_perl_modules +++ b/tools/build_perl_modules @@ -74,7 +74,9 @@ foreach my $tarball (@tarballs) { chdir $dir or die "Can't chdir into $dir"; # Need to add this so this module is found for subsequent ones - $ENV{PERL5LIB}="$topdir/$dir/blib/lib:$ENV{PERL5LIB}"; + my @dirs = split(":", $ENV{PERL5LIB} || ""); + unshift @dirs, "$topdir/$dir/blib/lib"; + $ENV{PERL5LIB}=join(":", @dirs); if ($opts->{t}) { system("make test") == 0 or die "Can't run make test failed"; diff --git a/tools/tinderbox_build b/tools/tinderbox_build index 1c41acf..387dc5c 100755 --- a/tools/tinderbox_build +++ b/tools/tinderbox_build @@ -14,7 +14,7 @@ use Sys::Hostname; use Cwd; use Time::Local; -my $Version = '$Revision: 1866 $'; +my $Version = '$Revision: 1904 $'; my $myhost = hostname; chomp($myhost); @@ -266,8 +266,8 @@ sub make { sub maketest { # Tests - 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 |"); + 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 |"); while ( ) { print $_; print LOG $_;