diff -Nurp inn-2.6.4/CONTRIBUTORS inn-2.6.5/CONTRIBUTORS --- inn-2.6.4/CONTRIBUTORS 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/CONTRIBUTORS 2022-02-18 20:36:57.000000000 +0100 @@ -278,4 +278,4 @@ Dennis Preiser, Paolo Amoroso, Dennis Da Tim Fardell, Remco Rijnders, David Binderman, Tony Evans, Christian Garbs, Jesse Rehmer, Colin Watson, Lauri Tirkkonen, Christian Mock, Marcus Jodorf, Richard Kettlewell, Yuriy M. Kaminskiy, Bill Parker, Thomas Hochstein, -Tanguy Ortolo, Michael Baeuerle +Tanguy Ortolo, Michael Baeuerle, Kevin Bowling diff -Nurp inn-2.6.4/ChangeLog inn-2.6.5/ChangeLog --- inn-2.6.4/ChangeLog 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/ChangeLog 1970-01-01 01:00:00.000000000 +0100 @@ -1,555 +0,0 @@ -2021-01-21 iulius - - * Time to release 2.6.4! - -2021-01-20 iulius - - * INSTALL: a bit of clean-up, and update the list of tested OS - - * Update to latest upstream files - - control.ctl, pgpverify, Libtool, pkg-config, config.guess and - config.sub - - * Improve NEWS and add the new year in LICENSE - - * Update links to external repositories - - * Compare space usage of our 3 overview storage methods - -2021-01-17 iulius - - * Add support for systemd socket activation - - Thanks to Marco d'Itri for that new feature! - - * m4/krb5.m4: fix the detection of Kerberos V5 support - - Kerberos V5 was considered available even though C headers were - not present. Now fixed that by probing both the existence of - headers and libraries. - - * m4/python.m4: fix the detection of old Python 2.x versions - - The current code for probing the presence of Python only workq - with Python 2.7+ and 3.1+ because the "major" attribute to - sys.version_info was only added in these versions. - - Also, the construct 'x for y in z' is too recent and not known by - Python 2.3.0, the minimum version required for INN, so I changed - it to a classic map(). If two arguments were not given to the m4 - macro, the script also failed. Now fixed. - - * Use AS_ECHO instead of echo in Autoconf macros - - AS_ECHO is more portable. The echo shell function may not be - reliable in the calls we do, with variables containing "-" or - other characters. - -2021-01-15 iulius - - * innd: add systemd notifications for xexec and shutdown - - * inndf: report buffindexed usage with 2 decimals - - Output was truncated at the inferior number (e.g. 37.00%). - -2021-01-11 iulius - - * Do not run the check for POD syntax if Test::POD is too old - - Test::POD versions prior to 1.50 may not ignore directories like - .libs set in the ignore_dirs hash (due to a bug). This causes the - test to fail whereas POD syntax is OK. - - * Improve sample init systemd script - - Thanks to Marco d'Itri, Debian packager of INN, for the ideas. - Also enable notify type. - - * rc.news: start innd last when using systemd - - innd must be started last with exec to keep the same PID of this - script. - - Patch from Marco d'Itri. - -2021-01-05 iulius - - * Detail and homogenize the description of our 3 overview methods - - * Makefile: Remove useless flags for the linker when just compiling - lib/perl.c - - Use condensed $(LIBLD) variable. - - * Add -fstack-protector-strong for linking if recognized - - Building innd on Solaris fails if the compiler does not have - amongst its flags -fstack-protector-strong for linking. - - Undefined first referenced symbol in file __stack_chk_fail art.o - __stack_chk_guard art.o ld: fatal: symbol referencing errors - - Also, if the compiler does not support -fstack-protector-strong - for linking, assume it will not work, and remove that flag even - for compiling (AIX typically does not have libssp_nonshared). - -2021-01-04 iulius - - * configure: also change CC_WARNINGS when CFLAGS is changed - - * Fix build issue when using "make warnings" - - -fPIE was not present when needed when using "make warnings", - causing various problems. - - * Move to configure.ac the logic to undefine AM_CONDITIONAL - - * Added preliminary support for systemd notifications - - Integrate necessary Autoconf macros and portability headers to - use systemd. Right now, only notifications of innd startup and - mode changes are notified to the unit system. - - Thanks to Marco d'Itri for this first systemd integration into - INN. - -2021-01-03 iulius - - * Add a comment in configure.ac and fix POD typo from previous - commits - - * Fix build of fseeko replacement - - AC_FUNC_FSEEKO needs being called unconditionally out of - consistency with the logic in clibrary.h (first looking for - !HAVE_FSEEKO before DO_LARGEFILES, and not the contrary). - - * inn.conf: Mention how to disable the process of cancel messages - -2020-12-31 eagle - - * Add detail for rejected header - - When nnrpd rejects a posting because of an invalid header that - isn't part of the header table, include the name of the header as - an aid in debugging, or the full header if no colon could be - found or if the line starts with a colon. - - Reported by Adam Sjøgren and Lars Ingebrigtsen. - -2020-12-24 eagle - - * Fix some subtle errors with nnrpd external auth - - If nnrpd saw EOF on the stderr file descriptor from an external - auth program, it would ignore any further output on stdout. This - was the cause of the maddeningly intermittant nnrpd/auth-ext test - failures for tests 56 and 59. Sometimes the closure of stderr - would be seen before the flush of output on stdout, causing the - code to fail to see the username. - - Fix this problem with more explicit state tracking for stderr. If - we see EOF or an error in the stderr file descriptor, remove it - from the select set but continue processing stdout until we also - see an EOF or error there. - - Add a new test that explicitly closes stderr. This failed - consistently with the previous code and passes consistently with - this code. - - Also close the read and error file descriptors for the external - authentication program in nnrpd. Previously, we were leaking - those file descriptors. - - * Switch nnrpd/auth-ext to the new test API - - Use the new test API so that failures will be reported with more - detail in the hope that this will help track down the - intermittant failure. - - * Fix GCC warnings in tests/lib/date-t.c - - GCC 10.2.1 rightfully complains that the snprintf invocations in - this test may overflow the buffer length and truncate. Use - basprintf instead to avoid having to size buffers. - -2020-12-22 iulius - - * pgpverify: add a comment about requirements for GnuPG 1.4.20 or - 2.1.0 - -2020-12-19 eagle - - * Use a fixed buffer size for QIO - - The buffer size for QIO is also a limit on the length of an - overview line, and the previous complex approach resulted in a - buffer size of 8KB on nearly all systems, which was too small in - practice. - - Stop attempting to be clever and size according to the file - system block size, which is generally small, and instead use a - fixed and predictable buffer size of 32KB, which shouldn't be a - problem on any modern system. - -2020-12-09 iulius - - * INSTALL: Document the need of shared libraries or - position-independent static libraries - - * Update new name of macOS - - * Typo in last commit - - * Mention that lines in header field bodies are separated by mere - LF in Perl nnrpd filter - - * Update to latest rra-c-util upstream version - - Specific fixes for INN builds on Alpine and BSD: * In the - getnameinfo replacement, handle musl libc's gethostbyaddr, which - returns the string conversion of the IP address if the host - doesn't resolve. This only affects the test suite, since musl - libc supports IPv6 and thus doesn't need this replacement. - - * NetBSD prefers reallocarr to reallocarray and only prototypes - the latter if _OPENBSD_SOURCE is defined, which is not one of the - macros Autoconf defines by default. Work around this by checking - whether reallocarray is declared, not only whether it's - available, and protyping it if it's not declared. This uses the - semi-hidden deprecated symbol on NetBSD. - - * configure.ac: use new Autoconf 2.70 syntax for AC_PROG_LEX - - Use 'noyywrap' for AC_PROG_LEX. Use AC_CONFIG_HEADERS instead of - obsolete AC_CONFIG_HEADER. - - >From Autoconf 2.70 documentation: AC_PROG_LEX now takes one - argument, which may be either 'yywrap' or 'noyywrap'. If it is - 'noyywrap', AC_PROG_LEX will only set LEXLIB to '-lfl' or '-ll' - if a scanner that defines both main and yywrap itself still needs - something else from that library. On the other hand, if it is - 'yywrap', AC_PROG_LEX will fail (setting LEX to ':' and LEXLIB to - nothing) if it can't find a library that defines yywrap. - - In the absence of arguments, AC_PROG_LEX's behavior is - bug-compatible with 2.69, which did neither of the above things. - This mode is deprecated. - - Prior to Autoconf 2.70, AC_PROG_LEX did not take any arguments, - and its behavior was different from either of the above - possibilities: it would search for a library that defines - 'yywrap', and would set 'LEXLIB' to that library if it finds one. - However, if a library that defines this function could not be - found, 'LEXLIB' would be left empty and 'LEX' would _not_ be - reset. This behavior was due to a bug. - - * Improve logs when Python filters are not installed - -2020-12-06 eagle - - * Update URL for Postfilter - - code.google.com is no more. This seems to be the new location on - GitHub. - -2020-12-01 iulius - - * Fix build issue in linker feature probing - - Thanks to Bo Lindbergh for the report. - - * Improve sample init systemd service unit - - Apply more protections. Sample shared by Russ Allbery. - -2020-11-24 iulius - - * Fix other circular dependencies in builds - -2020-11-22 iulius - - * Bump revision numbers in INN libraries - - * Add a check in configure to prevent a build with shared non-PIC - libraries - - * Add support for hardening build flags - - New --enable-hardening-flags option to configure, enabled by - default. - - It currently adds -fPIE, -fstack-protector-strong at build time, - and -z relro as well as -z now at link time. More flags will - eventually be added in future releases. - - This option can easily be disabled if the compiler or the - platform does not support them well. - - * Update to latest control.ctl upstream file - -2020-11-21 iulius - - * Fix spurious errors when verifying POD syntax - - Exclude the directory of the test suite. - - * Fix build with static libraries - - The ACTIVE parameter is no longer shared between expire.c and - ov.c, so it no longer has to be exposed in ovinterface.h. Its - removal fixes the naming conflict with another ACTIVE parameter - in nnrpd. - - * Update to latest Libtool and install-sh upstream versions - - Libtool => use Debian-2.4.6-14 version - - install-sh => upstream has integrated local modifications we had - carried for years in INN. Parameters have been integrated with - different names, so update Makefile accordingly (-c is now -p; -B - is now -S) as well as documentation - - * Update to latest config.guess and config.sub upstream versions - - * Typo fixes - - * Fix build with static libraries - - Circular dependencies were not correctly resolved by the linker. - Seems to be a bug in the --preserve-dup-deps Libtool flag, that - does not do what it is supposed to do. Fixed in a local - modification in ltmain.sh, reported to upstream. - - * sm: support reading and storing wire-format articles - - Any number of articles can now be given in wire format to sm on - its standard input when both "-s" and "-R" are used. Only native - format was previously possible. - - This might be useful for certain types of internal migrations. - - Thanks to Bo Lindbergh for the patch. - -2020-11-12 iulius - - * innd: make SIGTERM behave exactly like "ctlinnd shutdown" - - Patch from Marco d'Itri. - - * perl-nocem: document the use of gpg1 to import old PGP keys - - * docs/pod.t: Fix path to Perl interpreter in test suite - - Thanks to Bo Lindbergh for the bug report. - - * Add missing header files to silent gcc warning - - Fix build on a few systems like MacOS (warnings may make the - system consider the configure test failed). - - Thanks to Bo Lindbergh for the bug report. - - * Update to latest rra-c-util and C TAP Harness upstream versions - - * Fix syntax in Makefile - - GNU make 4.3 emits the following warning: "ignoring prerequisites - on suffix rule definition". - - In previous versions, no warning was emitted and a suffix rule - was created, however all prerequisites were ignored and were not - part of the suffix rule. Starting with GNU make 4.3, the - behaviour is the same, and in addition a warning is generated. - This commit fixes the syntax. - - * Fix yacc declaration for types - - POSIX yacc reserves %type to nonterminals. Found with new -Wyacc - warning option in Bison 3.5. - -2020-06-14 iulius - - * innreport: silent normal behaviour from rnews - - - Only "bad_article missing Message-ID" was skipped whereas other - header fields are also checked. Change to "bad_article missing ". - - - Skip all "rejected 437" and "rejected 439" because responses - could be different with other news servers. - -2020-06-13 iulius - - * innreport: externalize CSS - - Inline styles are not allowed by a (good) Content-Security-Policy - because they're vulnerable to XSS. It has become common practice - to always externalize all CSS into a separate file. - - External CSS is also more cacheable though this isn't the primary - motivation here. - - Patch adapted from a suggestion of Richard Kettlewell. - - * innreport: use INN version instead of legacy 3.1.0 version - - * innreport: modernize HTML - - No insecure external content. Remove icons for W3C XHTML and CSS - validation. The reason is to avoid errors when serving innreport - output via HTTPS). Thanks to Richard Kettlewell for the patch. - -2020-05-24 iulius - - * rnews: new -d flag to log duplicates - - When -d is used, rnews will syslog the message-ID and the Path - header value of each article rejected as a duplicate by the - server. - - It was previously only a compile-time option (DO_RNEWS_LOG_DUPS - in options.h), which I am unsure worked fine because there were - several wordings in the rnews code: DONT_RNEWS_LOG_DUPS, - SYSLOG_RNEWS_LOG_DUPS, FILE_RNEWS_LOG_DUPS. - - Remove INN_PATH_RNEWS_DUP_LOG (hard-coded to "/dev/null"). One - can now parameter its syslog configuration to obtain that - information, if needed. - - * Typo fix in a variable name - - Should have done a rebuild before committing! - - * rnews: new -a flag to configure the use of additional unpackers - - Added a new "-a" flag to rnews to disallow, if needed, the use of - additional unpackers from "/rnews.libexec"; only "rnews" - and "cunbatch" will then be recognized as valid batch commands. - - It was previously only a compile-time option (DO_RNEWSPROGS). - - * rnews: add -b flag to back up badly formatted articles - - This new -b flag to rnews permits saving rejected articles in the - "bad" sub-directory of . Otherwise, rnews just logs - and discards any articles that are rejected or cannot be parsed - for some reason. - - This feature was previously available only via the compile-time - option DO_RNEWS_SAVE_BAD. - - Thanks to Herbert Xu for the proposal of making it easily - available. - -2020-05-21 iulius - - * Clarify nnrpd TLS instructions - - Thanks to Richard Kettlewell for the suggestion. - -2020-05-10 iulius - - * Fix build with GCC 10.1 - - Ensure that ser_line is at least 4-byte long. And that there is - enough room in buff to copy the path. - - * innd: remove unused filterPath variable - - Variable unused since 2001 (removal forgotten in commit 4435). - -2020-03-08 eagle - - * Change readme.pod links to https - - Prefer https where available for links to supporting software. - -2020-01-07 eagle - - * Suppress (spurious) uninitialized warnings - - GCC 8.3 thinks that some variables in buffindexed/buffindexed.c - could be used uninitialized. Initialize them to silence the - compiler. - -2019-10-31 eagle - - * Make IOV_MAX Autoconf check more cross-compile-friendly - - The IOV_MAX Autoconf check always compiled and ran a program and - relied on the output from that program to indicate that IOV_MAX - was set in limits.h, which causes problems with - cross-compilation. Instead, use AC_CHECK_DECL to check for the - common case that IOV_MAX is defined in limits.h, and only compile - and run a program for the uncommon case that this fails. - - Tested only on Linux, but by changing the probe to look for - something other than IOV_MAX and then for something other than - UIO_MAXIOV, to make sure all the branches work. - - Thanks, Helmut Grohne. - -2019-10-27 iulius - - * cnfsstat: output information about retired CNFS buffers - - When not in a metacycbuff, CNFS buffers still mentioned in - cycbuff were not displayed. - -2019-09-17 iulius - - * nnrpd: fix the selection of DH parameters - - When the parameters have already been initialized, the callback - returns NULL instead of the previously loaded buffer. - - Fix to previous commit 10344. - - Thanks to Adam D. Barratt for having caught the issue. - -2019-05-31 iulius - - * nnrpd: Adapt the length of DH parameters depending on security - level - - Remove hard-coded 512 and 1024-bit DH parameters to only use more - secure DH parameters taken from a more recent RFC 7919. - - When OpenSSL is configured with a security level beyond 1 (which - is the case with Debian Buster for instance), shorter parameters - might not be accepted. Negotiations for ciphersuites using DHE - key exchange then fail. - - From OpenSSL documentation: "Previous versions of the callback - used is_export and keylength parameters to control parameter - generation for export and non-export cipher suites. Modern - servers that do not support export cipher suites are advised to - either use SSL_CTX_set_tmp_dh() or alternatively, use the - callback but ignore keylength and is_export and simply supply at - least 2048-bit parameters in the callback." - - Thanks to Michael Baeuerle for the bug report. - -2019-05-30 iulius - - * Fix string operation warnings with GCC 9 - - Also use CNFSNASIZ when appropriate (for buffer names). - - * nnrpd: fix build issue with LibreSSL - - LibreSSL defines itself as version 2 of OpenSSL, though not - implementing the same API. - -2019-03-09 eagle - - * Update URL for suck, remove newsx - - suck has a new usptream on GitHub. newsx appears to be thoroughly - gone and has been removed from Debian, so remove it from README. - -2019-02-13 iulius - - * Bump revision numbers to next release diff -Nurp inn-2.6.4/HACKING inn-2.6.5/HACKING --- inn-2.6.4/HACKING 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/HACKING 2022-02-18 20:36:57.000000000 +0100 @@ -9,14 +9,14 @@ Hacking INN First of all, if you plan on working on INN source, please start from the current development tree. There may be significant changes from the previous full release, so starting from development sources will make it - considerably easier to integrate your work. You can check out the - current development tree using Subversion from: + considerably easier to integrate your work. You can check out or clone + the current development tree using Git from: - + - or view it with Trac source browser at: + or browse the current development source on Github at: - + You will need autoconf 2.64 or later to use the development tree. After checking out the tree, run "./autogen" to generate the necessary @@ -63,7 +63,7 @@ Configuring and Portability you can run "./autogen". Please don't include patches to either configure or include/config.h.in when sending patches to INN; instead, note in your patch that those files must be regenerated. These (and all - other) generated files should not be checked into Subversion. + other) generated files should not be checked into Git. At the time of this writing, autoconf 2.64 or later is required. @@ -539,9 +539,7 @@ Coding Style /* This is a multiline comment. */ - Comments before functions saying what they do are nice to have. In - general, the RCS/SVN "Id" tag is on the first line of each source - file since it's useful to know when a file was last modified. + Comments before functions saying what they do are nice to have. * Checks for NULL pointers are preferrably written out explicitly; in other words, use: @@ -694,6 +692,8 @@ Making a Release --enable-shared=no, --enable-tagged-hash, --enable-keywords, --enable-largefiles and --enable-reduced-depends). + Update INSTALL with the list of supported systems. + 3. Update copyright years in LICENSE. 4. Update doc/pod/news.pod and regenerate NEWS. Be more detailed for a @@ -717,17 +717,15 @@ Making a Release . - 7. If making a major release, branch the source tree by creating a new - directory under branches in Subversion named after the major - release. This branch will be used for minor releases based on that - major release and can be done a little while before the .0 release - of that major release. + 7. If making a major release, create a new branch in Git named after + the major release. This branch will be used for minor releases + based on that major release and can be done a little while before + the .0 release of that major release. - svn copy -r ZZZZ -m "Branch Y.Y.0 release." \ - file:///srv/svn/inn/trunk file:///srv/svn/inn/branches/Y.Y + git checkout -b Y.Y Then, in that newly created branch, remove the first paragraph in - doc/pod/readme.pod which deals with development versions. + readme.pod which deals with development versions. 8. Check out a copy of the release branch, and perform the following actions. @@ -745,16 +743,7 @@ Making a Release 9. Run "make release" for a final release, "support/mksnapshot BETA b1" for the first beta version of a new release, or "support/mksnapshot - RC rc1" for the first release candidate version of a new release. - Note that you need to have a copy of svn2cl from - to do this; at least version 0.7 - is required. Start the ChangeLog at the time of the previous - release. (Eventually, the script will be smart enough to do this - for you.) - - Check that the ChangeLog file is correct; otherwise, regenerate it - or manually edit it. Then run again "make release" or any other - command you used. + RC rc1" for the first release candidate version of a new release. 10. Generate an MD5 checksum of the release tarball. @@ -800,21 +789,28 @@ Making a Release update the ISC web site (the relevant contact is "web-request" instead of "webmaster"). - 14. After the ISC web site has been updated with links towards the new - release, send an announce on inn-announce and in news.software.nntp - (with a possible crosspost to news.admin.announce). - - 15. Tag the checked-out tree that was used for generating the release - with a release tag by copying it to tags in Subversion. - - svn copy -r ZZZZ -m "Tag Y.Y.Y release." \ - file:///srv/svn/inn/branches/Y.Y file:///srv/svn/inn/tags/Y.Y.Y + 14. Publish a release in GitHub, based on the commit used to generate + the release tarball. Include the description from NEWS, and attach + the tarball as well as its signature. + + GitHub will create the appropriate annotated tag when publishing the + release. + + 15. After ftp.isc.org has correctly mirrored the release, send an + announce on inn-announce and in news.software.nntp (with a possible + crosspost to news.admin.announce). + + The ISC web site does not need being updated as it does not directly + link to the release, nor mention the version of the last release. + (Just check the information at + is still available and + accurate, though.) 16. Bump revision numbers to reflect the one of the following release, - especially in doc/pod/install.pod and doc/pod/readme.pod for major - releases, configure.ac and Makefile.global.in for both minor and - major releases. The release versions in the Trac wiki should also - be updated. + especially in doc/pod/install.pod and readme.pod for major releases, + configure.ac and Makefile.global.in for both minor and major + releases. The release versions in the GitHub bug tracker should + also be updated. 17. For major releases, ping Russ to update the branch used for the generation of STABLE snapshots. @@ -840,22 +836,18 @@ References A collection of documents about the Usenet article format, including most of the relevant RFCs and Internet-Drafts. - + The archives for the USEFOR IETF working group, the working group for the RFC 1036 replacement (the format of Usenet articles), now published as RFC 5536 and RFC 5537. - - Forrest Cavalier provides several tools for following INN - development at this page and elsewhere in the Usenet RKT. Under - here is a web-accessible checked-out copy of the current INN source - tree and pointers to how to use CVSup. However, please note that - INN development now uses Subversion. + + Forrest Cavalier provides several tools related to earlier versions + of INN (2.0 to 2.3.x). His web site is a great source of + information about Usenet in general. A primer on IPv6 with pointers to the appropriate places for more technical details as needed, useful when working on IPv6 support in INN. - $Id: hacking.pod 10531 2021-01-20 11:59:59Z iulius $ - diff -Nurp inn-2.6.4/INSTALL inn-2.6.5/INSTALL --- inn-2.6.4/INSTALL 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/INSTALL 2022-02-18 20:36:57.000000000 +0100 @@ -49,12 +49,13 @@ Supported Systems operating systems: AIX (including 7.2) - FreeBSD (including 12.1) - Linux (including 3.16, 4.19 and 5.10 kernels, glibc 2.19, 2.28 and 2.31) - macOS (including 11) - NetBSD (including 9.0) - OpenBSD (including 6.8) - Oracle Solaris (including 10 and 11) + FreeBSD (including 12.1 and 13.0) + Linux (including 3.16, 4.19, 5.10 and 5.15 kernels, + glibc 2.19, 2.28, 2.31 and 2.33) + macOS (including 11 and 12) + NetBSD (including 9.2) + OpenBSD (including 6.8 and 7.0) + Oracle Solaris (including 10 1/13 and 11.3) Current versions of INN may also work on other operating systems like HP-UX, OpenServer, SCO, UnixWare or UX/4800, as well as old versions of @@ -170,12 +171,17 @@ Unpacking the Distribution If you want a more cutting-edge version, you can obtain current snapshots from . These are - snapshots of the INN Subversion tree taken daily; there are two - snapshots made each night (one of the current development branch, and - one of the stable branch consisting of bug fixes to the previous major - release). They are stored in date format; in other words the snapshots - from April 6th, 2020, would be named inn-CURRENT-20200406.tar.gz and - inn-STABLE-20200406.tar.gz. Choose the newest file of whichever branch + snapshots of the INN Git tree taken daily; there are two snapshots made + each night in the daily subdirectory (one of the current development + branch, and one of the stable branch consisting of bug fixes to the + previous major release), and also daily snapshots at the top level of + the directory, updated only when the code changes in one of the two + branches. They are stored in date format in the daily subdirectory; in + other words the snapshots from April 6th, 2020, would be named + inn-CURRENT-20200406.tar.gz and inn-STABLE-20200406.tar.gz. At the top + level of the directory, the INN version number is used followed with + either the "git describe" version number for the stable branch or the + date for the main branch. Choose the newest file of whichever branch you prefer. (Note that the downloading, configuring, and compiling steps can be done while logged in as any user.) @@ -185,7 +191,8 @@ Unpacking the Distribution gunzip -c | tar -xf - Extracting the source distribution will create a directory named - inn- or inn-- where the source resides. + inn-, inn--, inn-- or inn-
- where the source resides. Installing INN @@ -526,8 +533,8 @@ Installing INN and the symbolic links for the libraries may point to the ".OLD" versions. Nonetheless, reverting to a previous version of INN should work fine for official releases (that is to say releases that are not - daily STABLE or CURRENT snapshots) because a proper versioning is done, - during the release of a new version. + daily snapshots) because a proper versioning is done during the release + of a new version. If you are configuring TLS/SSL support for newsreaders, you must make a certificate and private key at least once. Type: @@ -750,7 +757,7 @@ Configuring INN will not match that article. An article posted only to misc.bar will fail to match either pattern. - See uwildmat(3) for full details on wildmat patterns. + See libinn_uwildmat(3) for full details on wildmat patterns. In all INN configuration files, blank lines and lines beginning with a "#" symbol are considered comments and are ignored. Be careful, not all @@ -1240,7 +1247,7 @@ Configuring INN expire.ctl sets the expiration policy for articles stored on the server. Be careful, since the default configuration will expire most articles - after 15 days; in most circumstances this deletion is *permanent*, so + after 90 days; in most circumstances this deletion is *permanent*, so read this whole section carefully if you want to keep local hierarchies forever. (See archive(8) for a way to automate backups of important articles.) @@ -1629,6 +1636,12 @@ Starting and Stopping the System su news -s /bin/sh -c 'killall nnrpd' + And also, an additional cleaning if a separate TLS nnrpd daemon was + started as explained above: + + # Clean the PID file of the nnrpd daemon we started on port 563. + #rm -f /nnrpd-563.pid + Processing Newsgroup Control Messages Control messages are specially-formatted messages that tell news servers @@ -1694,5 +1707,3 @@ Processing Newsgroup Control Messages you may have to remove all the user IDs except the one that matches the control.ctl entry using "gpg --edit-key" and the "delkey" command. - $Id: install.pod 10535 2021-01-20 17:55:18Z iulius $ - diff -Nurp inn-2.6.4/LICENSE inn-2.6.5/LICENSE --- inn-2.6.4/LICENSE 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/LICENSE 2022-02-18 20:36:57.000000000 +0100 @@ -2,11 +2,10 @@ INN as a whole and all code contained in different licenses and/or copyrights is covered by the following copyright and license: - Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, - 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 + Copyright (c) 2004-2022 by Internet Systems Consortium, Inc. ("ISC") - Copyright (c) 1991, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002, 2003 by The Internet Software Consortium and Rich Salz + Copyright (c) 1991, 1994-2003 + by The Internet Software Consortium and Rich Salz This code is derived from software contributed to the Internet Software Consortium by Rich Salz. diff -Nurp inn-2.6.4/MANIFEST inn-2.6.5/MANIFEST --- inn-2.6.4/MANIFEST 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/MANIFEST 2022-02-18 20:36:57.000000000 +0100 @@ -42,7 +42,7 @@ backends/ninpaths.c Pa backends/nntpget.c Get articles from remote site backends/nntpsend.in Invoke all innxmit's at once backends/overchan.c Update news overview database -backends/send-ihave.in Script to post ihave messages +backends/send-ihave.in Script to post ihave control messages backends/send-nntp.in Shell script to call innxmit backends/send-uucp.in Script to call batcher backends/sendinpaths.in Send accumulated Path statistics @@ -128,7 +128,6 @@ doc/man/batcher.8 Ma doc/man/buffchan.8 Manpage for buffchan backend doc/man/buffindexed.conf.5 Manpage for buffindexed.conf config file doc/man/ckpasswd.8 Manpage for ckpasswd authenticator -doc/man/clientlib.3 Manpage for C News library interface doc/man/cnfsheadconf.8 Manpage for cnfsheadconf doc/man/cnfsstat.8 Manpage for cnfsstat doc/man/control.ctl.5 Manpage for control.ctl config file @@ -137,7 +136,6 @@ doc/man/convdate.1 Ma doc/man/ctlinnd.8 Manpage for ctlinnd frontend doc/man/cvtbatch.8 Manpage for cvtbatch utility doc/man/cycbuff.conf.5 Manpage for cycbuff.conf config file -doc/man/dbz.3 Manpage for DBZ database interface doc/man/distrib.pats.5 Manpage for distrib.pats config file doc/man/distributions.5 Manpage for distributions config file doc/man/docheckgroups.8 Manpage for docheckgroups @@ -160,12 +158,12 @@ doc/man/innbind.8 Ma doc/man/inncheck.8 Manpage for inncheck utility doc/man/innconfval.1 Manpage for innconfval doc/man/innd.8 Manpage for innd server -doc/man/inndcomm.3 Manpage for part of INN library doc/man/inndf.8 Manpage for inndf utility doc/man/innfeed.8 Manpage for innfeed backend doc/man/innfeed.conf.5 Manpage for innfeed.conf config file doc/man/innmail.1 Manpage for innmail utility doc/man/innreport.8 Manpage for innreport +doc/man/innreport.conf.5 Manpage for innreport.conf doc/man/innstat.8 Manpage for innstat utility doc/man/innupgrade.8 Manpage for innupgrade utility doc/man/innwatch.8 Manpage for innwatch @@ -174,9 +172,15 @@ doc/man/innxbatch.8 Ma doc/man/innxmit.8 Manpage for innxmit doc/man/libauth.3 Manpage for authprogs utilty routines doc/man/libinn.3 Manpage for INN library routines +doc/man/libinn_clientlib.3 Manpage for C News library interface +doc/man/libinn_dbz.3 Manpage for DBZ database interface +doc/man/libinn_inndcomm.3 Manpage for part of INN library +doc/man/libinn_list.3 Manpage for list routines +doc/man/libinn_qio.3 Manpage for fast I/O file routines +doc/man/libinn_tst.3 Manpage for ternary search tree routines +doc/man/libinn_uwildmat.3 Manpage for uwildmat library routine doc/man/libinnhist.3 Manpage for history API library routines doc/man/libstorage.3 Manpage for storage API library routines -doc/man/list.3 Manpage for list routines doc/man/mailpost.8 Manpage for mailpost frontend doc/man/makedbz.8 Manpage for makedbz doc/man/makehistory.8 Manpage for makehistory @@ -206,14 +210,14 @@ doc/man/pgpverify.1 Ma doc/man/procbatch.8 Manpage for procbatch doc/man/prunehistory.8 Manpage for prunehistory doc/man/pullnews.1 Manpage for pullnews -doc/man/qio.3 Manpage for fast I/O file routines doc/man/radius.8 Manpage for radius authenticator doc/man/rc.news.8 Manpage for rc.news doc/man/readers.conf.5 Manpage for readers.conf config file doc/man/rnews.1 Manpage for rnews frontend doc/man/scanlogs.8 Manpage for scanlogs doc/man/scanspool.8 Manpage for scanspool -doc/man/send-nntp.8 Manpage for send-nntp and send-ihave +doc/man/send-ihave.8 Manpage for send-ihave +doc/man/send-nntp.8 Manpage for send-nntp doc/man/send-uucp.8 Manpage for send-uucp doc/man/sendinpaths.8 Manpage for sendinpaths doc/man/shlock.1 Manpage for shlock backend utility @@ -225,8 +229,6 @@ doc/man/subscriptions.5 Ma doc/man/tally.control.8 Manpage for tally.control doc/man/tdx-util.8 Manpage for tdx-util doc/man/tinyleaf.8 Manpage for tinyleaf -doc/man/tst.3 Manpage for ternary search tree routines -doc/man/uwildmat.3 Manpage for uwildmat library routine doc/man/writelog.8 Manpage for writelog doc/pod POD documentation (Directory) doc/pod/Makefile Maintainer rules for derived files @@ -258,9 +260,11 @@ doc/pod/expireover.pod Ma doc/pod/expirerm.pod Master file for expirerm.8 doc/pod/external-auth.pod Master file for doc/external-auth doc/pod/fastrm.pod Master file for fastrm.1 +doc/pod/filechan.pod Master file for filechan.8 doc/pod/getlist.pod Master file for getlist.1 doc/pod/grephistory.pod Master file for grephistory.1 doc/pod/hacking.pod Master file for HACKING +doc/pod/history.pod Master file for history.5 doc/pod/hook-perl.pod Master file for doc/hook-perl doc/pod/hook-python.pod Master file for doc/hook-python doc/pod/ident.pod Master file for ident.8 @@ -276,14 +280,26 @@ doc/pod/inndf.pod Ma doc/pod/innfeed.conf.pod Master file for innfeed.conf.5 doc/pod/innfeed.pod Master file for innfeed.8 doc/pod/innmail.pod Master file for innmail.1 +doc/pod/innreport.conf.pod Master file for innreport.conf.5 +doc/pod/innreport.pod Master file for innreport.8 +doc/pod/innstat.pod Master file for innstat.8 doc/pod/innupgrade.pod Master file for innupgrade.8 +doc/pod/innwatch.ctl.pod Master file for innwatch.ctl.5 doc/pod/innwatch.pod Master file for innwatch.8 +doc/pod/innxbatch.pod Master file for innxbatch.8 doc/pod/innxmit.pod Master file for innxmit.8 doc/pod/install.pod Master file for INSTALL doc/pod/libauth.pod Master file for libauth.3 +doc/pod/libinn.pod Master file for libinn.3 +doc/pod/libinn_clientlib.pod Master file for libinn_clientlib.3 +doc/pod/libinn_dbz.pod Master file for libinn_dbz.3 +doc/pod/libinn_inndcomm.pod Master file for libinn_inndcomm.3 +doc/pod/libinn_list.pod Master file for libinn_list.3 +doc/pod/libinn_qio.pod Master file for libinn_qio.3 +doc/pod/libinn_tst.pod Master file for libinn_tst.3 +doc/pod/libinn_uwildmat.pod Master file for libinn_uwildmat.3 doc/pod/libinnhist.pod Master file for libinnhist.3 doc/pod/libstorage.pod Master file for libstorage.3 -doc/pod/list.pod Master file for list.3 doc/pod/makedbz.pod Master file for makedbz.8 doc/pod/makehistory.pod Master file for makehistory.8 doc/pod/mod-active.pod Master file for mod-active.8 @@ -297,6 +313,8 @@ doc/pod/newsgroups.pod Ma doc/pod/newslog.pod Master file for newslog.5 doc/pod/ninpaths.pod Master file for ninpaths.8 doc/pod/nnrpd.pod Master file for nnrpd.8 +doc/pod/nnrpd.track.pod Master file for nnrpd.track.5 +doc/pod/nntpget.pod Master file for nntpget.1 doc/pod/nntpsend.ctl.pod Master file for nntpsend.ctl.5 doc/pod/nntpsend.pod Master file for nntpsend.8 doc/pod/ovdb.pod Master file for ovdb.5 @@ -309,16 +327,17 @@ doc/pod/passwd.nntp.pod Ma doc/pod/procbatch.pod Master file for procbatch.8 doc/pod/prunehistory.pod Master file for prunehistory.8 doc/pod/pullnews.pod Master file for pullnews.1 -doc/pod/qio.pod Master file for qio.3 doc/pod/radius.pod Master file for radius.8 doc/pod/rc.news.pod Master file for rc.news.8 doc/pod/readers.conf.pod Master file for readers.conf.5 -doc/pod/readme.pod Master file for README doc/pod/rnews.pod Master file for rnews.1 doc/pod/scanlogs.pod Master file for scanlogs.8 doc/pod/scanspool.pod Master file for scanspool.8 +doc/pod/send-ihave.pod Master file for send-ihave.8 +doc/pod/send-nntp.pod Master file for send-nntp.8 doc/pod/sendinpaths.pod Master file for sendinpaths.8 doc/pod/shlock.pod Master file for shlock.1 +doc/pod/shrinkfile.pod Master file for shrinkfile.1 doc/pod/simpleftp.pod Master file for simpleftp.1 doc/pod/sm.pod Master file for sm.1 doc/pod/storage.conf.pod Master file for storage.conf.5 @@ -326,8 +345,7 @@ doc/pod/subscriptions.pod Ma doc/pod/tally.control.pod Master file for tally.control.8 doc/pod/tdx-util.pod Master file for tdx-util.8 doc/pod/tinyleaf.pod Master file for tinyleaf.8 -doc/pod/tst.pod Master file for tst.3 -doc/pod/uwildmat.pod Master file for uwildmat.3 +doc/pod/writelog.pod Master file for writelog.8 doc/sample-control Sample PGP-signed control message expire Expiration and recovery (Directory) expire/Makefile Makefile for expiration @@ -485,6 +503,7 @@ lib IN lib/Makefile Makefile for library lib/alloca.c alloca replacement lib/argparse.c Functions for parsing arguments +lib/artnumber.c Manipulation of article numbers lib/asprintf.c asprintf replacement lib/buffer.c Reusable counted buffer lib/cleanfrom.c Clean out a From line @@ -530,7 +549,6 @@ lib/network-innbind.c Ne lib/network.c Network utility functions lib/newsuser.c Ensure running as news user/group lib/nntp.c NNTP utility library -lib/numbers.c Manipulation of numbers lib/perl.c Perl hook support for nnrpd and innd lib/pread.c pread replacement lib/pwrite.c pwrite replacement @@ -541,6 +559,7 @@ lib/reallocarray.c re lib/remopen.c Open a remote NNTP connection lib/reservedfd.c File descriptor reservation lib/resource.c Get process CPU usage +lib/sd-daemon.c Stubs for systemd library functions lib/sendarticle.c Send an article, NNTP style lib/sendpass.c Send NNTP authentication lib/sequence.c Sequence space arithmetic routines @@ -632,6 +651,7 @@ perl/INN/Config.pm.in IN perl/INN/Utils INN::Utils Perl modules (Directory) perl/INN/Utils/Shlock.pm.in INN::Utils::Shlock module perl/Makefile Makefile for perl libraries +readme.pod Master file for README samples Prototype INN config files (Directory) samples/INN.py Stub Python functions samples/Makefile Makefile for samples @@ -781,7 +801,6 @@ support/indent A support/install-sh Installation utility support/ltmain.sh Source for libtool utility support/makedepend Generate dependencies for C files -support/mkchangelog Generate ChangeLog from Subversion support/mkmanifest Generate a list of files for the manifest support/mksnapshot Generate a snapshot of the tree support/mksystem Generate from config.h @@ -879,6 +898,7 @@ tests/innd/artparse-t.c Te tests/innd/chan-t.c Tests for CHAN functions in innd tests/innd/fakeinnd.c Provide symbols defined by innd/innd.c tests/lib Test suite for libinn (Directory) +tests/lib/artnumber-t.c Tests for lib/artnumber.c tests/lib/asprintf-t.c Tests for lib/asprintf.c tests/lib/buffer-t.c Tests for lib/buffer.c tests/lib/concat-t.c Tests for lib/concat.c diff -Nurp inn-2.6.4/Makefile inn-2.6.5/Makefile --- inn-2.6.4/Makefile 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/Makefile 2022-02-18 20:36:57.000000000 +0100 @@ -1,14 +1,14 @@ -## $Id: Makefile 9832 2015-05-01 09:11:23Z iulius $ - include Makefile.global ## All installation directories except for $(PATHRUN), which has a ## different mode than the rest. INSTDIRS = $(PATHNEWS) $(PATHBIN) $(PATHAUTH) $(PATHAUTHRESOLV) \ $(PATHAUTHPASSWD) $(PATHCONTROL) $(PATHFILTER) \ - $(PATHRNEWS) $(PATHDB) $(PATHDOC) $(PATHETC) $(PATHHTTP) $(PATHLIB) \ - $(PATHLIBPERL) $(PATHLIBPERL)/INN $(PATHDATASHARE) \ - $(PATHMAN) $(MAN1) $(MAN3) $(MAN3PM) $(MAN5) $(MAN8) $(PATHSPOOL) \ + $(PATHRNEWS) $(PATHDB) $(PATHDOC) $(PATHETC) $(PATHHTTP) \ + $(PATHLIB) $(PATHLIBPERL) $(PATHLIBPERL)/INN \ + $(PATHLIBPERL)/INN/Utils $(PATHDATASHARE) \ + $(PATHMAN) $(MAN1) $(MAN3) $(MAN3PM) $(MAN5) $(MAN8) \ + $(PATHSPOOL) \ $(PATHTMP) $(PATHARCHIVE) $(PATHARTICLES) $(PATHINCOMING) \ $(PATHINBAD) $(PATHTAPE) $(PATHOVERVIEW) $(PATHOUTGOING) \ $(PATHLOG) $(PATHLOGOLD) $(PATHINCLUDE) @@ -40,39 +40,34 @@ SNAPDIRS = -e 1,2d -e '/(Directory)/! DISTFILES = -e 1,2d -e '/(Directory)/d' -e 's/ .*//' -## Major target -- build everything. Rather than just looping through -## all the directories, use a set of parallel rules so that make -j can -## work on more than one directory at a time. -## Be careful of a non-GNU make: after a completed command, it does not +## Major target -- build everything. +## +## We have to loop through all the directories, because otherwise the build +## fails if make -j works on more than one directory at a time. +## libstorage depends on libinnhist, but some of the storage/... +## programs depend on libinnhist, hence the two calls into storage. +## +## Be careful of a non-GNU make: after a completed command, it does not ## necessarily return the script back to the starting directory. -all: all-include all-libraries all-programs - cd doc && $(MAKE) all || exit 1 ; cd .. - cd samples && $(MAKE) all || exit 1 ; cd .. - cd site && $(MAKE) all || exit 1 ; cd .. - -all-include: ; cd include && $(MAKE) all - -all-libraries: all-lib all-storage all-history all-perl - -all-lib: all-include ; cd lib && $(MAKE) all -all-storage: all-lib ; cd storage && $(MAKE) library -all-history: all-storage ; cd history && $(MAKE) all -all-perl: all-history ; cd perl && $(MAKE) all - -all-programs: all-innd all-nnrpd all-innfeed all-control all-expire \ - all-frontends all-backends all-authprogs all-scripts \ - all-store-util - -all-authprogs: all-lib ; cd authprogs && $(MAKE) all -all-backends: all-libraries ; cd backends && $(MAKE) all -all-control: ; cd control && $(MAKE) all -all-expire: all-libraries ; cd expire && $(MAKE) all -all-frontends: all-libraries ; cd frontends && $(MAKE) all -all-innd: all-libraries ; cd innd && $(MAKE) all -all-innfeed: all-libraries ; cd innfeed && $(MAKE) all -all-nnrpd: all-libraries ; cd nnrpd && $(MAKE) all -all-scripts: ; cd scripts && $(MAKE) all -all-store-util: all-libraries ; cd storage && $(MAKE) programs +all: + cd include && $(MAKE) all || exit 1 ; cd .. + cd lib && $(MAKE) all || exit 1 ; cd .. + cd storage && $(MAKE) library || exit 1 ; cd .. + cd history && $(MAKE) all || exit 1 ; cd .. + cd innd && $(MAKE) all || exit 1 ; cd .. + cd nnrpd && $(MAKE) all || exit 1 ; cd .. + cd innfeed && $(MAKE) all || exit 1 ; cd .. + cd control && $(MAKE) all || exit 1 ; cd .. + cd expire && $(MAKE) all || exit 1 ; cd .. + cd frontends && $(MAKE) all || exit 1 ; cd .. + cd backends && $(MAKE) all || exit 1 ; cd .. + cd authprogs && $(MAKE) all || exit 1 ; cd .. + cd scripts && $(MAKE) all || exit 1 ; cd .. + cd perl && $(MAKE) all || exit 1 ; cd .. + cd storage && $(MAKE) programs || exit 1 ; cd .. + cd doc && $(MAKE) all || exit 1 ; cd .. + cd samples && $(MAKE) all || exit 1 ; cd .. + cd site && $(MAKE) all || exit 1 ; cd .. ## If someone tries to run make before running configure, tell them to run @@ -176,7 +171,7 @@ maintclean: rm -f LIST.* Makefile.global config.cache config.log rm -f config.status libtool support/fixconfig support/fixscript rm -f config.status.lineno configure.lineno - rm -f CHANGES ChangeLog inn*.tar.gz configure include/config.h.in + rm -f inn*.tar.gz configure include/config.h.in rm -rf $(TARDIR) ## Other generic targets. @@ -203,7 +198,7 @@ warnings: ## the version information in Makefile.global.in to remove the prerelease ## designation and update all timestamps to the date the release is made. ## If RELEASENUMBER is set, it is a beta release or a release candidate. -release: ChangeLog +release: rm -rf $(TARDIR) rm -f inn*.tar.gz mkdir $(TARDIR) @@ -219,17 +214,10 @@ release: ChangeLog $(SED) 's/= prerelease/=/' Makefile.global.in \ > $(TARDIR)/Makefile.global.in ; \ fi - cp ChangeLog $(TARDIR)/ find $(TARDIR) -type f -print | xargs touch -t `date +%m%d%H%M.%S` tar cf $(TARFILE) $(TARDIR) $(GZIP) -9 $(TARFILE) -## Generate the ChangeLog using support/mkchangelog. This should only be -## run by a maintainer since it depends on svn log working and also -## requires svn2cl be available somewhere. -ChangeLog: - $(PERL) support/mkchangelog - ## Check the MANIFEST against the files present in the current tree, ## building a list with find and running diff between the lists. @@ -239,9 +227,9 @@ check-manifest: diff -u LIST.manifest LIST.real -## Make a snapshot. This is like making a release, except that we don't do -## the ChangeLog thing and we don't change the version number. We also -## assume that SNAPSHOT has been set to the appropriate current branch. +## Make a snapshot. This is like making a release, except that we don't +## change the version number. We also assume that SNAPSHOT has been set to +## the appropriate current branch. snapshot: rm -rf $(SNAPDIR) rm -f inn*.tar.gz diff -Nurp inn-2.6.4/Makefile.global.in inn-2.6.5/Makefile.global.in --- inn-2.6.4/Makefile.global.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/Makefile.global.in 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,3 @@ -## $Id: Makefile.global.in 10485 2021-01-04 10:02:52Z iulius $ -## ## This file is meant to be the central Makefile that configure works with ## and that all other Makefiles include. No Makefile other than this one ## should have to be a configure substitution target. @@ -18,7 +16,7 @@ ## keep their length reasonable; otherwise, your news server will not ## be complying with the NNTP protocol. -VERSION = 2.6.4 +VERSION = 2.6.5 VERSION_EXTRA = ## The absolute path to the top of the build directory, used to find the @@ -356,6 +354,7 @@ CP_RPRI = $(INSTALL) $(OWNER) -m 0640 $ CP_RPUB = $(INSTALL) $(OWNER) -m 0644 $(BACKUP_OPTION) CP_XPRI = $(INSTALL) $(OWNER) -m 0550 $(BACKUP_OPTION) CP_XPUB = $(INSTALL) $(OWNER) -m 0555 $(BACKUP_OPTION) +CP_WXPUB = $(INSTALL) $(OWNER) -m 0755 $(BACKUP_OPTION) CP_DATA = $(INSTALL) $(OWNER) -m $(FILEMODE) $(BACKUP_OPTION) CP_MAN = $(INSTALL) $(OWNER) -m 0444 diff -Nurp inn-2.6.4/NEWS inn-2.6.5/NEWS --- inn-2.6.4/NEWS 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/NEWS 2022-02-18 20:36:57.000000000 +0100 @@ -1,3 +1,80 @@ +Changes in 2.6.5 + + * A new step in INN development has been achieved with the migration of + the INN project to GitHub. We now make use of the features GitHub + provides: issue tracker, pull requests, continuous integration, a + user-friendly interface to browse the code, etc. Our Subversion + repository has therefore been migrated to Git, and our Trac tickets to + the GitHub issue tracker. + + * An up-to-date nocem.ctl file is provided with this release. You + should manually update your nocem.ctl file with the new information + recorded about NoCeM issuers, and make sure the right PGP keys are + present on your system. + + * Up-to-date control.ctl and moderators files are provided with this + release. You should manually update them (notably for the fido7.* + hierarchy). + + * Added a stricter validation of article numbers given in NNTP commands + so that numbers superior to 2^31 are correctly considered invalid. + Thanks to Richard Kettlewell for the patch. + + * Added a check in rc.news for the existence of the *pathrun* directory. + INN won't start until this directory is writable. Previously, it + bailed out quickly after starting, without clear logs about why it + failed. + + * Fixed parallel builds using "make -j". Thanks to Richard Kettlewell + for the path. + + * nnrpd now properly gathers timer statistics when a compression layer + is active. + + * nnrpd now properly discards data received from a news client after a + timeout when a TLS layer is active. It previously tried to read + incoming data before closing the socket, leading to decoding errors + from an underlying compression or SASL layer. + + * innfeed and ovdb_stat now generate status reports in valid HTML + syntax. + + * Fixed a bug in the buffindexed overview that prevented it from working + on several systems, amongst them FreeBSD. Unsupported, and useless, + permission bits were given to semaphores. + + * Fixed the detection of library paths at configure time: multilib + directories (lib32 or lib64) are now also used if they exist, even it + the system does not use multilib. It will notably fix the detection + of the OpenSSL 3.0.0 library. + + * The *tlscertfile* parameter in inn.conf now permits the use of a + complete certificate chain, instead of necessarily having to use + *tlscafile* for additional certificates. + + * Added support for the new OpenSSL 3.0.0 API, which deprecated a few + functions. + + * The inn.conf default value for *tlsprotocols* no longer contains TLS + versions 1.0 and 1.1, which have been deprecated by RFC 8996. + + * A new inn.conf parameter has been added to tune the length of the + queue of pending connections to innd, nnrpd and the "ovdb" overview + storage method: the *maxlisten* parameter now permits configuring + their listen backlog, whose previously hard-coded values were 128 for + nnrpd and 25 for the others, which was not high enough for some uses. + The default value is now 128 for all of them, and configurable in + inn.conf. Thanks to Kevin Bowling for the patch. + + * The name of seven man pages for routines built in libinn(3) are now + prefixed with libinn_ so as not to consume namespace and conflict with + other packages (notably, the list(3) and uwildmat(3) man pages are now + named libinn_list(3) and libinn_uwildmat(3)). + + * Other minor bug fixes and documentation improvements, notably a + revised installation checklist and a section summarizing the most used + configuration at the beginning of a few complex man pages. + Changes in 2.6.4 * Added support for systemd notifications and socket activation. Use of @@ -9,18 +86,18 @@ Changes in 2.6.4 exchange so as to comply with the security level OpenSSL 1.1.0 or later expects. Thanks to Michael Baeuerle for the bug report. - * cnfsstat now also returns information about retired CNFS buffers, that - is to say buffers mentioned in cycbuff.conf as a cycbuff but not - declared in a metacycbuff. - - * Switch default innreport behaviour to common practice of externalizing - CSS into a separate file. Its name can be configured with the - *html_css_url* parameter in innreport.conf. If this parameter is - unset, the default innreport.css file name will be used and innreport - will generate this CSS file for you. Previously generated reports are - kept untouched, though, and will still contain inline CSS if you had - not already set the *html_css_url* parameter in previous INN versions. - Thanks to Richard Kettlewell for the patch. + * cnfsstat now also returns information about retired CNFS buffers: + buffers mentioned in cycbuff.conf as a cycbuff but not declared in a + metacycbuff. + + * Switch default innreport behaviour to the common practice of + externalizing CSS into a separate file. Its name can be configured + with the *html_css_url* parameter in innreport.conf. If this + parameter is unset, the default innreport.css file name will be used + and innreport will generate this CSS file for you. Previously + generated reports are kept untouched, though, and will still contain + inline CSS if you had not already set the *html_css_url* parameter in + previous INN versions. Thanks to Richard Kettlewell for the patch. * sm can now read and store any number of articles given in wire format on its standard input when both -s and -R are used. Only native @@ -36,7 +113,7 @@ Changes in 2.6.4 rnews just logs and discards any articles that are rejected or cannot be parsed for some reason. - * Added new -d flag to rnews to log via syslog the message-ID and the + * Added new -d flag to rnews to log via syslog the Message-ID and the Path header value of each article rejected as a duplicate. * Added new --enable-hardening-flags configure-time option, enabled by @@ -51,7 +128,7 @@ Changes in 2.6.3 later; NIST P-256 was enforced instead of using the most secure curve. * A new inn.conf parameter has been added to fine-tune the cipher suites - to use with TLS 1.3: the *tlsciphers13* now permits configuring them. + to use with TLS 1.3: the *tlsciphers13* now permits configuring them. A separate cipher suite configuration parameter is needed for TLS 1.3 because TLS 1.3 cipher suites are not compatible with TLS 1.2, and vice-versa. In order to avoid issues where legacy TLS 1.2 cipher @@ -94,7 +171,7 @@ Changes in 2.6.2 * A new *syntaxchecks* parameter has been added in inn.conf. It permits controlling the level of checks performed by innd and nnrpd. Up to - now, only one check can be enabled/disabled: when *laxmid* is + now, only one check can be enabled/disabled: when *laxmid* is mentioned in the values of this new parameter, INN accepts Message-IDs that contain ".." in the left part, as well as Message-IDs with two "@" (such Message-IDs would otherwise be considered as syntactically @@ -110,10 +187,10 @@ Changes in 2.6.2 databases. * mailpost now removes empty header fields before attempting to post - articles, and keeps trace of them in the X-Mailpost-Empty-Hdrs: newly - generated header field body. Also, mailpost now sanitizes header - fields with regards to empty continuation header lines. Thanks to - Kamil Jonca for these bug reports. + articles, and keeps trace of them in the newly generated + X-Mailpost-Empty-Hdrs header field body. Also, mailpost now sanitizes + header fields with regards to empty continuation header lines. Thanks + to Kamil Jonca for these bug reports. * A new -z parameter has been added to mailpost to mention a list of header fields to remove from the gated message. Thanks to Dieter @@ -126,7 +203,7 @@ Changes in 2.6.2 * Added support for GnuPG's gpg binary (in addition to gpgv) in pgpverify. Indeed, gpg still validates signatures made with weak - digest algorithms like MD5 whereas gpgv no longer do. Thanks to + digest algorithms like MD5 whereas gpgv no longer does. Thanks to Thomas Hochstein for the patch, which permits validating control articles for hierarchies that are still using old PGP keys. @@ -148,7 +225,7 @@ Changes in 2.6.2 Changes in 2.6.1 - * nnrpd now uses -0000 as the time zone for Date: and Injection-Date: + * nnrpd now uses -0000 as the time zone for Date and Injection-Date header fields it generates. It was previously using +0000, wrongly systematically indicating a local time zone at Universal Time when *localtime* is set to false (which is the default) in readers.conf. @@ -156,12 +233,13 @@ Changes in 2.6.1 true and UTC is really the local time zone of the server. * Julien Elie has implemented in nnrpd the new COMPRESS command - described in draft-murchison-nntp-compress that extends the NNTP - protocol to allow a connection to be effectively and efficiently - compressed. News clients that also support that extension will be - able to benefit from that bandwidth optimization and improvement in - speed. Moreover, using COMPRESS is more secure than TLS-level - compression, as far as authentication credentials are concerned. + described in the *draft-murchison-nntp-compress* Internet-Draft that + extends the NNTP protocol to allow a connection to be effectively and + efficiently compressed. News clients that also support that extension + will be able to benefit from that bandwidth optimization and + improvement in speed. Moreover, using COMPRESS is more secure than + TLS-level compression, as far as authentication credentials are + concerned. * The default value for the *tlscompression* parameter in inn.conf has changed. TLS-level compression is now disabled by default, to comply @@ -175,12 +253,12 @@ Changes in 2.6.1 * rnews no longer segfaults at startup when started setuid news. Thanks to Marcus Jodorf for the bug report. - * Fixed slow nnrpd responses for a few NNTP commands. The TCP_NODELAY + * Fixed slow nnrpd responses for a few NNTP commands. The "TCP_NODELAY" option was unconditionally set whereas only BSD/OS systems needed it. Thanks to Christian Mock for having discovered that. - * Articles containing a Received: or a Posted: header field are no - longer rejected by nnrpd at injection time. + * Articles containing a Received or a Posted header field are no longer + rejected by nnrpd at injection time. * Articles containing control characters or whitespace-only content lines in their headers are now rejected by nnrpd at injection time. @@ -232,20 +310,20 @@ Upgrading from 2.5 to 2.6 mailpost-msgid.pag from *pathtmp* to *pathdb*. * If you have been using TLS/SSL with nnrpd before, be aware that the - default value of a few inn.conf parameters have changed: the server + default value of a few inn.conf parameters have changed: the server now decides the preferred cipher (instead of the client), and only TLS protocols are allowed (using the flawed SSLv2 and SSLv3 protocols is now disabled). If you want to change these settings, the respective *tlspreferserverciphers* and *tlsprotocols* parameters can be tuned to your needs. - * The --with-kerberos configure flag used to add Kerberos v5 support has - been renamed to --with-krb5. + * The --with-kerberos "configure" flag used to add Kerberos v5 support + has been renamed to --with-krb5. - * The --with-berkeleydb configure flag used to add Berkeley DB support + * The --with-berkeleydb "configure" flag used to add Berkeley DB support has been renamed to --with-bdb. - * The --enable-ipv6 configure flag no longer exists. IPv6 is now + * The --enable-ipv6 "configure" flag no longer exists. IPv6 is now unconditionally enabled, if available. * $HOME is no longer exported as an environment variable by @@ -265,13 +343,13 @@ Upgrading from 2.5 to 2.6 A manual review of authenticated feeds should then be done so as to ensure that they are properly working. - * The Injection-Date: and Injection-Info: headers are now generated by - nnrpd at injection time instead of the NNTP-Posting-Date:, - NNTP-Posting-Host:, X-Complaints-To: and X-Trace: headers. Local + * The Injection-Date and Injection-Info header fields are now generated + by nnrpd at injection time instead of the NNTP-Posting-Date, + NNTP-Posting-Host, X-Complaints-To and X-Trace header fields. Local scripts that were using (for authentication, privacy, etc.) these now - deprecated headers should be updated. Also note that the Path: header - of locally posted articles can also contain the contents of the - deprecated NNTP-Posting-Host: field. + deprecated header fields should be updated. Also note that the Path + header field of locally posted articles can also contain the contents + of the deprecated NNTP-Posting-Host header field. * The two *addnntppostingdate* and *addnntppostinghost* parameters in inn.conf have been respectively renamed to *addinjectiondate* and @@ -281,16 +359,16 @@ Upgrading from 2.5 to 2.6 * The default values of a few inn.conf parameters have changed to make use of the vastly expanded storage and RAM commonly available today: - datamovethreshold (from 8192 to 16384), msgidcachesize (from 16000 to - 64000), overcachesize (from 64 to 128), and wireformat (now enabled by - default). + *datamovethreshold* (from 8192 to 16384), *msgidcachesize* (from 16000 + to 64000), *overcachesize* (from 64 to 128), and *wireformat* (now + enabled by default). The generation of status reports and performance timings are now also - enabled by default: logstatus and nnrpdoverstats parameters, with a - frequency of 10 minutes (status and timer parameters). + enabled by default: *logstatus* and *nnrpdoverstats* parameters, with + a frequency of 10 minutes (*status* and *timer* parameters). - * The default value of max-queue-size has changed from 5 to 20, and - use-mmap now defaults to true for innfeed.conf. + * The default value of *max-queue-size* has changed from 5 to 20, and + *use-mmap* now defaults to true for innfeed.conf. If you are upgrading from a version prior to INN 2.5, see also "Upgrading from 2.4 to 2.5". @@ -302,36 +380,37 @@ Changes in 2.6.0 password to be sent by authenticated peers. See the note above for more details. - * The Lines: header is no longer generated by nnrpd at injection time. + * The Lines header field is no longer generated by nnrpd at injection + time. - * The Injection-Date: header is now generated by nnrpd at injection time - instead of the deprecated NNTP-Posting-Date: header, when + * The Injection-Date header field is now generated by nnrpd at injection + time instead of the deprecated NNTP-Posting-Date header field, when *addinjectiondate* is set to true. Note that *addnntppostingdate* has been renamed to *addinjectiondate* in inn.conf. - * The Injection-Info: header is now generated by nnrpd at injection time - instead of the deprecated NNTP-Posting-Host: (when - *addinjectionpostinghost* is set to true), X-Complaints-To: and - X-Trace: headers. Note that *addnntppostinghost* has been renamed to - *addinjectionpostinghost* in inn.conf. The Path: header of locally - posted articles now also contains the contents of the - NNTP-Posting-Host: header. + * The Injection-Info header field is now generated by nnrpd at injection + time instead of the deprecated NNTP-Posting-Host (when + *addinjectionpostinghost* is set to true), X-Complaints-To and X-Trace + header fields. Note that *addnntppostinghost* has been renamed to + *addinjectionpostinghost* in inn.conf. The Path header field of + locally posted articles now also contains the contents of the + NNTP-Posting-Host header field. * A new *addinjectionpostingaccount* parameter has been added in - inn.conf. When set to true, the Injection-Info: header field contains - an additional posting-account attribute that mentions the username + inn.conf. When set to true, the Injection-Info header field contains + an additional *posting-account* attribute that mentions the username assigned to the user at connection time or after authentication. The default value for this parameter is false. - * A few headers are now considered as obsolete by nnrpd at injection - time: NNTP-Posting-Date:, NNTP-Posting-Host:, X-Complaints-To:, - X-Trace:, Also-Control:, Article-Names:, Article-Updates:, and - See-Also: headers. + * A few header fields are now considered as obsolete by nnrpd at + injection time: NNTP-Posting-Date, NNTP-Posting-Host, X-Complaints-To, + X-Trace, Also-Control, Article-Names, Article-Updates, and See-Also + header fields. - Besides, nnrpd will similarly reject obsolete sendsys, senduuname and - version control messages. + Besides, nnrpd will similarly reject obsolete *sendsys*, *senduuname* + and *version* control messages. - * The presence of a Subject: header field beginning with "cmsg " no + * The presence of a Subject header field beginning with "cmsg " no longer causes an article to be interpreted as a control message by nnrpd at injection time. @@ -350,13 +429,13 @@ Changes in 2.6.0 Kettlewell for having fixed the issue. * Building with Libtool is no longer optional. The --enable-libtool - option to configure has been removed. + option to "configure" has been removed. - * DESTDIR and non-root installs are now properly supported and + * "DESTDIR" and non-root installs are now properly supported and documented in INSTALL. The "make install", "make update" and "make - cert" steps properly obey DESTDIR. Besides, it is no longer a + cert" steps properly obey "DESTDIR". Besides, it is no longer a requirement that the installation step be done by the superuser, as - long as the user executing the install has supplied a DESTDIR value + long as the user executing the install has supplied a "DESTDIR" value that points to a writable directory, *and* the person or process performing the install corrects the file ownerships when INN is installed on the system on which it's going to run. Thanks to James @@ -369,20 +448,20 @@ Changes in 2.6.0 --with-bdb-lib, --with-sasl, --with-sasl-include, --with-sasl-lib, --with-krb5, --with-krb5-include, --with-krb5-lib, --with-openssl, --with-openssl-include, --with-openssl-lib, --with-zlib, - --with-zlib-include, or --with-zlib-lib configure flags (the flags + --with-zlib-include, or --with-zlib-lib "configure" flags (the flags ending with "-include" and "-lib" are new in INN 2.6.0). * If the Berkeley DB, Cyrus SASL, Kerberos v5, or OpenSSL SSL and crypto libraries are found at configure time, INN will now be built with support for them unless respectively the --without-bdb, --without-sasl, --without-krb5, or --without-openssl flags are - explicitly passed to configure. + explicitly passed to "configure". Note that it was already the default behaviour for zlib support when Berkeley DB support was also enabled. - * The configure flag --enable-reduced-depends has been added to request - that library probes assume shared libraries are in use and + * The "configure" flag --enable-reduced-depends has been added to + request that library probes assume shared libraries are in use and dependencies of libraries should not be probed. It therefore tries to minimize the shared library dependencies of the resulting binaries on platforms with proper shared library dependencies. This is not @@ -405,10 +484,13 @@ Changes in 2.6.0 * Other minor bug fixes and documentation improvements. + * All of the applicable bug fixes from the INN 2.5 STABLE series are + also included in INN 2.6. + Changes in 2.5.5 * New inn.conf parameters used by nnrpd to fine-tune the TLS/SSL - configuration have been added: *tlsciphers*, *tlscompression*, + configuration have been added: *tlsciphers*, *tlscompression*, *tlseccurve*, *tlspreferserverciphers*, and *tlsprotocols*. Many thanks to Christian Mock for his contribution that permits tightening the level of security provided by TLS/SSL. @@ -437,7 +519,7 @@ Changes in 2.5.5 * Add new -t flag to mailpost to change, if needed, the default directory to use to temporarily store error messages that are sent to - the newsmaster. Two paths are now tried by default: *pathtmp* as set + the newsmaster. Two paths are now tried by default: *pathtmp* as set in inn.conf, and then /var/tmp if *pathtmp* is not writable. * When the creation of a newsgroup needed expanding the tradindexed @@ -451,7 +533,7 @@ Changes in 2.5.5 taint mode was unproperly declared. * Several improvements have been contributed to pullnews by Geraint - Edwards: the new -a flag adds the Diablo-compatible hashfeed ability, + Edwards: the new -a flag adds the Diablo-compatible hashfeed ability, the new -B flag triggers header-only feeding, the -m flag now permits removing headers matching (or not) a given regexp, and rnews reporting is improved. @@ -501,7 +583,7 @@ Changes in 2.5.4 and access Perl hooks could previously use the attributes hash. Thanks to Steve Crook for this addition. - * INN now properly builds fine with flex 2.5.36 (this version introduced + * INN now properly builds fine with Flex 2.5.36 (this version introduced a change of type for a variable used by INN). * When using funnel feeds, innfeed log files were open forever, which @@ -523,7 +605,7 @@ Changes in 2.5.4 integer. Thanks to S.P. Zeidler for the patch. * Fixed a segfault occurring in nnrpd when a res block was used in - readers.conf without the program: key. + readers.conf without the *program* key. * Fixed an issue where users were denied posting because of an overlapping buffer copy in a check nnrpd was doing. Thanks to Florian @@ -551,7 +633,7 @@ Changes in 2.5.4 innd. Thanks to Paul Tomblin for having caught that long-standing issue. - * When building INN with Berkeley DB support, no longer add -L/usr/lib + * When building INN with Berkeley DB support, no longer add "-L/usr/lib" to the linker include flags; unconditionally adding it may break the build on systems using lib32 and lib64 directories. @@ -561,13 +643,13 @@ Changes in 2.5.4 displayed to news clients before they get customised. * Other minor bug fixes and documentation improvements (like the - addition in the readers.conf man page of the log: and program: - parameters in res blocks, and the include directive). + addition in the readers.conf man page of the *log* and *program* + parameters in res blocks, and the *include* directive). Changes in 2.5.3 - Please note that the HTML_STATUS compile-time option has been replaced - with the *htmlstatus* parameter in inn.conf. If you used HTML_STATUS, + Please note that the "HTML_STATUS" compile-time option has been replaced + with the *htmlstatus* parameter in inn.conf. If you used "HTML_STATUS", you should set *htmlstatus* accordingly. A confusion in the name of a key in innfeed.conf existed in the source @@ -615,12 +697,12 @@ Changes in 2.5.3 * Fixed a regression that occurred in INN 2.5.0 when leading whitespace characters have been made significant in header field bodies. It could lead INN to drop articles and throttle itself when running as a - slave because Xref: header fields generated by other news servers, or + slave because Xref header fields generated by other news servers, or even INN 2.4.6, could contain (valid) leading whitespace. Thanks to Matija Nalis for having caught this bug. * Fixed an invalid 431 response to CHECK commands when innd is paused: - the message-ID of the article to defer was missing. Also fixed + the Message-ID of the article to defer was missing. Also fixed another issue in the messages innd replied; when an error occurred during a write on a channel, a trailing extra junk byte was added to the reply. Thanks to River Tarnell for these bug reports. @@ -650,7 +732,7 @@ Changes in 2.5.3 the previous output of cnfsstat. * A single header field line is limited to 998 bytes, per RFC 5536. - innd was previously accepting, and also generating Xref: header field + innd was previously accepting, and also generating Xref header field lines, up to 1022 bytes. Now, nnrpd (acting as an injecting agent) rejects articles which contain header field lines whose length exceeds 998 bytes. And innd (acting as a relaying or serving agent) no longer @@ -676,9 +758,9 @@ Changes in 2.5.3 bug report. A wrapper around shlock is now called in Perl scripts. The - INN::Utils::Shlock module has been added for that use. + "INN::Utils::Shlock" module has been added for that use. - * Fixed an issue in the Python access hook for nnrpd: it has not been + * Fixed an issue in the Python access hook for nnrpd: it has not been working since Python 2.5 on 64-bit platforms, owing to a change to Python's C API, using a new Py_ssize_t type definition instead of int. Thanks to Raphael Barrois for the patch. @@ -686,31 +768,31 @@ Changes in 2.5.3 * Improve the stability of the Perl filters for innd and nnrpd: properly save and restore the stack pointer when needed. - * The Injection-Date: header, when present, is now used by innd and + * The Injection-Date header field, when present, is now used by innd and makehistory to determine the posting date of an article. Otherwise, - the Date: header is used. + the Date header field is used. * controlchan now imposes a date cutoff on processing control articles. The *artcutoff* parameter set in inn.conf is used. Otherwise, without that cutoff, old control articles could be maliciously reinjected into - Usenet, and replayed. (An unsigned Injection-Date: header field could - be added to an article that only had a Date: header field.) A new -c + Usenet, and replayed. (An unsigned Injection-Date header field could + be added to an article that only had a Date header field.) A new -c flag has been added to controlchan to disable the cutoff check, if needed (usually when manually invoking the program). - * nnrpd no longer adds or updates the Path: header field when an article + * nnrpd no longer adds or updates the Path header field when an article is forwarded to a moderator. It could otherwise lead to rejects at injection time when the article was approved by the moderator. - * The X-Trace: header field was not properly generated when an article + * The X-Trace header field was not properly generated when an article was locally posted. The field mentioning the IP address was skipped, resulting in a wrong syntax for this header. The local "127.0.0.1" IP address is now used. Besides, "localhost" is now mentioned instead of an obscure "stdin" in injection header fields. - * Fixed a bug in the frequency innfeed logs its status: too many - useless lines were written to news.notice. Thanks to Florian - Schlichting for the fix. + * Fixed a bug in the frequency innfeed logs its status: too many useless + lines were written to news.notice. Thanks to Florian Schlichting for + the fix. * When unset in innfeed.conf, the *dynamic-method* parameter now properly defaults to 3 (instead of 0) and *use-mmap* to false (instead @@ -726,11 +808,11 @@ Changes in 2.5.3 this problem. * Implement an upper limit to the number of file descriptors innd can - handle. At most (FD_SETSIZE-1) file descriptors can be used. This + handle. At most "(FD_SETSIZE-1)" file descriptors can be used. This upper limit now overrides any superior number set with *rlimitnofile* in inn.conf. Thanks to Steve Crook for the bug report. - * A default timeout on outgoing sockets (using NNTPconnect) has been + * A default timeout on outgoing sockets (using "NNTPconnect") has been added by Florian Schlichting. For a long time, there have been occasional problems with actsync (and probably other programs) that would hang until manually killed or restarted. @@ -738,7 +820,7 @@ Changes in 2.5.3 * The flag -S has been added to innd by Florian Schlichting. When used, innd reports the errors found in incoming.conf and exits. - * pullnews no longer stops processing newsgroups when an error occur + * pullnews no longer stops processing newsgroups when an error occurs during its run (for instance when a newsgroup mentioned in the configuration file is removed from an upstream server). Besides, it can now use authentication when posting to the downstream server. @@ -763,8 +845,8 @@ Changes in 2.5.3 innshellvars scripts. If a file named innshellvars.local, innshellvars.pl.local or innshellvars.tcl.local is present and executable in *pathetc*, then it will be executed by the corresponding - innshellvars script (respectively shell, INN::Config Perl module, and - Tcl). A typical use is to add or override variables. + innshellvars script (respectively shell, "INN::Config" Perl module, + and Tcl). A typical use is to add or override variables. * Add support for wire-formatted articles in scanspool. @@ -780,11 +862,11 @@ Changes in 2.5.3 * inncheck now properly finds the boundaries of substituted variables in newsfeeds thanks to Alexander Bartolich. - * docheckgroups no longer uses awk. On a few systems, the script was - failing because of the presence of an old version of awk that has a + * docheckgroups no longer uses AWK. On a few systems, the script was + failing because of the presence of an old version of AWK that has a limit in the size of the input it can handle. Processing large newsgroups files was consequently impossible. docheckgroups now uses - Perl instead of awk, which solves the issue reported by John F. Morse. + Perl instead of AWK, which solves the issue reported by John F. Morse. * Other minor bug fixes and documentation improvements. In particular, the *debug-shrinking*, *fast-exit* and *initial-sleep* keys in @@ -803,7 +885,7 @@ Changes in 2.5.2 A new version of innreport.conf is shipped with INN 2.5.2 but, in order to preserve any local changes, will not be automatically installed with - make update. The changes are minor and not mandatory for the upgrade. + "make update". The changes are minor and not mandatory for the upgrade. * Julien Elie has implemented in innd the new version of the NNTP protocol described in RFC 3977, RFC 4643 and RFC 4644, and innd now @@ -812,7 +894,7 @@ Changes in 2.5.2 interoperability reasons, to return a reject code (respectively 435, 438, and 439) when the command contains a syntax error instead of 501. The mandatory username argument for authenticated peers is not - enforced in INN 2.5.2 but will be be enforced by INN 2.6.0 when it is + enforced in INN 2.5.2 but will be enforced by INN 2.6.0 when it is released. Major improvements are: @@ -845,11 +927,11 @@ Changes in 2.5.2 including, the final CRLF, as the username/password, in conformity with RFC 4643. - * The syntax of message-IDs is now based on RFC 5536 (USEFOR) instead of + * The syntax of Message-IDs is now based on RFC 5536 (USEFOR) instead of RFC 1036. The major change is that quoted-pairs have been removed from the syntax. - * The Perl and Python filters for innd now check the message-ID of + * The Perl and Python filters for innd now check the Message-ID of articles arriving through TAKETHIS. Only CHECK and IHAVE commands previously used them. @@ -858,14 +940,14 @@ Changes in 2.5.2 (Newsgroups are still matched case-sensitively.) Message-IDs are case-sensitively matched, except for history hashes. - * The new Archive:, Archive-At:, Comments:, and Summary: header fields + * The new Archive, Archive-At, Comments, and Summary header fields defined in RFC 5064 and RFC 5536 can be used in innd filters. nnrpd now checks at injection time that an article does not contain an - Injection-Info: header, that an Injection-Date: header (if provided) - is valid, and that the Path: header does not contain ".POSTED". Note - that INN does not yet generate these two injection fields or include - the new Path: header field ".POSTED" keyword. These new features will - be in the next major release of INN. + Injection-Info header field, that an Injection-Date header field (if + provided) is valid, and that the Path header field body does not + contain ".POSTED". Note that INN does not yet generate these two + injection fields or include the new ".POSTED" keyword in Path header + fields. These new features will be in the next major release of INN. * LIST SUBSCRIPTIONS now accepts an optional wildmat argument to restrict the results of this command to specific newsgroups. @@ -878,9 +960,9 @@ Changes in 2.5.2 * A new flag has been added to newsfeeds entries: "Aj", when present, says to feed articles accepted and filed in "junk" (due to *wanttrash*) to peers based on their newsfeeds feed patterns applied - to the Newsgroups: header as though the article were accepted and all - those groups were locally carried. This is useful if you want to run - INN with a minimal active file and propagate all posts. Thanks to + to the Newsgroups header field as though the article were accepted and + all those groups were locally carried. This is useful if you want to + run INN with a minimal active file and propagate all posts. Thanks to Andrew Gierth for the patch. * A new parameter has been added to inn.conf: *logtrash* defines whether @@ -899,9 +981,9 @@ Changes in 2.5.2 script developed by Olaf Titz and Marco d'Itri. * The O flag in newsfeeds now relies on the contents of the - Injection-Info: header field if it is present to determine the origin - of an article. It falls back on X-Trace: if there is no - Injection-Info: header field. + Injection-Info header field if it is present to determine the origin + of an article. It falls back on X-Trace if there is no Injection-Info + header field. * A new "unsigned long" type bas been added to the configuration parser. It will properly warn the news administrator when a variable supposed @@ -921,17 +1003,18 @@ Changes in 2.5.2 authenticate to news servers which only expect a username, without password, conforming to RFC 4643. - * The keyword generation code now generates a Keywords: header only if - the original article does not already have one. The generated - Keywords: header no longer begins with a comma. If keyword generation - is set to true in inn.conf but the Keywords: header is not stored in - the overview, the news administrator is warned and keyword generation - deactivated, since it exists only to populate the overview data. + * The keyword generation code now generates a Keywords header field only + if the original article does not already have one. The generated + Keywords header field no longer begins with a comma. If keyword + generation is set to true in inn.conf but the Keywords header field is + not stored in the overview, the news administrator is warned and + keyword generation deactivated, since it exists only to populate the + overview data. * Two segfaults in keyword generation were fixed. The first occurred - when an article already had a Keywords: header longer than the + when an article already had a Keywords header field longer than the *keylimit* parameter. The second was caused by a possible invalid - pointer beyond the newly allocated Keywords: header. + pointer beyond the newly allocated Keywords header field. * Fixed innd handling of empty lines. innd was not properly discarding an empty command and was closing the connection when it received only @@ -980,10 +1063,10 @@ Changes in 2.5.2 * Fixed a bug in nnrpd Perl filter: a header field whose name begins with the name of a standardized header field was not properly handled. - * Fixed a bug in how innd was parsing Message-ID: and Supersedes: - headers which contained trailing whitespace. The article was + * Fixed a bug in how innd was parsing Message-ID and Supersedes header + field bodies which contained trailing whitespace. The article was corrupted by an unexpected "\r" in the middle of the header. nnrpd - now checks the syntax of the Message-ID: header field, if present. + now checks the syntax of the Message-ID header field, if present. * Fixed various bugs in how leading whitespace was treated in headers. The HDR, XHDR and XPAT commands were not properly showing leading @@ -994,7 +1077,7 @@ Changes in 2.5.2 "\r") into a space when generating overview data. * Fixed a bug in the generation of overview data which may corrupt - previously generated overview data when a pseudo Xref: header field is + previously generated overview data when a pseudo Xref header field is injected in an extra overview field. * Fixed a bug in the parsing of the *ovgrouppat* wildmat in inn.conf @@ -1004,8 +1087,8 @@ Changes in 2.5.2 fixed. Thanks to Dieter Stussy for the bug report. * Fixed a bug when HDR, XHDR and XPAT were used when *virtualhost* was - set to true in readers.conf. The Xref: header of articles posted to - only one newsgroup appeared empty. + set to true in readers.conf. The Xref header field of articles posted + to only one newsgroup appeared empty. * Fixed a bug in tdx-util in parsing empty overview fields when called with -A or -F. @@ -1022,7 +1105,7 @@ Changes in 2.5.2 patch. * Fixed a bug in the newsfeeds C flag: the count of followup groups was - one less than the real number. When the value of the Followup-To: + one less than the real number. When the value of the Followup-To header field is "poster", it is no longer considered to be a followup. Thanks to Dieter Stussy for the patch. @@ -1046,8 +1129,8 @@ Changes in 2.5.2 * innconfval no longer maps NULL string or list values to an empty string or list and instead maps them to undefined values. This fixes an issue reported by Kamil Jonca: nnrpd was inserting an empty - Organization: header when the *organization* parameter in inn.conf was - unset. + Organization header field when the *organization* parameter in + inn.conf was unset. * Other minor bug fixes and documentation improvements. @@ -1058,8 +1141,8 @@ Changes in 2.5.1 * Fixed a segfault in the keyword generation code which was assuming that an article was nul-terminated. Fixed another segfault in the - keyword generation code when an article already contained a Keywords: - header. Thanks to Nix for the bug reports. + keyword generation code when an article already contained a Keywords + header field. Thanks to Nix for the bug reports. * Owing to the US-CERT vulnerability note VU#238019, Cyrus SASL library has slightly changed. imap_connection and nnrpd now handle that @@ -1084,7 +1167,7 @@ Changes in 2.5.1 wrong name was used, taken amongst known peers. The source is now logged as "localhost". - * Fixed a bug in the timecaf storage method: only the first 65535 + * Fixed a bug in the timecaf storage method: only the first 65535 articles could be retrievable in a CAF, though everything was properly stored. (A Crunched Article File contains all the articles that arrive to the news server during 256 seconds.) @@ -1112,10 +1195,10 @@ Changes in 2.5.1 Existing CNFS buffers are kept unchanged; only new CNFS buffers are initialized with that new version. - * grephistory -l now returns the contents of the expires history field - as well as the hash of the message-ID. Besides, when the storage API - token does not exist, grephistory -v now also returns the hash of the - requested message-ID. + * "grephistory -l" now returns the contents of the expires history field + as well as the hash of the Message-ID. Besides, when the storage API + token does not exist, "grephistory -v" now also returns the hash of + the requested Message-ID. * The check on cancel messages when *verifycancels* is set to true in inn.conf has been changed to verify that at least one newsgroup in the @@ -1125,7 +1208,7 @@ Changes in 2.5.1 The previous behaviour was to check whether the cancel message is from the same person as the original post, which is extremely easy to spoof; besides, RFC 5537 (USEPRO) mentions that "cancel control - messages are not required to contain From: and Sender: header fields + messages are not required to contain From and Sender header fields matching the target message. This requirement only encouraged cancel issuers to conceal their identity and provided no security". @@ -1134,8 +1217,8 @@ Changes in 2.5.1 arrival time; it is now according to its original posting date. Otherwise, unnecessary data may be kept too long in the history file. - To achieve that, the HISremember() function in history API now expects - a fourth parameter: the article posting time. + To achieve that, the "HISremember()" function in history API now + expects a fourth parameter: the article posting time. Note that article expiration has not changed and is still based on arrival time, unless the -p flag is passed to expire or expireover, in @@ -1209,7 +1292,7 @@ Upgrading from 2.4 to 2.5 recommended by RFC 3977. * The overview.fmt file is no longer used by INN. Two new parameters - have been added to inn.conf: *extraoverviewadvertised* and + have been added to inn.conf: *extraoverviewadvertised* and *extraoverviewhidden*. Although innupgrade takes care of the change during "make update", you should make sure that your overview database is consistent with all the fields declared in overview.fmt because @@ -1231,7 +1314,7 @@ Upgrading from 2.4 to 2.5 * The auth_smb authenticator program to check passwords with an SMB authentication is no longer included in INN. It was a stripped-down - version of pam_smbpass, wasn't maintained, and likely had security + version of pam_smbpass(5), wasn't maintained, and likely had security problems. To authenticate to an SMB server such as Samba, use PAM and ckpasswd's PAM support instead. @@ -1275,7 +1358,7 @@ Changes in 2.5.0 --with-zlib option to "configure" and the ovdb(5) man page. * Alexander Bartolich has greatly improved innreport and especially its - XHTML output (a XSL transformation is also provided, if needed, in + XHTML output (an XSL transformation is also provided, if needed, in innreport-filter.xslt, in the contrib directory). * inndstart and startinnfeed are no longer part of INN and are no longer @@ -1296,7 +1379,7 @@ Changes in 2.5.0 network code is now much more centralized, eliminating lots of duplicate code and adding better IPv6 support to some utilities. - * INN now uses autoconf 2.61 or later for configuration. As a result, + * INN now uses Autoconf 2.61 or later for configuration. As a result, some "configure" options have changed slightly and more of the standard --*dir options should be supported in lieu of the old INN-specific options. See "configure --help" for the available @@ -1315,7 +1398,7 @@ Changes in 2.5.0 described in USEPRO and can handle character set conversions of newsgroup descriptions. The "MIME::Parser" and "Encode" modules are used. Processing control messages has been greatly improved, - especially checkgroups: the active and newsgroups files are now + especially checkgroups: the active and newsgroups files are now properly updated when they are processed, and all matching lines in control.ctl for a given checkgroups are honoured (which for instance allows using both drop and doit actions for the same checkgroups @@ -1349,9 +1432,9 @@ Changes in 2.5.0 recommend starting from scratch and emulating the Perl and Python filters. - * If *strippath* is set in readers.conf, the whole user-supplied Path: - header will now be stripped. Previously, the final component of the - user-supplied Path: would still be retained. + * If *strippath* is set in readers.conf, the whole user-supplied Path + header field will now be stripped. Previously, the final component of + the user-supplied Path header field body would still be retained. * news2mail can now set the envelope-from address of the mails it sends. A third optional part in news2mail.cf entries has been added by @@ -1377,7 +1460,7 @@ Changes in 2.5.0 setting the news user and the news group under which the news server runs. Thanks to Ivan Shmakov for this feature. - New other options have been added to configuration files: *ignore* in + New other options have been added to configuration files: *ignore* in incoming.conf, *logstatus*, *nnrpdflags* and *verifygroups* in inn.conf, and *log-time-format* in innfeed.conf. @@ -1388,7 +1471,7 @@ Changes in 2.5.0 in inn.conf. * The sasl.conf file has been removed in favour of new parameters in - inn.conf to deal with TLS support: *tlscafile*, *tlscapath*, + inn.conf to deal with TLS support: *tlscafile*, *tlscapath*, *tlscertfile* and *tlskeyfile*. * The overview.fmt file has been removed in favour of new parameters in @@ -1416,9 +1499,12 @@ Changes in 2.5.0 high-level functions as well as more of the portability and utility function layer. - * A lot of work has been done on documentation: improvements of - existing documents, new documentation, and proof-reading. Sample - configuration files are also more detailed. + * A lot of work has been done on documentation: improvements of existing + documents, new documentation, and proof-reading. Sample configuration + files are also more detailed. + + * All of the applicable bug fixes from the INN 2.4 STABLE series are + also included in INN 2.5. Changes in 2.4.6 @@ -1460,12 +1546,12 @@ Changes in 2.4.6 * Fixed a bug in the IP address displayed for "localhost" in innd's status file. It was not correctly initialized. - * Fixed a permission issue: XHDR and XPAT were not checking the rights - the user had to read articles when accessing them by their message-ID. + * Fixed a permission issue: XHDR and XPAT were not checking the rights + the user had to read articles when accessing them by their Message-ID. * Fixed a bug in the replies of XHDR, XOVER and XPAT when the newsgroup - is empty. Two initial replies were sent instead of one: the right - 420 code followed by a wrong 224 code. + is empty. Two initial replies were sent instead of one: the right 420 + code followed by a wrong 224 code. * When no newsgroup is selected, LISTGROUP now returns the right 412 code (instead of 481). @@ -1486,7 +1572,9 @@ Changes in 2.4.6 time for Usenet daily reports. * An updated moderators file with information about the aioe.*, perl.* - and si.* hierarchies is provided; control.ctl is also up to date. + and si.* hierarchies is provided. + + * An updated control.ctl file is provided. * INN supports Berkeley DB 4.7, which is the recommended version to use owing to various bugs affecting previous versions of Berkeley DB. @@ -1495,20 +1583,20 @@ Changes in 2.4.6 Changes in 2.4.5 - * Fixed the "alarm signal" around "SSL_read" in nnrpd: it allows a + * Fixed the "alarm signal" around "SSL_read" in nnrpd: it allows a proper disconnection of news clients which were previously hanging - when posting an article through a SSL connection. Moreover, the + when posting an article through an SSL connection. Moreover, the *clienttimeout* parameter now works on SSL connections. Thanks to Matija Nalis for the patch. - * SO_KEEPALIVE is now implemented for SSL TCP connections on systems + * "SO_KEEPALIVE" is now implemented for SSL TCP connections on systems which support it, allowing system detection and closing the dead TCP SSL connections automatically after system-specified time. Thanks to Matija Nalis for the patch. * Fixed a segmentation fault when an article of a size greater than - remaining stack is retrieved via SSL. Thanks to Chris Caputo for this - patch. + remaining in the stack is retrieved via SSL. Thanks to Chris Caputo + for this patch. * Fixed a few segfaults and bugs which affected both Python innd and nnrpd hooks. They no longer check the existence of methods not used @@ -1522,16 +1610,17 @@ Changes in 2.4.5 * The nnrpd.py stub file in order to test Python nnrpd hooks, as mentioned in their documentation, is now installed; only INN.py was - previously installed in *pathfilter*. Also fixed a bug in INN.py and - add missing methods to it. + previously installed in *pathfilter*. + + * Fixed a bug in INN.py and add missing methods to it. * Fixed a long-standing bug in innreport which prevented it from correctly reporting nnrpd and innfeed log messages. * Fixed a hang in Perl hooks on (at least) HP/PA since Perl 5.10. - * Fixed a compilation problem on some platforms because of AF_INET6 - which was not inside a HAVE_INET6 block in innfeed. + * Fixed a compilation problem on some platforms because of "AF_INET6" + which was not inside a "HAVE_INET6" block in innfeed. * Fixed a bug in innfeed which contained thrice the same IPs for each peer; it unnecessarily slowed the peer IP rotation for innfeed. @@ -1552,7 +1641,7 @@ Changes in 2.4.5 samples. Thanks to Matija Nalis for this addition of new useful headers. - * New samples for Python nnrpd hooks are shipped with INN: + * New samples for Python nnrpd hooks are shipped with INN: nnrpd_access.py for access control and nnrpd_dynamic.py for dynamic access control. The nnrpd_auth.py script is now only used for authorization control. See the readers.conf man page for more @@ -1582,10 +1671,10 @@ Changes in 2.4.4 * Perl 5.10 support has been added to INN thanks to Jakub Bogusz. - * Some news clients hang when posting an article through a SSL + * Some news clients hang when posting an article through an SSL connection: it seems that nnrpd's SSL routines make it wrongly wait - for data completion. In order to fix the problem, the select() wait - is now just bypassed. However, the IDLE timer stat is currently not + for data completion. In order to fix the problem, the "select()" wait + is now just bypassed. However, the idle timer stat is currently not collected for such connections. Thanks to Kachun Lee for this workaround. @@ -1594,7 +1683,7 @@ Changes in 2.4.4 * Fixed a bug in mailpost and pullnews which prevented useful error messages to be seen. Also add the -x flag to pullnews in order to - insert Xref: headers in articles which lack one. + insert Xref header fields in articles which lack one. * If compiling with Berkeley DB, use its ndbm compatibility layer for ckpasswd in preference to searching for a traditional dbm library. @@ -1608,10 +1697,10 @@ Changes in 2.4.4 newsfeeds). Thanks to Miquel van Smoorenburg for this implementation in INN. - * innd now listen on separate sockets for IPv4 and IPv6 connections if - the IPV6_V6ONLY socket option is available. There might also be + * innd now listens on separate sockets for IPv4 and IPv6 connections if + the "IPV6_V6ONLY" socket option is available. There might also be operating systems that still have separate IPv4 and IPv6 TCP - implementations, and advanced features like TCP SACK might not be + implementations, and advanced features like TCP "SACK" might not be available on v6 sockets. Thanks to Miquel van Smoorenburg for this patch. @@ -1620,23 +1709,23 @@ Changes in 2.4.4 "none" tells innfeed to never attempt an IPv6 connection to that host. Thanks to Miquel van Smoorenburg for this patch. - * Added a *nnrpdflags* parameter to inn.conf (modelled on the concept of - *innflags*) to permit passing of command line arguments to instances - of nnrpd spawned from innd. + * Added an *nnrpdflags* parameter to inn.conf (modelled on the concept + of *innflags*) to permit passing of command line arguments to + instances of nnrpd spawned from innd. * A new inn.conf parameter called *pathcluster* has been added: it - allows appending a common name to the Path: header on all incoming - articles. *pathhost* and *pathalias* (if set) are still appended to - the path as usual, but *pathcluster* is always appended as the last - element (e.g. on the leftmost side of the Path: header). Thanks to - Miquel van Smoorenburg for this feature. + allows appending a common name to the Path header field body on all + incoming articles. *pathhost* and *pathalias* (if set) are still + appended to the path as usual, but *pathcluster* is always appended as + the last element (e.g. on the leftmost side of the Path header field + body). Thanks to Miquel van Smoorenburg for this feature. * simpleftp has been rewritten to use "Net::FTP". Indeed, ftp.pl is no longer shipped with Perl 5 and the script did not work. * perl-nocem will now check for a timeout and re-open the socket if - required. Additionally, perl-nocem will switch to cancel_ctlinnd in - case cancel_nntp fails after sending the Message-ID. Thanks to + required. Additionally, perl-nocem will switch to "cancel_ctlinnd" in + case "cancel_nntp" fails after sending the Message-ID. Thanks to Christoph Biedl for the patch. A more detailed documentation has also been written for perl-nocem(8). @@ -1667,7 +1756,7 @@ Changes in 2.4.4 * Fixed empty LISTGROUP replies which were not terminated. Thanks to David Canzi for the patch. - * In response to a LIST [file] command, if the file does not exist, we + * In response to a LIST [*file*] command, if the file does not exist, we assume it is not maintained and return 503 instead of 215 and an empty file. Moreover, capability to LIST ACTIVE.TIMES for a wildmat pattern as its third argument has been added in order to select wanted @@ -1686,16 +1775,16 @@ Changes in 2.4.4 Changes in 2.4.3 - * Previous versions of INN had an optimization for handling XHDR - Newsgroups that used the Xref: header from overview. While this does - make the command much faster, it doesn't produce accurate results and - breaks the NNTP protocol, so this optimization has been removed. + * Previous versions of INN had an optimization for handling "XHDR + Newsgroups" that used the Xref header field from overview. While this + does make the command much faster, it doesn't produce accurate results + and breaks the NNTP protocol, so this optimization has been removed. * Fixed a bug in innd that allowed it to accept articles with duplicated - headers if the header occurred an odd number of times. Modified the - programs for rebuilding overview to use the last Xref: header if there - are multiple ones to avoid problems with spools that contain such - invalid articles. + header fields if the header field occurred an odd number of times. + Modified the programs for rebuilding overview to use the last Xref + header field if there are multiple ones to avoid problems with spools + that contain such invalid articles. * Fixed yet another problem with verifying that a user has permissions to approve posts to a moderated group. Thanks, Jens Schlegel. @@ -1749,9 +1838,9 @@ Changes in 2.4.2 reactive authentication capability of news readers. * If a user is not authorized to approve articles (using the "A" - *access* control in readers.conf), articles that include Approved: - headers will be rejected even if posted to unmoderated groups. Some - other site may consider that group to be moderated. + *access* control in readers.conf), articles that include an Approved + header field will be rejected even if posted to unmoderated groups. + Some other site may consider that group to be moderated. * The configuration parser used for readers.conf and others now correctly handles "#" inside quoted strings and is more robust against @@ -1780,12 +1869,12 @@ Changes in 2.4.2 Changes in 2.4.1 - * SECURITY: Handle the special filing of control messages into per-type + * SECURITY: Handle the special filing of control messages into per-type newsgroups more robustly. This closes a potentially exploitable buffer overflow. Thanks to Dan Riley for his excellent bug report. - * Fixed article handling in innd so that articles without a Path: header - (arising from peers sending malformatted articles or injecting + * Fixed article handling in innd so that articles without a Path header + field (arising from peers sending malformatted articles or injecting malformatted articles through rnews) would not cause innd to crash. (This was not exploitable.) @@ -1889,9 +1978,9 @@ Changes in 2.4.0 readers.conf(5). Any articles injected this way must have Date, From, Message-ID, Newsgroups, Path, and Subject headers. X-Trace and X-Complaints-To headers will be added if the appropriate options are - set in readers.conf, but other headers will not be modified/inserted - (e.g. NNTP-Posting-Host, NNTP-Posting-Date, Organization, Lines, Cc, - Bcc, and To headers). + set in readers.conf, but other header fields will not be + modified/inserted (e.g. NNTP-Posting-Host, NNTP-Posting-Date, + Organization, Lines, Cc, Bcc, and To header fields). * nnrpd now handles arbitrarily long lines in POST and IHAVE; administrators who want to limit the length of lines in locally posted @@ -1919,12 +2008,11 @@ Changes in 2.4.0 higher-numbered message is received before a lower-numbered message in the same group. - * Several other, more minor protocol issues have been fixed: - connections rejected due to the connection rate limiting in innd - receive 400 replies instead of 504 or 505, and ARTICLE without an - argument will always either retrieve the current article or return a - 423 error, never advance the current article number to the next valid - article. + * Several other, more minor protocol issues have been fixed: connections + rejected due to the connection rate limiting in innd receive 400 + replies instead of 504 or 505, and ARTICLE without an argument will + always either retrieve the current article or return a 423 error, + never advance the current article number to the next valid article. See doc/compliance-nntp for all of the known issues with INN's compliance with the current NNTP draft. @@ -1952,7 +2040,7 @@ Changes in 2.4.0 script has been retired, since send-uucp can now handle everything that it did. - * Two "configure" options have changed names: --with-tmp-path is now + * Two "configure" options have changed names: --with-tmp-path is now --with-tmp-dir, and --with-largefiles is now --enable-largefiles, to improve consistency and better match the "autoconf" option guidelines. @@ -1967,8 +2055,8 @@ Changes in 2.4.0 * Two new options, *nfsreader* and *nfswriter*, have been added to inn.conf to aid in building NFS based shared reader/writer platforms. - On the writer server configure *nfswriter* to true and on all of the - readers configure *nfsreader* to true; these options add calls to + On the writer server, configure *nfswriter* to true and on all of the + readers, configure *nfsreader* to true; these options add calls to force data out to the NFS server and force it to be read directly from the NFS server at the appropriate moments. Note that it has only been tested on Solaris 8, using CNFS as the storage mechanism and @@ -1976,8 +2064,8 @@ Changes in 2.4.0 * A new option, *tradindexedmmap*, has been added to inn.conf. If set to true (the default), then the tradindexed overview method will use - mmap() to access its overview data (in 2.3 you couldn't control this; - it always used mmap). + "mmap()" to access its overview data (in 2.3 you couldn't control + this; it always used mmap). * Thanks to code contributed by CMU, innfeed can now feed an IMAP server as well as other NNTP servers. See the man page for innfeed(8) for @@ -2009,12 +2097,12 @@ Changes in 2.4.0 Changes in 2.3.5 - * Clients using POST are no longer permitted to provide an - Injector-Info: header. + * Clients using POST are no longer permitted to provide an Injector-Info + header field. - * Fixed a bug causing posts with Followup-To: set to a moderated group - to be rejected if the posting user didn't have permission to approve - postings. + * Fixed a bug causing posts with a Followup-To header field set to a + moderated group to be rejected if the posting user didn't have + permission to approve postings. * Fixed bugs in inncheck with setuid rnews or setgid inews, in innconfval with inn.conf parameters containing shell metacharacters @@ -2031,10 +2119,11 @@ Changes in 2.3.4 searches for the header "newsgroup" matching the header "newsgroups". * Made CNFS more robust against crashes by actually syncing the cycbuff - headers to disk as was originally intended. Fixed a memory leak in - the tradspool code. + headers to disk as was originally intended. - * Two bugs in pgpverify when using GnuPG were fixed: it now correctly + * Fixed a memory leak in the tradspool code. + + * Two bugs in pgpverify when using GnuPG were fixed: it now correctly checks for gpgv (rather than pgp) when told to use GnuPG and expects the keyring to be pubring.gpg (not pubring.pgp). @@ -2046,7 +2135,7 @@ Changes in 2.3.4 * Various bugs in the header handling in nnrpd have been fixed, including hangs when using virtual domains and improper processing of - folded headers under certain circumstances. + folded header fields under certain circumstances. * Other minor bug fixes and documentation improvements. @@ -2059,7 +2148,7 @@ Changes in 2.3.3 which means that you may have to create a new key ring for GnuPG to use to verify signatures if you were previously using PGP. - * Users can no longer post articles containing Approved: headers to + * Users can no longer post articles containing Approved header fields to moderated groups by default; they must be specifically given that permission with the *access* parameter in readers.conf. See the man page for more details. @@ -2141,9 +2230,6 @@ Changes in 2.3.1 Upgrading from 2.2 to 2.3 - There may be additional things to watch out for not listed here; if you - run across any, please let know about them. - Simply doing a "make update" is not sufficient to upgrade; the history and overview information will also have to be regenerated, since the formats of both files have changed between 2.2 and 2.3. Regardless of @@ -2286,13 +2372,14 @@ Changes in 2.3.0 * To simplify anti-abuse filtering, and to be more compliant with news standards and proposed standards, INN now treats as control messages - only articles containing a Control: header. A Subject: line beginning - with "cmsg " is no longer sufficient for a message to be considered a - control message, and the Also-Control: header is no longer supported. - - * The INN build system no longer uses subst. (This will be transparent - to most users; it's an improvement and modernization of how INN is - configured.) + only articles containing a Control header field. A Subject header + field body beginning with "cmsg " is no longer sufficient for a + message to be considered a control message, and the Also-Control + header field is no longer supported. + + * The INN build system no longer uses "subst". (This will be + transparent to most users; it's an improvement and modernization of + how INN is configured.) * The build and installation system has been substantially overhauled. "make update" now updates scripts as well as binaries and @@ -2327,8 +2414,8 @@ Changes in 2.2.3 Changes in 2.2.2 * Various minor bug fixes and a Y2K bug fix. The Y2K bug is in version - version 2.2.1 only and will show up after Jan 1st, 2000 when a news - reader issues a NEWNEWS command for a date prior to the year 2000. + 2.2.1 only and will show up after Jan 1st, 2000 when a news reader + issues a NEWNEWS command for a date prior to the year 2000. Changes in 2.2.1 @@ -2366,5 +2453,3 @@ Changes in 2.2.0 * The innshellvars.csh.in script is obsolete (and lives in the obsolete directory, for now). - $Id: news.pod 10532 2021-01-20 12:00:42Z iulius $ - diff -Nurp inn-2.6.4/README inn-2.6.5/README --- inn-2.6.4/README 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/README 2022-02-18 20:36:57.000000000 +0100 @@ -1,20 +1,51 @@ -Welcome to INN 2.6! +Welcome to the InterNetNews project! + + INN 2.6 + + Our 2.6 branch is for the maintenance of the most recently released + stable version. Head to the "main" branch for the current development + of the next major release of INN. This work is sponsored by Internet Systems Consortium. - Please see INSTALL for installation instructions, NEWS for what's - changed from the previous release, and LICENSE for the copyright, - license, and distribution terms. + The official homepage of the project is + . + + You'll also find very useful information about INN on Russ Allbery's web + site . + + Please see: + + * CHECKLIST + + for a quick overview of all the installation steps and pointers to + documentation, + + * INSTALL + + for full installation instructions, + + * FAQ for INN FAQ, + + * NEWS + for what's changed from the previous release, + + * and LICENSE + + for the copyright, license, and distribution terms. + + These files can also be found in the doc or doc/pod directories if not + present at top-level. What is INN? - INN (InterNetNews), originally written by Rich Salz, is an extremely - flexible and configurable Usenet / Netnews news server. For a complete - description of the protocols behind Usenet and Netnews, see RFC 3977 - (NNTP), RFC 4642 updated by RFC 8143 (TLS/NNTP), RFC 4643 (NNTP - authentication), RFC 4644 (streaming NNTP feeds), RFC 5536 (USEFOR), - RFC 5537 (USEPRO), RFC 6048 (NNTP LIST additions) and RFC 8054 (NNTP - compression) or their replacements. + INN (InterNetNews), originally written by Rich Salz, is a very + full-featured and extremely flexible and configurable Usenet / Netnews + news server. For a complete description of the protocols behind Usenet + and Netnews, see RFC 3977 (NNTP), RFC 4642 updated by RFC 8143 + (TLS/NNTP), RFC 4643 (NNTP authentication), RFC 4644 (streaming NNTP + feeds), RFC 5536 (USEFOR), RFC 5537 (USEPRO), RFC 6048 (NNTP LIST + additions) and RFC 8054 (NNTP compression) or their replacements. In brief, Netnews is a set of protocols for exchanging messages between a decentralized network of news servers. News articles are organized @@ -84,21 +115,34 @@ Prerequisites INN uses GNU autoconf to probe the capabilities of your system, and therefore should compile on nearly any Unix system. It does, however, make extensive use of mmap(), which can cause problems on some older - operating systems. See INSTALL for a list of systems it is known to - work on. If you encounter problems compiling or running INN, or if you - successfully run INN on a platform that isn't listed in INSTALL, please - let us know (see "Reporting Bugs" below). + operating systems. See INSTALL + for a + list of systems it is known to work on. If you encounter problems + compiling or running INN, or if you successfully run INN on a platform + that isn't listed in INSTALL, please let us know (see "Reporting Bugs" + below). Perl 5.004_03 or later is required to build INN and use the embedded - Perl filter support (which is highly recommended; some excellent spam - filters have been written for INN). Since all versions of Perl previous - to 5.004 are buggy (including security problems) and have fewer - features, installing Perl 5.004_03 or later (like at least Perl 5.8.0) - is recommended. - - If you want to enable PGP verification of control messages (highly - recommended), you will need to have a PGP implementation installed. See - INSTALL for more details. + Perl filtering and authentication hook support (which is highly + recommended; some excellent spam filters have been written for INN). + Since all versions of Perl previous to 5.004 are buggy (including + security problems) and have fewer features, installing Perl 5.004_03 or + later (like at least Perl 5.8.0) is recommended. Depending on what + language you want to write your filters and authentication hooks in, you + may also want to install Python 2.3.0 or later, or Python 3.3.0 or + later. + + For support for authenticated control messages, you will need either PGP + or GnuPG, the latter being recommended. See INSTALL for more details. + + For the "ovdb" overview storage method, you'll need Berkeley DB 4.4 or + later (4.7 or later recommended). If you have zlib available, you can + also compress overview before it's stored into "ovdb", and enable the + COMPRESS capability, an NNTP extension. For support for news reading + over TLS, you'll need OpenSSL. To support SASL authentication to nnrpd + or to feed newsgroups to an IMAP server with SASL authentication, you'll + need the Cyrus SASL libraries. INN can also check passwords against a + Kerberos KDC; for this, you will need Kerberos libraries. Getting Started @@ -113,8 +157,24 @@ Getting Started or comments about things that are unclear, please send them to the INN maintainers (see "Reporting Bugs" below). - See INSTALL for step-by-step instructions for setting up and configuring - a news server. + Download + + Source code tarballs of the official releases can be downloaded from + . The InterNetNews project does not + distribute releases in binary form. Yet, precompiled versions may exist + on your operating system. + + When installing a new INN server, you may wish to download the latest + snapshot of the stable branch rather than the last official release, so + that to pick up possible bug fixes. + + Build and Install + + See INSTALL + for + step-by-step instructions for setting up and configuring a news server. + + Documentation INN also comes with a very complete set of man pages; there is a man page for every configuration file and program that comes with INN. (If @@ -123,10 +183,14 @@ Getting Started the man pages for all of the configuration files involved is a very good start. + URL: (online + documentation) + Reporting Bugs We're interested in all bug reports. Not just on the programs, but on - the documentation too. Please send *all* such reports to + the documentation too. Please use the GitHub issue tracker to send such + bug reports, or alternatively send them to inn-workers@lists.isc.org @@ -141,10 +205,28 @@ Reporting Bugs addresses are specifically for INN, and the INN maintainers usually won't have time to answer general questions. -Contributing Code +Testing and Development + + Source Code + + INN is maintained using the Git version control system. The official + InterNetNews Git repository is located at + . A local copy of the current + development source can be obtained by cloning it using a Git client: + + git clone https://github.com/InterNetNews/inn.git + + You can also download daily snapshots + produced only if + the current code compiles and passes the test suite, so they have + undergone at least some basic validation, although they've not been + tested by a human. + + Contributing Code If you have a patch or a utility that you'd like to be considered for - inclusion into INN, please mail it to + inclusion into INN, please make a GitHub pull request, or alternatively + mail it to inn-workers@lists.isc.org @@ -153,6 +235,14 @@ Contributing Code Patches included with a bug report as described above should follow the same procedure. + Please submit all patches against the current main branch, not against a + stable release. The development version of INN is often much different + than the last stable release. + + Also please take a look at HACKING + for + information about development and coding style. + Have fun! Mailing Lists @@ -163,29 +253,36 @@ Mailing Lists of them is read-only (no postings allowed). inn-announce@lists.isc.org - Where announcements about INN are set (only - maintainers may post). + Where announcements about INN are sent (only maintainers may + post). + + URL: inn-workers@lists.isc.org - Discussion of INN development. It is also where - to send bug reports and patches for - consideration for inclusion into INN (postings - by members only). If you're an INN expert and - have the time to help out other users, we - encourage you to join this mailing list to - answer questions. (You may also want to read - the newsgroup news.software.nntp, which gets a - lot of INN-related questions.) + Discussion of INN development. If you prefer not to use GitHub + to create an issue or a pull request, it is also where to send + bug reports and patches for consideration for inclusion into INN + (postings by members only). If you're an INN expert and have + the time to help out other users, we encourage you to join this + mailing list to answer questions. (You may also want to read + the newsgroup news.software.nntp, which gets a lot of + INN-related questions.) + + URL: inn-committers@lists.isc.org - Subversion commit messages for INN are sent to - this list (only the automated messages are sent - here, no regular posting). - - inn-bugs@lists.isc.org Trac tickets for INN are sent to this list (only - the automated messages are sent here, no regular - posting). Bug reports should be sent to the - inn-workers mailing list. + Git commit messages for INN are sent to this list (only the + automated messages are sent here, no regular posting). + + URL: + + inn-bugs@lists.isc.org + This list used to receive Trac issues for INN, before the + migration to GitHub (only the automated messages were sent here, + no regular posting). Bug reports should be sent to the + inn-workers mailing list, or a GitHub issue created. + + URL: To join these lists, send a subscription request to the "-request" address. The addresses for the above lists are: @@ -195,12 +292,17 @@ Mailing Lists inn-committers-request@lists.isc.org inn-bugs-request@lists.isc.org + You can alternatively join them from the subscription form in their + public web pages. + Who's Responsible / Who to Thank - See CONTRIBUTORS for a long list of past contributors as well as people - from the inn-workers mailing list who have dedicated a lot of time and - effort to getting this new version together. They deserve a big round - of applause. They've certainly got our thanks. + See CONTRIBUTORS + + for a long list of past contributors as well as people from the + inn-workers mailing list who have dedicated a lot of time and effort to + getting this new version together. They deserve a big round of + applause. They've certainly got our thanks. This product includes software developed by UUNET Technologies, Inc. and by the University of California, Berkeley and its contributors. @@ -254,12 +356,17 @@ Related Packages It also permits a realtime feed, contrary to innxmit or nntpsend. NewsPortal - URL: + URL: A PHP-based web news reader that works as a front-end to a regular news server such as INN and lets people read and post without learning a news reader. + NewsPortal was originally written by Florian Amrhein + and is now maintained by + Stéphane Grégoire who notably did a great job fixing a few bugs and + adapting it for use on smartphones. + PersonalINN URL: @@ -294,5 +401,3 @@ Supporting the INN Effort Katsuhiro Kondou - $Id: readme.pod 10359 2020-03-08 21:47:11Z eagle $ - diff -Nurp inn-2.6.4/TODO inn-2.6.5/TODO --- inn-2.6.4/TODO 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/TODO 2022-02-18 20:36:57.000000000 +0100 @@ -6,7 +6,7 @@ let know if below. This list is currently being migrated to INN's issue tracking system -. +on GitHub . The list is divided into changes already tentatively scheduled for a particular release, higher priority changes that will hopefully be done in @@ -23,7 +23,7 @@ suite, which is currently very minimal. to allow more portions of INN to be automatically tested will make all changes easier and will be *greatly* appreciated. -Last modified $Id: TODO 9949 2015-09-12 13:48:45Z iulius $. +Last modified on 2021-08-05. Scheduled for INN 2.7 @@ -188,10 +188,6 @@ Documentation Projects as libinn_
.3 seems to make the most sense (so, for example, error handling routines would be documented in libinn_error.3). -* Better documentation of and support for UUCP feeds. send-uucp is now - easier to use, but there's still a paucity of documentation covering the - whole theory and mechanisms of UUCP feeding. - * Everything installed by INN should have a man page. Currently, there are several binaries and configuration files that don't have man pages. (In some cases, the best thing to do with the configuration file may be @@ -678,12 +674,6 @@ Long-Term Projects should be possible once we have a history API that allows changing the storage location of an article in-place. -* Set up the infrastructure required so that INN can use alloca. This - would significantly decrease the number of calls to malloc needed and - would be a lot more convenient. alloca is now available, but most - programs still need to call alloca_free in their main loops before we - can use it in the various libraries. - * Support building in a separate directory than the source tree. It may be best to just support this via lndir rather than try to do it in configure, but it would be ideal to add support for this to the autoconf diff -Nurp inn-2.6.4/authprogs/Makefile inn-2.6.5/authprogs/Makefile --- inn-2.6.4/authprogs/Makefile 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/authprogs/Makefile 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,3 @@ -## $Id: Makefile 10100 2016-11-04 22:24:26Z iulius $ - include ../Makefile.global top = .. diff -Nurp inn-2.6.4/authprogs/auth_krb5.c inn-2.6.5/authprogs/auth_krb5.c --- inn-2.6.4/authprogs/auth_krb5.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/authprogs/auth_krb5.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: auth_krb5.c 10266 2018-03-10 14:59:27Z iulius $ -** +/* ** Check an username and password against Kerberos. ** ** Based on nnrpkrb5auth by Christopher P. Lindsey @@ -170,7 +169,7 @@ krb5_check_password(const char *principa krb5_verify_init_creds_opt vopts; creds_valid = true; - memset(&opts, 0, sizeof(vopts)); + memset(&vopts, 0, sizeof(vopts)); krb5_verify_init_creds_opt_init(&vopts); code = krb5_verify_init_creds(ctx, &creds, princ, NULL, NULL, &vopts); } diff -Nurp inn-2.6.4/authprogs/ckpasswd.c inn-2.6.5/authprogs/ckpasswd.c --- inn-2.6.4/authprogs/ckpasswd.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/authprogs/ckpasswd.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: ckpasswd.c 9586 2013-12-14 20:09:55Z iulius $ -** +/* ** The default username/password authenticator. ** ** This program is intended to be run by nnrpd and handle usernames and @@ -316,6 +315,7 @@ main(int argc, char *argv[]) enum authtype { AUTH_NONE, AUTH_SHADOW, AUTH_FILE, AUTH_DBM }; int opt; + const char *hash; enum authtype type = AUTH_NONE; bool wantgroup = false; const char *filename = NULL; @@ -410,7 +410,8 @@ main(int argc, char *argv[]) if (password == NULL) die("user %s unknown", authinfo->username); - if (strcmp(password, crypt(authinfo->password, password)) != 0) + hash = crypt(authinfo->password, password); + if (hash == NULL || strcmp(password, hash) != 0) die("invalid password for user %s", authinfo->username); /* The password matched. */ diff -Nurp inn-2.6.4/authprogs/domain.c inn-2.6.5/authprogs/domain.c --- inn-2.6.4/authprogs/domain.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/authprogs/domain.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: domain.c 7585 2006-11-21 09:37:51Z eagle $ -** +/* ** Domain authenticator. ** ** Compares the domain of the client connection to the first argument given diff -Nurp inn-2.6.4/authprogs/ident.c inn-2.6.5/authprogs/ident.c --- inn-2.6.4/authprogs/ident.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/authprogs/ident.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: ident.c 9893 2015-06-14 10:05:50Z iulius $ -** +/* ** Ident authenticator. */ diff -Nurp inn-2.6.4/authprogs/libauth.c inn-2.6.5/authprogs/libauth.c --- inn-2.6.4/authprogs/libauth.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/authprogs/libauth.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: libauth.c 7585 2006-11-21 09:37:51Z eagle $ -** +/* ** Common code for authenticators and resolvers. ** ** Collects common code to read information from nnrpd that should be done diff -Nurp inn-2.6.4/authprogs/libauth.h inn-2.6.5/authprogs/libauth.h --- inn-2.6.4/authprogs/libauth.h 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/authprogs/libauth.h 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: libauth.h 7183 2005-04-10 22:46:50Z rra $ -** +/* ** Some utility functions for writing authenticators and resolvers. */ diff -Nurp inn-2.6.4/authprogs/radius.c inn-2.6.5/authprogs/radius.c --- inn-2.6.4/authprogs/radius.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/authprogs/radius.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: radius.c 10001 2016-04-03 13:34:28Z iulius $ -** +/* ** Authenticate a user against a remote radius server. */ diff -Nurp inn-2.6.4/autogen inn-2.6.5/autogen --- inn-2.6.4/autogen 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/autogen 2022-02-18 20:36:57.000000000 +0100 @@ -1,6 +1,5 @@ #!/bin/sh -# autogen -- Run the appropriate commands to bootstrap a Subversion checkout. -# $Id: autogen 7286 2005-06-08 03:24:22Z eagle $ +# autogen -- Run the appropriate commands to bootstrap a Git checkout. set -e autoconf diff -Nurp inn-2.6.4/backends/Makefile inn-2.6.5/backends/Makefile --- inn-2.6.4/backends/Makefile 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/Makefile 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,3 @@ -## $Id: Makefile 10428 2020-11-24 07:20:05Z iulius $ - include ../Makefile.global top = .. diff -Nurp inn-2.6.4/backends/actmerge.in inn-2.6.5/backends/actmerge.in --- inn-2.6.4/backends/actmerge.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/actmerge.in 2022-02-18 20:36:57.000000000 +0100 @@ -1,8 +1,6 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -# $Id: actmerge.in 8232 2008-12-14 17:05:57Z iulius $ -# # actmerge - merge two active files # # usage: diff -Nurp inn-2.6.4/backends/actsync.c inn-2.6.5/backends/actsync.c --- inn-2.6.4/backends/actsync.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/actsync.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: actsync.c 10182 2017-10-16 04:17:01Z eagle $ - * +/* * actsync - sync or merge two active files * * usage: @@ -51,7 +50,7 @@ * host1 host to be changed (def: local server) * host2 reference host used in merge */ -/* +/* * By: Landon Curt Noll chongo@toad.com (chongo was here /\../\) * * Copyright (c) Landon Curt Noll, 1996. diff -Nurp inn-2.6.4/backends/actsyncd.in inn-2.6.5/backends/actsyncd.in --- inn-2.6.4/backends/actsyncd.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/actsyncd.in 2022-02-18 20:36:57.000000000 +0100 @@ -1,8 +1,6 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -# $Id: actsyncd.in 8279 2009-01-08 20:26:26Z iulius $ -# # actsyncd - actsync daemon # # usage: @@ -120,7 +118,7 @@ fi # Lock out others # shlock -p $$ -f "${LOCK}" || { - echo "$0: Locked by `cat '${LOCK}'`" 1>&2 + echo "$0: Locked by `cat \"${LOCK}\"`" 1>&2 exit 9 } diff -Nurp inn-2.6.4/backends/archive.c inn-2.6.5/backends/archive.c --- inn-2.6.4/backends/archive.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/archive.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: archive.c 10342 2019-05-30 14:18:48Z iulius $ -** +/* ** Read batchfiles on standard input and archive them. */ diff -Nurp inn-2.6.4/backends/batcher.c inn-2.6.5/backends/batcher.c --- inn-2.6.4/backends/batcher.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/batcher.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: batcher.c 10040 2016-07-31 20:01:43Z iulius $ -** +/* ** Read batchfiles on standard input and spew out batches. */ diff -Nurp inn-2.6.4/backends/buffchan.c inn-2.6.5/backends/buffchan.c --- inn-2.6.4/backends/buffchan.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/buffchan.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: buffchan.c 10040 2016-07-31 20:01:43Z iulius $ -** +/* ** Buffered file exploder for innd. */ diff -Nurp inn-2.6.4/backends/cvtbatch.c inn-2.6.5/backends/cvtbatch.c --- inn-2.6.4/backends/cvtbatch.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/cvtbatch.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -/* $Id: cvtbatch.c 9623 2014-03-15 22:29:46Z iulius $ +/* ** Read file list on standard input and spew out batch files. */ diff -Nurp inn-2.6.4/backends/filechan.c inn-2.6.5/backends/filechan.c --- inn-2.6.4/backends/filechan.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/filechan.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: filechan.c 7585 2006-11-21 09:37:51Z eagle $ -** +/* ** An InterNetNews channel process that splits a funnel entry into ** separate files. Originally from Robert Elz . */ diff -Nurp inn-2.6.4/backends/innbind.c inn-2.6.5/backends/innbind.c --- inn-2.6.4/backends/innbind.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/innbind.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: innbind.c 9767 2014-12-07 21:13:43Z iulius $ -** +/* ** Helper program to bind a socket to a low-numbered port. ** ** Written by Russ Allbery diff -Nurp inn-2.6.4/backends/inndf.c inn-2.6.5/backends/inndf.c --- inn-2.6.4/backends/inndf.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/inndf.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: inndf.c 10305 2018-12-02 14:21:56Z iulius $ -** +/* ** Reports free kilobytes (not disk blocks) or free inodes. ** ** Written by Ian Dickinson diff -Nurp inn-2.6.4/backends/innxbatch.c inn-2.6.5/backends/innxbatch.c --- inn-2.6.4/backends/innxbatch.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/innxbatch.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: innxbatch.c 10305 2018-12-02 14:21:56Z iulius $ -** +/* ** Transmit batches to remote site, using the XBATCH command ** Modelled after innxmit.c and nntpbatch.c ** @@ -23,7 +22,7 @@ ** -t Timeout for connection attempt ** -T Timeout for batch transfers. ** We do not use any file locking. At worst, a batch could be transmitted -** twice in parallel by two independant invocations of innxbatch. +** twice in parallel by two independent invocations of innxbatch. ** To prevent this, innxbatch should be invoked by a shell script that uses ** shlock(1) to achieve mutual exclusion. */ @@ -270,7 +269,7 @@ REMsendxbatch(int fd, char *buf, int siz STATaccepted++; if (Debug) fprintf(stderr, "will unlink(%s)\n", XBATCHname); if (unlink(XBATCHname)) { - /* probably another incarantion was faster, so avoid further duplicate + /* probably another instance ran faster, so avoid further duplicate * work */ syswarn("cannot unlink %s", XBATCHname); diff -Nurp inn-2.6.4/backends/innxmit.c inn-2.6.5/backends/innxmit.c --- inn-2.6.4/backends/innxmit.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/innxmit.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: innxmit.c 10305 2018-12-02 14:21:56Z iulius $ -** +/* ** Transmit articles to remote site. ** Modified for NNTP streaming: 1996-01-03 Jerry Aguirre. */ diff -Nurp inn-2.6.4/backends/map.c inn-2.6.5/backends/map.c --- inn-2.6.4/backends/map.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/map.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,7 +1,3 @@ -/* $Id: map.c 7585 2006-11-21 09:37:51Z eagle $ -** -*/ - #include "config.h" #include "clibrary.h" #include diff -Nurp inn-2.6.4/backends/map.h inn-2.6.5/backends/map.h --- inn-2.6.4/backends/map.h 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/map.h 2022-02-18 20:36:57.000000000 +0100 @@ -1,7 +1,3 @@ -/* $Id: map.h 5292 2002-03-10 08:59:54Z vinocur $ -** -*/ - void MAPfree(void); /* free the map */ void MAPread(const char *name); /* read the map file */ char *MAPname(char *p); /* lookup in the map */ diff -Nurp inn-2.6.4/backends/mod-active.in inn-2.6.5/backends/mod-active.in --- inn-2.6.4/backends/mod-active.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/mod-active.in 2022-02-18 20:36:57.000000000 +0100 @@ -1,7 +1,6 @@ #! /usr/bin/perl -w # fixscript will replace this line with code to load INN::Config -# $Id: mod-active.in 9215 2011-07-05 18:27:40Z iulius $ # batch-active-update # Author: David Lawrence diff -Nurp inn-2.6.4/backends/news2mail.in inn-2.6.5/backends/news2mail.in --- inn-2.6.4/backends/news2mail.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/news2mail.in 2022-02-18 20:36:57.000000000 +0100 @@ -1,7 +1,6 @@ #! /usr/bin/perl -w # fixscript will replace this line with code to load INN::Config -# $Id: news2mail.in 10076 2016-10-08 20:37:36Z iulius $ # News to mail channel backend. # # INN gives us diff -Nurp inn-2.6.4/backends/ninpaths.c inn-2.6.5/backends/ninpaths.c --- inn-2.6.4/backends/ninpaths.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/ninpaths.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: ninpaths.c 10040 2016-07-31 20:01:43Z iulius $ -** +/* ** New inpaths reporting program. ** ** Idea, data structures and part of code based on inpaths 2.5 diff -Nurp inn-2.6.4/backends/nntpget.c inn-2.6.5/backends/nntpget.c --- inn-2.6.4/backends/nntpget.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/nntpget.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: nntpget.c 10305 2018-12-02 14:21:56Z iulius $ -** +/* ** Connect to a remote site, and get news from it to offer to our local ** server. Read list on stdin, or get it via NEWNEWS command. Writes ** list of articles still needed to stdout. @@ -187,8 +186,9 @@ static void Usage(const char *p) { warn("%s", p); - fprintf(stderr, "Usage: nntpget" - " [ -d dist -n grps [-f file | -t time -u file]] host\n"); + fprintf(stderr, + "Usage: nntpget" + " [-ov] [-d dist] [-f file] [-n grps] [-t time] [-u file] host\n"); exit(1); } @@ -232,7 +232,7 @@ main(int ac, char *av[]) umask(NEWSUMASK); /* Parse JCL. */ - while ((i = getopt(ac, av, "d:f:n:t:ovu:")) != EOF) + while ((i = getopt(ac, av, "d:f:n:t:ou:v")) != EOF) switch (i) { default: Usage("bad flag"); @@ -268,7 +268,7 @@ main(int ac, char *av[]) break; case 't': if (Since) - Usage("only one of -t or -f may be given"); + Usage("only one of -f, -t, or -u may be given"); Since = optarg; break; case 'v': @@ -398,7 +398,7 @@ main(int ac, char *av[]) } if (Verbose) - notice("%s...", mesgid); + notice("%s", mesgid); /* Read each line in the article and write it. */ for (Error = false; ; ) { diff -Nurp inn-2.6.4/backends/nntpsend.in inn-2.6.5/backends/nntpsend.in --- inn-2.6.4/backends/nntpsend.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/nntpsend.in 2022-02-18 20:36:57.000000000 +0100 @@ -1,7 +1,6 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -## $Id: nntpsend.in 9969 2015-12-10 20:28:37Z iulius $ ## Send news via NNTP by running several innxmit processes in the background. ## Usage: ## nntpsend [-acDdlNnpr] [-P portnum] [-s size] [-T limit] [-t timeout] diff -Nurp inn-2.6.4/backends/overchan.c inn-2.6.5/backends/overchan.c --- inn-2.6.4/backends/overchan.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/overchan.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: overchan.c 9695 2014-09-20 05:53:22Z iulius $ -** +/* ** Add entries to the overview database. ** ** overchan is intended to run as a channel feed to store data into the diff -Nurp inn-2.6.4/backends/send-ihave.in inn-2.6.5/backends/send-ihave.in --- inn-2.6.4/backends/send-ihave.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/send-ihave.in 2022-02-18 20:36:57.000000000 +0100 @@ -1,16 +1,15 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -## $Revision: 2674 $ -## SH script to send IHAVE batches out. +## SH script to send ihave control messages in batches out. PROGNAME=`basename $0` LOG=${MOST_LOGS}/${PROGNAME}.log -## How many Message-ID's per message. +## How many Message-ID's per message. PERMESSAGE=1000 -## Go to where the action is, start logging +## Go to where the action is, start logging. cd $BATCH umask 002 DEBUG="" @@ -25,7 +24,7 @@ fi echo "${PROGNAME}: [$$] begin `date`" -## List of sitename:hostname pairs to send to +## List of sitename[:hostname] pairs to send to. if [ -n "$1" ] ; then LIST="$*" else @@ -79,7 +78,7 @@ for SITE in ${LIST}; do export SITE PERMESSAGE BATCHFILE while test -s ${BATCHFILE} ; do ( - echo Newsgroups: to.${SITE} + echo Newsgroups: to.${HOST} echo Control: ihave `innconfval pathhost` echo Subject: cmsg ihave `innconfval pathhost` echo '' diff -Nurp inn-2.6.4/backends/send-nntp.in inn-2.6.5/backends/send-nntp.in --- inn-2.6.4/backends/send-nntp.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/send-nntp.in 2022-02-18 20:36:57.000000000 +0100 @@ -1,13 +1,12 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -## $Revision: 4115 $ ## SH script to send NNTP news out. PROGNAME=`basename $0` LOG=${MOST_LOGS}/${PROGNAME}.log -## Go to where the action is, start logging +## Go to where the action is, start logging. cd $BATCH umask 002 DEBUG="" @@ -22,7 +21,7 @@ fi echo "${PROGNAME}: [$$] begin `date`" -## List of sitename:hostname pairs to send to +## List of sitename:hostname pairs to send to. if [ -n "$1" ] ; then LIST="$*" else @@ -85,4 +84,4 @@ for SITE in ${LIST}; do rm -f ${LOCK} done -echo "${PROGNAME}: [$$] end `date`" +echo "${PROGNAME}: [$$] end `date`" diff -Nurp inn-2.6.4/backends/send-uucp.in inn-2.6.5/backends/send-uucp.in --- inn-2.6.4/backends/send-uucp.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/send-uucp.in 2022-02-18 20:36:57.000000000 +0100 @@ -273,7 +273,7 @@ are over dial-up connections). Any arguments provided to the program are interpreted as a list of sites specified in F for which batches should be generated. If no -arguments are supplied then batches will be generated for all sites listed +arguments are supplied, then batches will be generated for all sites listed in that configuration file. =head1 CONFIGURATION @@ -363,6 +363,186 @@ is kept between S<4 KB> and S<1 KB>: :*,!junk,!control,!control.*/!foo\ :Tf,Wnb,B4096/1024: +=head1 SETTING UP UUCP FEEDS + +Here are the steps to follow to set up a UUCP feed over SSH between +two news servers, using the UUCP implementation available in Debian +as the C package. The mechanisms described below should be +transposed if you use another UUCP implementation. (And if you do, +please inform the INN maintainers about how to set up a feed with another +UUCP implementation, so that it can be added to this documentation.) + +=over 4 + +=item 1. + +First of all, make sure B is correctly installed setuid C, +owned by group C, and mode C<4550>. This will allow the UUCP +subsystem to run B to process UUCP batches of news articles. +The C flag B<--enable-uucp-rnews> takes care of it when +installing INN. Otherwise, you'll have to manually change the +permissions on B. + +=item 2. + +Install the C package. It will notably provide uucico(8) +and uux(1). + +=item 3. + +Configure in F the remote news servers to poll, and +the hours during which they are to be polled. For instance, if you +send to C UUCP batches every 4 hours, you can use: + + schedule news.server.to.feed 00 + poll news.server.to.feed 00 04 08 12 16 20 + +If sending is hourly, just list all the hours. + +=item 4. + +Configure in F the credentials (usernames and passwords) +to use when authenticating against remote news servers, one per line. +For instance: + + news.server.to.feed login password + +=item 5. + +Configure in F the UUCP name of the local news server. +For instance: + + nodename my.news.server + +=item 6. + +Check that F fits your needs as for the number of days +batches are retained as well as the configuration of daily reports. +Default values are normally fine, though you may want to receive a +daily report only if unusual things happen (and in that case, just set +C<$important_only> to C<1>). + +=item 7. + +Configure in F the credentials (usernames and passwords +separated by a tabulation) remote news servers use when authenticating +against the local news server, one per line. For instance: + + loginpassword + +=item 8. + +Configure in F how remote news servers connect to the +local news server. A typical entry to set an SSH connection is the +following one where I should be changed to the real path +to B: + + system news.server.to.feed + call-login * + call-password * + commands /rnews + time any + chat "" \d\d\r\c ogin: \d\L word: \P + chat-timeout 120 + protocol i + port ssh.news.server.to.feed + +=item 9. + +Configure in F how to connect to remote news servers. +A typical entry to set an SSH connection using a private key is: + + port ssh.news.server.to.feed + type pipe + command /usr/bin/ssh -a -x -q -i -l uucp news.server.to.feed + reliable true + protocol etyig + +where I is the private key to use for the SSH connection, +like for instance F. + +=item 10. + +Make sure the administrators of remote news servers have added the +public key related to F for connections to the C +user of the remote news servers. + +=item 11. + +Supposing the home directory of the C user is F, +you need to configure the SSH keys in the F<.ssh> subdirectory. First, +add the public keys of all remote news servers in F. +A typical entry is: + + no-port-forwarding,no-X11-forwarding,no-agent-forwarding,command="/usr/sbin/uucico -l",from="news.server.to.feed" ssh-rsa xxxyyyzzz uucp@news.server.to.feed + +This ensures the SSH connection will not be used for another goal than +exchanging UUCP batches. + +=item 12. + +Make sure F is correctly present, as set in +F, and only readable by the C user. + +=item 13. + +Manually run as the C user the command set in F +so as to create the F file so as to make sure the SSH +setting is fine. + + /usr/bin/ssh -a -x -q -i -l uucp news.server.to.feed + +=item 14. + +Parameter the feed to send to the remote servers. A typical entry in +F to generate batches in I is: + + news.server.to.feed/pathname:*:Tf,Wnb,B4096/1024: + +=item 15. + +Set up the compression method, batch sizes and when to generate them +in F located in I, as described earlier in this +documentation. + + news.server.to.feed bzip2 1048576 3,7,11,15,19,23 + +=item 16. + +Check that B is started hourly in crontab by the C user. +For instance in F: + + 52 * * * * news /send-uucp + +It can be useful to set up a different launch time than your remote +servers. For instance, if you generate batches every hour at minute 52, +a remote peer may do the same at minute 22. This way, you may exchange +articles more frequently, depending on when each other connects. + +=item 17. + +Check that UUCP programs are automatically started in crontab (usually, +B is called hourly in F to poll remote +news servers, and B daily in F). + +Like for B, adjust the launch time to maximize the number +and the freshness of batches to exchanges. + +=item 18. + +Check the logs in F to ensure everything works fine, +both polling and sending. + +You will see that B prepares B batches named like +F, that are queued by B. When B is afterwards +started from cron to transfer these batches, B takes available +batches from the remote sites at the same time. These received batches +are then processed by B which calls B to inject them. + +That's all! + +=back + =head1 FILES =over 4 @@ -375,6 +555,10 @@ The Perl script itself used to create ne The configuration file which specifies a list of sites to be processed. +=item I/send-uucp.log + +The log file used if the syslog facility is not available. + =back =head1 HISTORY diff -Nurp inn-2.6.4/backends/sendinpaths.in inn-2.6.5/backends/sendinpaths.in --- inn-2.6.4/backends/sendinpaths.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/sendinpaths.in 2022-02-18 20:36:57.000000000 +0100 @@ -1,8 +1,6 @@ #! /usr/bin/perl -w # fixscript will replace this line with code to load INN::Config -## $Id: sendinpaths.in 9383 2011-12-25 20:56:10Z iulius $ -## ## Submit Path: statistics based on ninpaths. ## ## A rewrite of the sendinpaths shell script in Perl, based on Mohan Kokal's diff -Nurp inn-2.6.4/backends/sendxbatches.in inn-2.6.5/backends/sendxbatches.in --- inn-2.6.4/backends/sendxbatches.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/sendxbatches.in 2022-02-18 20:36:57.000000000 +0100 @@ -1,18 +1,18 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -# $Id: sendxbatches.in 2674 1999-11-15 06:28:29Z rra $ # By petri@ibr.cs.tu-bs.de with mods by libove@jerry.alf.dec.com # -# Script to send xbatches for a site, wrapped around innxbatch -# Invocation: sendxbatches ... +# Script to send xbatches for a site, wrapped around innxbatch. +# Invocation: +# sendxbatches ... # ## TODO: - we should check the amount of queued batches for the site, ## to prevent disk overflow due to unreachable sites. if [ $# -lt 3 ] then - echo "usage: $0 " + echo "usage: $0 ..." exit 1 fi diff -Nurp inn-2.6.4/backends/shlock.c inn-2.6.5/backends/shlock.c --- inn-2.6.4/backends/shlock.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/shlock.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ -/* $Id: shlock.c 10305 2018-12-02 14:21:56Z iulius $ -** +/* ** Produce reliable locks for shell scripts, by Peter Honeyman as told ** to Rich $alz. ** diff -Nurp inn-2.6.4/backends/shrinkfile.c inn-2.6.5/backends/shrinkfile.c --- inn-2.6.4/backends/shrinkfile.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/backends/shrinkfile.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,25 +1,24 @@ -/* $Id: shrinkfile.c 10153 2017-06-05 12:28:01Z iulius $ -** +/* ** Shrink files on line boundaries. ** ** Written by Landon Curt Noll , and placed in the ** public domain. Rewritten for INN by Rich Salz. ** ** Usage: -** shrinkfile [-n] [-s size [-m maxsize]] [-v] file... -** -n No writes, exit 0 if any file is too large, 1 otherwise -** -s size Truncation size (0 default); suffix may be k, m, -** or g to scale. Must not be larger than 2^31 - 1. -** -m maxsize Maximum size allowed before truncation. If maxsize -** <= size, then it is reset to size. Default == size. -** -v Print status line. +** shrinkfile [-nv] [-m maxsize] [-s size] file [file ...] +** -n No writes, exit 0 if any file is too large, 1 otherwise +** -s size Truncation size (0 default); suffix may be k, m, +** or g to scale. Must not be larger than 2^31 - 1. +** -m maxsize Maximum size allowed before truncation. If maxsize +** <= size, then it is reset to size. Default == size. +** -v Print status line. ** -** Files will be shrunk an end of line boundary. In no case will the -** file be longer than size bytes if it was longer than maxsize bytes. -** If the first line is longer than the absolute value of size, the file +** Files will be shrunk at end of line boundary. In no case will the +** file be longer than size bytes if it was longer than maxsize bytes. +** If the first line is longer than the absolute value of size, the file ** will be truncated to zero length. ** -** The -n flag may be used to determine of any file is too large. No +** The -n flag may be used to determine if any file is too large. No ** files will be altered in this mode. */ @@ -110,7 +109,7 @@ AppendNewline(char *name) } /* -** Just check if it is too big +** Just check if it is too big. */ static bool TooBig(FILE *F, off_t maxsize) @@ -298,8 +297,9 @@ ParseSize(char *p) static void Usage(void) { - fprintf(stderr, - "Usage: shrinkfile [-n] [ -m maxsize ] [-s size] [-v] file..."); + fprintf( + stderr, + "Usage: shrinkfile [-nv] [-m maxsize] [-s size] file [file ...]\n"); exit(1); } @@ -362,10 +362,10 @@ main(int ac, char *av[]) continue; } - /* -n (no_op) or normal processing */ + /* If -n (no_op). */ if (no_op) { - /* check if too big and exit zero if it is */ + /* Check if too big and exit zero if it is. */ if (TooBig(F, maxsize)) { if (Verbose) notice("%s is too large", p); @@ -373,7 +373,7 @@ main(int ac, char *av[]) /* NOTREACHED */ } - /* no -n, do some real work */ + /* No -n, do some real work. */ } else { Changed = false; if (!Process(F, p, size, maxsize, &Changed)) @@ -386,7 +386,7 @@ main(int ac, char *av[]) notice("did not find a file that was too large"); } - /* if -n, then exit non-zero to indicate no file too big */ + /* If -n, then exit non-zero to indicate no file too big. */ exit(no_op ? 1 : 0); /* NOTREACHED */ } diff -Nurp inn-2.6.4/configure inn-2.6.5/configure --- inn-2.6.4/configure 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/configure 2022-02-18 20:36:57.000000000 +0100 @@ -1,7 +1,6 @@ #! /bin/sh -# From configure.ac Revision: 10520 . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for INN 2.6.4. +# Generated by GNU Autoconf 2.69 for INN 2.6.5. # # Report bugs to . # @@ -591,10 +590,10 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='INN' PACKAGE_TARNAME='inn' -PACKAGE_VERSION='2.6.4' -PACKAGE_STRING='INN 2.6.4' +PACKAGE_VERSION='2.6.5' +PACKAGE_STRING='INN 2.6.5' PACKAGE_BUGREPORT='inn-workers@lists.isc.org' -PACKAGE_URL='https://www.isc.org/downloads/projects/' +PACKAGE_URL='https://www.isc.org/othersoftware/' ac_default_prefix=/usr/local/news # Factoring default headers for most tests. @@ -1450,7 +1449,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 INN 2.6.4 to adapt to many kinds of systems. +\`configure' configures INN 2.6.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1516,7 +1515,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of INN 2.6.4:";; + short | recursive ) echo "Configuration of INN 2.6.5:";; esac cat <<\_ACEOF @@ -1640,7 +1639,7 @@ Use these variables to override the choi it to find libraries and programs with nonstandard names/locations. Report bugs to . -INN home page: . +INN home page: . _ACEOF ac_status=$? fi @@ -1703,7 +1702,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -INN configure 2.6.4 +INN configure 2.6.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2542,7 +2541,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 INN $as_me 2.6.4, which was +It was created by INN $as_me 2.6.5, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2891,7 +2890,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - ac_aux_dir= for ac_dir in support "$srcdir"/support; do if test -f "$ac_dir/install-sh"; then @@ -2922,7 +2920,96 @@ ac_configure="$SHELL $ac_aux_dir/configu - +{ $as_echo "$as_me:${as_lineno-$LINENO}: Building INN requires the following dependencies to be met, +besides a working compiler, a POSIX shell and GNU make, as well as Autoconf +if you're bootstrapping the source code. +--- +The names of the deb and rpm packages are given to help you find them quicker. +--- +Mandatory (deb / rpm): +- bison, flex / byacc, flex (for the innfeed build, if bootstrapping the source + code) +- perl / perl (for various mandatory Perl scripts) +- default-mta / postfix (or any specific MTA, for moderated newsgroups) +--- +Optional (deb / rpm): +- libdb-dev / libdb-devel (--with-bdb for ovdb overview) +- libkrb5-dev / krb5-devel (--with-krb5 for a Kerberos v5 authenticator) +- libssl-dev / openssl-devel (--with-openssl for TLS support for readers) +- libperl-dev / perl-devel, perl-ExtUtils-Embed (--with-perl for Perl-based + spam filtering and authentication) +- python3-dev, python3 / python3-devel, python3 (--with-python for Python-based + spam filtering and authentication) +- libsasl2-dev / cyrus-sasl-devel (--with-sasl for SASL authentication support) +- zlib1g-dev / zlib-devel (--with-zlib for compressed ovdb, and the COMPRESS + command for readers) +- libpam0g-dev / pam-devel (for PAM authentication support) +- libsystemd-dev, pkg-config / systemd-devel, pkg-config (for systemd + notifications and socket activation) +--- +Though not mandatory for the build, the following packages should be installed +if you plan on using the provided features (configure will properly sets their +path in a few variables used by INN): +- gnupg / gnupg2 (for the verification of the signatures of control articles + and NoCeM notices) +- uucp / uucp (for the exchange of news articles with send-uucp) +- various wide-spread programs like a modern awk implementation, grep, gzip + (and eventually bzip2 and compress if you want to use other compression + methods with send-uucp or rnews), sed and sort, probably already installed + on your system, and used by INN in several scripts +--- +Though not mandatory for the build, the following packages will also be useful: +- libgd-perl / perl-GD (for pictures in HTML daily Usenet reports) +- libmime-tools-perl / perl-MIME-tools (for the decoding of control articles + by controlchan) +- cron and syslog, probably already installed on your system +--- +Happy building!" >&5 +$as_echo "$as_me: Building INN requires the following dependencies to be met, +besides a working compiler, a POSIX shell and GNU make, as well as Autoconf +if you're bootstrapping the source code. +--- +The names of the deb and rpm packages are given to help you find them quicker. +--- +Mandatory (deb / rpm): +- bison, flex / byacc, flex (for the innfeed build, if bootstrapping the source + code) +- perl / perl (for various mandatory Perl scripts) +- default-mta / postfix (or any specific MTA, for moderated newsgroups) +--- +Optional (deb / rpm): +- libdb-dev / libdb-devel (--with-bdb for ovdb overview) +- libkrb5-dev / krb5-devel (--with-krb5 for a Kerberos v5 authenticator) +- libssl-dev / openssl-devel (--with-openssl for TLS support for readers) +- libperl-dev / perl-devel, perl-ExtUtils-Embed (--with-perl for Perl-based + spam filtering and authentication) +- python3-dev, python3 / python3-devel, python3 (--with-python for Python-based + spam filtering and authentication) +- libsasl2-dev / cyrus-sasl-devel (--with-sasl for SASL authentication support) +- zlib1g-dev / zlib-devel (--with-zlib for compressed ovdb, and the COMPRESS + command for readers) +- libpam0g-dev / pam-devel (for PAM authentication support) +- libsystemd-dev, pkg-config / systemd-devel, pkg-config (for systemd + notifications and socket activation) +--- +Though not mandatory for the build, the following packages should be installed +if you plan on using the provided features (configure will properly sets their +path in a few variables used by INN): +- gnupg / gnupg2 (for the verification of the signatures of control articles + and NoCeM notices) +- uucp / uucp (for the exchange of news articles with send-uucp) +- various wide-spread programs like a modern awk implementation, grep, gzip + (and eventually bzip2 and compress if you want to use other compression + methods with send-uucp or rnews), sed and sort, probably already installed + on your system, and used by INN in several scripts +--- +Though not mandatory for the build, the following packages will also be useful: +- libgd-perl / perl-GD (for pictures in HTML daily Usenet reports) +- libmime-tools-perl / perl-MIME-tools (for the decoding of control articles + by controlchan) +- cron and syslog, probably already installed on your system +--- +Happy building!" >&6;} @@ -14385,10 +14472,12 @@ $as_echo_n "checking for flags to link w inn_perl_core_libs=`$as_echo "$inn_perl_core_libs" | sed 's/ -lc / /'` case $host in #( *-linux*) : - inn_perl_core_libs=`$as_echo "$inn_perl_core_libs" | sed 's/ -lgdbm / /'` ;; #( + inn_perl_core_libs=`$as_echo "$inn_perl_core_libs" \ + | sed 's/ -lgdbm / /'` ;; #( *-cygwin*) : inn_perl_libname=`"$PERL" -MConfig -e 'print $Config{libperl}'` - inn_perl_libname=`$as_echo "$inn_perl_libname" | sed 's/^lib//; s/\.a$//'` + inn_perl_libname=`$as_echo "$inn_perl_libname" \ + | sed 's/^lib//; s/\.a$//'` inn_perl_core_libs="${inn_perl_core_libs}-l$inn_perl_libname" ;; #( *) : ;; @@ -14600,20 +14689,34 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flags to link with Python" >&5 $as_echo_n "checking for flags to link with Python... " >&6; } - py_include=`$PYTHON -c 'import distutils.sysconfig; \ - print(distutils.sysconfig.get_python_inc())'` + if "$PYTHON" -c 'import sysconfig' >/dev/null 2>&1; then : + py_include=`$PYTHON -c 'import sysconfig; \ + print(sysconfig.get_paths("posix_prefix").get("include", ""))'` + py_libdir=`$PYTHON -c 'import sysconfig; \ + print(" -L".join(sysconfig.get_config_vars("LIBDIR")))'` + py_ldlibrary=`$PYTHON -c 'import sysconfig; \ + print(sysconfig.get_config_vars("LDLIBRARY")[0])'` + py_linkage=`$PYTHON -c 'import sysconfig; \ + print(" ".join(sysconfig.get_config_vars( \ + "LIBS", "LIBC", "LIBM", "LOCALMODLIBS", "BASEMODLIBS", \ + "LINKFORSHARED", "LDFLAGS")))'` +else + py_include=`$PYTHON -c 'import distutils.sysconfig; \ + print(distutils.sysconfig.get_python_inc())'` + py_libdir=`$PYTHON -c 'import distutils.sysconfig; \ + print(" -L".join(distutils.sysconfig.get_config_vars("LIBDIR")))'` + py_ldlibrary=`$PYTHON -c 'import distutils.sysconfig; \ + print(distutils.sysconfig.get_config_vars("LDLIBRARY")[0])'` + py_linkage=`$PYTHON -c 'import distutils.sysconfig; \ + print(" ".join(distutils.sysconfig.get_config_vars( \ + "LIBS", "LIBC", "LIBM", "LOCALMODLIBS", "BASEMODLIBS", \ + "LINKFORSHARED", "LDFLAGS")))'` +fi PYTHON_CPPFLAGS="-I$py_include" - py_libdir=`$PYTHON -c 'import distutils.sysconfig; \ - print(" -L".join(distutils.sysconfig.get_config_vars("LIBDIR")))'` - py_ldlibrary=`$PYTHON -c 'import distutils.sysconfig; \ - print(distutils.sysconfig.get_config_vars("LDLIBRARY")[0])'` - py_linkage=`$PYTHON -c 'import distutils.sysconfig; \ - print(" ".join(distutils.sysconfig.get_config_vars( \ - "LIBS", "LIBC", "LIBM", "LOCALMODLIBS", "BASEMODLIBS", \ - "LINKFORSHARED", "LDFLAGS")))'` - py_libpython=`$as_echo "$py_ldlibrary" | sed "s/^lib//" | sed "s/\.[a-z]*$//"` + py_libpython=`$as_echo "$py_ldlibrary" \ + | sed -e 's/^lib//' -e 's/\.[a-z]*$//'` PYTHON_LIBS="-L$py_libdir -l$py_libpython $py_linkage" - PYTHON_LIBS=`$as_echo "$PYTHON_LIBS" | sed -e 's/ \\t*/ /g'` + PYTHON_LIBS=`$as_echo "$PYTHON_LIBS" | sed 's/ [ \\t]*/ /g'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_LIBS" >&5 $as_echo "$PYTHON_LIBS" >&6; } inn_python_save_CPPFLAGS="$CPPFLAGS" @@ -16753,10 +16856,10 @@ cat >>confdefs.h <<_ACEOF _ACEOF - if test "$ac_cv_sizeof_long" -eq 4 && test -d /usr/lib32; then : + if test "$ac_cv_sizeof_long" -eq 4; then : inn_lib_arch_name=lib32 else - if test "$ac_cv_sizeof_long" -eq 8 && test -d /usr/lib64; then : + if test "$ac_cv_sizeof_long" -eq 8; then : inn_lib_arch_name=lib64 fi fi @@ -17087,76 +17190,13 @@ else fi fi fi - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : - for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - inn_krb5_header_found=true -fi - -done - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 -$as_echo_n "checking for krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 -$as_echo_n "checking for kerberosv5/krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KERBEROSV5_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 -$as_echo_n "checking for krb5/krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KRB5_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -fi - if test x"$inn_krb5_header_found" = xtrue; then : - inn_krb5_save_CPPFLAGS="$CPPFLAGS" + inn_krb5_save_CPPFLAGS="$CPPFLAGS" inn_krb5_save_LDFLAGS="$LDFLAGS" inn_krb5_save_LIBS="$LIBS" CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" LIBS="$KRB5_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 $as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_init_context+:} false; then : $as_echo_n "(cached) " >&6 @@ -17194,8 +17234,8 @@ fi $as_echo "$ac_cv_lib_krb5_krb5_init_context" >&6; } if test "x$ac_cv_lib_krb5_krb5_init_context" = xyes; then : KRB5_LIBS="-lkrb5" - LIBS="$KRB5_LIBS $LIBS" - for ac_func in krb5_get_error_message + LIBS="$KRB5_LIBS $LIBS" + for ac_func in krb5_get_error_message do : ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : @@ -17270,9 +17310,9 @@ fi $as_echo "$ac_cv_lib_ksvc_krb5_svc_get_msg" >&6; } if test "x$ac_cv_lib_ksvc_krb5_svc_get_msg" = xyes; then : KRB5_LIBS="$KRB5_LIBS -lksvc" - $as_echo "#define HAVE_KRB5_SVC_GET_MSG 1" >>confdefs.h + $as_echo "#define HAVE_KRB5_SVC_GET_MSG 1" >>confdefs.h - for ac_header in ibm_svc/krb5_svc.h + for ac_header in ibm_svc/krb5_svc.h do : ac_fn_c_check_header_compile "$LINENO" "ibm_svc/krb5_svc.h" "ac_cv_header_ibm_svc_krb5_svc_h" " #if HAVE_KRB5_H @@ -17294,54 +17334,6 @@ fi done else - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : - for ac_header in et/com_err.h kerberosv5/com_err.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - inn_krb5_header_found=true -fi - -done - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 -$as_echo_n "checking for et/com_err.h... " >&6; } - if test -f "${inn_krb5_incroot}/et/com_err.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_ET_COM_ERR_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 -$as_echo_n "checking for kerberosv5/com_err.h... " >&6; } - if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KERBEROSV5_COM_ERR_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -fi - if test x"$inn_krb5_header_found" = xtrue; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for com_err in -lcom_err" >&5 $as_echo_n "checking for com_err in -lcom_err... " >&6; } if ${ac_cv_lib_com_err_com_err+:} false; then : @@ -17388,9 +17380,50 @@ else fi fi + if test x"$inn_krb5_incroot" = x; then : + for ac_header in et/com_err.h kerberosv5/com_err.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + else - if test x"true" = xtrue; then : - as_fn_error $? "cannot find usable com_err header" "$LINENO" 5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 +$as_echo_n "checking for et/com_err.h... " >&6; } + if test -f "${inn_krb5_incroot}/et/com_err.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_ET_COM_ERR_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 +$as_echo_n "checking for kerberosv5/com_err.h... " >&6; } + if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KERBEROSV5_COM_ERR_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi fi fi @@ -17404,17 +17437,83 @@ done fi done + inn_krb5_found_header= + if test x"$inn_krb5_incroot" = x; then : + for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + inn_krb5_found_header=true +fi + +done + else - if test x"true" = xtrue; then : - as_fn_error $? "cannot find usable Kerberos library" "$LINENO" 5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 +$as_echo_n "checking for krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 +$as_echo_n "checking for kerberosv5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KERBEROSV5_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 +$as_echo_n "checking for krb5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_KRB5_H 1 +_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true else - if test x"true" = xtrue; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi + if test x"$inn_krb5_found_header" = xtrue; then : + +else + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"true" = xtrue; then : as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 fi fi +else + if test x"true" = xtrue; then : + as_fn_error $? "cannot find usable Kerberos library" "$LINENO" 5 +fi +fi + CPPFLAGS="$inn_krb5_save_CPPFLAGS" LDFLAGS="$inn_krb5_save_LDFLAGS" LIBS="$inn_krb5_save_LIBS" @@ -17519,8 +17618,16 @@ fi if test x"$inn_krb5_config_KRB5_ok" = xyes; then : KRB5_CPPFLAGS=`$as_echo "$KRB5_CPPFLAGS" | sed 's%-I/usr/include %%'` KRB5_CPPFLAGS=`$as_echo "$KRB5_CPPFLAGS" | sed 's%-I/usr/include$%%'` - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : + inn_krb5_save_CPPFLAGS="$CPPFLAGS" + inn_krb5_save_LDFLAGS="$LDFLAGS" + inn_krb5_save_LIBS="$LIBS" + CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" + LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" + LIBS="$KRB5_LIBS $LIBS" + ac_fn_c_check_func "$LINENO" "krb5_init_context" "ac_cv_func_krb5_init_context" +if test "x$ac_cv_func_krb5_init_context" = xyes; then : + inn_krb5_found_header= + if test x"$inn_krb5_incroot" = x; then : for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -17529,7 +17636,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + inn_krb5_found_header=true fi done @@ -17538,7 +17645,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 $as_echo_n "checking for krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_H 1 @@ -17546,6 +17652,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -17553,7 +17660,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 $as_echo_n "checking for kerberosv5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_KRB5_H 1 @@ -17561,6 +17667,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -17568,7 +17675,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 $as_echo_n "checking for krb5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_KRB5_H 1 @@ -17576,20 +17682,13 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" = xtrue; then : - inn_krb5_save_CPPFLAGS="$CPPFLAGS" - inn_krb5_save_LDFLAGS="$LDFLAGS" - inn_krb5_save_LIBS="$LIBS" - CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" - LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" - LIBS="$KRB5_LIBS $LIBS" - ac_fn_c_check_func "$LINENO" "krb5_init_context" "ac_cv_func_krb5_init_context" -if test "x$ac_cv_func_krb5_init_context" = xyes; then : + if test x"$inn_krb5_found_header" = xtrue; then : CPPFLAGS="$inn_krb5_save_CPPFLAGS" LDFLAGS="$inn_krb5_save_LDFLAGS" LIBS="$inn_krb5_save_LIBS" @@ -17597,9 +17696,9 @@ else CPPFLAGS="$inn_krb5_save_CPPFLAGS" LDFLAGS="$inn_krb5_save_LDFLAGS" LIBS="$inn_krb5_save_LIBS" - KRB5_CPPFLAGS= - KRB5_LIBS= - if test x"$inn_krb5_libdir" != x; then : + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"$inn_krb5_libdir" != x; then : KRB5_LDFLAGS="-L$inn_krb5_libdir" else if test x"$inn_krb5_root" != x; then : @@ -17629,7 +17728,927 @@ else fi fi fi - inn_krb5_header_found=false + inn_krb5_save_CPPFLAGS="$CPPFLAGS" + inn_krb5_save_LDFLAGS="$LDFLAGS" + inn_krb5_save_LIBS="$LIBS" + CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" + LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" + LIBS="$KRB5_LIBS $LIBS" + inn_krb5_extra= + LIBS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 +$as_echo_n "checking for library containing res_search... " >&6; } +if ${ac_cv_search_res_search+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 res_search (); +int +main () +{ +return res_search (); + ; + return 0; +} +_ACEOF +for ac_lib in '' resolv; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_res_search=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_res_search+:} false; then : + break +fi +done +if ${ac_cv_search_res_search+:} false; then : + +else + ac_cv_search_res_search=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_res_search" >&5 +$as_echo "$ac_cv_search_res_search" >&6; } +ac_res=$ac_cv_search_res_search +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing __res_search" >&5 +$as_echo_n "checking for library containing __res_search... " >&6; } +if ${ac_cv_search___res_search+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 __res_search (); +int +main () +{ +return __res_search (); + ; + return 0; +} +_ACEOF +for ac_lib in '' resolv; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search___res_search=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search___res_search+:} false; then : + break +fi +done +if ${ac_cv_search___res_search+:} false; then : + +else + ac_cv_search___res_search=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search___res_search" >&5 +$as_echo "$ac_cv_search___res_search" >&6; } +ac_res=$ac_cv_search___res_search +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 +$as_echo_n "checking for library containing gethostbyname... " >&6; } +if ${ac_cv_search_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gethostbyname=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_gethostbyname+:} false; then : + break +fi +done +if ${ac_cv_search_gethostbyname+:} false; then : + +else + ac_cv_search_gethostbyname=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 +$as_echo "$ac_cv_search_gethostbyname" >&6; } +ac_res=$ac_cv_search_gethostbyname +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 +$as_echo_n "checking for library containing socket... " >&6; } +if ${ac_cv_search_socket+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 socket (); +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +for ac_lib in '' socket; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_socket=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_socket+:} false; then : + break +fi +done +if ${ac_cv_search_socket+:} false; then : + +else + ac_cv_search_socket=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 +$as_echo "$ac_cv_search_socket" >&6; } +ac_res=$ac_cv_search_socket +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lnsl" >&5 +$as_echo_n "checking for socket in -lnsl... " >&6; } +if ${ac_cv_lib_nsl_socket+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl -lsocket $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 socket (); +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_socket=yes +else + ac_cv_lib_nsl_socket=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_socket" >&5 +$as_echo "$ac_cv_lib_nsl_socket" >&6; } +if test "x$ac_cv_lib_nsl_socket" = xyes; then : + LIBS="-lnsl -lsocket $LIBS" +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 +$as_echo_n "checking for library containing crypt... " >&6; } +if ${ac_cv_search_crypt+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 crypt (); +int +main () +{ +return crypt (); + ; + return 0; +} +_ACEOF +for ac_lib in '' crypt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_crypt=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_crypt+:} false; then : + break +fi +done +if ${ac_cv_search_crypt+:} false; then : + +else + ac_cv_search_crypt=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 +$as_echo "$ac_cv_search_crypt" >&6; } +ac_res=$ac_cv_search_crypt +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 +$as_echo_n "checking for library containing roken_concat... " >&6; } +if ${ac_cv_search_roken_concat+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 roken_concat (); +int +main () +{ +return roken_concat (); + ; + return 0; +} +_ACEOF +for ac_lib in '' roken; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_roken_concat=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_roken_concat+:} false; then : + break +fi +done +if ${ac_cv_search_roken_concat+:} false; then : + +else + ac_cv_search_roken_concat=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_roken_concat" >&5 +$as_echo "$ac_cv_search_roken_concat" >&6; } +ac_res=$ac_cv_search_roken_concat +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + inn_krb5_extra="$LIBS" + LIBS="$inn_krb5_save_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 +$as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; } +if ${ac_cv_lib_krb5_krb5_init_context+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkrb5 -lasn1 -lcom_err -lcrypto $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5_init_context (); +int +main () +{ +return krb5_init_context (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_krb5_krb5_init_context=yes +else + ac_cv_lib_krb5_krb5_init_context=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5_krb5_init_context" >&5 +$as_echo "$ac_cv_lib_krb5_krb5_init_context" >&6; } +if test "x$ac_cv_lib_krb5_krb5_init_context" = xyes; then : + KRB5_LIBS="-lkrb5 -lasn1 -lcom_err -lcrypto $inn_krb5_extra" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_getspecific in -lkrb5support" >&5 +$as_echo_n "checking for krb5int_getspecific in -lkrb5support... " >&6; } +if ${ac_cv_lib_krb5support_krb5int_getspecific+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkrb5support $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5int_getspecific (); +int +main () +{ +return krb5int_getspecific (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_krb5support_krb5int_getspecific=yes +else + ac_cv_lib_krb5support_krb5int_getspecific=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5support_krb5int_getspecific" >&5 +$as_echo "$ac_cv_lib_krb5support_krb5int_getspecific" >&6; } +if test "x$ac_cv_lib_krb5support_krb5int_getspecific" = xyes; then : + inn_krb5_extra="-lkrb5support $inn_krb5_extra" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_setspecific in -lpthreads" >&5 +$as_echo_n "checking for pthread_setspecific in -lpthreads... " >&6; } +if ${ac_cv_lib_pthreads_pthread_setspecific+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthreads $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 pthread_setspecific (); +int +main () +{ +return pthread_setspecific (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthreads_pthread_setspecific=yes +else + ac_cv_lib_pthreads_pthread_setspecific=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_setspecific" >&5 +$as_echo "$ac_cv_lib_pthreads_pthread_setspecific" >&6; } +if test "x$ac_cv_lib_pthreads_pthread_setspecific" = xyes; then : + inn_krb5_pthread="-lpthreads" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_setspecific in -lpthread" >&5 +$as_echo_n "checking for pthread_setspecific in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_setspecific+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 pthread_setspecific (); +int +main () +{ +return pthread_setspecific (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_setspecific=yes +else + ac_cv_lib_pthread_pthread_setspecific=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_setspecific" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_setspecific" >&6; } +if test "x$ac_cv_lib_pthread_pthread_setspecific" = xyes; then : + inn_krb5_pthread="-lpthread" +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 +$as_echo_n "checking for krb5int_setspecific in -lkrb5support... " >&6; } +if ${ac_cv_lib_krb5support_krb5int_setspecific+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkrb5support $inn_krb5_pthread $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5int_setspecific (); +int +main () +{ +return krb5int_setspecific (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_krb5support_krb5int_setspecific=yes +else + ac_cv_lib_krb5support_krb5int_setspecific=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5support_krb5int_setspecific" >&5 +$as_echo "$ac_cv_lib_krb5support_krb5int_setspecific" >&6; } +if test "x$ac_cv_lib_krb5support_krb5int_setspecific" = xyes; then : + inn_krb5_extra="-lkrb5support $inn_krb5_extra $inn_krb5_pthread" +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 +$as_echo_n "checking for error_message in -lcom_err... " >&6; } +if ${ac_cv_lib_com_err_error_message+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcom_err $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 error_message (); +int +main () +{ +return error_message (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_com_err_error_message=yes +else + ac_cv_lib_com_err_error_message=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_com_err_error_message" >&5 +$as_echo "$ac_cv_lib_com_err_error_message" >&6; } +if test "x$ac_cv_lib_com_err_error_message" = xyes; then : + inn_krb5_extra="-lcom_err $inn_krb5_extra" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 +$as_echo_n "checking for krb5_svc_get_msg in -lksvc... " >&6; } +if ${ac_cv_lib_ksvc_krb5_svc_get_msg+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lksvc $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5_svc_get_msg (); +int +main () +{ +return krb5_svc_get_msg (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ksvc_krb5_svc_get_msg=yes +else + ac_cv_lib_ksvc_krb5_svc_get_msg=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ksvc_krb5_svc_get_msg" >&5 +$as_echo "$ac_cv_lib_ksvc_krb5_svc_get_msg" >&6; } +if test "x$ac_cv_lib_ksvc_krb5_svc_get_msg" = xyes; then : + inn_krb5_extra="-lksvc $inn_krb5_extra" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 +$as_echo_n "checking for krb5int_hash_md5 in -lk5crypto... " >&6; } +if ${ac_cv_lib_k5crypto_krb5int_hash_md5+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lk5crypto $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5int_hash_md5 (); +int +main () +{ +return krb5int_hash_md5 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_k5crypto_krb5int_hash_md5=yes +else + ac_cv_lib_k5crypto_krb5int_hash_md5=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_k5crypto_krb5int_hash_md5" >&5 +$as_echo "$ac_cv_lib_k5crypto_krb5int_hash_md5" >&6; } +if test "x$ac_cv_lib_k5crypto_krb5int_hash_md5" = xyes; then : + inn_krb5_extra="-lk5crypto $inn_krb5_extra" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 +$as_echo_n "checking for profile_get_values in -lk5profile... " >&6; } +if ${ac_cv_lib_k5profile_profile_get_values+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lk5profile $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 profile_get_values (); +int +main () +{ +return profile_get_values (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_k5profile_profile_get_values=yes +else + ac_cv_lib_k5profile_profile_get_values=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_k5profile_profile_get_values" >&5 +$as_echo "$ac_cv_lib_k5profile_profile_get_values" >&6; } +if test "x$ac_cv_lib_k5profile_profile_get_values" = xyes; then : + inn_krb5_extra="-lk5profile $inn_krb5_extra" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 +$as_echo_n "checking for krb5_cc_default in -lkrb5... " >&6; } +if ${ac_cv_lib_krb5_krb5_cc_default+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkrb5 $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5_cc_default (); +int +main () +{ +return krb5_cc_default (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_krb5_krb5_cc_default=yes +else + ac_cv_lib_krb5_krb5_cc_default=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5_krb5_cc_default" >&5 +$as_echo "$ac_cv_lib_krb5_krb5_cc_default" >&6; } +if test "x$ac_cv_lib_krb5_krb5_cc_default" = xyes; then : + KRB5_LIBS="-lkrb5 $inn_krb5_extra" +else + if test x"true" = xtrue; then : + as_fn_error $? "cannot find usable Kerberos library" "$LINENO" 5 +fi +fi + +fi + + LIBS="$KRB5_LIBS $LIBS" + for ac_func in krb5_get_error_message +do : + ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" +if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_GET_ERROR_MESSAGE 1 +_ACEOF + for ac_func in krb5_free_error_message +do : + ac_fn_c_check_func "$LINENO" "krb5_free_error_message" "ac_cv_func_krb5_free_error_message" +if test "x$ac_cv_func_krb5_free_error_message" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_FREE_ERROR_MESSAGE 1 +_ACEOF + +fi +done + +else + for ac_func in krb5_get_error_string +do : + ac_fn_c_check_func "$LINENO" "krb5_get_error_string" "ac_cv_func_krb5_get_error_string" +if test "x$ac_cv_func_krb5_get_error_string" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_GET_ERROR_STRING 1 +_ACEOF + +else + for ac_func in krb5_get_err_txt +do : + ac_fn_c_check_func "$LINENO" "krb5_get_err_txt" "ac_cv_func_krb5_get_err_txt" +if test "x$ac_cv_func_krb5_get_err_txt" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_GET_ERR_TXT 1 +_ACEOF + +else + for ac_func in krb5_svc_get_msg +do : + ac_fn_c_check_func "$LINENO" "krb5_svc_get_msg" "ac_cv_func_krb5_svc_get_msg" +if test "x$ac_cv_func_krb5_svc_get_msg" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_SVC_GET_MSG 1 +_ACEOF + for ac_header in ibm_svc/krb5_svc.h +do : + ac_fn_c_check_header_compile "$LINENO" "ibm_svc/krb5_svc.h" "ac_cv_header_ibm_svc_krb5_svc_h" " +#if HAVE_KRB5_H +# include +#elif HAVE_KERBEROSV5_KRB5_H +# include +#else +# include +#endif + +" +if test "x$ac_cv_header_ibm_svc_krb5_svc_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IBM_SVC_KRB5_SVC_H 1 +_ACEOF + +fi + +done + +else + if test x"$inn_krb5_incroot" = x; then : + for ac_header in et/com_err.h kerberosv5/com_err.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 +$as_echo_n "checking for et/com_err.h... " >&6; } + if test -f "${inn_krb5_incroot}/et/com_err.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_ET_COM_ERR_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 +$as_echo_n "checking for kerberosv5/com_err.h... " >&6; } + if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KERBEROSV5_COM_ERR_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi +fi +done + +fi +done + +fi +done + +fi +done + + inn_krb5_found_header= if test x"$inn_krb5_incroot" = x; then : for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h do : @@ -17639,7 +18658,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + inn_krb5_found_header=true fi done @@ -17648,7 +18667,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 $as_echo_n "checking for krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_H 1 @@ -17656,6 +18674,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -17663,7 +18682,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 $as_echo_n "checking for kerberosv5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_KRB5_H 1 @@ -17671,6 +18689,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -17678,7 +18697,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 $as_echo_n "checking for krb5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_KRB5_H 1 @@ -17686,21 +18704,70 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" = xtrue; then : - inn_krb5_save_CPPFLAGS="$CPPFLAGS" + if test x"$inn_krb5_found_header" = xtrue; then : + +else + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"true" = xtrue; then : + as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 +fi +fi + CPPFLAGS="$inn_krb5_save_CPPFLAGS" + LDFLAGS="$inn_krb5_save_LDFLAGS" + LIBS="$inn_krb5_save_LIBS" +fi +else + CPPFLAGS="$inn_krb5_save_CPPFLAGS" + LDFLAGS="$inn_krb5_save_LDFLAGS" + LIBS="$inn_krb5_save_LIBS" + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"$inn_krb5_libdir" != x; then : + KRB5_LDFLAGS="-L$inn_krb5_libdir" +else + if test x"$inn_krb5_root" != x; then : + + if test -d "$inn_krb5_root/$inn_lib_arch_name"; then : + if test x"" = x; then : + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}" +else + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}/" +fi +else + if test x"" = x; then : + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib" +else + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib/" +fi +fi + KRB5_LDFLAGS=`$as_echo "$KRB5_LDFLAGS" | sed -e 's/^ *//'` +fi +fi + if test x"$inn_krb5_includedir" != x; then : + KRB5_CPPFLAGS="-I$inn_krb5_includedir" +else + if test x"$inn_krb5_root" != x; then : + if test x"$inn_krb5_root" != x/usr; then : + KRB5_CPPFLAGS="-I${inn_krb5_root}/include" +fi +fi +fi + inn_krb5_save_CPPFLAGS="$CPPFLAGS" inn_krb5_save_LDFLAGS="$LDFLAGS" inn_krb5_save_LIBS="$LIBS" CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" LIBS="$KRB5_LIBS $LIBS" - inn_krb5_extra= - LIBS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 + inn_krb5_extra= + LIBS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 $as_echo_n "checking for library containing res_search... " >&6; } if ${ac_cv_search_res_search+:} false; then : $as_echo_n "(cached) " >&6 @@ -17813,7 +18880,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 @@ -17869,7 +18936,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if ${ac_cv_search_socket+:} false; then : $as_echo_n "(cached) " >&6 @@ -17966,7 +19033,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 $as_echo_n "checking for library containing crypt... " >&6; } if ${ac_cv_search_crypt+:} false; then : $as_echo_n "(cached) " >&6 @@ -18022,7 +19089,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 $as_echo_n "checking for library containing roken_concat... " >&6; } if ${ac_cv_search_roken_concat+:} false; then : $as_echo_n "(cached) " >&6 @@ -18078,9 +19145,9 @@ if test "$ac_res" != no; then : fi - inn_krb5_extra="$LIBS" - LIBS="$inn_krb5_save_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 + inn_krb5_extra="$LIBS" + LIBS="$inn_krb5_save_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 $as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_init_context+:} false; then : $as_echo_n "(cached) " >&6 @@ -18239,7 +19306,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 $as_echo_n "checking for krb5int_setspecific in -lkrb5support... " >&6; } if ${ac_cv_lib_krb5support_krb5int_setspecific+:} false; then : $as_echo_n "(cached) " >&6 @@ -18281,7 +19348,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 $as_echo_n "checking for error_message in -lcom_err... " >&6; } if ${ac_cv_lib_com_err_error_message+:} false; then : $as_echo_n "(cached) " >&6 @@ -18321,7 +19388,7 @@ if test "x$ac_cv_lib_com_err_error_messa inn_krb5_extra="-lcom_err $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 $as_echo_n "checking for krb5_svc_get_msg in -lksvc... " >&6; } if ${ac_cv_lib_ksvc_krb5_svc_get_msg+:} false; then : $as_echo_n "(cached) " >&6 @@ -18361,7 +19428,7 @@ if test "x$ac_cv_lib_ksvc_krb5_svc_get_m inn_krb5_extra="-lksvc $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 $as_echo_n "checking for krb5int_hash_md5 in -lk5crypto... " >&6; } if ${ac_cv_lib_k5crypto_krb5int_hash_md5+:} false; then : $as_echo_n "(cached) " >&6 @@ -18401,7 +19468,7 @@ if test "x$ac_cv_lib_k5crypto_krb5int_ha inn_krb5_extra="-lk5crypto $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 $as_echo_n "checking for profile_get_values in -lk5profile... " >&6; } if ${ac_cv_lib_k5profile_profile_get_values+:} false; then : $as_echo_n "(cached) " >&6 @@ -18441,7 +19508,7 @@ if test "x$ac_cv_lib_k5profile_profile_g inn_krb5_extra="-lk5profile $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 $as_echo_n "checking for krb5_cc_default in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_cc_default+:} false; then : $as_echo_n "(cached) " >&6 @@ -18487,8 +19554,8 @@ fi fi - LIBS="$KRB5_LIBS $LIBS" - for ac_func in krb5_get_error_message + LIBS="$KRB5_LIBS $LIBS" + for ac_func in krb5_get_error_message do : ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : @@ -18554,8 +19621,7 @@ fi done else - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : + if test x"$inn_krb5_incroot" = x; then : for ac_header in et/com_err.h kerberosv5/com_err.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -18564,7 +19630,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + fi done @@ -18573,7 +19639,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 $as_echo_n "checking for et/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/et/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_ET_COM_ERR_H 1 @@ -18581,14 +19646,14 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 $as_echo_n "checking for kerberosv5/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_COM_ERR_H 1 @@ -18596,16 +19661,15 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" != xtrue; then : - if test x"true" = xtrue; then : - as_fn_error $? "cannot find usable com_err header" "$LINENO" 5 -fi fi +done + fi done @@ -18615,11 +19679,74 @@ done fi done + inn_krb5_found_header= + if test x"$inn_krb5_incroot" = x; then : + for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + inn_krb5_found_header=true fi + done else - if test x"true" = xtrue; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 +$as_echo_n "checking for krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 +$as_echo_n "checking for kerberosv5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KERBEROSV5_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 +$as_echo_n "checking for krb5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi + if test x"$inn_krb5_found_header" = xtrue; then : + +else + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"true" = xtrue; then : as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 fi fi @@ -18628,13 +19755,13 @@ fi LIBS="$inn_krb5_save_LIBS" fi - inn_krb5_save_CPPFLAGS="$CPPFLAGS" + inn_krb5_save_CPPFLAGS="$CPPFLAGS" inn_krb5_save_LDFLAGS="$LDFLAGS" inn_krb5_save_LIBS="$LIBS" CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" LIBS="$KRB5_LIBS $LIBS" - for ac_func in krb5_get_error_message + for ac_func in krb5_get_error_message do : ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : @@ -18700,8 +19827,7 @@ fi done else - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : + if test x"$inn_krb5_incroot" = x; then : for ac_header in et/com_err.h kerberosv5/com_err.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -18710,7 +19836,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + fi done @@ -18719,7 +19845,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 $as_echo_n "checking for et/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/et/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_ET_COM_ERR_H 1 @@ -18727,14 +19852,14 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 $as_echo_n "checking for kerberosv5/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_COM_ERR_H 1 @@ -18742,16 +19867,12 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" != xtrue; then : - if test x"true" = xtrue; then : - as_fn_error $? "cannot find usable com_err header" "$LINENO" 5 -fi -fi fi done @@ -18764,15 +19885,10 @@ done fi done - CPPFLAGS="$inn_krb5_save_CPPFLAGS" + CPPFLAGS="$inn_krb5_save_CPPFLAGS" LDFLAGS="$inn_krb5_save_LDFLAGS" LIBS="$inn_krb5_save_LIBS" else - if test x"true" = xtrue; then : - as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 -fi -fi -else if test x"$inn_krb5_libdir" != x; then : KRB5_LDFLAGS="-L$inn_krb5_libdir" else @@ -18803,78 +19919,15 @@ else fi fi fi - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : - for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - inn_krb5_header_found=true -fi - -done - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 -$as_echo_n "checking for krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 -$as_echo_n "checking for kerberosv5/krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KERBEROSV5_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 -$as_echo_n "checking for krb5/krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KRB5_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -fi - if test x"$inn_krb5_header_found" = xtrue; then : - inn_krb5_save_CPPFLAGS="$CPPFLAGS" + inn_krb5_save_CPPFLAGS="$CPPFLAGS" inn_krb5_save_LDFLAGS="$LDFLAGS" inn_krb5_save_LIBS="$LIBS" CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" LIBS="$KRB5_LIBS $LIBS" - inn_krb5_extra= - LIBS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 + inn_krb5_extra= + LIBS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 $as_echo_n "checking for library containing res_search... " >&6; } if ${ac_cv_search_res_search+:} false; then : $as_echo_n "(cached) " >&6 @@ -18987,7 +20040,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 @@ -19043,7 +20096,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if ${ac_cv_search_socket+:} false; then : $as_echo_n "(cached) " >&6 @@ -19140,7 +20193,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 $as_echo_n "checking for library containing crypt... " >&6; } if ${ac_cv_search_crypt+:} false; then : $as_echo_n "(cached) " >&6 @@ -19196,7 +20249,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 $as_echo_n "checking for library containing roken_concat... " >&6; } if ${ac_cv_search_roken_concat+:} false; then : $as_echo_n "(cached) " >&6 @@ -19252,9 +20305,9 @@ if test "$ac_res" != no; then : fi - inn_krb5_extra="$LIBS" - LIBS="$inn_krb5_save_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 + inn_krb5_extra="$LIBS" + LIBS="$inn_krb5_save_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 $as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_init_context+:} false; then : $as_echo_n "(cached) " >&6 @@ -19413,7 +20466,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 $as_echo_n "checking for krb5int_setspecific in -lkrb5support... " >&6; } if ${ac_cv_lib_krb5support_krb5int_setspecific+:} false; then : $as_echo_n "(cached) " >&6 @@ -19455,7 +20508,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 $as_echo_n "checking for error_message in -lcom_err... " >&6; } if ${ac_cv_lib_com_err_error_message+:} false; then : $as_echo_n "(cached) " >&6 @@ -19495,7 +20548,7 @@ if test "x$ac_cv_lib_com_err_error_messa inn_krb5_extra="-lcom_err $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 $as_echo_n "checking for krb5_svc_get_msg in -lksvc... " >&6; } if ${ac_cv_lib_ksvc_krb5_svc_get_msg+:} false; then : $as_echo_n "(cached) " >&6 @@ -19535,7 +20588,7 @@ if test "x$ac_cv_lib_ksvc_krb5_svc_get_m inn_krb5_extra="-lksvc $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 $as_echo_n "checking for krb5int_hash_md5 in -lk5crypto... " >&6; } if ${ac_cv_lib_k5crypto_krb5int_hash_md5+:} false; then : $as_echo_n "(cached) " >&6 @@ -19575,7 +20628,7 @@ if test "x$ac_cv_lib_k5crypto_krb5int_ha inn_krb5_extra="-lk5crypto $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 $as_echo_n "checking for profile_get_values in -lk5profile... " >&6; } if ${ac_cv_lib_k5profile_profile_get_values+:} false; then : $as_echo_n "(cached) " >&6 @@ -19615,7 +20668,7 @@ if test "x$ac_cv_lib_k5profile_profile_g inn_krb5_extra="-lk5profile $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 $as_echo_n "checking for krb5_cc_default in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_cc_default+:} false; then : $as_echo_n "(cached) " >&6 @@ -19661,8 +20714,8 @@ fi fi - LIBS="$KRB5_LIBS $LIBS" - for ac_func in krb5_get_error_message + LIBS="$KRB5_LIBS $LIBS" + for ac_func in krb5_get_error_message do : ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : @@ -19728,8 +20781,7 @@ fi done else - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : + if test x"$inn_krb5_incroot" = x; then : for ac_header in et/com_err.h kerberosv5/com_err.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -19738,7 +20790,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + fi done @@ -19747,7 +20799,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 $as_echo_n "checking for et/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/et/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_ET_COM_ERR_H 1 @@ -19755,14 +20806,14 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 $as_echo_n "checking for kerberosv5/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_COM_ERR_H 1 @@ -19770,16 +20821,12 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" != xtrue; then : - if test x"true" = xtrue; then : - as_fn_error $? "cannot find usable com_err header" "$LINENO" 5 -fi -fi fi done @@ -19792,47 +20839,7 @@ done fi done -else - if test x"true" = xtrue; then : - as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 -fi -fi - CPPFLAGS="$inn_krb5_save_CPPFLAGS" - LDFLAGS="$inn_krb5_save_LDFLAGS" - LIBS="$inn_krb5_save_LIBS" -fi -else - if test x"$inn_krb5_libdir" != x; then : - KRB5_LDFLAGS="-L$inn_krb5_libdir" -else - if test x"$inn_krb5_root" != x; then : - - if test -d "$inn_krb5_root/$inn_lib_arch_name"; then : - if test x"" = x; then : - KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}" -else - KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}/" -fi -else - if test x"" = x; then : - KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib" -else - KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib/" -fi -fi - KRB5_LDFLAGS=`$as_echo "$KRB5_LDFLAGS" | sed -e 's/^ *//'` -fi -fi - if test x"$inn_krb5_includedir" != x; then : - KRB5_CPPFLAGS="-I$inn_krb5_includedir" -else - if test x"$inn_krb5_root" != x; then : - if test x"$inn_krb5_root" != x/usr; then : - KRB5_CPPFLAGS="-I${inn_krb5_root}/include" -fi -fi -fi - inn_krb5_header_found=false + inn_krb5_found_header= if test x"$inn_krb5_incroot" = x; then : for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h do : @@ -19842,7 +20849,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + inn_krb5_found_header=true fi done @@ -19851,7 +20858,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 $as_echo_n "checking for krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_H 1 @@ -19859,6 +20865,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -19866,7 +20873,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 $as_echo_n "checking for kerberosv5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_KRB5_H 1 @@ -19874,6 +20880,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -19881,7 +20888,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 $as_echo_n "checking for krb5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_KRB5_H 1 @@ -19889,21 +20895,65 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" = xtrue; then : - inn_krb5_save_CPPFLAGS="$CPPFLAGS" + if test x"$inn_krb5_found_header" = xtrue; then : + +else + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"true" = xtrue; then : + as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 +fi +fi + CPPFLAGS="$inn_krb5_save_CPPFLAGS" + LDFLAGS="$inn_krb5_save_LDFLAGS" + LIBS="$inn_krb5_save_LIBS" +fi +else + if test x"$inn_krb5_libdir" != x; then : + KRB5_LDFLAGS="-L$inn_krb5_libdir" +else + if test x"$inn_krb5_root" != x; then : + + if test -d "$inn_krb5_root/$inn_lib_arch_name"; then : + if test x"" = x; then : + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}" +else + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}/" +fi +else + if test x"" = x; then : + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib" +else + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib/" +fi +fi + KRB5_LDFLAGS=`$as_echo "$KRB5_LDFLAGS" | sed -e 's/^ *//'` +fi +fi + if test x"$inn_krb5_includedir" != x; then : + KRB5_CPPFLAGS="-I$inn_krb5_includedir" +else + if test x"$inn_krb5_root" != x; then : + if test x"$inn_krb5_root" != x/usr; then : + KRB5_CPPFLAGS="-I${inn_krb5_root}/include" +fi +fi +fi + inn_krb5_save_CPPFLAGS="$CPPFLAGS" inn_krb5_save_LDFLAGS="$LDFLAGS" inn_krb5_save_LIBS="$LIBS" CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" LIBS="$KRB5_LIBS $LIBS" - inn_krb5_extra= - LIBS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 + inn_krb5_extra= + LIBS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 $as_echo_n "checking for library containing res_search... " >&6; } if ${ac_cv_search_res_search+:} false; then : $as_echo_n "(cached) " >&6 @@ -20016,7 +21066,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 @@ -20072,7 +21122,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if ${ac_cv_search_socket+:} false; then : $as_echo_n "(cached) " >&6 @@ -20169,7 +21219,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 $as_echo_n "checking for library containing crypt... " >&6; } if ${ac_cv_search_crypt+:} false; then : $as_echo_n "(cached) " >&6 @@ -20225,7 +21275,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 $as_echo_n "checking for library containing roken_concat... " >&6; } if ${ac_cv_search_roken_concat+:} false; then : $as_echo_n "(cached) " >&6 @@ -20281,9 +21331,9 @@ if test "$ac_res" != no; then : fi - inn_krb5_extra="$LIBS" - LIBS="$inn_krb5_save_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 + inn_krb5_extra="$LIBS" + LIBS="$inn_krb5_save_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 $as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_init_context+:} false; then : $as_echo_n "(cached) " >&6 @@ -20442,7 +21492,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 $as_echo_n "checking for krb5int_setspecific in -lkrb5support... " >&6; } if ${ac_cv_lib_krb5support_krb5int_setspecific+:} false; then : $as_echo_n "(cached) " >&6 @@ -20484,7 +21534,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 $as_echo_n "checking for error_message in -lcom_err... " >&6; } if ${ac_cv_lib_com_err_error_message+:} false; then : $as_echo_n "(cached) " >&6 @@ -20524,7 +21574,7 @@ if test "x$ac_cv_lib_com_err_error_messa inn_krb5_extra="-lcom_err $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 $as_echo_n "checking for krb5_svc_get_msg in -lksvc... " >&6; } if ${ac_cv_lib_ksvc_krb5_svc_get_msg+:} false; then : $as_echo_n "(cached) " >&6 @@ -20564,7 +21614,7 @@ if test "x$ac_cv_lib_ksvc_krb5_svc_get_m inn_krb5_extra="-lksvc $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 $as_echo_n "checking for krb5int_hash_md5 in -lk5crypto... " >&6; } if ${ac_cv_lib_k5crypto_krb5int_hash_md5+:} false; then : $as_echo_n "(cached) " >&6 @@ -20604,7 +21654,7 @@ if test "x$ac_cv_lib_k5crypto_krb5int_ha inn_krb5_extra="-lk5crypto $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 $as_echo_n "checking for profile_get_values in -lk5profile... " >&6; } if ${ac_cv_lib_k5profile_profile_get_values+:} false; then : $as_echo_n "(cached) " >&6 @@ -20644,7 +21694,7 @@ if test "x$ac_cv_lib_k5profile_profile_g inn_krb5_extra="-lk5profile $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 $as_echo_n "checking for krb5_cc_default in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_cc_default+:} false; then : $as_echo_n "(cached) " >&6 @@ -20690,8 +21740,8 @@ fi fi - LIBS="$KRB5_LIBS $LIBS" - for ac_func in krb5_get_error_message + LIBS="$KRB5_LIBS $LIBS" + for ac_func in krb5_get_error_message do : ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : @@ -20757,8 +21807,7 @@ fi done else - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : + if test x"$inn_krb5_incroot" = x; then : for ac_header in et/com_err.h kerberosv5/com_err.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -20767,7 +21816,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + fi done @@ -20776,7 +21825,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 $as_echo_n "checking for et/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/et/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_ET_COM_ERR_H 1 @@ -20784,14 +21832,14 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 $as_echo_n "checking for kerberosv5/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_COM_ERR_H 1 @@ -20799,16 +21847,15 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" != xtrue; then : - if test x"true" = xtrue; then : - as_fn_error $? "cannot find usable com_err header" "$LINENO" 5 -fi fi +done + fi done @@ -20818,11 +21865,74 @@ done fi done + inn_krb5_found_header= + if test x"$inn_krb5_incroot" = x; then : + for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + inn_krb5_found_header=true fi + done else - if test x"true" = xtrue; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 +$as_echo_n "checking for krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 +$as_echo_n "checking for kerberosv5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KERBEROSV5_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 +$as_echo_n "checking for krb5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi + if test x"$inn_krb5_found_header" = xtrue; then : + +else + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"true" = xtrue; then : as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 fi fi @@ -20839,7 +21949,7 @@ fi ;; esac : - KRB5_CPPFLAGS_WARNINGS=`$as_echo "$KRB5_CPPFLAGS" | sed -e 's/-I/-isystem /g'` + KRB5_CPPFLAGS_WARNINGS=`$as_echo "$KRB5_CPPFLAGS" | sed 's/-I/-isystem /g'` else inn_krb5_incroot= @@ -20885,76 +21995,13 @@ else fi fi fi - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : - for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - inn_krb5_header_found=true -fi - -done - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 -$as_echo_n "checking for krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 -$as_echo_n "checking for kerberosv5/krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KERBEROSV5_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 -$as_echo_n "checking for krb5/krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KRB5_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -fi - if test x"$inn_krb5_header_found" = xtrue; then : - inn_krb5_save_CPPFLAGS="$CPPFLAGS" + inn_krb5_save_CPPFLAGS="$CPPFLAGS" inn_krb5_save_LDFLAGS="$LDFLAGS" inn_krb5_save_LIBS="$LIBS" CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" LIBS="$KRB5_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 $as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_init_context+:} false; then : $as_echo_n "(cached) " >&6 @@ -20992,8 +22039,8 @@ fi $as_echo "$ac_cv_lib_krb5_krb5_init_context" >&6; } if test "x$ac_cv_lib_krb5_krb5_init_context" = xyes; then : KRB5_LIBS="-lkrb5" - LIBS="$KRB5_LIBS $LIBS" - for ac_func in krb5_get_error_message + LIBS="$KRB5_LIBS $LIBS" + for ac_func in krb5_get_error_message do : ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : @@ -21068,9 +22115,9 @@ fi $as_echo "$ac_cv_lib_ksvc_krb5_svc_get_msg" >&6; } if test "x$ac_cv_lib_ksvc_krb5_svc_get_msg" = xyes; then : KRB5_LIBS="$KRB5_LIBS -lksvc" - $as_echo "#define HAVE_KRB5_SVC_GET_MSG 1" >>confdefs.h + $as_echo "#define HAVE_KRB5_SVC_GET_MSG 1" >>confdefs.h - for ac_header in ibm_svc/krb5_svc.h + for ac_header in ibm_svc/krb5_svc.h do : ac_fn_c_check_header_compile "$LINENO" "ibm_svc/krb5_svc.h" "ac_cv_header_ibm_svc_krb5_svc_h" " #if HAVE_KRB5_H @@ -21092,54 +22139,6 @@ fi done else - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : - for ac_header in et/com_err.h kerberosv5/com_err.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - inn_krb5_header_found=true -fi - -done - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 -$as_echo_n "checking for et/com_err.h... " >&6; } - if test -f "${inn_krb5_incroot}/et/com_err.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_ET_COM_ERR_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 -$as_echo_n "checking for kerberosv5/com_err.h... " >&6; } - if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KERBEROSV5_COM_ERR_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -fi - if test x"$inn_krb5_header_found" = xtrue; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for com_err in -lcom_err" >&5 $as_echo_n "checking for com_err in -lcom_err... " >&6; } if ${ac_cv_lib_com_err_com_err+:} false; then : @@ -21186,9 +22185,50 @@ else fi fi + if test x"$inn_krb5_incroot" = x; then : + for ac_header in et/com_err.h kerberosv5/com_err.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + else - if test x"false" = xtrue; then : - as_fn_error $? "cannot find usable com_err header" "$LINENO" 5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 +$as_echo_n "checking for et/com_err.h... " >&6; } + if test -f "${inn_krb5_incroot}/et/com_err.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_ET_COM_ERR_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 +$as_echo_n "checking for kerberosv5/com_err.h... " >&6; } + if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KERBEROSV5_COM_ERR_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi fi fi @@ -21202,17 +22242,83 @@ done fi done + inn_krb5_found_header= + if test x"$inn_krb5_incroot" = x; then : + for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + inn_krb5_found_header=true +fi + +done + else - if test x"false" = xtrue; then : - as_fn_error $? "cannot find usable Kerberos library" "$LINENO" 5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 +$as_echo_n "checking for krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 +$as_echo_n "checking for kerberosv5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KERBEROSV5_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 +$as_echo_n "checking for krb5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true else - if test x"false" = xtrue; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi + if test x"$inn_krb5_found_header" = xtrue; then : + +else + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"false" = xtrue; then : as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 fi fi +else + if test x"false" = xtrue; then : + as_fn_error $? "cannot find usable Kerberos library" "$LINENO" 5 +fi +fi + CPPFLAGS="$inn_krb5_save_CPPFLAGS" LDFLAGS="$inn_krb5_save_LDFLAGS" LIBS="$inn_krb5_save_LIBS" @@ -21317,8 +22423,16 @@ fi if test x"$inn_krb5_config_KRB5_ok" = xyes; then : KRB5_CPPFLAGS=`$as_echo "$KRB5_CPPFLAGS" | sed 's%-I/usr/include %%'` KRB5_CPPFLAGS=`$as_echo "$KRB5_CPPFLAGS" | sed 's%-I/usr/include$%%'` - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : + inn_krb5_save_CPPFLAGS="$CPPFLAGS" + inn_krb5_save_LDFLAGS="$LDFLAGS" + inn_krb5_save_LIBS="$LIBS" + CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" + LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" + LIBS="$KRB5_LIBS $LIBS" + ac_fn_c_check_func "$LINENO" "krb5_init_context" "ac_cv_func_krb5_init_context" +if test "x$ac_cv_func_krb5_init_context" = xyes; then : + inn_krb5_found_header= + if test x"$inn_krb5_incroot" = x; then : for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -21327,7 +22441,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + inn_krb5_found_header=true fi done @@ -21336,7 +22450,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 $as_echo_n "checking for krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_H 1 @@ -21344,6 +22457,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -21351,7 +22465,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 $as_echo_n "checking for kerberosv5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_KRB5_H 1 @@ -21359,6 +22472,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -21366,7 +22480,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 $as_echo_n "checking for krb5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_KRB5_H 1 @@ -21374,20 +22487,13 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" = xtrue; then : - inn_krb5_save_CPPFLAGS="$CPPFLAGS" - inn_krb5_save_LDFLAGS="$LDFLAGS" - inn_krb5_save_LIBS="$LIBS" - CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" - LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" - LIBS="$KRB5_LIBS $LIBS" - ac_fn_c_check_func "$LINENO" "krb5_init_context" "ac_cv_func_krb5_init_context" -if test "x$ac_cv_func_krb5_init_context" = xyes; then : + if test x"$inn_krb5_found_header" = xtrue; then : CPPFLAGS="$inn_krb5_save_CPPFLAGS" LDFLAGS="$inn_krb5_save_LDFLAGS" LIBS="$inn_krb5_save_LIBS" @@ -21395,9 +22501,9 @@ else CPPFLAGS="$inn_krb5_save_CPPFLAGS" LDFLAGS="$inn_krb5_save_LDFLAGS" LIBS="$inn_krb5_save_LIBS" - KRB5_CPPFLAGS= - KRB5_LIBS= - if test x"$inn_krb5_libdir" != x; then : + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"$inn_krb5_libdir" != x; then : KRB5_LDFLAGS="-L$inn_krb5_libdir" else if test x"$inn_krb5_root" != x; then : @@ -21427,7 +22533,927 @@ else fi fi fi - inn_krb5_header_found=false + inn_krb5_save_CPPFLAGS="$CPPFLAGS" + inn_krb5_save_LDFLAGS="$LDFLAGS" + inn_krb5_save_LIBS="$LIBS" + CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" + LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" + LIBS="$KRB5_LIBS $LIBS" + inn_krb5_extra= + LIBS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 +$as_echo_n "checking for library containing res_search... " >&6; } +if ${ac_cv_search_res_search+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 res_search (); +int +main () +{ +return res_search (); + ; + return 0; +} +_ACEOF +for ac_lib in '' resolv; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_res_search=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_res_search+:} false; then : + break +fi +done +if ${ac_cv_search_res_search+:} false; then : + +else + ac_cv_search_res_search=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_res_search" >&5 +$as_echo "$ac_cv_search_res_search" >&6; } +ac_res=$ac_cv_search_res_search +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing __res_search" >&5 +$as_echo_n "checking for library containing __res_search... " >&6; } +if ${ac_cv_search___res_search+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 __res_search (); +int +main () +{ +return __res_search (); + ; + return 0; +} +_ACEOF +for ac_lib in '' resolv; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search___res_search=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search___res_search+:} false; then : + break +fi +done +if ${ac_cv_search___res_search+:} false; then : + +else + ac_cv_search___res_search=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search___res_search" >&5 +$as_echo "$ac_cv_search___res_search" >&6; } +ac_res=$ac_cv_search___res_search +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 +$as_echo_n "checking for library containing gethostbyname... " >&6; } +if ${ac_cv_search_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gethostbyname=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_gethostbyname+:} false; then : + break +fi +done +if ${ac_cv_search_gethostbyname+:} false; then : + +else + ac_cv_search_gethostbyname=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 +$as_echo "$ac_cv_search_gethostbyname" >&6; } +ac_res=$ac_cv_search_gethostbyname +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 +$as_echo_n "checking for library containing socket... " >&6; } +if ${ac_cv_search_socket+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 socket (); +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +for ac_lib in '' socket; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_socket=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_socket+:} false; then : + break +fi +done +if ${ac_cv_search_socket+:} false; then : + +else + ac_cv_search_socket=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 +$as_echo "$ac_cv_search_socket" >&6; } +ac_res=$ac_cv_search_socket +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lnsl" >&5 +$as_echo_n "checking for socket in -lnsl... " >&6; } +if ${ac_cv_lib_nsl_socket+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl -lsocket $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 socket (); +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_socket=yes +else + ac_cv_lib_nsl_socket=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_socket" >&5 +$as_echo "$ac_cv_lib_nsl_socket" >&6; } +if test "x$ac_cv_lib_nsl_socket" = xyes; then : + LIBS="-lnsl -lsocket $LIBS" +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 +$as_echo_n "checking for library containing crypt... " >&6; } +if ${ac_cv_search_crypt+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 crypt (); +int +main () +{ +return crypt (); + ; + return 0; +} +_ACEOF +for ac_lib in '' crypt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_crypt=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_crypt+:} false; then : + break +fi +done +if ${ac_cv_search_crypt+:} false; then : + +else + ac_cv_search_crypt=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 +$as_echo "$ac_cv_search_crypt" >&6; } +ac_res=$ac_cv_search_crypt +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 +$as_echo_n "checking for library containing roken_concat... " >&6; } +if ${ac_cv_search_roken_concat+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 roken_concat (); +int +main () +{ +return roken_concat (); + ; + return 0; +} +_ACEOF +for ac_lib in '' roken; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_roken_concat=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_roken_concat+:} false; then : + break +fi +done +if ${ac_cv_search_roken_concat+:} false; then : + +else + ac_cv_search_roken_concat=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_roken_concat" >&5 +$as_echo "$ac_cv_search_roken_concat" >&6; } +ac_res=$ac_cv_search_roken_concat +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + inn_krb5_extra="$LIBS" + LIBS="$inn_krb5_save_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 +$as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; } +if ${ac_cv_lib_krb5_krb5_init_context+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkrb5 -lasn1 -lcom_err -lcrypto $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5_init_context (); +int +main () +{ +return krb5_init_context (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_krb5_krb5_init_context=yes +else + ac_cv_lib_krb5_krb5_init_context=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5_krb5_init_context" >&5 +$as_echo "$ac_cv_lib_krb5_krb5_init_context" >&6; } +if test "x$ac_cv_lib_krb5_krb5_init_context" = xyes; then : + KRB5_LIBS="-lkrb5 -lasn1 -lcom_err -lcrypto $inn_krb5_extra" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_getspecific in -lkrb5support" >&5 +$as_echo_n "checking for krb5int_getspecific in -lkrb5support... " >&6; } +if ${ac_cv_lib_krb5support_krb5int_getspecific+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkrb5support $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5int_getspecific (); +int +main () +{ +return krb5int_getspecific (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_krb5support_krb5int_getspecific=yes +else + ac_cv_lib_krb5support_krb5int_getspecific=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5support_krb5int_getspecific" >&5 +$as_echo "$ac_cv_lib_krb5support_krb5int_getspecific" >&6; } +if test "x$ac_cv_lib_krb5support_krb5int_getspecific" = xyes; then : + inn_krb5_extra="-lkrb5support $inn_krb5_extra" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_setspecific in -lpthreads" >&5 +$as_echo_n "checking for pthread_setspecific in -lpthreads... " >&6; } +if ${ac_cv_lib_pthreads_pthread_setspecific+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthreads $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 pthread_setspecific (); +int +main () +{ +return pthread_setspecific (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthreads_pthread_setspecific=yes +else + ac_cv_lib_pthreads_pthread_setspecific=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_setspecific" >&5 +$as_echo "$ac_cv_lib_pthreads_pthread_setspecific" >&6; } +if test "x$ac_cv_lib_pthreads_pthread_setspecific" = xyes; then : + inn_krb5_pthread="-lpthreads" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_setspecific in -lpthread" >&5 +$as_echo_n "checking for pthread_setspecific in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_setspecific+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 pthread_setspecific (); +int +main () +{ +return pthread_setspecific (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_setspecific=yes +else + ac_cv_lib_pthread_pthread_setspecific=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_setspecific" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_setspecific" >&6; } +if test "x$ac_cv_lib_pthread_pthread_setspecific" = xyes; then : + inn_krb5_pthread="-lpthread" +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 +$as_echo_n "checking for krb5int_setspecific in -lkrb5support... " >&6; } +if ${ac_cv_lib_krb5support_krb5int_setspecific+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkrb5support $inn_krb5_pthread $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5int_setspecific (); +int +main () +{ +return krb5int_setspecific (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_krb5support_krb5int_setspecific=yes +else + ac_cv_lib_krb5support_krb5int_setspecific=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5support_krb5int_setspecific" >&5 +$as_echo "$ac_cv_lib_krb5support_krb5int_setspecific" >&6; } +if test "x$ac_cv_lib_krb5support_krb5int_setspecific" = xyes; then : + inn_krb5_extra="-lkrb5support $inn_krb5_extra $inn_krb5_pthread" +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 +$as_echo_n "checking for error_message in -lcom_err... " >&6; } +if ${ac_cv_lib_com_err_error_message+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcom_err $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 error_message (); +int +main () +{ +return error_message (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_com_err_error_message=yes +else + ac_cv_lib_com_err_error_message=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_com_err_error_message" >&5 +$as_echo "$ac_cv_lib_com_err_error_message" >&6; } +if test "x$ac_cv_lib_com_err_error_message" = xyes; then : + inn_krb5_extra="-lcom_err $inn_krb5_extra" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 +$as_echo_n "checking for krb5_svc_get_msg in -lksvc... " >&6; } +if ${ac_cv_lib_ksvc_krb5_svc_get_msg+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lksvc $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5_svc_get_msg (); +int +main () +{ +return krb5_svc_get_msg (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ksvc_krb5_svc_get_msg=yes +else + ac_cv_lib_ksvc_krb5_svc_get_msg=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ksvc_krb5_svc_get_msg" >&5 +$as_echo "$ac_cv_lib_ksvc_krb5_svc_get_msg" >&6; } +if test "x$ac_cv_lib_ksvc_krb5_svc_get_msg" = xyes; then : + inn_krb5_extra="-lksvc $inn_krb5_extra" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 +$as_echo_n "checking for krb5int_hash_md5 in -lk5crypto... " >&6; } +if ${ac_cv_lib_k5crypto_krb5int_hash_md5+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lk5crypto $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5int_hash_md5 (); +int +main () +{ +return krb5int_hash_md5 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_k5crypto_krb5int_hash_md5=yes +else + ac_cv_lib_k5crypto_krb5int_hash_md5=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_k5crypto_krb5int_hash_md5" >&5 +$as_echo "$ac_cv_lib_k5crypto_krb5int_hash_md5" >&6; } +if test "x$ac_cv_lib_k5crypto_krb5int_hash_md5" = xyes; then : + inn_krb5_extra="-lk5crypto $inn_krb5_extra" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 +$as_echo_n "checking for profile_get_values in -lk5profile... " >&6; } +if ${ac_cv_lib_k5profile_profile_get_values+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lk5profile $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 profile_get_values (); +int +main () +{ +return profile_get_values (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_k5profile_profile_get_values=yes +else + ac_cv_lib_k5profile_profile_get_values=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_k5profile_profile_get_values" >&5 +$as_echo "$ac_cv_lib_k5profile_profile_get_values" >&6; } +if test "x$ac_cv_lib_k5profile_profile_get_values" = xyes; then : + inn_krb5_extra="-lk5profile $inn_krb5_extra" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 +$as_echo_n "checking for krb5_cc_default in -lkrb5... " >&6; } +if ${ac_cv_lib_krb5_krb5_cc_default+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkrb5 $inn_krb5_extra $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 krb5_cc_default (); +int +main () +{ +return krb5_cc_default (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_krb5_krb5_cc_default=yes +else + ac_cv_lib_krb5_krb5_cc_default=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5_krb5_cc_default" >&5 +$as_echo "$ac_cv_lib_krb5_krb5_cc_default" >&6; } +if test "x$ac_cv_lib_krb5_krb5_cc_default" = xyes; then : + KRB5_LIBS="-lkrb5 $inn_krb5_extra" +else + if test x"false" = xtrue; then : + as_fn_error $? "cannot find usable Kerberos library" "$LINENO" 5 +fi +fi + +fi + + LIBS="$KRB5_LIBS $LIBS" + for ac_func in krb5_get_error_message +do : + ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" +if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_GET_ERROR_MESSAGE 1 +_ACEOF + for ac_func in krb5_free_error_message +do : + ac_fn_c_check_func "$LINENO" "krb5_free_error_message" "ac_cv_func_krb5_free_error_message" +if test "x$ac_cv_func_krb5_free_error_message" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_FREE_ERROR_MESSAGE 1 +_ACEOF + +fi +done + +else + for ac_func in krb5_get_error_string +do : + ac_fn_c_check_func "$LINENO" "krb5_get_error_string" "ac_cv_func_krb5_get_error_string" +if test "x$ac_cv_func_krb5_get_error_string" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_GET_ERROR_STRING 1 +_ACEOF + +else + for ac_func in krb5_get_err_txt +do : + ac_fn_c_check_func "$LINENO" "krb5_get_err_txt" "ac_cv_func_krb5_get_err_txt" +if test "x$ac_cv_func_krb5_get_err_txt" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_GET_ERR_TXT 1 +_ACEOF + +else + for ac_func in krb5_svc_get_msg +do : + ac_fn_c_check_func "$LINENO" "krb5_svc_get_msg" "ac_cv_func_krb5_svc_get_msg" +if test "x$ac_cv_func_krb5_svc_get_msg" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_SVC_GET_MSG 1 +_ACEOF + for ac_header in ibm_svc/krb5_svc.h +do : + ac_fn_c_check_header_compile "$LINENO" "ibm_svc/krb5_svc.h" "ac_cv_header_ibm_svc_krb5_svc_h" " +#if HAVE_KRB5_H +# include +#elif HAVE_KERBEROSV5_KRB5_H +# include +#else +# include +#endif + +" +if test "x$ac_cv_header_ibm_svc_krb5_svc_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IBM_SVC_KRB5_SVC_H 1 +_ACEOF + +fi + +done + +else + if test x"$inn_krb5_incroot" = x; then : + for ac_header in et/com_err.h kerberosv5/com_err.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 +$as_echo_n "checking for et/com_err.h... " >&6; } + if test -f "${inn_krb5_incroot}/et/com_err.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_ET_COM_ERR_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 +$as_echo_n "checking for kerberosv5/com_err.h... " >&6; } + if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KERBEROSV5_COM_ERR_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi +fi +done + +fi +done + +fi +done + +fi +done + + inn_krb5_found_header= if test x"$inn_krb5_incroot" = x; then : for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h do : @@ -21437,7 +23463,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + inn_krb5_found_header=true fi done @@ -21446,7 +23472,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 $as_echo_n "checking for krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_H 1 @@ -21454,6 +23479,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -21461,7 +23487,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 $as_echo_n "checking for kerberosv5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_KRB5_H 1 @@ -21469,6 +23494,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -21476,7 +23502,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 $as_echo_n "checking for krb5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_KRB5_H 1 @@ -21484,21 +23509,70 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" = xtrue; then : - inn_krb5_save_CPPFLAGS="$CPPFLAGS" + if test x"$inn_krb5_found_header" = xtrue; then : + +else + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"false" = xtrue; then : + as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 +fi +fi + CPPFLAGS="$inn_krb5_save_CPPFLAGS" + LDFLAGS="$inn_krb5_save_LDFLAGS" + LIBS="$inn_krb5_save_LIBS" +fi +else + CPPFLAGS="$inn_krb5_save_CPPFLAGS" + LDFLAGS="$inn_krb5_save_LDFLAGS" + LIBS="$inn_krb5_save_LIBS" + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"$inn_krb5_libdir" != x; then : + KRB5_LDFLAGS="-L$inn_krb5_libdir" +else + if test x"$inn_krb5_root" != x; then : + + if test -d "$inn_krb5_root/$inn_lib_arch_name"; then : + if test x"" = x; then : + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}" +else + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}/" +fi +else + if test x"" = x; then : + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib" +else + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib/" +fi +fi + KRB5_LDFLAGS=`$as_echo "$KRB5_LDFLAGS" | sed -e 's/^ *//'` +fi +fi + if test x"$inn_krb5_includedir" != x; then : + KRB5_CPPFLAGS="-I$inn_krb5_includedir" +else + if test x"$inn_krb5_root" != x; then : + if test x"$inn_krb5_root" != x/usr; then : + KRB5_CPPFLAGS="-I${inn_krb5_root}/include" +fi +fi +fi + inn_krb5_save_CPPFLAGS="$CPPFLAGS" inn_krb5_save_LDFLAGS="$LDFLAGS" inn_krb5_save_LIBS="$LIBS" CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" LIBS="$KRB5_LIBS $LIBS" - inn_krb5_extra= - LIBS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 + inn_krb5_extra= + LIBS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 $as_echo_n "checking for library containing res_search... " >&6; } if ${ac_cv_search_res_search+:} false; then : $as_echo_n "(cached) " >&6 @@ -21611,7 +23685,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 @@ -21667,7 +23741,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if ${ac_cv_search_socket+:} false; then : $as_echo_n "(cached) " >&6 @@ -21764,7 +23838,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 $as_echo_n "checking for library containing crypt... " >&6; } if ${ac_cv_search_crypt+:} false; then : $as_echo_n "(cached) " >&6 @@ -21820,7 +23894,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 $as_echo_n "checking for library containing roken_concat... " >&6; } if ${ac_cv_search_roken_concat+:} false; then : $as_echo_n "(cached) " >&6 @@ -21876,9 +23950,9 @@ if test "$ac_res" != no; then : fi - inn_krb5_extra="$LIBS" - LIBS="$inn_krb5_save_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 + inn_krb5_extra="$LIBS" + LIBS="$inn_krb5_save_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 $as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_init_context+:} false; then : $as_echo_n "(cached) " >&6 @@ -22037,7 +24111,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 $as_echo_n "checking for krb5int_setspecific in -lkrb5support... " >&6; } if ${ac_cv_lib_krb5support_krb5int_setspecific+:} false; then : $as_echo_n "(cached) " >&6 @@ -22079,7 +24153,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 $as_echo_n "checking for error_message in -lcom_err... " >&6; } if ${ac_cv_lib_com_err_error_message+:} false; then : $as_echo_n "(cached) " >&6 @@ -22119,7 +24193,7 @@ if test "x$ac_cv_lib_com_err_error_messa inn_krb5_extra="-lcom_err $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 $as_echo_n "checking for krb5_svc_get_msg in -lksvc... " >&6; } if ${ac_cv_lib_ksvc_krb5_svc_get_msg+:} false; then : $as_echo_n "(cached) " >&6 @@ -22159,7 +24233,7 @@ if test "x$ac_cv_lib_ksvc_krb5_svc_get_m inn_krb5_extra="-lksvc $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 $as_echo_n "checking for krb5int_hash_md5 in -lk5crypto... " >&6; } if ${ac_cv_lib_k5crypto_krb5int_hash_md5+:} false; then : $as_echo_n "(cached) " >&6 @@ -22199,7 +24273,7 @@ if test "x$ac_cv_lib_k5crypto_krb5int_ha inn_krb5_extra="-lk5crypto $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 $as_echo_n "checking for profile_get_values in -lk5profile... " >&6; } if ${ac_cv_lib_k5profile_profile_get_values+:} false; then : $as_echo_n "(cached) " >&6 @@ -22239,7 +24313,7 @@ if test "x$ac_cv_lib_k5profile_profile_g inn_krb5_extra="-lk5profile $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 $as_echo_n "checking for krb5_cc_default in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_cc_default+:} false; then : $as_echo_n "(cached) " >&6 @@ -22285,8 +24359,8 @@ fi fi - LIBS="$KRB5_LIBS $LIBS" - for ac_func in krb5_get_error_message + LIBS="$KRB5_LIBS $LIBS" + for ac_func in krb5_get_error_message do : ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : @@ -22352,8 +24426,7 @@ fi done else - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : + if test x"$inn_krb5_incroot" = x; then : for ac_header in et/com_err.h kerberosv5/com_err.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -22362,7 +24435,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + fi done @@ -22371,7 +24444,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 $as_echo_n "checking for et/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/et/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_ET_COM_ERR_H 1 @@ -22379,14 +24451,14 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 $as_echo_n "checking for kerberosv5/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_COM_ERR_H 1 @@ -22394,16 +24466,15 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" != xtrue; then : - if test x"false" = xtrue; then : - as_fn_error $? "cannot find usable com_err header" "$LINENO" 5 -fi fi +done + fi done @@ -22413,11 +24484,74 @@ done fi done + inn_krb5_found_header= + if test x"$inn_krb5_incroot" = x; then : + for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + inn_krb5_found_header=true fi + done else - if test x"false" = xtrue; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 +$as_echo_n "checking for krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 +$as_echo_n "checking for kerberosv5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KERBEROSV5_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 +$as_echo_n "checking for krb5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi + if test x"$inn_krb5_found_header" = xtrue; then : + +else + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"false" = xtrue; then : as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 fi fi @@ -22426,13 +24560,13 @@ fi LIBS="$inn_krb5_save_LIBS" fi - inn_krb5_save_CPPFLAGS="$CPPFLAGS" + inn_krb5_save_CPPFLAGS="$CPPFLAGS" inn_krb5_save_LDFLAGS="$LDFLAGS" inn_krb5_save_LIBS="$LIBS" CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" LIBS="$KRB5_LIBS $LIBS" - for ac_func in krb5_get_error_message + for ac_func in krb5_get_error_message do : ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : @@ -22498,8 +24632,7 @@ fi done else - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : + if test x"$inn_krb5_incroot" = x; then : for ac_header in et/com_err.h kerberosv5/com_err.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -22508,7 +24641,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + fi done @@ -22517,7 +24650,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 $as_echo_n "checking for et/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/et/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_ET_COM_ERR_H 1 @@ -22525,14 +24657,14 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 $as_echo_n "checking for kerberosv5/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_COM_ERR_H 1 @@ -22540,16 +24672,12 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" != xtrue; then : - if test x"false" = xtrue; then : - as_fn_error $? "cannot find usable com_err header" "$LINENO" 5 -fi -fi fi done @@ -22562,15 +24690,10 @@ done fi done - CPPFLAGS="$inn_krb5_save_CPPFLAGS" + CPPFLAGS="$inn_krb5_save_CPPFLAGS" LDFLAGS="$inn_krb5_save_LDFLAGS" LIBS="$inn_krb5_save_LIBS" else - if test x"false" = xtrue; then : - as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 -fi -fi -else if test x"$inn_krb5_libdir" != x; then : KRB5_LDFLAGS="-L$inn_krb5_libdir" else @@ -22601,78 +24724,15 @@ else fi fi fi - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : - for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - inn_krb5_header_found=true -fi - -done - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 -$as_echo_n "checking for krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 -$as_echo_n "checking for kerberosv5/krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KERBEROSV5_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 -$as_echo_n "checking for krb5/krb5.h... " >&6; } - if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : - inn_krb5_header_found=true - -cat >>confdefs.h <<_ACEOF -#define HAVE_KRB5_KRB5_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -fi - if test x"$inn_krb5_header_found" = xtrue; then : - inn_krb5_save_CPPFLAGS="$CPPFLAGS" + inn_krb5_save_CPPFLAGS="$CPPFLAGS" inn_krb5_save_LDFLAGS="$LDFLAGS" inn_krb5_save_LIBS="$LIBS" CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" LIBS="$KRB5_LIBS $LIBS" - inn_krb5_extra= - LIBS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 + inn_krb5_extra= + LIBS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 $as_echo_n "checking for library containing res_search... " >&6; } if ${ac_cv_search_res_search+:} false; then : $as_echo_n "(cached) " >&6 @@ -22785,7 +24845,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 @@ -22841,7 +24901,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if ${ac_cv_search_socket+:} false; then : $as_echo_n "(cached) " >&6 @@ -22938,7 +24998,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 $as_echo_n "checking for library containing crypt... " >&6; } if ${ac_cv_search_crypt+:} false; then : $as_echo_n "(cached) " >&6 @@ -22994,7 +25054,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 $as_echo_n "checking for library containing roken_concat... " >&6; } if ${ac_cv_search_roken_concat+:} false; then : $as_echo_n "(cached) " >&6 @@ -23050,9 +25110,9 @@ if test "$ac_res" != no; then : fi - inn_krb5_extra="$LIBS" - LIBS="$inn_krb5_save_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 + inn_krb5_extra="$LIBS" + LIBS="$inn_krb5_save_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 $as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_init_context+:} false; then : $as_echo_n "(cached) " >&6 @@ -23211,7 +25271,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 $as_echo_n "checking for krb5int_setspecific in -lkrb5support... " >&6; } if ${ac_cv_lib_krb5support_krb5int_setspecific+:} false; then : $as_echo_n "(cached) " >&6 @@ -23253,7 +25313,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 $as_echo_n "checking for error_message in -lcom_err... " >&6; } if ${ac_cv_lib_com_err_error_message+:} false; then : $as_echo_n "(cached) " >&6 @@ -23293,7 +25353,7 @@ if test "x$ac_cv_lib_com_err_error_messa inn_krb5_extra="-lcom_err $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 $as_echo_n "checking for krb5_svc_get_msg in -lksvc... " >&6; } if ${ac_cv_lib_ksvc_krb5_svc_get_msg+:} false; then : $as_echo_n "(cached) " >&6 @@ -23333,7 +25393,7 @@ if test "x$ac_cv_lib_ksvc_krb5_svc_get_m inn_krb5_extra="-lksvc $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 $as_echo_n "checking for krb5int_hash_md5 in -lk5crypto... " >&6; } if ${ac_cv_lib_k5crypto_krb5int_hash_md5+:} false; then : $as_echo_n "(cached) " >&6 @@ -23373,7 +25433,7 @@ if test "x$ac_cv_lib_k5crypto_krb5int_ha inn_krb5_extra="-lk5crypto $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 $as_echo_n "checking for profile_get_values in -lk5profile... " >&6; } if ${ac_cv_lib_k5profile_profile_get_values+:} false; then : $as_echo_n "(cached) " >&6 @@ -23413,7 +25473,7 @@ if test "x$ac_cv_lib_k5profile_profile_g inn_krb5_extra="-lk5profile $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 $as_echo_n "checking for krb5_cc_default in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_cc_default+:} false; then : $as_echo_n "(cached) " >&6 @@ -23459,8 +25519,8 @@ fi fi - LIBS="$KRB5_LIBS $LIBS" - for ac_func in krb5_get_error_message + LIBS="$KRB5_LIBS $LIBS" + for ac_func in krb5_get_error_message do : ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : @@ -23526,8 +25586,7 @@ fi done else - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : + if test x"$inn_krb5_incroot" = x; then : for ac_header in et/com_err.h kerberosv5/com_err.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -23536,7 +25595,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + fi done @@ -23545,7 +25604,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 $as_echo_n "checking for et/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/et/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_ET_COM_ERR_H 1 @@ -23553,14 +25611,14 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 $as_echo_n "checking for kerberosv5/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_COM_ERR_H 1 @@ -23568,16 +25626,12 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" != xtrue; then : - if test x"false" = xtrue; then : - as_fn_error $? "cannot find usable com_err header" "$LINENO" 5 -fi -fi fi done @@ -23590,47 +25644,7 @@ done fi done -else - if test x"false" = xtrue; then : - as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 -fi -fi - CPPFLAGS="$inn_krb5_save_CPPFLAGS" - LDFLAGS="$inn_krb5_save_LDFLAGS" - LIBS="$inn_krb5_save_LIBS" -fi -else - if test x"$inn_krb5_libdir" != x; then : - KRB5_LDFLAGS="-L$inn_krb5_libdir" -else - if test x"$inn_krb5_root" != x; then : - - if test -d "$inn_krb5_root/$inn_lib_arch_name"; then : - if test x"" = x; then : - KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}" -else - KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}/" -fi -else - if test x"" = x; then : - KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib" -else - KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib/" -fi -fi - KRB5_LDFLAGS=`$as_echo "$KRB5_LDFLAGS" | sed -e 's/^ *//'` -fi -fi - if test x"$inn_krb5_includedir" != x; then : - KRB5_CPPFLAGS="-I$inn_krb5_includedir" -else - if test x"$inn_krb5_root" != x; then : - if test x"$inn_krb5_root" != x/usr; then : - KRB5_CPPFLAGS="-I${inn_krb5_root}/include" -fi -fi -fi - inn_krb5_header_found=false + inn_krb5_found_header= if test x"$inn_krb5_incroot" = x; then : for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h do : @@ -23640,7 +25654,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + inn_krb5_found_header=true fi done @@ -23649,7 +25663,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 $as_echo_n "checking for krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_H 1 @@ -23657,6 +25670,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -23664,7 +25678,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 $as_echo_n "checking for kerberosv5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_KRB5_H 1 @@ -23672,6 +25685,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -23679,7 +25693,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 $as_echo_n "checking for krb5/krb5.h... " >&6; } if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_KRB5_H 1 @@ -23687,21 +25700,65 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + inn_krb5_found_header=true else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" = xtrue; then : - inn_krb5_save_CPPFLAGS="$CPPFLAGS" + if test x"$inn_krb5_found_header" = xtrue; then : + +else + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"false" = xtrue; then : + as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 +fi +fi + CPPFLAGS="$inn_krb5_save_CPPFLAGS" + LDFLAGS="$inn_krb5_save_LDFLAGS" + LIBS="$inn_krb5_save_LIBS" +fi +else + if test x"$inn_krb5_libdir" != x; then : + KRB5_LDFLAGS="-L$inn_krb5_libdir" +else + if test x"$inn_krb5_root" != x; then : + + if test -d "$inn_krb5_root/$inn_lib_arch_name"; then : + if test x"" = x; then : + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}" +else + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/${inn_lib_arch_name}/" +fi +else + if test x"" = x; then : + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib" +else + KRB5_LDFLAGS="$KRB5_LDFLAGS -L$inn_krb5_root/lib/" +fi +fi + KRB5_LDFLAGS=`$as_echo "$KRB5_LDFLAGS" | sed -e 's/^ *//'` +fi +fi + if test x"$inn_krb5_includedir" != x; then : + KRB5_CPPFLAGS="-I$inn_krb5_includedir" +else + if test x"$inn_krb5_root" != x; then : + if test x"$inn_krb5_root" != x/usr; then : + KRB5_CPPFLAGS="-I${inn_krb5_root}/include" +fi +fi +fi + inn_krb5_save_CPPFLAGS="$CPPFLAGS" inn_krb5_save_LDFLAGS="$LDFLAGS" inn_krb5_save_LIBS="$LIBS" CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" LIBS="$KRB5_LIBS $LIBS" - inn_krb5_extra= - LIBS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 + inn_krb5_extra= + LIBS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_search" >&5 $as_echo_n "checking for library containing res_search... " >&6; } if ${ac_cv_search_res_search+:} false; then : $as_echo_n "(cached) " >&6 @@ -23814,7 +25871,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 @@ -23870,7 +25927,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if ${ac_cv_search_socket+:} false; then : $as_echo_n "(cached) " >&6 @@ -23967,7 +26024,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 $as_echo_n "checking for library containing crypt... " >&6; } if ${ac_cv_search_crypt+:} false; then : $as_echo_n "(cached) " >&6 @@ -24023,7 +26080,7 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing roken_concat" >&5 $as_echo_n "checking for library containing roken_concat... " >&6; } if ${ac_cv_search_roken_concat+:} false; then : $as_echo_n "(cached) " >&6 @@ -24079,9 +26136,9 @@ if test "$ac_res" != no; then : fi - inn_krb5_extra="$LIBS" - LIBS="$inn_krb5_save_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 + inn_krb5_extra="$LIBS" + LIBS="$inn_krb5_save_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5 $as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_init_context+:} false; then : $as_echo_n "(cached) " >&6 @@ -24240,7 +26297,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_setspecific in -lkrb5support" >&5 $as_echo_n "checking for krb5int_setspecific in -lkrb5support... " >&6; } if ${ac_cv_lib_krb5support_krb5int_setspecific+:} false; then : $as_echo_n "(cached) " >&6 @@ -24282,7 +26339,7 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5 $as_echo_n "checking for error_message in -lcom_err... " >&6; } if ${ac_cv_lib_com_err_error_message+:} false; then : $as_echo_n "(cached) " >&6 @@ -24322,7 +26379,7 @@ if test "x$ac_cv_lib_com_err_error_messa inn_krb5_extra="-lcom_err $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_svc_get_msg in -lksvc" >&5 $as_echo_n "checking for krb5_svc_get_msg in -lksvc... " >&6; } if ${ac_cv_lib_ksvc_krb5_svc_get_msg+:} false; then : $as_echo_n "(cached) " >&6 @@ -24362,7 +26419,7 @@ if test "x$ac_cv_lib_ksvc_krb5_svc_get_m inn_krb5_extra="-lksvc $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5int_hash_md5 in -lk5crypto" >&5 $as_echo_n "checking for krb5int_hash_md5 in -lk5crypto... " >&6; } if ${ac_cv_lib_k5crypto_krb5int_hash_md5+:} false; then : $as_echo_n "(cached) " >&6 @@ -24402,7 +26459,7 @@ if test "x$ac_cv_lib_k5crypto_krb5int_ha inn_krb5_extra="-lk5crypto $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for profile_get_values in -lk5profile" >&5 $as_echo_n "checking for profile_get_values in -lk5profile... " >&6; } if ${ac_cv_lib_k5profile_profile_get_values+:} false; then : $as_echo_n "(cached) " >&6 @@ -24442,7 +26499,7 @@ if test "x$ac_cv_lib_k5profile_profile_g inn_krb5_extra="-lk5profile $inn_krb5_extra" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_cc_default in -lkrb5" >&5 $as_echo_n "checking for krb5_cc_default in -lkrb5... " >&6; } if ${ac_cv_lib_krb5_krb5_cc_default+:} false; then : $as_echo_n "(cached) " >&6 @@ -24488,8 +26545,8 @@ fi fi - LIBS="$KRB5_LIBS $LIBS" - for ac_func in krb5_get_error_message + LIBS="$KRB5_LIBS $LIBS" + for ac_func in krb5_get_error_message do : ac_fn_c_check_func "$LINENO" "krb5_get_error_message" "ac_cv_func_krb5_get_error_message" if test "x$ac_cv_func_krb5_get_error_message" = xyes; then : @@ -24555,8 +26612,7 @@ fi done else - inn_krb5_header_found=false - if test x"$inn_krb5_incroot" = x; then : + if test x"$inn_krb5_incroot" = x; then : for ac_header in et/com_err.h kerberosv5/com_err.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -24565,7 +26621,7 @@ if eval test \"x\$"$as_ac_Header"\" = x" cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - inn_krb5_header_found=true + fi done @@ -24574,7 +26630,6 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for et/com_err.h" >&5 $as_echo_n "checking for et/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/et/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_ET_COM_ERR_H 1 @@ -24582,14 +26637,14 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/com_err.h" >&5 $as_echo_n "checking for kerberosv5/com_err.h... " >&6; } if test -f "${inn_krb5_incroot}/kerberosv5/com_err.h"; then : - inn_krb5_header_found=true cat >>confdefs.h <<_ACEOF #define HAVE_KERBEROSV5_COM_ERR_H 1 @@ -24597,16 +26652,15 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi - if test x"$inn_krb5_header_found" != xtrue; then : - if test x"false" = xtrue; then : - as_fn_error $? "cannot find usable com_err header" "$LINENO" 5 -fi fi +done + fi done @@ -24616,11 +26670,74 @@ done fi done + inn_krb5_found_header= + if test x"$inn_krb5_incroot" = x; then : + for ac_header in krb5.h kerberosv5/krb5.h krb5/krb5.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + inn_krb5_found_header=true fi + done else - if test x"false" = xtrue; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5.h" >&5 +$as_echo_n "checking for krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kerberosv5/krb5.h" >&5 +$as_echo_n "checking for kerberosv5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/kerberosv5/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KERBEROSV5_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5/krb5.h" >&5 +$as_echo_n "checking for krb5/krb5.h... " >&6; } + if test -f "${inn_krb5_incroot}/krb5/krb5.h"; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_KRB5_KRB5_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + inn_krb5_found_header=true +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi + if test x"$inn_krb5_found_header" = xtrue; then : + +else + KRB5_CPPFLAGS= + KRB5_LIBS= + if test x"false" = xtrue; then : as_fn_error $? "cannot find usable Kerberos header" "$LINENO" 5 fi fi @@ -24637,7 +26754,7 @@ fi ;; esac : - KRB5_CPPFLAGS_WARNINGS=`$as_echo "$KRB5_CPPFLAGS" | sed -e 's/-I/-isystem /g'` + KRB5_CPPFLAGS_WARNINGS=`$as_echo "$KRB5_CPPFLAGS" | sed 's/-I/-isystem /g'` fi else : @@ -25768,6 +27885,13 @@ fi $as_echo "#define HAVE_SD_NOTIFY 1" >>confdefs.h +else + case " $LIBOBJS " in + *" sd-daemon.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS sd-daemon.$ac_objext" + ;; +esac + fi fi inn_ZLIB_root= @@ -27667,6 +29791,7 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include #include #include #include @@ -27799,6 +29924,7 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include #include #include @@ -29802,7 +31928,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by INN $as_me 2.6.4, which was +This file was extended by INN $as_me 2.6.5, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -29863,13 +31989,13 @@ Configuration commands: $config_commands Report bugs to . -INN home page: ." +INN home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -INN config.status 2.6.4 +INN config.status 2.6.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nurp inn-2.6.4/configure.ac inn-2.6.5/configure.ac --- inn-2.6.4/configure.ac 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/configure.ac 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,4 @@ dnl Process this file with Autoconf to produce a configure script. -dnl $Id: configure.ac 10520 2021-01-17 21:48:06Z iulius $ dnl dnl Please try to follow GNU conventions and Autoconf manual conventions as dnl much as possible in this file so that any macros we develop can be easily @@ -26,12 +25,59 @@ dnl bother checking for it. Compile-tim dnl useful information for someone debugging a problem than configure-time dnl errors. -AC_INIT([INN], [2.6.4], [inn-workers@lists.isc.org], - [inn], [https://www.isc.org/downloads/projects/]) +AC_INIT([INN], [2.6.5], [inn-workers@lists.isc.org], + [inn], [https://www.isc.org/othersoftware/]) AC_PREREQ([2.64]) -AC_REVISION([$Revision: 10520 $]) AC_CONFIG_AUX_DIR([support]) +dnl Mention dependencies at the beginning of the configure output so that +dnl people do not waste too much time finding the right packages to install. +AC_MSG_NOTICE([Building INN requires the following dependencies to be met, +besides a working compiler, a POSIX shell and GNU make, as well as Autoconf +if you're bootstrapping the source code. +--- +The names of the deb and rpm packages are given to help you find them quicker. +--- +Mandatory (deb / rpm): +- bison, flex / byacc, flex (for the innfeed build, if bootstrapping the source + code) +- perl / perl (for various mandatory Perl scripts) +- default-mta / postfix (or any specific MTA, for moderated newsgroups) +--- +Optional (deb / rpm): +- libdb-dev / libdb-devel (--with-bdb for ovdb overview) +- libkrb5-dev / krb5-devel (--with-krb5 for a Kerberos v5 authenticator) +- libssl-dev / openssl-devel (--with-openssl for TLS support for readers) +- libperl-dev / perl-devel, perl-ExtUtils-Embed (--with-perl for Perl-based + spam filtering and authentication) +- python3-dev, python3 / python3-devel, python3 (--with-python for Python-based + spam filtering and authentication) +- libsasl2-dev / cyrus-sasl-devel (--with-sasl for SASL authentication support) +- zlib1g-dev / zlib-devel (--with-zlib for compressed ovdb, and the COMPRESS + command for readers) +- libpam0g-dev / pam-devel (for PAM authentication support) +- libsystemd-dev, pkg-config / systemd-devel, pkg-config (for systemd + notifications and socket activation) +--- +Though not mandatory for the build, the following packages should be installed +if you plan on using the provided features (configure will properly sets their +path in a few variables used by INN): +- gnupg / gnupg2 (for the verification of the signatures of control articles + and NoCeM notices) +- uucp / uucp (for the exchange of news articles with send-uucp) +- various wide-spread programs like a modern awk implementation, grep, gzip + (and eventually bzip2 and compress if you want to use other compression + methods with send-uucp or rnews), sed and sort, probably already installed + on your system, and used by INN in several scripts +--- +Though not mandatory for the build, the following packages will also be useful: +- libgd-perl / perl-GD (for pictures in HTML daily Usenet reports) +- libmime-tools-perl / perl-MIME-tools (for the decoding of control articles + by controlchan) +- cron and syslog, probably already installed on your system +--- +Happy building!]) + dnl Ignore Automake conditionals (called in a few m4 macros) as INN does not dnl uses Automake yet. m4_define_default([AM_CONDITIONAL], [:]) diff -Nurp inn-2.6.4/contrib/Makefile inn-2.6.5/contrib/Makefile --- inn-2.6.4/contrib/Makefile 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/contrib/Makefile 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,3 @@ -## $Id: Makefile 9770 2014-12-14 20:55:09Z iulius $ -## ## There are no installation rules or other top-level rules for this ## directory as it's not properly part of INN. Installation should be ## done by the user by hand for those files that they're interested in. diff -Nurp inn-2.6.4/contrib/archivegz.in inn-2.6.5/contrib/archivegz.in --- inn-2.6.4/contrib/archivegz.in 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/contrib/archivegz.in 2022-02-18 20:36:57.000000000 +0100 @@ -5,9 +5,6 @@ # Filename: archivegz.pl # Author: Stephen M. Benoit (benoits@servicepro.com) # Created: Wed Apr 14 13:56:01 1999 -# Version: $Id: archivegz.in 4329 2001-01-14 13:47:52Z rra $ -# -$RCSID='$Id: archivegz.in 4329 2001-01-14 13:47:52Z rra $ '; # Specify command line options, and decode the command line. @@ -16,7 +13,6 @@ require 'newusage.pl'; @opts = ( "help|usage;;print this message", - "version;;print version", "a=s;;directory to archive in instead of the default", "f;;directory names will be flattened out", "i=s;;append one line to the index file for each article (Destination name, Message ID, Subject)", @@ -42,7 +38,6 @@ if ($badarg || $badopt || $opt_help) &NUsage($0,0,'',@opts); exit ($badopt||$badarg); } -if ($opt_version) {print STDERR "$RCSID\n"; exit 0} # -------------------------------------------------------------------- diff -Nurp inn-2.6.4/contrib/auth_pass.c inn-2.6.5/contrib/auth_pass.c --- inn-2.6.4/contrib/auth_pass.c 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/contrib/auth_pass.c 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,5 @@ /* - * auth_pass.c ( $Revision: 9701 $ ) + * auth_pass.c * * Abstract: * @@ -8,7 +8,7 @@ * (supplied either as arguments or as responses to prompts) and * validates them against the contents of the password database. * - * If the user properly authenticates themselves, a nnrp.auth style + * If the user properly authenticates themselves, an nnrp.auth style * record indicating the user's authenticated login and permitting * reading and posting to all groups is output on stderr (for reading by * nnrpd) and the program exits with a 0 status. If the user fails to diff -Nurp inn-2.6.4/contrib/innreport-filter.xslt inn-2.6.5/contrib/innreport-filter.xslt --- inn-2.6.4/contrib/innreport-filter.xslt 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/contrib/innreport-filter.xslt 2022-02-18 20:36:57.000000000 +0100 @@ -1,7 +1,5 @@ address -address (stuff) --> address -stuff
--> address -.fi -.RE -The transformations are simple, based on RFC\ 5536 which limits the format -of the header. -.PP -.I CAopen -and -.I CAclose -provide news clients with access to the active file; the ``CA'' stands for -.IR C lient -.IR A ctive. -.I CAopen -opens the -.I active -file for reading. -It returns a pointer to an open FILE, or NULL on error. -If a local or NFS-mounted copy exists, -.I CAopen -will use that file. -The -.I FromServer -and -.I ToServer -parameters should be FILE's connected to the NNTP server for input and -output, respectively. -See -.I NNTPremoteopen -or -.IR NNTPlocalopen , -below. -If either parameter is NULL, then -.I CAopen -will just return NULL if the file is not locally available. -If they are not NULL, -.I CAopen -will use them to query the NNTP server using -the ``list'' command to make a local temporary copy. -.PP -The -.I CAlistopen -sends a ``list'' command to the server and returns a temporary file -containing the results. -The -.I request -parameter, if not NULL, will be sent as an argument to the command. -Unlike -.IR CAopen , -this routine will never use a locally-available copy of the active file. -.PP -.I CAclose -closes the active file and removes any temporary file that might have -been created by -.I CAopen -or -.IR CAlistopen . -.PP -.I fdflag_close_exec -can make a descriptor ``close-on-exec'' so that it is not shared -with any child processes. -If the flag is non-zero, the file is so marked; if zero, the ``close-on-exec'' -mode is cleared. -.PP -.IR DDstart , -.IR DDcheck , -and -.I DDend -are used to set the Distribution header; the ``DD'' stands for -.IR D efault -.IR D istribution. -The -.I distrib.pats -file is consulted to determine the proper value for the Distribution -header after all newsgroups have been checked. -.I DDstart -begins the parsing. -It returns a pointer to an opaque handle that should be used on subsequent -calls. -The -.I FromServer -and -.I ToServer -parameters should be FILE's connected to the NNTP server for input and -output, respectively. -If either parameter is NULL, then an empty default will ultimately be returned -if the file is not locally available. -.PP -.I DDcheck -should be called -with the handle, -.IR h , -returned by -.I DDstart -and a newgroups, -.IR group , -to check. -It can be called as often as necessary. -.PP -.I DDend -releases any state maintained in the handle and returns an allocated copy -of the text that should be used for the Distribution header. -.PP -.I fdflag_nonblocking -enables (if -.I flag -is non-zero) or disables (if -.I flag -is zero) non-blocking I/O on the indicated descriptor. -It returns \-1 on failure or zero on success. -.PP -.I inn_lock_file -tries to lock the file descriptor -.IR fd . -If -.I block -is true it will block until the lock can be made, otherwise -it will return false if the file cannot be locked. -.I type -is one of: INN_LOCK_READ, INN_LOCK_WRITE, or INN_LOCK_UNLOCK. -It returns false on failure or true on success. -.PP -.I inn_getfqdn -returns the fully qualified domain name of the local host. -.I Domain -is used to qualify the local host name if local host can not be resolved -in DNS. -The returned value points to newly-allocated memory that the caller is -responsible for freeing, -or NULL on error. -.PP -.I GetModeratorAddress -returns the mailing address of the moderator for specified -.I group -or NULL on error. -.I Moderatormailer -is used as its address, if there is no matched moderator. -See -.IR moderators (5) -for details on how the address is determined. -.I GetModeratorAddress -does no checking to see if the specified group is actually moderated. -The returned value points to static space that is reused on subsequent -calls. -The -.I FromServer -and -.I ToServer -parameters should be FILE's connected to the NNTP server for input and -output, respectively. If either of these parameters is NULL, then an -attempt to get the list from a local copy is made. -.PP -.I GetResourceUsage -fills in the -.I usertime -and -.I systime -parameters with the total user and system time used by the current -process and any children it may have spawned. -If -.I -is defined, it gets the values by doing a -.IR getrusage (2) -system call; otherwise it calls -.IR times (2). -It returns \-1 on failure, or zero on success. -.PP -.I NNTPlocalopen -opens a connection to the private port of an InterNetNews server running on -the local host, if -.I -is defined. -It returns \-1 on failure, or zero on success. -.I FromServerp -and -.I ToServerp -will be filled in with FILE's which can be used to communicate -with the server. -.I Errbuff -can either be NULL or a pointer to a buffer at least 512 bytes long. -If not NULL, and the server refuses the connection, then it will be -filled in with the text of the server's reply. -.I Len -should be the length of the buffer. -This routine is not for general use. -If -.I -is not defined, this -is a stub routine, for compatibility with systems that have Unix-domain -stream sockets. -It always returns \-1. -.PP -.I NNTPremoteopen -does the same except that it uses ``innconf->server'' -as the local server, and opens a connection to the -.IR port . -Any client program can use this routine. -It returns \-1 on failure, or zero on success. -.PP -.I NNTPconnect -is the same as -.I NNTPremoteopen -except that the desired host is given as the -.I host -parameter. -.PP -.I NNTPsendarticle -writes -.I text -on -.I ToServer -using NNTP conventions for line termination. -The text should consist of one or more lines ending with a newline. -If -.I Terminate -is non-zero, then the routine will also write the NNTP data-termination -marker on the stream. -It returns \-1 on failure, or zero on success. -.PP -.I NNTPsendpassword -sends authentication information to an NNTP server by finding the appropriate -entry in the -.I passwd.nntp -file. -.I Server -contains the name of the host; ``innconf->server'' will be used if -.I server -is NULL. -.I FromServer -and -.I ToServer -should be FILE's that are connected to the server. -No action is taken if the specified host is not listed in the password file. -.PP -.I Radix32 -converts the number in -.I value -into a radix-32 string into the buffer pointed to by -.IR p . -The number is split into five-bit pieces and each pieces is converted -into a character using the alphabet -.I "0..9a..v" -to represent the numbers 0..32. -Only the lowest 32 bits of -.I value -are used, so -.I p -need only point to a buffer of eight bytes (seven characters and the -trailing \e0). -.PP -.I ReadInFile -reads the file named -.I name -into allocated memory, appending a terminating \e0 byte. -It returns a pointer to the space, or NULL on error. -If -.I Sbp -is not NULL, it is taken as the address of a place to store the results -of a -.IR stat (2) -call. -.PP -.I ReadInDescriptor -performs the same function as -.I ReadInFile -except that -.I fd -refers to an already-open file. -.PP -.I HashMessageID -returns hashed message-id using MD5. -.SH EXAMPLES -.RS +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW .nf -char *p; -char frombuff[256], errbuff[256]; -FILE *F; -FILE *ToServer; -FILE *FromServer; -int port = 119; - -strlcpy(frombuff, HDR(HDR__FROM), sizeof(frombuff)); -HeaderCleanFrom(frombuff); - -if ((F = CAopen(FromServer, ToServer)) == NULL) - Fatal("Can't open active file"); - -/* Don't pass the file on to our children. */ -fdflag_close_exec(fileno(F), true); - -/* Make a local copy. */ -p = ReadInDescriptor(fileno(F), (struct stat *)NULL); - -/* Close the file. */ -CAclose(); - -if (NNTPremoteopen(port, &FromServer, &ToServer, errbuff, sizeof(errbuff)) < 0) - Fatal("Can't connect to server"); - -if ((p = GetModeratorAddress(NULL, NULL, "comp.sources.unix", - "%s@example.com")) == NULL) - Fatal("Can't find moderator's address"); +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R .fi -.RE -.SH HISTORY -Written by Rich $alz for InterNetNews. -.de R$ -This is revision \\$3, dated \\$4. .. -.R$ $Id: libinn.3 10304 2018-12-02 14:05:50Z iulius $ +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "libinn 3" +.TH libinn 3 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +libinn \- InterNetNews library routines +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& #include "inn/libinn.h" +\& +\& #define ISWHITE(c) ... +\& +\& /* Headers\-related routines. */ +\& extern char *GenerateMessageID(char *domain); +\& extern void HeaderCleanFrom(char *from); +\& extern struct _DDHANDLE *DDstart(FILE *FromServer, FILE *ToServer); +\& extern void DDcheck(struct _DDHANDLE *h, char *group); +\& extern char *DDend(struct _DDHANDLE *h); +\& +\& /* Opening the active file on a client. */ +\& extern FILE *CAopen(FILE *FromServer, FILE *ToServer); +\& extern FILE *CAlistopen(FILE *FromServer, FILE *ToServer, +\& const char *request); +\& extern void CAclose(void); +\& +\& /* File locking. */ +\& enum inn_locktype +\& { +\& INN_LOCK_READ, +\& INN_LOCK_WRITE, +\& INN_LOCK_UNLOCK +\& }; +\& +\& extern bool inn_lock_file(int fd, enum inn_locktype type, +\& bool block); +\& +\& /* NNTP functions. */ +\& extern int NNTPlocalopen(FILE **FromServerp, FILE **ToServerp, +\& char *errbuff, size_t len); +\& extern int NNTPremoteopen(int port, FILE **FromServerp, +\& FILE **ToServerp, char *errbuff, +\& size_t len); +\& extern int NNTPconnect(const char *host, int port, +\& FILE **FromServerp, FILE **ToServerp, +\& char *errbuff, size_t len); +\& extern int NNTPsendarticle(char *text, FILE *ToServer, +\& bool terminate); +\& extern int NNTPsendpassword(char *server, FILE *FromServer, +\& FILE *ToServer); +\& +\& /* Hash functions. */ +\& typedef struct { +\& char hash[16]; +\& } HASH; +\& +\& extern HASH HashMessageID(const char *MessageID); +\& +\& /* Other useful functions. */ +\& extern char *inn_getfqdn(const char *domain); +\& extern char *GetModeratorAddress(FILE *FromServer, FILE *ToServer, +\& char *group, char *moderatormailer); +\& +\& /* Miscellaneous. */ +\& extern int GetResourceUsage(double *usertime, double *systime); +\& extern void Radix32(unsigned long value, char *buff); +\& extern char *ReadInDescriptor(int fd, struct stat *Sbp); +\& extern char *ReadInFile(const char *name, struct stat *Sbp); +\& +\& /* Setting or clearing file descriptor flags. */ +\& #include "inn/fdflag.h" +\& +\& bool fdflag_close_exec(int fd, bool flag); +\& bool fdflag_nonblocking(socket_type fd, bool flag); +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fIlibinn\fR is a library of utility routines for manipulating Usenet articles +and related data. The whole documentation of \fIlibinn\fR routines is split +into several specific man pages besides this one: \fBlibinn_clientlib\fR\|(3), +\&\fBlibinn_dbz\fR\|(3), \fBlibinn_inndcomm\fR\|(3), \fBlibinn_list\fR\|(3), \fBlibinn_qio\fR\|(3), +\&\fBlibinn_tst\fR\|(3) and \fBlibinn_uwildmat\fR\|(3). +.SS "\s-1MACROS\s0" +.IX Subsection "MACROS" +\&\f(CW\*(C`ISWHITE\*(C'\fR is a macro which tests whether its char argument is a space or a +tabulation. +.SS "HEADERS-RELATED \s-1ROUTINES\s0" +.IX Subsection "HEADERS-RELATED ROUTINES" +\&\fBGenerateMessageID\fR uses the current time, process-ID, and fully qualified +domain name, which is passed as an argument and used if local host cannot +be resolved or is different from \fIdomain\fR set in \fIinn.conf\fR, to create a +Message-ID header field that is highly likely to be unique. The returned +value points to static space that is reused on subsequent calls. +.PP +\&\fBHeaderCleanFrom\fR removes the extraneous information from the value of a From +or Reply-To header field and leaves just the official mailing address. In +particular, the following transformations are made to the \fIfrom\fR parameter: +.IP "\(bu" 4 +address \-\-> address +.IP "\(bu" 4 +address (stuff) \-\-> address +.IP "\(bu" 4 +stuff
\-\-> address +.PP +The transformations are simple, based on \s-1RFC\s0\ 5536 which limits the format +of the header field. +.PP +\&\fBDDstart\fR, \fBDDcheck\fR, and \fBDDend\fR are used to set the Distribution header +field; the \f(CW\*(C`DD\*(C'\fR stands for \fIDefault Distribution\fR. The \fIdistrib.pats\fR +file is consulted to determine the proper value for the Distribution header +field after all newsgroups have been checked. \fBDDstart\fR begins the parsing. +It returns a pointer to an opaque handle that should be used on subsequent +calls. The \fIFromServer\fR and \fIToServer\fR parameters should be \f(CW\*(C`FILE\*(C'\fR's +connected to the \s-1NNTP\s0 server for input and output, respectively. If either +parameter is \s-1NULL,\s0 then an empty default will ultimately be returned if the +file is not locally available. +.PP +\&\fBDDcheck\fR should be called with the handle, \fIh\fR, returned by \fBDDstart\fR and +a newsgroup, \fIgroup\fR, to check. It can be called as often as necessary. +.PP +\&\fBDDend\fR releases any state maintained in the handle and returns an allocated +copy of the text that should be used for the Distribution header field. +.SS "\s-1CLIENT ACTIVE FILE\s0" +.IX Subsection "CLIENT ACTIVE FILE" +\&\fBCAopen\fR and \fBCAclose\fR provide news clients with access to the \fIactive\fR +file; the \f(CW\*(C`CA\*(C'\fR stands for \fIClient Active\fR. \fBCAopen\fR opens the \fIactive\fR +file for reading. It returns a pointer to an open \f(CW\*(C`FILE\*(C'\fR, or \s-1NULL\s0 on +error. If a local or NFS-mounted copy exists, \fBCAopen\fR will use that file. +The \fIFromServer\fR and \fIToServer\fR parameters should be \f(CW\*(C`FILE\*(C'\fR's connected +to the \s-1NNTP\s0 server for input and output, respectively. See \fBNNTPremoteopen\fR +or \fBNNTPlocalopen\fR, below. If either parameter is \s-1NULL,\s0 then \fBCAopen\fR will +just return \s-1NULL\s0 if the file is not locally available. If they are not \s-1NULL,\s0 +\&\fBCAopen\fR will use them to query the \s-1NNTP\s0 server using the \s-1LIST\s0 command to +make a local temporary copy. +.PP +The \fBCAlistopen\fR sends a \s-1LIST\s0 command to the server and returns a temporary +file containing the results. The \fIrequest\fR parameter, if not \s-1NULL,\s0 will be +sent as an argument to the command. Unlike \fBCAopen\fR, this routine will never +use a locally-available copy of the \fIactive\fR file. +.PP +\&\fBCAclose\fR closes the \fIactive\fR file and removes any temporary file that might +have been created by \fBCAopen\fR or \fBCAlistopen\fR. +.SS "\s-1FILE LOCKING\s0" +.IX Subsection "FILE LOCKING" +\&\fBinn_lock_file\fR tries to lock the file descriptor \fIfd\fR. If \fIblock\fR is +true, it will block until the lock can be made, otherwise it will return +false if the file cannot be locked. \fItype\fR is one of \f(CW\*(C`INN_LOCK_READ\*(C'\fR, +\&\f(CW\*(C`INN_LOCK_WRITE\*(C'\fR or \f(CW\*(C`INN_LOCK_UNLOCK\*(C'\fR. It returns false on failure or true +on success. +.SS "\s-1NNTP FUNCTIONS\s0" +.IX Subsection "NNTP FUNCTIONS" +\&\fBNNTPlocalopen\fR opens a connection to the private port of an InterNetNews +server running on the local host, if \f(CW\*(C`HAVE_UNIX_DOMAIN_SOCKETS\*(C'\fR in +\&\fIinclude/config.h\fR is defined. It returns \f(CW\*(C`\-1\*(C'\fR on failure, or \f(CW0\fR on +success. \fIFromServerp\fR and \fIToServerp\fR will be filled in with \f(CW\*(C`FILE\*(C'\fR's +which can be used to communicate with the server. \fIerrbuff\fR can either be +\&\s-1NULL\s0 or a pointer to a buffer at least 512 bytes long. If not \s-1NULL,\s0 and the +server refuses the connection, then it will be filled in with the text of +the server's reply. \fIlen\fR should be the length of the \fIerrbuff\fR buffer. +This routine is not for general use. If \f(CW\*(C`HAVE_UNIX_DOMAIN_SOCKETS\*(C'\fR in +\&\fIinclude/config.h\fR is not defined, this is a stub routine, for compatibility +with systems that have Unix-domain stream sockets, and it then always returns +\&\f(CW\*(C`\-1\*(C'\fR. +.PP +\&\fBNNTPremoteopen\fR does the same, except that it uses the \fIserver\fR parameter +set in \fIinn.conf\fR as the local server, and opens a connection to the \fIport\fR. +Any client program can use this routine. It returns \f(CW\*(C`\-1\*(C'\fR on failure, or \f(CW0\fR +on success. +.PP +\&\fBNNTPconnect\fR is the same as \fBNNTPremoteopen\fR except that the desired host +is given as the \fIhost\fR parameter. +.PP +\&\fBNNTPsendarticle\fR writes \fItext\fR on \fIToServer\fR using \s-1NNTP\s0 conventions for +line termination. The text should consist of one or more lines ending with +a newline. If \fIterminate\fR is true, then the routine will also write the \s-1NNTP\s0 +data-termination marker on the stream. It returns \f(CW\*(C`\-1\*(C'\fR on failure, or \f(CW0\fR +on success. +.PP +\&\fBNNTPsendpassword\fR sends authentication information to an \s-1NNTP\s0 server by +finding the appropriate entry in the \fIpasswd.nntp\fR file. \fIserver\fR contains +the name of the host; the \fIserver\fR parameter in \fIinn.conf\fR will be used if +\&\fIserver\fR is \s-1NULL.\s0 \fIFromServer\fR and \fIToServer\fR should be \f(CW\*(C`FILE\*(C'\fR's that +are connected to the server. No action is taken if the specified host is not +listed in the password file. +.SS "\s-1HASHES\s0" +.IX Subsection "HASHES" +\&\fBHashMessageID\fR returns hashed Message-ID using \s-1MD5.\s0 +.SS "\s-1OTHER USEFUL FUNCTIONS\s0" +.IX Subsection "OTHER USEFUL FUNCTIONS" +\&\fBinn_getfqdn\fR returns the fully qualified domain name of the local host. +\&\fIdomain\fR is used to qualify the local host name if local host cannot be +resolved in \s-1DNS.\s0 The returned value points to newly-allocated memory that the +caller is responsible for freeing, or \s-1NULL\s0 on error. +.PP +\&\fBGetModeratorAddress\fR returns the mailing address of the moderator for +specified \fIgroup\fR or \s-1NULL\s0 on error. \fImoderatormailer\fR is used as its +address, if there is no matched moderator. See \fBmoderators\fR\|(5) for details on +how the address is determined. \fBGetModeratorAddress\fR does no checking to +see if the specified group is actually moderated. The returned value points +to static space that is reused on subsequent calls. The \fIFromServer\fR and +\&\fIToServer\fR parameters should be \f(CW\*(C`FILE\*(C'\fR's connected to the \s-1NNTP\s0 server for +input and output, respectively. If either of these parameters is \s-1NULL,\s0 then +an attempt to get the list from a local copy is made. +.SS "\s-1MISCELLANEOUS\s0" +.IX Subsection "MISCELLANEOUS" +\&\fBGetResourceUsage\fR fills in the \fIusertime\fR and \fIsystime\fR parameters with +the total user and system time used by the current process and any children +it may have spawned. If \f(CW\*(C`HAVE_GETRUSAGE\*(C'\fR in \fIinclude/config.h\fR is defined, +it gets the values by doing a \fBgetrusage\fR\|(2) system call; otherwise it calls +\&\fBtimes\fR\|(2). It returns \f(CW\*(C`\-1\*(C'\fR on failure, or \f(CW0\fR on success. +.PP +\&\fBRadix32\fR converts the number in \fIvalue\fR into a radix\-32 string into the +buffer pointed to by \fIbuff\fR. The number is split into five-bit pieces and +each piece is converted into a character using the alphabet \f(CW\*(C`0..9a..v\*(C'\fR to +represent the numbers \f(CW0..32\fR. Only the lowest 32 bits of \fIvalue\fR are used, +so \fIbuff\fR needs only pointing to a buffer of eight bytes (seven characters +and the trailing \f(CW\*(C`\e0\*(C'\fR). +.PP +\&\fBReadInFile\fR reads the file named \fIname\fR into allocated memory, appending a +terminating \f(CW\*(C`\e0\*(C'\fR byte. It returns a pointer to the space, or \s-1NULL\s0 on error. +If \fISbp\fR is not \s-1NULL,\s0 it is taken as the address of a place to store the +results of a \fBstat\fR\|(2) call. +.PP +\&\fBReadInDescriptor\fR performs the same function as \fBReadInFile\fR except that +\&\fIfd\fR refers to an already-open file. +.SS "\s-1FILE DESCRIPTOR FLAGS\s0" +.IX Subsection "FILE DESCRIPTOR FLAGS" +\&\fBfdflag_close_exec\fR can make a descriptor \fIclose-on-exec\fR so that it is not +shared with any child processes. If the flag is true, the file is so marked; +if false, the \fIclose-on-exec\fR mode is cleared. It returns false on failure +(or when the function is unsupported) or true on success. +.PP +\&\fBfdflag_nonblocking\fR enables (if \fIflag\fR is true) or disables (if \fIflag\fR +is false) non-blocking I/O on the indicated \f(CW\*(C`socket_type\*(C'\fR (which can be a +non-socket file descriptor on \s-1UNIX\s0 systems, but a \f(CW\*(C`socket_type\*(C'\fR is expected +on Windows). It returns false on failure or true on success. +.SH "EXAMPLES" +.IX Header "EXAMPLES" +.Vb 2 +\& #include "inn/fdflag.h" +\& #include "inn/libinn.h" +\& +\& char *p; +\& char frombuff[256], errbuff[256]; +\& FILE *F; +\& FILE *ToServer; +\& FILE *FromServer; +\& int port = 119; +\& +\& strlcpy(frombuff, HDR(HDR_\|_FROM), sizeof(frombuff)); +\& HeaderCleanFrom(frombuff); +\& +\& if ((F = CAopen(FromServer, ToServer)) == NULL) +\& Fatal("Can\*(Aqt open active file"); +\& +\& /* Don\*(Aqt pass the file on to our children. */ +\& fdflag_close_exec(fileno(F), true); +\& +\& /* Make a local copy. */ +\& p = ReadInDescriptor(fileno(F), (struct stat *) NULL); +\& +\& /* Close the file. */ +\& CAclose(); +\& +\& if (NNTPremoteopen(port, &FromServer, &ToServer, errbuff, +\& sizeof(errbuff)) < 0) +\& Fatal("Can\*(Aqt connect to server"); +\& +\& if ((p = GetModeratorAddress(NULL, NULL, "comp.sources.unix", +\& "%s@example.com")) == NULL) +\& Fatal("Can\*(Aqt find moderator\*(Aqs address"); +.Ve +.SH "HISTORY" +.IX Header "HISTORY" +Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten into +\&\s-1POD\s0 by Julien Elie. .SH "SEE ALSO" -active(5), -dbz(3z), -inn.conf(5), -inndcomm(3), -moderators(5), -passwd.nntp(5). +.IX Header "SEE ALSO" +\&\fBactive\fR\|(5), \fBinn.conf\fR\|(5), \fBlibinn_clientlib\fR\|(3), \fBlibinn_dbz\fR\|(3), +\&\fBlibinn_inndcomm\fR\|(3), \fBlibinn_list\fR\|(3), \fBlibinn_qio\fR\|(3), \fBlibinn_tst\fR\|(3), +\&\fBlibinn_uwildmat\fR\|(3), \fBmoderators\fR\|(5), \fBpasswd.nntp\fR\|(5). diff -Nurp inn-2.6.4/doc/man/libinn_clientlib.3 inn-2.6.5/doc/man/libinn_clientlib.3 --- inn-2.6.4/doc/man/libinn_clientlib.3 1970-01-01 01:00:00.000000000 +0100 +++ inn-2.6.5/doc/man/libinn_clientlib.3 2022-02-18 20:36:57.000000000 +0100 @@ -0,0 +1,199 @@ +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "libinn_clientlib 3" +.TH libinn_clientlib 3 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +clientlib \- NNTP clientlib part of InterNetNews library +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& #include +\& +\& extern FILE *ser_rd_fp; +\& extern FILE *ser_wr_fp; +\& extern char ser_line[]; +\& +\& extern char *getserverbyfile(char *file UNUSED); +\& extern int server_init(char *host, int port); +\& extern int handle_server_response(int response, char *host); +\& extern void put_server(const char *text); +\& extern int get_server(char *buff, int buffsize); +\& extern void close_server(void); +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +The routines described in this manual page are part of the InterNetNews +library, \fBlibinn\fR\|(3). They are replacements for the \fIclientlib\fR part of +the \s-1NNTP\s0 distribution, and are intended to be used in building news clients. +.PP +The \fBgetserverbyfile\fR function retrieves the value of the \fIserver\fR parameter +in \fIinn.conf\fR (or the value of the \f(CW\*(C`NNTPSERVER\*(C'\fR environment variable if set) +as the name of the local \s-1NNTP\s0 server. It returns a pointer to static space. +The \fIfile\fR parameter is ignored (\fIinn.conf\fR is forced). +.PP +The \fBserver_init\fR function opens a connection to the \s-1NNTP\s0 server at +the specified \fIhost\fR, in reader mode. It returns the server's response +code or \f(CW\*(C`\-1\*(C'\fR on error. If a connection was made, then \fIser_rd_fp\fR and +\&\fIser_wr_fp\fR can be used to read from and write to the server, respectively, +and \fIser_line\fR will contain the server's response (though you should use +the more convenient \fBput_server\fR and \fBget_server\fR functions instead). +.PP +The \fBhandle_server_response\fR function decodes the \fIresponse\fR code, +which comes from the server on \fIhost\fR. If the client is authorized, +it returns \f(CW0\fR. A client that is only allowed to read is authorized, +but \fBhandle_server_response\fR will print a message on the standard output. +If the client is not authorized to talk to the server, then a message is +printed and the routine returns \f(CW\*(C`\-1\*(C'\fR. +.PP +The \fBput_server\fR function sends \fItext\fR to the server, adding the necessary +\&\s-1NNTP\s0 line terminators, and flushing the I/O buffer. +.PP +The \fBget_server\fR function reads a line of text from the server into \fIbuff\fR, +reading at most \fIbuffsize\fR characters. Any trailing \f(CW\*(C`\er\en\*(C'\fR terminators +are stripped off. \fBget_server\fR returns \f(CW\*(C`\-1\*(C'\fR on error, \f(CW0\fR on success. +.PP +The \fBclose_server\fR function sends a \f(CW\*(C`QUIT\*(C'\fR command to the server and +closes the connection. +.SH "HISTORY" +.IX Header "HISTORY" +Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten into +\&\s-1POD\s0 by Julien Elie. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fBlibinn\fR\|(3). diff -Nurp inn-2.6.4/doc/man/libinn_dbz.3 inn-2.6.5/doc/man/libinn_dbz.3 --- inn-2.6.4/doc/man/libinn_dbz.3 1970-01-01 01:00:00.000000000 +0100 +++ inn-2.6.5/doc/man/libinn_dbz.3 2022-02-18 20:36:57.000000000 +0100 @@ -0,0 +1,314 @@ +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "libinn_dbz 3" +.TH libinn_dbz 3 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +dbz \- Database routines for InterNetNews +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& #include +\& +\& #define DBZMAXKEY ... +\& #define DBZ_INTERNAL_HASH_SIZE ... +\& +\& typedef enum +\& { +\& DBZSTORE_OK, +\& DBZSTORE_EXISTS, +\& DBZSTORE_ERROR +\& } DBZSTORE_RESULT; +\& +\& typedef enum +\& { +\& INCORE_NO, +\& INCORE_MEM, +\& INCORE_MMAP +\& } dbz_incore_val; +\& +\& typedef struct { +\& bool writethrough; +\& dbz_incore_val pag_incore; +\& dbz_incore_val exists_incore; +\& bool nonblock; +\& } dbzoptions; +\& +\& typedef struct { +\& char hash[DBZ_INTERNAL_HASH_SIZE]; +\& } _\|_attribute_\|_((_\|_packed_\|_)) erec; +\& +\& extern bool dbzinit(const char *name); +\& extern bool dbzclose(void); +\& +\& extern bool dbzfresh(const char *name, off_t size); +\& extern bool dbzagain(const char *name, const char *oldname); +\& extern bool dbzexists(const HASH key); +\& extern bool dbzfetch(const HASH key, off_t *value); +\& extern DBZSTORE_RESULT dbzstore(const HASH key, off_t data); +\& extern bool dbzsync(void); +\& extern long dbzsize(off_t contents); +\& extern void dbzsetoptions(const dbzoptions options); +\& extern void dbzgetoptions(dbzoptions *options); +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +These functions provide an indexing system for rapid random access to a text +file, hereafter named the \fIbase\fR file. +.PP +\&\fIdbz\fR stores offsets into the base file for rapid retrieval. All retrievals +are keyed on a hash value that is generated by the \fBHashMessageID\fR function +in \fBlibinn\fR\|(3). +.PP +\&\fBdbzinit\fR opens a database, an index into the base file \fIname\fR, consisting +of files \fIname\fR\fI.dir\fR, \fIname\fR\fI.index\fR, and \fIname\fR\fI.hash\fR which must +already exist. (If the database is new, they should be zero-length files.) +Subsequent accesses go to that database until \fBdbzclose\fR is called to close +the database. When tagged hash format is used (if \fB\-\-enable\-tagged\-hash\fR was +given at configure time), a \fIname\fR\fI.pag\fR file is used instead of \fI.index\fR +and \fI.hash\fR. +.PP +\&\fBdbzfetch\fR searches the database for the specified \fIkey\fR, assigning the +offset of the base file for the corresponding \fIkey\fR to \fIvalue\fR, if any. +.PP +\&\fBdbzstore\fR stores the \fIkey\fR\-\fIdata\fR pair in the database. It will +return \f(CW\*(C`DBZSTORE_EXISTS\*(C'\fR for duplicates (already existing entries), and +\&\f(CW\*(C`DBZSTORE_OK\*(C'\fR for success. It will fail with \f(CW\*(C`DBZSTORE_ERROR\*(C'\fR if the +database files are not writable or not opened, or if any other error occurs. +.PP +\&\fBdbzexists\fR will verify whether or not the given hash exists or not. \fIdbz\fR +is optimized for this operation and it may be significantly faster than +\&\fBdbzfetch\fR. +.PP +\&\fBdbzfresh\fR is a variant of \fBdbzinit\fR for creating a new database with +more control over details. The \fIsize\fR parameter specifies the size of +the first hash table within the database, in number of key-value pairs. +Performance will be best if the number of key-value pairs stored in the +database does not exceed about 2/3 of \fIsize\fR. (The \fBdbzsize\fR function, +given the expected number of key-value pairs, will suggest a database size +that meets these criteria.) Assuming that an \fIfseek\fR offset is 4 bytes, +the \fI.index\fR file will be 4 * \fIsize\fR bytes. The \fI.hash\fR file will be +\&\f(CW\*(C`DBZ_INTERNAL_HASH_SIZE\*(C'\fR * \fIsize\fR bytes (the \fI.dir\fR file is tiny and +roughly constant in size) until the number of key-value pairs exceeds about +80% of \fIsize\fR. (Nothing awful will happen if the database grows beyond 100% +of \fIsize\fR, but accesses will slow down quite a bit and the \fI.index\fR and +\&\fI.hash\fR files will grow somewhat.) +.PP +\&\fIdbz\fR stores up to \f(CW\*(C`DBZ_INTERNAL_HASH_SIZE\*(C'\fR bytes (by default, 4 bytes +if tagged hash format is used, 6 otherwise) of the Message-ID's hash in the +\&\fI.hash\fR file to confirm a hit. This eliminates the need to read the base +file to handle collisions. +.PP +A \fIsize\fR of \f(CW0\fR given to \fBdbzfresh\fR is synonymous with the local default; +the normal default is suitable for tables of 5,000,000 key-value pairs. +That default value is used by \fBdbzinit\fR. +.PP +When databases are regenerated periodically, as it is the case for the +\&\fIhistory\fR file, it is simplest to pick the parameters for a new database +based on the old one. This also permits some memory of past sizes of the +old database, so that a new database size can be chosen to cover expected +fluctuations. \fBdbzagain\fR is a variant of \fBdbzinit\fR for creating a new +database as a new generation of an old database. The database files for +\&\fIoldname\fR must exist. \fBdbzagain\fR is equivalent to calling \fBdbzfresh\fR with +a \fIsize\fR equal to the result of applying \fBdbzsize\fR to the largest number of +entries in the \fIoldname\fR database and its previous 10 generations. +.PP +When many accesses are being done by the same program, \fIdbz\fR is massively +faster if its first hash table is in memory. If the \fIpag_incore\fR flag +is set to \f(CW\*(C`INCORE_MEM\*(C'\fR, an attempt is made to read the table in when the +database is opened, and \fBdbzclose\fR writes it out to disk again (if it was +read successfully and has been modified). \fBdbzsetoptions\fR can be used to +set the \fIpag_incore\fR and \fIexists_incore\fR flags to different values which +should be \f(CW\*(C`INCORE_NO\*(C'\fR (read from disk), \f(CW\*(C`INCORE_MEM\*(C'\fR (read from memory) +or \f(CW\*(C`INCORE_MMAP\*(C'\fR (read from a mmap'ed file) for the \fI.hash\fR and \fI.index\fR +files separately; this does not affect the status of a database that has +already been opened. The default is \f(CW\*(C`INCORE_NO\*(C'\fR for the \fI.index\fR file and +\&\f(CW\*(C`INCORE_MMAP\*(C'\fR for the \fI.hash\fR file. The attempt to read the table in may +fail due to memory shortage; in this case \fIdbz\fR fails with an error. Stores +to an in-memory database are not (in general) written out to the file until +\&\fBdbzclose\fR or \fBdbzsync\fR, so if robustness in the presence of crashes or +concurrent accesses is crucial, in-memory databases should probably be avoided +or the \fIwritethrough\fR option should be set to true (telling to systematically +write to the filesystem in addition to updating the in-memory database). +.PP +If the \fInonblock\fR option is true, then writes to the \fI.hash\fR and \fI.index\fR +files will be done using non-blocking I/O. This can be significantly faster +if your platform supports non-blocking I/O with files. It is only applicable +if you're not mmap'ing the database. +.PP +\&\fBdbzsync\fR causes all buffers etc. to be flushed out to the files. It is +typically used as a precaution against crashes or concurrent accesses when +a \fIdbz\fR\-using process will be running for a long time. It is a somewhat +expensive operation, especially for an in-memory database. +.PP +Concurrent reading of databases is fairly safe, but there is no +(inter)locking, so concurrent updating is not. +.PP +An open database occupies three \fIstdio\fR streams and two file descriptors; +Memory consumption is negligible except for in-memory databases (and \fIstdio\fR +buffers). +.SH "DIAGNOSTICS" +.IX Header "DIAGNOSTICS" +Functions returning \fIbool\fR values return true for success, false for failure. +.PP +\&\fBdbzinit\fR attempts to have \fIerrno\fR set plausibly on return, but otherwise +this is not guaranteed. An \fIerrno\fR of \f(CW\*(C`EDOM\*(C'\fR from \fBdbzinit\fR indicates that +the database did not appear to be in \fIdbz\fR format. +.PP +If \f(CW\*(C`DBZTEST\*(C'\fR is defined at compile-time, then a \fB\fBmain()\fB\fR function will be +included. This will do performance tests and integrity test. +.SH "BUGS" +.IX Header "BUGS" +Unlike \fIdbm\fR, \fIdbz\fR will refuse to \fBdbzstore\fR with a key already in the +database. The user is responsible for avoiding this. +.PP +The \s-1RFC5322\s0 case mapper implements only a first approximation to the +hideously-complex \s-1RFC5322\s0 case rules. +.PP +\&\fIdbz\fR no longer tries to be call-compatible with \fIdbm\fR in any way. +.SH "HISTORY" +.IX Header "HISTORY" +The original \fIdbz\fR was written by Jon Zeeff . +Later contributions by David Butler and Mark Moraes. Extensive reworking, +including this documentation, by Henry Spencer as part +of the C News project. \s-1MD5\s0 code borrowed from \s-1RSA.\s0 Extensive reworking to +remove backwards compatibility and to add hashes into \fIdbz\fR files by Clayton +O'Neill . Rewritten into \s-1POD\s0 by Julien Elie. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fBdbm\fR\|(3), \fBhistory\fR\|(5), \fBlibinn\fR\|(3). diff -Nurp inn-2.6.4/doc/man/libinn_inndcomm.3 inn-2.6.5/doc/man/libinn_inndcomm.3 --- inn-2.6.4/doc/man/libinn_inndcomm.3 1970-01-01 01:00:00.000000000 +0100 +++ inn-2.6.5/doc/man/libinn_inndcomm.3 2022-02-18 20:36:57.000000000 +0100 @@ -0,0 +1,255 @@ +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "libinn_inndcomm 3" +.TH libinn_inndcomm 3 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +inndcomm \- Routines for managing innd control commands +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& #include +\& +\& #define SC_ADDHIST ... +\& #define SC_ALLOW ... +\& #define SC_BEGIN ... +\& #define SC_CANCEL ... +\& #define SC_CHANGEGROUP ... +\& #define SC_CHECKFILE ... +\& #define SC_DROP ... +\& #define SC_FEEDINFO ... +\& #define SC_FLUSH ... +\& #define SC_FLUSHLOGS ... +\& #define SC_GO ... +\& #define SC_HANGUP ... +\& #define SC_LOGMODE ... +\& #define SC_LOWMARK ... +\& #define SC_MODE ... +\& #define SC_NAME ... +\& #define SC_NEWGROUP ... +\& #define SC_PARAM ... +\& #define SC_PAUSE ... +\& #define SC_PERL ... +\& #define SC_PYTHON ... +\& #define SC_READERS ... +\& #define SC_REJECT ... +\& #define SC_RELOAD ... +\& #define SC_RENUMBER ... +\& #define SC_RESERVE ... +\& #define SC_RMGROUP ... +\& #define SC_SEND ... +\& #define SC_SHUTDOWN ... +\& #define SC_STATHIST ... +\& #define SC_STATUS ... +\& #define SC_SIGNAL ... +\& #define SC_THROTTLE ... +\& #define SC_TIMER ... +\& #define SC_TRACE ... +\& #define SC_XABORT ... +\& #define SC_XEXEC ... +\& +\& #define MAX_REASON_LEN ... +\& +\& extern int ICCopen(void); +\& extern int ICCclose(void); +\& extern void ICCsettimeout(int i); +\& extern int ICCcommand(char cmd, const char *argv[], char **replyp); +\& extern int ICCcancel(const char *msgid); +\& extern int ICCpause(const char *why); +\& extern int ICCreserve(const char *why); +\& extern int ICCgo(const char *why); +\& +\& extern const char *ICCfailure; +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +The routines described in this manual page are part of the InterNetNews +library, \fBlibinn\fR\|(3). They are used to send commands to a running \fBinnd\fR +daemon on the local host. The letters \f(CW\*(C`ICC\*(C'\fR stand for \fBI\fRnnd \fBC\fRontrol +\&\fBC\fRommand. +.PP +The \fBICCopen\fR function creates a Unix-domain datagram socket and binds it +to the server's control socket, if such sockets are supported. Otherwise, +it creates a named pipe for communicating with the server. It returns +\&\f(CW\*(C`\-1\*(C'\fR on failure or \f(CW0\fR on success. This routine must be called before +any other routine. +.PP +The \fBICCclose\fR function closes any descriptors that have been created +by \fBICCopen\fR. It returns \f(CW\*(C`\-1\*(C'\fR on failure or \f(CW0\fR on success. +.PP +The \fBICCsettimeout\fR function can be called before any of the following +routines to determine how long the library should wait before giving up +on getting the server's reply. This is done by setting and catching a +\&\s-1SIGALRM\s0 \fBsignal\fR\|(2). If the timeout is less than zero, then no reply will +be waited for. The \fB\s-1SC_SHUTDOWN\s0\fR, \fB\s-1SC_XABORT\s0\fR, and \fB\s-1SC_XEXEC\s0\fR commands +do not get a reply either. The default, which can be obtained by setting +the timeout to <0>, is to wait during 2 minutes. +.PP +The \fBICCcommand\fR function sends the command \fIcmd\fR with parameters \fIargv\fR +to the server. It returns \f(CW\*(C`\-1\*(C'\fR on error. If the server replies, and +\&\fIreplyp\fR is not \s-1NULL,\s0 it will be filled in with an allocated buffer that +contains the full text of the server's reply. This buffer is a string in +the form of "\fIdigits\fR \fItext\fR" where \fIdigits\fR is the text value of the +recommended exit code (usually \f(CW1\fR, followed with \fItext\fR, giving the +reason of the failure); a \f(CW0\fR value indicates success. Replies longer +than 64KB will be truncated. The possible values of \fIcmd\fR are defined +in the \fIinn/inndcomm.h\fR header file, and also in the \s-1SYNOPSIS\s0 of this +man page. The parameters for each command are described in \fBctlinnd\fR\|(8). +This routine returns \f(CW\*(C`\-1\*(C'\fR on communication failure, or the exit status +sent by the server which will never be negative. +.PP +The \fBICCcancel\fR function sends a \f(CW\*(C`cancel\*(C'\fR message to the server. +Its \fImsgid\fR argument is the Message-ID of the article that should be +cancelled. The return value is the same as for \fBICCcommand\fR. +.PP +The \fBICCpause\fR, \fBICCreserve\fR, and \fBICCgo\fR functions send a \f(CW\*(C`pause\*(C'\fR, +\&\f(CW\*(C`reserve\*(C'\fR, or \f(CW\*(C`go\*(C'\fR command to the server, respectively. If \fBICCreserve\fR +is used, then the \fIwhy\fR value used in the \fBICCpause\fR invocation must match; +the value used in the \fBICCgo\fR invocation must always match the one used +in the \fBICCpause\fR invocation. The return value for all three routines is +the same as for \fBICCcommand\fR. +.PP +If any routine described above fails, the \fIICCfailure\fR variable will +identify the system call that failed. +.SH "HISTORY" +.IX Header "HISTORY" +Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten into +\&\s-1POD\s0 by Julien Elie. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fBctlinnd\fR\|(8), \fBinnd\fR\|(8), \fBlibinn\fR\|(3). diff -Nurp inn-2.6.4/doc/man/libinn_list.3 inn-2.6.5/doc/man/libinn_list.3 --- inn-2.6.4/doc/man/libinn_list.3 1970-01-01 01:00:00.000000000 +0100 +++ inn-2.6.5/doc/man/libinn_list.3 2022-02-18 20:36:57.000000000 +0100 @@ -0,0 +1,219 @@ +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "libinn_list 3" +.TH libinn_list 3 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +list \- list routines +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& #include +\& +\& struct node { +\& struct node *succ; +\& struct node *pred; +\& }; +\& +\& struct list { +\& struct node *head; +\& struct node *tail; +\& struct node *tailpred; +\& }; +\& +\& void list_new(struct list *list); +\& +\& struct node *list_addhead(struct list *list, struct node *node); +\& +\& struct node *list_addtail(struct list *list, struct node *node); +\& +\& struct node *list_head(struct list *list); +\& +\& struct node *list_tail(struct list *list); +\& +\& struct node *list_succ(struct node *node); +\& +\& struct node *list_pred(struct node *node); +\& +\& struct node *list_remhead(struct list *list); +\& +\& struct node *list_remtail(struct list *list); +\& +\& struct node *list_remove(struct node *node); +\& +\& struct node *list_insert(struct list *list, struct node *node, struct node *pred); +\& +\& bool list_isempty(struct list *list); +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBlist_new\fR initialises the list header \fIlist\fR so as to create an +empty list. +.PP +\&\fBlist_addhead\fR adds \fInode\fR to the head of \fIlist\fR, returning the node +just added. +.PP +\&\fBlist_addtail\fR adds \fInode\fR to the tail of \fIlist\fR, returning the node +just added. +.PP +\&\fBlist_head\fR returns a pointer to the the node at the head of \fIlist\fR +or \fB\s-1NULL\s0\fR if the list is empty. +.PP +\&\fBlist_tail\fR returns a pointer to the the node at the tail of \fIlist\fR +or \fB\s-1NULL\s0\fR if the list is empty. +.PP +\&\fBlist_succ\fR returns the next (successor) node on the list after +\&\fInode\fR or \fB\s-1NULL\s0\fR if \fInode\fR was the final node. +.PP +\&\fBlist_pred\fR returns the previous (predecessor) node on the list before +\&\fInode\fR or \fB\s-1NULL\s0\fR if \fInode\fR was the first node. +.PP +\&\fBlist_remhead\fR removes the first node from \fIlist\fR and returns it to +the caller. If the list is empty \fB\s-1NULL\s0\fR is returned. +.PP +\&\fBlist_remtail\fR removes the last node from \fIlist\fR and returns it to +the caller. If the list is empty \fB\s-1NULL\s0\fR is returned. +.PP +\&\fBlist_remove\fR removes \fInode\fR from the list it is on and returns it +to the caller. +.PP +\&\fBlist_insert\fR inserts \fInode\fR onto \fIlist\fR after the node \fIpred\fR. If +\&\fIpred\fR is \fB\s-1NULL\s0\fR then \fInode\fR is added to the head of \fIlist\fR. +.SH "HISTORY" +.IX Header "HISTORY" +Written by Alex Kiernan for InterNetNews\ 2.4.0. diff -Nurp inn-2.6.4/doc/man/libinn_qio.3 inn-2.6.5/doc/man/libinn_qio.3 --- inn-2.6.4/doc/man/libinn_qio.3 1970-01-01 01:00:00.000000000 +0100 +++ inn-2.6.5/doc/man/libinn_qio.3 2022-02-18 20:36:57.000000000 +0100 @@ -0,0 +1,245 @@ +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "libinn_qio 3" +.TH libinn_qio 3 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +qio \- Quick I/O routines for reading files +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& #include +\& +\& QIOSTATE *QIOopen(const char *name); +\& +\& QIOSTATE *QIOfdopen(int> I for InterNetNews. Updated by +Russ Allbery . diff -Nurp inn-2.6.4/doc/man/libinn_tst.3 inn-2.6.5/doc/man/libinn_tst.3 --- inn-2.6.4/doc/man/libinn_tst.3 1970-01-01 01:00:00.000000000 +0100 +++ inn-2.6.5/doc/man/libinn_tst.3 2022-02-18 20:36:57.000000000 +0100 @@ -0,0 +1,212 @@ +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "libinn_tst 3" +.TH libinn_tst 3 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +tst \- ternary search trie functions +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& #include +\& +\& struct tst; +\& +\& struct tst *tst_init(int node_line_width); +\& +\& void tst_cleanup(struct tst *tst); +\& +\& int tst_insert(struct tst *tst, const unsigned char *key, void *data, int option, void **exist_ptr); +\& +\& void *tst_search(struct tst *tst, const unsigned char *key); +\& +\& void *tst_delete(struct tst *tst, const unsigned char *key); +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBtst_init\fR allocates memory for members of \fIstruct tst\fR, and +allocates the first \fInode_line_width\fR nodes. A \s-1NULL\s0 pointer is +returned by \fBtst_init\fR if any part of the memory allocation fails. On +success, a pointer to a \fIstruct tst\fR is returned. +.PP +The value for \fInode_line_width\fR must be chosen very carefully. One +node is required for every character in the tree. If you choose a +value that is too small, your application will spend too much time +calling \fBmalloc\fR\|(3) and your node space will be too spread out. Too large +a value is just a waste of space. +.PP +\&\fBtst_cleanup\fR frees all memory allocated to nodes, internal structures, +as well as \fItst\fR itself. +.PP +\&\fBtst_insert\fR inserts the string \fIkey\fR into the tree. Behavior when a +duplicate key is inserted is controlled by \fIoption\fR. If \fIkey\fR is +already in the tree then \fB\s-1TST_DUPLICATE_KEY\s0\fR is returned, and the +data pointer for the existing key is placed in \fIexist_ptr\fR. If +\&\fIoption\fR is set to \fB\s-1TST_REPLACE\s0\fR then the existing data pointer for +the existing key is replaced by \fIdata\fR. Note that the old data +pointer will still be placed in \fIexist_ptr\fR. +.PP +If a duplicate key is encountered and \fIoption\fR is not set to +\&\fB\s-1TST_REPLACE\s0\fR then \fB\s-1TST_DUPLICATE_KEY\s0\fR is returned. If \fIkey\fR is +zero length then \fB\s-1TST_NULL_KEY\s0\fR is returned. A successful insert or +replace returns \fB\s-1TST_OK\s0\fR. A return value of \fB\s-1TST_ERROR\s0\fR indicates +that a memory allocation error occurred while trying to grow the node +free. +.PP +Note that the \fIdata\fR argument must never be \fB\s-1NULL\s0\fR. If it is, then +calls to \fBtst_search\fR will fail for a key that exists because the +data value was set to \fB\s-1NULL\s0\fR, which is what \fBtst_search\fR returns. If +you just want a simple existence tree, use the \fBtst\fR pointer as the +data pointer. +.PP +\&\fBtst_search\fR finds the string \fIkey\fR in the tree if it exists and +returns the data pointer associated with that key. +.PP +If \fIkey\fR is not found then \fB\s-1NULL\s0\fR is returned, otherwise the data pointer +associated with \fIkey\fR is returned. +.PP +\&\fBtst_delete\fR deletes the string \fIkey\fR from the tree if it exists and +returns the data pointer assocaited with that key. +.PP +If \fIkey\fR is not found then \fB\s-1NULL\s0\fR is returned, otherwise the data +pointer associated with \fIkey\fR is returned. +.SH "HISTORY" +.IX Header "HISTORY" +Converted to \s-1POD\s0 from Peter A.\ Friend's ternary search trie +documentation by Alex Kiernan for +InterNetNews\ 2.4.0. diff -Nurp inn-2.6.4/doc/man/libinn_uwildmat.3 inn-2.6.5/doc/man/libinn_uwildmat.3 --- inn-2.6.4/doc/man/libinn_uwildmat.3 1970-01-01 01:00:00.000000000 +0100 +++ inn-2.6.5/doc/man/libinn_uwildmat.3 2022-02-18 20:36:57.000000000 +0100 @@ -0,0 +1,297 @@ +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "libinn_uwildmat 3" +.TH libinn_uwildmat 3 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +uwildmat, uwildmat_simple, uwildmat_poison \- Perform wildmat matching +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& #include +\& +\& bool uwildmat(const char *text, const char *pattern); +\& +\& bool uwildmat_simple(const char *text, const char *pattern); +\& +\& enum uwildmat uwildmat_poison(const char *text, const char *pattern); +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBuwildmat\fR compares \fItext\fR against the wildmat expression \fIpattern\fR, +returning true if and only if the expression matches the text. \f(CW\*(C`@\*(C'\fR has +no special meaning in \fIpattern\fR when passed to \fBuwildmat\fR. Both \fItext\fR +and \fIpattern\fR are assumed to be in the \s-1UTF\-8\s0 character encoding, although +malformed \s-1UTF\-8\s0 sequences are treated in a way that attempts to be mostly +compatible with single-octet character sets like \s-1ISO 8859\-1.\s0 (In other +words, if you try to match \s-1ISO 8859\-1\s0 text with these routines everything +should work as expected unless the \s-1ISO 8859\-1\s0 text contains valid \s-1UTF\-8\s0 +sequences, which thankfully is somewhat rare.) +.PP +\&\fBuwildmat_simple\fR is identical to \fBuwildmat\fR except that neither \f(CW\*(C`!\*(C'\fR +nor \f(CW\*(C`,\*(C'\fR have any special meaning and \fIpattern\fR is always treated as a +single pattern. This function exists solely to support legacy interfaces +like \s-1NNTP\s0's \s-1XPAT\s0 command, and should be avoided when implementing new +features. +.PP +\&\fBuwildmat_poison\fR works similarly to \fBuwildmat\fR, except that \f(CW\*(C`@\*(C'\fR as the +first character of one of the patterns in the expression (see below) +\&\*(L"poisons\*(R" the match if it matches. \fBuwildmat_poison\fR returns +\&\fB\s-1UWILDMAT_MATCH\s0\fR if the expression matches the text, \fB\s-1UWILDMAT_FAIL\s0\fR if +it doesn't, and \fB\s-1UWILDMAT_POISON\s0\fR if the expression doesn't match because +a poisoned pattern matched the text. These enumeration constants are +defined in the \fBinn/libinn.h\fR header. +.SH "WILDMAT EXPRESSIONS" +.IX Header "WILDMAT EXPRESSIONS" +A wildmat expression follows rules similar to those of shell filename +wildcards but with some additions and changes. A wildmat \fIexpression\fR is +composed of one or more wildmat \fIpatterns\fR separated by commas. Each +character in the wildmat pattern matches a literal occurrence of that same +character in the text, with the exception of the following metacharacters: +.IP "?" 8 +Matches any single character (including a single \s-1UTF\-8\s0 multibyte +character, so \f(CW\*(C`?\*(C'\fR can match more than one byte). +.IP "*" 8 +Matches any sequence of zero or more characters. +.IP "\e" 8 +.IX Item "" +Turns off any special meaning of the following character; the following +character will match itself in the text. \f(CW\*(C`\e\*(C'\fR will escape any character, +including another backslash or a comma that otherwise would separate a +pattern from the next pattern in an expression. Note that \f(CW\*(C`\e\*(C'\fR is not +special inside a character range (no metacharacters are). +.IP "[...]" 8 +A character set, which matches any single character that falls within that +set. The presence of a character between the brackets adds that character +to the set; for example, \f(CW\*(C`[amv]\*(C'\fR specifies the set containing the +characters \f(CW\*(C`a\*(C'\fR, \f(CW\*(C`m\*(C'\fR, and \f(CW\*(C`v\*(C'\fR. A range of characters may be specified +using \f(CW\*(C`\-\*(C'\fR; for example, \f(CW\*(C`[0\-5abc]\*(C'\fR is equivalent to \f(CW\*(C`[012345abc]\*(C'\fR. The +order of characters is as defined in the \s-1UTF\-8\s0 character set, and if the +start character of such a range falls after the ending character of the +range in that ranking the results of attempting a match with that pattern +are undefined. +.Sp +In order to include a literal \f(CW\*(C`]\*(C'\fR character in the set, it must be the +first character of the set (possibly following \f(CW\*(C`^\*(C'\fR); for example, \f(CW\*(C`[]a]\*(C'\fR +matches either \f(CW\*(C`]\*(C'\fR or \f(CW\*(C`a\*(C'\fR. To include a literal \f(CW\*(C`\-\*(C'\fR character in the +set, it must be either the first or the last character of the set. +Backslashes have no special meaning inside a character set, nor do any +other of the wildmat metacharacters. +.IP "[^...]" 8 +A negated character set. Follows the same rules as a character set above, +but matches any character \fBnot\fR contained in the set. So, for example, +\&\f(CW\*(C`[^]\-]\*(C'\fR matches any character except \f(CW\*(C`]\*(C'\fR and \f(CW\*(C`\-\*(C'\fR. +.PP +In addition, \f(CW\*(C`!\*(C'\fR (and possibly \f(CW\*(C`@\*(C'\fR) have special meaning as the first +character of a pattern; see below. +.PP +When matching a wildmat expression against some text, each comma-separated +pattern is matched in order from left to right. In order to match, the +pattern must match the whole text; in regular expression terminology, it's +implicitly anchored at both the beginning and the end. For example, the +pattern \f(CW\*(C`a\*(C'\fR matches only the text \f(CW\*(C`a\*(C'\fR; it doesn't match \f(CW\*(C`ab\*(C'\fR or \f(CW\*(C`ba\*(C'\fR +or even \f(CW\*(C`aa\*(C'\fR. If none of the patterns match, the whole expression +doesn't match. Otherwise, whether the expression matches is determined +entirely by the rightmost matching pattern; the expression matches the +text if and only if the rightmost matching pattern is not negated. +.PP +For example, consider the text \f(CW\*(C`news.misc\*(C'\fR. The expression \f(CW\*(C`*\*(C'\fR matches +this text, of course, as does \f(CW\*(C`comp.*,news.*\*(C'\fR (because the second pattern +matches). \f(CW\*(C`news.*,!news.misc\*(C'\fR does not match this text because both +patterns match, meaning that the rightmost takes precedence, and the +rightmost matching pattern is negated. \f(CW\*(C`news.*,!news.misc,*.misc\*(C'\fR does +match this text, since the rightmost matching pattern is not negated. +.PP +Note that the expression \f(CW\*(C`!news.misc\*(C'\fR can't match anything. Either the +pattern doesn't match, in which case no patterns match and the expression +doesn't match, or the pattern does match, in which case because it's +negated the expression doesn't match. \f(CW\*(C`*,!news.misc\*(C'\fR, on the other hand, +is a useful pattern that matches anything except \f(CW\*(C`news.misc\*(C'\fR. +.PP +\&\f(CW\*(C`!\*(C'\fR has significance only as the first character of a pattern; anywhere +else in the pattern, it matches a literal \f(CW\*(C`!\*(C'\fR in the text like any other +non-metacharacter. +.PP +If the \fBuwildmat_poison\fR interface is used, then \f(CW\*(C`@\*(C'\fR behaves the same as +\&\f(CW\*(C`!\*(C'\fR except that if an expression fails to match because the rightmost +matching pattern began with \f(CW\*(C`@\*(C'\fR, \fB\s-1UWILDMAT_POISON\s0\fR is returned instead of +\&\fB\s-1UWILDMAT_FAIL\s0\fR. +.PP +If the \fBuwildmat_simple\fR interface is used, the matching rules are the +same as above except that none of \f(CW\*(C`!\*(C'\fR, \f(CW\*(C`@\*(C'\fR, or \f(CW\*(C`,\*(C'\fR have any special +meaning at all and only match those literal characters. +.SH "BUGS" +.IX Header "BUGS" +All of these functions internally convert the passed arguments to const +unsigned char pointers. The only reason why they take regular char +pointers instead of unsigned char is for the convenience of \s-1INN\s0 and other +callers that may not be using unsigned char everywhere they should. In a +future revision, the public interface should be changed to just take +unsigned char pointers. +.SH "HISTORY" +.IX Header "HISTORY" +Written by Rich \f(CW$alz\fR in 1986, and posted to Usenet +several times since then, most notably in comp.sources.misc in +March, 1991. +.PP +Lars Mathiesen enhanced the multi-asterisk failure +mode in early 1991. +.PP +Rich and Lars increased the efficiency of star patterns and reposted it to +comp.sources.misc in April, 1991. +.PP +Robert Elz added minus sign and close bracket handling +in June, 1991. +.PP +Russ Allbery added support for comma-separated patterns +and the \f(CW\*(C`!\*(C'\fR and \f(CW\*(C`@\*(C'\fR metacharacters to the core wildmat routines in July, +2000. He also added support for \s-1UTF\-8\s0 characters, changed the default +behavior to assume that both the text and the pattern are in \s-1UTF\-8,\s0 and +largely rewrote this documentation to expand and clarify the description +of how a wildmat expression matches. +.PP +Please note that the interfaces to these functions are named \fBuwildmat\fR +and the like rather than \fBwildmat\fR to distinguish them from the +\&\fBwildmat\fR function provided by Rich \f(CW$alz\fR's original implementation. +While this code is heavily based on Rich's original code, it has +substantial differences, including the extension to support \s-1UTF\-8\s0 +characters, and has noticeable functionality changes. Any bugs present in +it aren't Rich's fault. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fBgrep\fR\|(1), \fBfnmatch\fR\|(3), \fBregex\fR\|(3), \fBregexp\fR\|(3). diff -Nurp inn-2.6.4/doc/man/libinnhist.3 inn-2.6.5/doc/man/libinnhist.3 --- inn-2.6.4/doc/man/libinnhist.3 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/libinnhist.3 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "libinnhist 3" -.TH libinnhist 3 "2018-05-14" "INN 2.6.4" "InterNetNews Documentation" +.TH libinnhist 3 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -430,5 +430,3 @@ type \fBtime_t\fR and will not be modifi .SH "HISTORY" .IX Header "HISTORY" Written by Alex Kiernan for InterNetNews\ 2.4.0. -.PP -\&\f(CW$Id:\fR libinnhist.pod 10283 2018\-05\-14 12:43:05Z iulius $ diff -Nurp inn-2.6.4/doc/man/libstorage.3 inn-2.6.5/doc/man/libstorage.3 --- inn-2.6.4/doc/man/libstorage.3 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/libstorage.3 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "libstorage 3" -.TH libstorage 3 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH libstorage 3 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -361,7 +361,7 @@ are ignored by \fBSMstore\fR.) If \fIar its value as article's arrival time; otherwise \fBSMstore\fR uses the current time for it. \fBSMstore\fR returns the token type or returns \fB\s-1TOKEN_EMPTY\s0\fR if the article is not stored because some error occurs or simply does not -match any \fBuwildmat\fR\|(3) expression in \fIstorage.conf\fR. \fBSMstore\fR fails if +match any \fIuwildmat\fR expression in \fIstorage.conf\fR. \fBSMstore\fR fails if \&\fB\s-1SM_RDWR\s0\fR has not been set to true with \fBSMsetup\fR. .PP The \fBSMretrieve\fR function retrieves an article specified with \fItoken\fR. @@ -549,8 +549,6 @@ method. .IX Header "HISTORY" Written by Katsuhiro Kondou for InterNetNews. Converted to \s-1POD\s0 by Julien Elie. -.PP -\&\f(CW$Id:\fR libstorage.pod 9073 2010\-05\-31 19:00:23Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fBexpire\fR\|(8), \fBfastrm\fR\|(8), \fBinn.conf\fR\|(5), \fBstorage.conf\fR\|(5). +\&\fBexpire\fR\|(8), \fBfastrm\fR\|(8), \fBinn.conf\fR\|(5), \fBlibinn_uwildmat\fR\|(3), \fBstorage.conf\fR\|(5). diff -Nurp inn-2.6.4/doc/man/list.3 inn-2.6.5/doc/man/list.3 --- inn-2.6.4/doc/man/list.3 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/list.3 1970-01-01 01:00:00.000000000 +0100 @@ -1,221 +0,0 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) -.\" -.\" Standard preamble: -.\" ======================================================================== -.de Sp \" Vertical space (when we can't use .PP) -.if t .sp .5v -.if n .sp -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" Set up some character translations and predefined strings. \*(-- will -.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left -.\" double quote, and \*(R" will give a right double quote. \*(C+ will -.\" give a nicer C++. Capital omega is used to do unbreakable dashes and -.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, -.\" nothing in troff, for use with C<>. -.tr \(*W- -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -. ds C` -. ds C' -'br\} -.\" -.\" Escape single quotes in literal strings from groff's Unicode transform. -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" -.\" If the F register is >0, we'll generate index entries on stderr for -.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index -.\" entries marked with X<> in POD. Of course, you'll have to process the -.\" output yourself in some meaningful fashion. -.\" -.\" Avoid warning from groff about undefined register 'F'. -.de IX -.. -.nr rF 0 -.if \n(.g .if rF .nr rF 1 -.if (\n(rF:(\n(.g==0)) \{\ -. if \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" -.. -. if !\nF==2 \{\ -. nr % 0 -. nr F 2 -. \} -. \} -.\} -.rr rF -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "list 3" -.TH list 3 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" -.\" For nroff, turn off justification. Always turn off hyphenation; it makes -.\" way too many mistakes in technical documents. -.if n .ad l -.nh -.SH "NAME" -list \- list routines -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -.Vb 1 -\& #include -\& -\& struct node { -\& struct node *succ; -\& struct node *pred; -\& }; -\& -\& struct list { -\& struct node *head; -\& struct node *tail; -\& struct node *tailpred; -\& }; -\& -\& void list_new(struct list *list); -\& -\& struct node *list_addhead(struct list *list, struct node *node); -\& -\& struct node *list_addtail(struct list *list, struct node *node); -\& -\& struct node *list_head(struct list *list); -\& -\& struct node *list_tail(struct list *list); -\& -\& struct node *list_succ(struct node *node); -\& -\& struct node *list_pred(struct node *node); -\& -\& struct node *list_remhead(struct list *list); -\& -\& struct node *list_remtail(struct list *list); -\& -\& struct node *list_remove(struct node *node); -\& -\& struct node *list_insert(struct list *list, struct node *node, struct node *pred); -\& -\& bool list_isempty(struct list *list); -.Ve -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fBlist_new\fR initialises the list header \fIlist\fR so as to create an -empty list. -.PP -\&\fBlist_addhead\fR adds \fInode\fR to the head of \fIlist\fR, returning the node -just added. -.PP -\&\fBlist_addtail\fR adds \fInode\fR to the tail of \fIlist\fR, returning the node -just added. -.PP -\&\fBlist_head\fR returns a pointer to the the node at the head of \fIlist\fR -or \fB\s-1NULL\s0\fR if the list is empty. -.PP -\&\fBlist_tail\fR returns a pointer to the the node at the tail of \fIlist\fR -or \fB\s-1NULL\s0\fR if the list is empty. -.PP -\&\fBlist_succ\fR returns the next (successor) node on the list after -\&\fInode\fR or \fB\s-1NULL\s0\fR if \fInode\fR was the final node. -.PP -\&\fBlist_pred\fR returns the previous (predecessor) node on the list before -\&\fInode\fR or \fB\s-1NULL\s0\fR if \fInode\fR was the first node. -.PP -\&\fBlist_remhead\fR removes the first node from \fIlist\fR and returns it to -the caller. If the list is empty \fB\s-1NULL\s0\fR is returned. -.PP -\&\fBlist_remtail\fR removes the last node from \fIlist\fR and returns it to -the caller. If the list is empty \fB\s-1NULL\s0\fR is returned. -.PP -\&\fBlist_remove\fR removes \fInode\fR from the list it is on and returns it -to the caller. -.PP -\&\fBlist_insert\fR inserts \fInode\fR onto \fIlist\fR after the node \fIpred\fR. If -\&\fIpred\fR is \fB\s-1NULL\s0\fR then \fInode\fR is added to the head of \fIlist\fR. -.SH "HISTORY" -.IX Header "HISTORY" -Written by Alex Kiernan for InterNetNews\ 2.4.0. -.PP -\&\f(CW$Id:\fR list.pod 9073 2010\-05\-31 19:00:23Z iulius $ diff -Nurp inn-2.6.4/doc/man/mailpost.8 inn-2.6.5/doc/man/mailpost.8 --- inn-2.6.4/doc/man/mailpost.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/mailpost.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "MAILPOST 8" -.TH MAILPOST 8 "2018-01-28" "INN 2.6.4" "InterNetNews Documentation" +.TH MAILPOST 8 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -155,11 +155,12 @@ whitespace-separated list of group names (at least one newsgroup must be specified). .PP Before feeding the article to \fBinews\fR, it checks that the article has -not been seen before, and it changes some header fields (cleans up some -address headers, removes a few ones like X\-Complaints-To: and X\-Trace:, -and puts \f(CW\*(C`X\-\*(C'\fR in front of unknown header fields). The Received: and -*\-To: header fields are also altered to prevent spamming the gateway (the -name of the news server or the domain name from \fIinn.conf\fR are removed). +not been seen before, and it changes some header fields (cleaning up some +address header fields, removing a few ones like X\-Complaints-To and X\-Trace, +and putting \f(CW\*(C`X\-\*(C'\fR in front of unknown header fields). The Received and *\-To +header fields are also altered to prevent spamming the gateway (the name +of the news server or the domain name set in \fIfromhost\fR, \fIpathhost\fR and +\&\fIdomain\fR in \fIinn.conf\fR are removed). .PP If the article has been seen before (\fBmailpost\fR records the message-ID of each article it handles), then the article will be dropped with a non-zero @@ -170,32 +171,56 @@ Normally, \fBmailpost\fR is run by \fBse .PP .Vb 2 \& local\-mail\-wreck\-bikes: "|/mailpost -\& \-b /var/tmp \-t /var/tmp \-d local local.mail.rec.bicycles.racing" +\& \-b /var/spool/mailpost \-t /tmp \-d local local.bicycles.racing" .Ve .PP The \fB\-b\fR and \fB\-t\fR flags are useful to change the directories used by \&\fBmailpost\fR by default. As a matter of fact, though it is recommended to -run \fBmailpost\fR as the news user, it is as often as not run as another -user, for instance the mail user. Therefore, you should make sure to -create and set to be writable by the user that \fBmailpost\fR runs as the -directories where to put the database and the temporary files. +run \fBmailpost\fR as the news user, it is as often as not run as another user, +notably the mail user. Therefore, you should make sure to create and set to +be writable by the user that \fBmailpost\fR runs as the directories where to put +the database and the temporary files. Also, \fBmailpost\fR must be executable by +that user. .PP -Instead of \fI/var/tmp\fR, the mail spool directory can be specified, +Instead of \fI/var/spool/mailpost\fR, the mail spool directory can be specified, or any other directory where the \fBmailpost\fR process has write access. +.PP +A common practice to gateway a newsgroup to a mailing-list is to create a +moderated newsgroup (running for instance the command \f(CW\*(C`ctlinnd newgroup +local.bicycles.racing m\*(C'\fR) and set the moderation address for this newsgroup +in the \fImoderators\fR file in \fIpathetc\fR to the mailing-list address. If you +add an \fB\-a\fR flag in the above example, then on the one hand, when a message +is sent to the mailing-list, \fBmailpost\fR will be run, mark it as approved, +and the message will directly reach the newsgroup. On the other hand, when +a message is posted to the newsgroup, it normally does not have an Approved +header field, so it will be sent (by \fBnnrpd\fR) to the mailing-list address +configured in the \fImoderators\fR file, which means the message reaches the +mailing-list and, like any other messages posted to the mailing-list, it will +be processed by \fBmailpost\fR, approved, and finally reach the newsgroup. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-a\fR \fIaddr\fR" 4 .IX Item "-a addr" -If the \fB\-a\fR flag is used, the value given is added to the article as -an Approved: header. +If the \fB\-a\fR flag is used, \fIaddr\fR (which is usually the e\-mail address of +the poster) is added to the article as the body of an Approved header field. +It is useful if one of the newsgroup to which the article should be posted is +moderated. (Of course, this flag should be added only if you are supposed to +auto-approve your posts.) +.Sp +Be sure that the reader connection made by \fBinews\fR to post the article +is allowed to post approved articles (see the \f(CW\*(C`A\*(C'\fR letter in the \fIaccess\fR +parameter of access blocks in \fIreaders.conf\fR). .IP "\fB\-b\fR \fIdatabase\fR" 4 .IX Item "-b database" -If the \fB\-b\fR flag is used, then it defines the location of the -persistent database used to store the message-IDs of articles sent on. -This is to prevent articles looping around if a news-to-mail gateway -sends them back here. This option may be required if the \fBmailpost\fR -process does not have write access to the news database directory. -The default value is \fIpathdb\fR as set in \fIinn.conf\fR. +If the \fB\-b\fR flag is used, then it defines the location of the persistent +database used to store the message-IDs of articles sent on. This is to +prevent articles looping around if a news-to-mail gateway sends them back +here. This option may be required if the \fBmailpost\fR process does not have +write access to the news database directory (notably when it is executed as +the mail user). The default value is \fIpathdb\fR as set in \fIinn.conf\fR. +.Sp +Make sure the specified location exists and is writable by the user +\&\fBmailpost\fR runs as. .IP "\fB\-c\fR \fIwait-time\fR" 4 .IX Item "-c wait-time" The \fB\-c\fR flag indicates a length of time to sleep before posting. If @@ -207,8 +232,8 @@ anywhere from tens to hundreds of second long mail can be delayed on its way to your system. .IP "\fB\-d\fR \fIdistribution\fR" 4 .IX Item "-d distribution" -If the \fB\-d\fR flag is used, the value given is added to the article as a -Distribution: header. +If the \fB\-d\fR flag is used, the value given is added to the article as the body +of the Distribution header field. .IP "\fB\-f\fR \fIaddr\fR" 4 .IX Item "-f addr" The \fB\-f\fR flag is a synonym for the \fB\-r\fR flag. @@ -238,19 +263,22 @@ A heuristic is used to determine a reaso The \fB\-r\fR flag indicates what to use if no other value can be determined. .IP "\fB\-t\fR \fItempdir\fR" 4 .IX Item "-t tempdir" -If the \fB\-t\fR flag is used, then it defines the location of the -directory to use to temporarily store error messages that are sent to -the newsmaster. This option may be required if the default value refers -to a path that does not exist or the \fBmailpost\fR process does not have -write access to. Two paths are tried by default: \fIpathtmp\fR as set -in \fIinn.conf\fR, and then \fI/var/tmp\fR if \fIpathtmp\fR is not writable. +If the \fB\-t\fR flag is used, then it defines the location of the directory to +use to temporarily store error messages that are sent to the newsmaster. This +option may be required if the default value refers to a path that does not +exist or the \fBmailpost\fR process does not have write access to (notably when +it is executed as the mail user). Two paths are tried by default: \fIpathtmp\fR +as set in \fIinn.conf\fR, and then \fI/var/tmp\fR if \fIpathtmp\fR is not writable. +.Sp +Make sure the specified location exists and is writable by the user +\&\fBmailpost\fR runs as. .IP "\fB\-x\fR \fIheader\fR[\fB:\fR\fIheader\fR...]" 4 .IX Item "-x header[:header...]" A colon-separated list of additional header fields which should be treated as known header fields; these header fields will be passed through to \fBinews\fR without having \f(CW\*(C`X\-\*(C'\fR prepended. .Sp -Known header fields are: +By default, known header fields are: .Sp .Vb 10 \& Archive @@ -276,11 +304,11 @@ Known header fields are: .IX Item "-z header[:header...]" A colon-separated list of additional header fields which should be removed. .Sp -Removed header fields are: +By default, removed header fields are: .Sp .Vb 2 -\& X\-Trace \& X\-Complaints\-To +\& X\-Trace .Ve .SH "FILES" .IX Header "FILES" @@ -292,10 +320,9 @@ The Perl script itself used to feed an e The default database files which record previously seen message-IDs. .SH "HISTORY" .IX Header "HISTORY" -Written by Paul Vixie long ago and then hacked up by James Brister for -\&\s-1INN\s0 integration. -.PP -\&\f(CW$Id:\fR mailpost.in 10171 2017\-07\-22 14:01:37Z iulius $ +Written by Paul Vixie long ago and then hacked up by James Brister for \s-1INN\s0 +integration. Documentation improved by Julien Elie. .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fBactive\fR\|(5), \fBinews\fR\|(1), \fBinn.conf\fR\|(5), \fBnnrpd\fR\|(8), \fBuwildmat\fR\|(3). +\&\fBinews\fR\|(1), \fBinn.conf\fR\|(5), \fBlibinn_uwildmat\fR\|(3), \fBmoderators\fR\|(5), \fBnnrpd\fR\|(8), +\&\fBreaders.conf\fR\|(5). diff -Nurp inn-2.6.4/doc/man/makedbz.8 inn-2.6.5/doc/man/makedbz.8 --- inn-2.6.4/doc/man/makedbz.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/makedbz.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "MAKEDBZ 8" -.TH MAKEDBZ 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH MAKEDBZ 8 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -145,7 +145,7 @@ makedbz \- Rebuild dbz files \&\fBmakedbz\fR [\fB\-io\fR] [\fB\-f\fR \fIfilename\fR] [\fB\-s\fR \fIsize\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" -\&\fBmakedbz\fR rebuilds \fBdbz\fR\|(3) database. The default name of the text +\&\fBmakedbz\fR rebuilds \fIdbz\fR database. The default name of the text file is \fIpathdb\fR/history; to specify a different name, use the \fB\-f\fR flag. .SH "OPTIONS" .IX Header "OPTIONS" @@ -175,13 +175,11 @@ should be the estimated eventual size of of the old file.) .Sp For more information, see the discussion of \fBdbzfresh\fR and \fBdbzsize\fR -in \fBdbz\fR\|(3). +in \fBlibinn_dbz\fR\|(3). .SH "HISTORY" .IX Header "HISTORY" Written by Katsuhiro Kondou for InterNetNews. Converted to \&\s-1POD\s0 by Julien Elie. -.PP -\&\f(CW$Id:\fR makedbz.pod 9934 2015\-08\-28 19:28:56Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fBdbz\fR\|(3), \fBhistory\fR\|(5). +\&\fBhistory\fR\|(5), \fBlibinn_dbz\fR\|(3). diff -Nurp inn-2.6.4/doc/man/makehistory.8 inn-2.6.5/doc/man/makehistory.8 --- inn-2.6.4/doc/man/makehistory.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/makehistory.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "MAKEHISTORY 8" -.TH MAKEHISTORY 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH MAKEHISTORY 8 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -148,7 +148,7 @@ makehistory \- Initialize or rebuild INN .IX Header "DESCRIPTION" \&\fBmakehistory\fR rebuilds the \fBhistory\fR\|(5) text file, which contains a list of message-IDs of articles already seen by the server. It can also be used -to rebuild the overview database. Note that even though the \fBdbz\fR\|(3) indices +to rebuild the overview database. Note that even though the \fIdbz\fR indices for the \fIhistory\fR file are also rebuilt by \fBmakehistory\fR, it is useful to run \fBmakedbz\fR\|(8) after \fBmakehistory\fR\|(8) in order to improve the efficiency of the indices (\fBmakehistory\fR does not know how large to make the hash @@ -318,9 +318,7 @@ Where temporary files are written unless .IX Header "HISTORY" Originally written by Rich \f(CW$alz\fR for InterNetNews and updated by various other people since. -.PP -\&\f(CW$Id:\fR makehistory.pod 8534 2009\-06\-23 18:08:14Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fBactive\fR\|(5), \fBctlinnd\fR\|(8), \fBdbz\fR\|(3), \fBhistory\fR\|(5), \fBinn.conf\fR\|(5), \fBinnd\fR\|(8), +\&\fBactive\fR\|(5), \fBctlinnd\fR\|(8), \fBhistory\fR\|(5), \fBinn.conf\fR\|(5), \fBinnd\fR\|(8), \fBlibinn_dbz\fR\|(3), \&\fBmakedbz\fR\|(8), \fBovdb_init\fR\|(8), \fBoverchan\fR\|(8). diff -Nurp inn-2.6.4/doc/man/mod-active.8 inn-2.6.5/doc/man/mod-active.8 --- inn-2.6.4/doc/man/mod-active.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/mod-active.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "MOD-ACTIVE 8" -.TH MOD-ACTIVE 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH MOD-ACTIVE 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nurp inn-2.6.4/doc/man/moderators.5 inn-2.6.5/doc/man/moderators.5 --- inn-2.6.4/doc/man/moderators.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/moderators.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "MODERATORS 5" -.TH MODERATORS 5 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH MODERATORS 5 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -147,7 +147,7 @@ it is not passed off to \fBinnd\fR for n via e\-mail to the submission address for that newsgroup. The submission address is determined using this configuration file. .PP -The file \fIpathetc\fR/moderators is a list of associations between \fBuwildmat\fR\|(3) +The file \fIpathetc\fR/moderators is a list of associations between \fIuwildmat\fR patterns matching newsgroups and the submission address for those newsgroups. Blank lines and lines starting with a number sign (\f(CW\*(C`#\*(C'\fR) are ignored. All other lines should consist of two fields separated by a @@ -157,7 +157,7 @@ colon: \& :
.Ve .PP -The first field is a \fBuwildmat\fR\|(3) pattern matching the group or groups to +The first field is a \fIuwildmat\fR pattern matching the group or groups to which this line applies. The first matching line is used, so more specific patterns should be listed before general patterns. .PP @@ -217,8 +217,6 @@ pairs should therefore not be created. .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten in \&\s-1POD\s0 by Russ Allbery . -.PP -\&\f(CW$Id:\fR moderators.pod 9767 2014\-12\-07 21:13:43Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fBinn.conf\fR\|(5), \fBnnrpd\fR\|(8), \fBuwildmat\fR\|(3). +\&\fBinn.conf\fR\|(5), \fBlibinn_uwildmat\fR\|(3), \fBnnrpd\fR\|(8). diff -Nurp inn-2.6.4/doc/man/motd.news.5 inn-2.6.5/doc/man/motd.news.5 --- inn-2.6.4/doc/man/motd.news.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/motd.news.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "MOTD.NEWS 5" -.TH MOTD.NEWS 5 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH MOTD.NEWS 5 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -169,8 +169,6 @@ to news clients. .SH "HISTORY" .IX Header "HISTORY" Rewritten in \s-1POD\s0 by Russ Allbery for InterNetNews. -.PP -\&\f(CW$Id:\fR motd.news.pod 9767 2014\-12\-07 21:13:43Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBinn.conf\fR\|(5). diff -Nurp inn-2.6.4/doc/man/news.daily.8 inn-2.6.5/doc/man/news.daily.8 --- inn-2.6.4/doc/man/news.daily.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/news.daily.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "NEWS.DAILY 8" -.TH NEWS.DAILY 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH NEWS.DAILY 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -335,8 +335,6 @@ will then use this path as the directory \&\fBnews.daily\fR and this manual page were written by Landon Curt Noll and Rich \f(CW$alz\fR for InterNetNews. It was converted to \s-1POD\s0 by Julien Elie. -.PP -\&\f(CW$Id:\fR news.daily.pod 9628 2014\-05\-14 17:22:01Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBactive\fR\|(5), \fBctlinnd\fR\|(8), \fBexpire\fR\|(8), \fBexpire.ctl\fR\|(5), \fBexpireover\fR\|(8), \fBexpirerm\fR\|(8), \fBfastrm\fR\|(8), diff -Nurp inn-2.6.4/doc/man/news2mail.8 inn-2.6.5/doc/man/news2mail.8 --- inn-2.6.4/doc/man/news2mail.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/news2mail.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "NEWS2MAIL 8" -.TH NEWS2MAIL 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH NEWS2MAIL 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -212,8 +212,6 @@ as for the envelope-from address (which \&\fBnews2mail\fR was written by Brian Kantor in 1998. This man page was written by James Brister and converted to \s-1POD\s0 by Julien Elie. The third optional field in \fInews2mail.cf\fR was added by D.\ Stussy in 2008. -.PP -\&\f(CW$Id:\fR news2mail.pod 8199 2008\-11\-30 13:30:47Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBinnd\fR\|(8), \fBnewsfeeds\fR\|(5). diff -Nurp inn-2.6.4/doc/man/newsfeeds.5 inn-2.6.5/doc/man/newsfeeds.5 --- inn-2.6.4/doc/man/newsfeeds.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/newsfeeds.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,13 +133,62 @@ .\" ======================================================================== .\" .IX Title "NEWSFEEDS 5" -.TH NEWSFEEDS 5 "2018-05-14" "INN 2.6.4" "InterNetNews Documentation" +.TH NEWSFEEDS 5 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" newsfeeds \- Determine where Usenet articles are sent +.SH "IN A NUTSHELL" +.IX Header "IN A NUTSHELL" +The \fInewsfeeds\fR file configures what \fBinnd\fR does with incoming accepted +articles. +.PP +A minimalist \fInewsfeeds\fR file which parameters an outgoing \s-1NNTP\s0 feed to +\&\f(CW\*(C`news.server.com\*(C'\fR, using path identity \f(CW\*(C`server\*(C'\fR (as it appears in Path +header fields), of all the articles you receive is: +.PP +.Vb 2 +\& # Mandatory line, with no exclusion patterns defined. +\& ME::: +\& +\& # A real\-time feed through innfeed of all your articles. +\& news.server.com/server\e +\& :*\e +\& :Tm:innfeed! +\& +\& # The channel feed entry for innfeed. +\& # Change "/usr/lib/news/bin" to the directory path +\& # of the innfeed program. +\& innfeed!:!*:Tc,Wnm*:/usr/lib/news/bin/innfeed +.Ve +.PP +In order to find an external feed, you can ask in the news.admin.peering +newsgroup. Several news administrators will certainly respond and gracefully +provide you with a news feed. +.PP +Other entries may be added in \fInewsfeeds\fR depending on your needs. See the +examples below and also in the \fBarchive\fR\|(8), \fBcontrolchan\fR\|(8), \fBnews2mail\fR\|(8), +\&\fBninpaths\fR\|(8) and \fBperl\-nocem\fR\|(8) man pages for the most widely used. +.PP +If you exclude local hierarchies or newsgroups from the feed, make sure to add +\&\f(CW\*(C`!control,!control.*\*(C'\fR so that cancel articles or any kind of control articles +related to excluded hierarchies or newsgroups are not propagated to the remote +peer. Its \fInewsfeeds\fR entry then looks like: +.PP +.Vb 3 +\& news.server.com/server\e +\& :*,!local.*,@*bina*,!control,!control.*\e +\& :Tm:innfeed! +.Ve +.PP +After any changes, run \f(CW\*(C`inncheck\*(C'\fR to perform basic syntax checks, and reload +this configuration file with the following command: +.PP +.Vb 1 +\& ctlinnd reload newsfeeds \*(Aqnew peer\*(Aq +.Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The file \fIpathetc\fR/newsfeeds specifies how incoming articles should be @@ -223,7 +272,7 @@ significant in site names. The comma-separated \fIpattern\fR specifies which groups to send to the site; it is interpreted to build a \*(L"subscription list\*(R" for the site. The default subscription is to get all groups carried by the server. It is a -\&\fBuwildmat\fR\|(3) pattern supporting poison (\f(CW\*(C`@\*(C'\fR) wildcards; see the \fBuwildmat\fR\|(3) +\&\fIuwildmat\fR pattern supporting poison (\f(CW\*(C`@\*(C'\fR) wildcards; see the libinn_uwildmat man page for full details on the pattern matching language. \fIpattern\fR will be matched against every newsgroup carried by the server and all newsgroups that match will be added to the subscription list for the site. @@ -456,7 +505,7 @@ If a site is being fed by a file, channe server will normally start trying to write the information as soon as possible. Providing a buffer may give better system performance and help smooth out overall load if a large batch of news comes in. The value of -the this flag should be two numbers separated by a slash. \fIhigh\fR +this flag should be two numbers separated by a slash. \fIhigh\fR specifies the point at which the server can start draining the feed's I/O buffer, and \fIlow\fR specifies when to stop writing and begin buffering again; the units are bytes. The default is to do no buffering, sending @@ -522,15 +571,16 @@ in moderated groups are sent; if \fIstat unmoderated groups are sent. .IP "\fBO\fR \fIoriginator\fR" 4 .IX Item "O originator" -If this flag is specified, an article will only be sent to this site if it -contains an Injection-Info: header (or an X\-Trace: header if no -Injection-Info: header is found) and the first field of this header matches -\&\fIoriginator\fR. \fIoriginator\fR is a \fBuwildmat\fR\|(3) expression without commas -or a list of such expressions, separated by \f(CW\*(C`/\*(C'\fR. The article is never -sent if the first character of the pattern begins with \f(CW\*(C`@\*(C'\fR and the rest -of the pattern matches. One use of this flag is to restrict the feed to -locally generated posts by using an \fIoriginator\fR pattern that matches -the Injection-Info: header added by the local server. +If this flag is specified, an article will only be sent to this site +if it contains an Injection-Info header field (or an X\-Trace header +field if no Injection-Info header field is found) and the first +field of this header field matches \fIoriginator\fR. \fIoriginator\fR is a +\&\fIuwildmat\fR expression without commas or a list of such expressions, +separated by \f(CW\*(C`/\*(C'\fR. The article is never sent if the first character +of the pattern begins with \f(CW\*(C`@\*(C'\fR and the rest of the pattern matches. +One use of this flag is to restrict the feed to locally generated posts +by using an \fIoriginator\fR pattern that matches the Injection-Info +header field added by the local server. .IP "\fBP\fR \fIpriority\fR" 4 .IX Item "P priority" The nice priority that this channel or program feed should receive. This @@ -923,18 +973,17 @@ entry for \fBcontrolchan\fR\|(8). Make .PP .Vb 3 \& controlchan!\e -\& :!*,control,control.*,!control.cancel/!collabra\-internal\e +\& :!*,control,control.*,!control.cancel\e \& :AC,Tc,Wnsm:/controlchan .Ve .PP This program only wants information about articles posted to a control newsgroup other than control.cancel, which due to the sorting of control messages described in \fBinnd\fR\|(8) will send it all control messages except for -cancel messages. In this case, we also exclude any article with a -distribution of \f(CW\*(C`collabra\-internal\*(C'\fR. \fBcontrolchan\fR gets the storage -\&\s-1API\s0 token, the name of the sending site (for processing old-style ihave -and sendme control messages, be sure to read about \fIlogipaddr\fR in -\&\fBcontrolchan\fR\|(8)), and the message \s-1ID\s0 for each article. +cancel messages. \fBcontrolchan\fR gets the storage \s-1API\s0 token, the name of the +sending site (for processing old-style ihave and sendme control messages, +be sure to read about \fIlogipaddr\fR in \fBcontrolchan\fR\|(8)), and the message \s-1ID\s0 for +each article. .PP For many other examples, including examples of the special \f(CW\*(C`ME\*(C'\fR site entry, see the example \fInewsfeeds\fR file distributed with \s-1INN.\s0 Also see the @@ -944,9 +993,7 @@ the standard newsfeeds entries used by m .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Reformatted and rewritten in \s-1POD\s0 by Russ Allbery . -.PP -\&\f(CW$Id:\fR newsfeeds.pod 10283 2018\-05\-14 12:43:05Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBactive\fR\|(5), \fBbuffchan\fR\|(8), \fBcontrolchan\fR\|(8), \fBctlinnd\fR\|(8), \fBinn.conf\fR\|(5), \fBinnd\fR\|(8), -\&\fBinnfeed\fR\|(8), \fBinnxmit\fR\|(8), \fBnntpsend\fR\|(8), \fBuwildmat\fR\|(3). +\&\fBinnfeed\fR\|(8), \fBinnxmit\fR\|(8), \fBlibinn_uwildmat\fR\|(3), \fBnntpsend\fR\|(8). diff -Nurp inn-2.6.4/doc/man/newsgroups.5 inn-2.6.5/doc/man/newsgroups.5 --- inn-2.6.4/doc/man/newsgroups.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/newsgroups.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "NEWSGROUPS 5" -.TH NEWSGROUPS 5 "2016-11-06" "INN 2.6.4" "InterNetNews Documentation" +.TH NEWSGROUPS 5 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -261,8 +261,6 @@ the policies by which the \fInewsgroups\ is maintained; they were originally written by David Lawrence and updated by Russ Allbery . -.PP -\&\f(CW$Id:\fR newsgroups.pod 10097 2016\-11\-04 22:19:07Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBactive\fR\|(5), \fBcontrolchan\fR\|(8), \fBctlinnd\fR\|(8), \fBgetlist\fR\|(1), \fBnnrpd\fR\|(8). diff -Nurp inn-2.6.4/doc/man/newslog.5 inn-2.6.5/doc/man/newslog.5 --- inn-2.6.4/doc/man/newslog.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/newslog.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "NEWSLOG 5" -.TH NEWSLOG 5 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH NEWSLOG 5 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -382,11 +382,9 @@ They can be used by programs which \s-1P Written by Landon Curt Noll and Rich \f(CW$alz\fR for InterNetNews. Rewritten and converted to \s-1POD\s0 by Julien Elie. -.PP -\&\f(CW$Id:\fR newslog.pod 9903 2015\-06\-20 17:20:46Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fBcontrol.ctl\fR\|(5), \fBctlinnd\fR\|(8), \fBexpire\fR\|(8), \fBexpireover\fR\|(8), \fBexpirerm\fR\|(8), \fBinn.conf\fR\|(5), -\&\fBinnd\fR\|(8), \fBinnfeed.conf\fR\|(5), \fBinnreport\fR\|(8), \fBinnreport.conf\fR\|(5), \fBnews.daily\fR\|(8), -\&\fBnnrpd\fR\|(8), \fBnntpsend\fR\|(8), \fBscanlogs\fR\|(8), \fBsend\-nntp\fR\|(8), \fBsend\-uucp\fR\|(8), \fBsyslog.conf\fR\|(5), -\&\fBtally.control\fR\|(8). +\&\fBcontrol.ctl\fR\|(5), \fBctlinnd\fR\|(8), \fBexpire\fR\|(8), \fBexpireover\fR\|(8), \fBexpirerm\fR\|(8), +\&\fBinn.conf\fR\|(5), \fBinnd\fR\|(8), \fBinnfeed.conf\fR\|(5), \fBinnreport\fR\|(8), \fBinnreport.conf\fR\|(5), +\&\fBnews.daily\fR\|(8), \fBnnrpd\fR\|(8), \fBnntpsend\fR\|(8), \fBscanlogs\fR\|(8), \fBsend\-ihave\fR\|(8), +\&\fBsend\-nntp\fR\|(8), \fBsend\-uucp\fR\|(8), \fBsyslog.conf\fR\|(5), \fBtally.control\fR\|(8). diff -Nurp inn-2.6.4/doc/man/ninpaths.8 inn-2.6.5/doc/man/ninpaths.8 --- inn-2.6.4/doc/man/ninpaths.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/ninpaths.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "NINPATHS 8" -.TH NINPATHS 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH NINPATHS 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -169,7 +169,7 @@ all steps that follow with the full path Do not change the name of the \f(CW\*(C`path\*(C'\fR subdirectory because it is used by \fBsendinpaths\fR. .IP "2." 4 -Set up a channel feed using an entry like: +Set up a channel feed using a \fInewsfeeds\fR entry like: .Sp .Vb 1 \& inpaths!:*:Tc,WP:/ninpaths \-p \-d /path/inpaths.%d @@ -302,8 +302,6 @@ program, which is posted to alt.sources The idea and some implementation details for \fBninpaths\fR come from the original \fBinpaths\fR program, but most of the code has been rewritten for clarity. This program is in the public domain. -.PP -\&\f(CW$Id:\fR ninpaths.pod 9383 2011\-12\-25 20:56:10Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBnewsfeeds\fR\|(5), \fBsendinpaths\fR\|(8). diff -Nurp inn-2.6.4/doc/man/nnrpd.8 inn-2.6.5/doc/man/nnrpd.8 --- inn-2.6.4/doc/man/nnrpd.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/nnrpd.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "NNRPD 8" -.TH NNRPD 8 "2020-11-22" "INN 2.6.4" "InterNetNews Documentation" +.TH NNRPD 8 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -177,6 +177,12 @@ When \fInnrpdloadlimit\fR in \fIinn.conf connections if the load average is greater than that value (typically \&\f(CW16\fR). \fBnnrpd\fR can also prevent high-volume posters from abusing your resources. See the discussion of exponential backoff in \fBinn.conf\fR\|(5). +.PP +\&\fBnnrpd\fR injects articles into the local server running \fBinnd\fR through a +\&\s-1UNIX\s0 domain socket, or an \s-1INET\s0 domain socket if not supported. If another +server should be used for injection, you can set it with the \fInnrpdposthost\fR +parameter in \fIinn.conf\fR. In case authentication credentials are requested +during the injection, \fBnnrpd\fR will use the \fIpasswd.nntp\fR file in \fIpathetc\fR. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-4\fR \fIaddress\fR" 4 @@ -325,9 +331,35 @@ You then have to set these \fIinn.conf\f \& tlskeyfile: /key.pem .Ve .PP -Note that unlike Apache's \fISSLCertificateFile\fR directive, \fItlscertfile\fR -should not contain a concatenation of certificates. Instead, if you have -a certificate authority root certificate, set \fItlscafile\fR to its path. +If you want to use a complete certificate chain, you can directly put +it in \fItlscertfile\fR (like Apache's \fISSLCertificateFile\fR directive). +Alternately, you can put a single certificate in \fItlscertfile\fR and use +\&\fItlscafile\fR for additional certificates needed to complete the chain, +like a separate authority root certificate. +.PP +More concretly, when using Let's\ Encrypt certificates, Certbot's +files can be installed as follows: +.PP +.Vb 3 +\& tlscapath: /etc/letsencrypt/live/news.server.com +\& tlscertfile: /etc/letsencrypt/live/news.server.com/fullchain.pem +\& tlskeyfile: /etc/letsencrypt/live/news.server.com/privkey.pem +.Ve +.PP +or: +.PP +.Vb 4 +\& tlscapath: /etc/letsencrypt/live/news.server.com +\& tlscafile: /etc/letsencrypt/live/news.server.com/chain.pem +\& tlscertfile: /etc/letsencrypt/live/news.server.com/cert.pem +\& tlskeyfile: /etc/letsencrypt/live/news.server.com/privkey.pem +.Ve +.PP +Make sure that the permission rights are properly set so that the +news user or the news group can read these directories and files +(typically, he should access \fI/etc/letsencrypt/live/news.server.com\fR and +\&\fI/etc/letsencrypt/archive/news.server.com\fR where the real keys are located, +and the private key should not be world-readable). .PP There are two common ways for a news client to negotiate a \s-1TLS\s0 connection: either via the use of a dedicated port (usually 563) @@ -389,9 +421,9 @@ Note that \s-1OVER\s0 should be used ins .IP "4." 4 A new command, \s-1XPAT\s0 \fIheader\fR \fImessage-ID\fR|\fIrange\fR \fIpattern\fR [\fIpattern\fR ...], is provided. The first argument is the case-insensitive -name of the header to be searched. The second argument is either an article -range or a single message-ID, as specified in \s-1RFC\s0\ 2980. The third -argument is a \fBuwildmat\fR\|(3)\-style pattern; if there are additional arguments, +name of the header field to be searched. The second argument is either an +article range or a single message-ID, as specified in \s-1RFC\s0\ 2980. The third +argument is a \fIuwildmat\fR\-style pattern; if there are additional arguments, they are joined together separated by a single space to form the complete pattern. This command is similar to the \s-1XHDR\s0 command. It returns a \f(CW221\fR response code, followed by the text response of all article numbers that @@ -411,8 +443,7 @@ Written by Rich \f(CW$alz\fR and Rich in January, 1993. Exponential backoff (for posting) added by Dave Hayes in Febuary 1998. -.PP -\&\f(CW$Id:\fR nnrpd.pod 10373 2020\-05\-21 21:00:33Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fBctlinnd\fR\|(8), \fBinnd\fR\|(8), \fBinn.conf\fR\|(5), \fBreaders.conf\fR\|(5), \fBsignal\fR\|(2), \fBuwildmat\fR\|(3). +\&\fBctlinnd\fR\|(8), \fBinnd\fR\|(8), \fBinn.conf\fR\|(5), \fBlibinn_uwildmat\fR\|(3), \fBnnrpd.track\fR\|(5), +\&\fBpasswd.nntp\fR\|(5), \fBreaders.conf\fR\|(5), \fBsignal\fR\|(2). diff -Nurp inn-2.6.4/doc/man/nnrpd.track.5 inn-2.6.5/doc/man/nnrpd.track.5 --- inn-2.6.4/doc/man/nnrpd.track.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/nnrpd.track.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,55 +1,179 @@ -.\" $Revision: 10179 $ -.TH NNRPD.TRACK 5 -.SH NAME -nnrpd.track \- file to specify hosts to be tracked by nnrpd. -.SH DESCRIPTION -This file, which is located in -.I , -specifies which hosts are to have their activities recorded during an -.I nnrpd -session. -The -.I nnrpd -server reads it when first spawned by -.IR innd , -provided -.I readertrack -in -.I inn.conf -is true; otherwise this file is not used. -.PP -Entries consist of one host specification per line, each line having two -fields, separated by a colon: -.RS +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW .nf - -host:identity +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R .fi -.RE +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "NNRPD.TRACK 5" +.TH NNRPD.TRACK 5 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +nnrpd.track \- Specify hosts to be tracked by nnrpd +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +This file, which is located in \fIpathetc\fR, specifies which hosts are to +have their activities recorded during an \fBnnrpd\fR session. The \fBnnrpd\fR +server reads it when first spawned by \fBinnd\fR, provided \fIreadertrack\fR +in \fIinn.conf\fR is true; otherwise this file is not used. .PP -The first field is either one of the FQDNs of a host, or a domain name (in -the form *.domain.com). +Entries consist of one host specification per line, each line having +two fields, separated by a colon: +.PP +.Vb 1 +\& host:identity +.Ve +.PP +The first field is either one of the FQDNs of a host, or a domain name +(in the form \f(CW\*(C`*.domain.com\*(C'\fR). .PP The second field is simply a segment of text which may be used to -more easily identify the client, typically an e-mail address or other -identifying mark. +more easily identify the client, typically an e\-mail address or +other identifying mark. Each post of tracked hosts will have an +entry associated with \fIidentity\fR in the log message recorded to the +\&\fIpathlog\fR/tracklogs directory, and every posted article will be saved +in the \fIpathlog\fR/trackposts directory. .PP -For example: -.RS -.nf - -nasty.foo.com:nasty@foo.com -*.bar.com:VeryNastyClient -.fi -.RE +An example of \fInnrpd.track\fR file is: .PP +.Vb 2 +\& nasty.foo.com:nasty@foo.com +\& *.bar.com:VeryNastyClient +.Ve +.SH "HISTORY" +.IX Header "HISTORY" Written by Steve Carrie for InterNetNews. -.de R$ -This is revision \\$3, dated \\$4. -.. -.R$ $Id: nnrpd.track.5 10179 2017-09-18 20:13:48Z iulius $ +Rewritten into \s-1POD\s0 by Julien Elie. .SH "SEE ALSO" -inn.conf(5), -innd(8), -newsfeeds(5), -nnrpd(8), +.IX Header "SEE ALSO" +\&\fBinn.conf\fR\|(5), \fBnnrpd\fR\|(8). diff -Nurp inn-2.6.4/doc/man/nntpget.1 inn-2.6.5/doc/man/nntpget.1 --- inn-2.6.4/doc/man/nntpget.1 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/nntpget.1 2022-02-18 20:36:57.000000000 +0100 @@ -1,90 +1,217 @@ -.\" $Revision: 10283 $ -.TH NNTPGET 1 -.SH NAME -nntpget \- get Usenet articles from a remote NNTP server -.SH SYNOPSIS -.I nntpget -[ -.BI \-d " dist" -] -[ -.BI \-f " file" -] -[ -.BI \-n " newsgroups" -] -[ -.BI \-t " timestring" -] -[ -.B \-o -] -[ -.BI \-u " file" -] -[ -.B \-v -] -.I host -.SH DESCRIPTION -.I Nntpget -connects to the NNTP server at the specified -.I host -and retrieves articles from it. The Message-ID's of the desired articles -are read from standard input. The articles are sent to standard output. -.SH OPTIONS -.TP -.B \-o -The ``\-o'' option may be used only if the command is executed on the -host where the -.IR innd (8) -server is running. -If this option is used, -.I nntpget -connects to the specified remote -.I host -to retrieve articles. -Any article not present in the local -.I history -database is then fetched from the remote site and offered to the local server. -.TP -.B \-v -If the ``\fB\-v\fP'' option is used with the ``\fB\-o\fP'' option then the -Message-ID -of each article will be sent to standard output as it is processed. -.TP -.B \-f -The list of article Message-ID's is normally read from standard input. -If the ``\fB\-f\fP'' option is used, then a ``newnews'' command is used -to retrieve -all articles newer then the modification date of the specified -.IR file . -.TP -.B \-u -The ``\fB\-u\fP'' option is like ``\fB\-f\fP'' except that if the transfer -succeeds, the file will be updated with a statistics line, modifying its -timestamp so that it can be used in later invocations. -.TP -.B \-t -If the ``\-t'' option is used, then the specified -.I timestring -is used as the time and date parameter to the ``newnews'' command. -.TP -.B \-n -If either the ``\fB\-u\fP'' or ``\fB\-f\fP'' options are used, then -the ``\fB\-n\fP'' option -may be used to specify a newsgroup list. The default is ``*''. -.TP -.B \-d -The ``\fB\-d\fP'' option may be -used to specify a distribution list when using the ``\fB\-u\fP'' -or ``\fB\-f\fP'' options. -The default is no distribution list. -.SH HISTORY -Written by Rich $alz for InterNetNews. -.de R$ -This is revision \\$3, dated \\$4. +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp .. -.R$ $Id: nntpget.1 10283 2018-05-14 12:43:05Z iulius $ +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "NNTPGET 1" +.TH NNTPGET 1 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +nntpget \- Get Usenet articles from a remote NNTP server +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBnntpget\fR [\fB\-ov\fR] [\fB\-d\fR \fIdist\fR] [\fB\-f\fR \fIfile\fR] [\fB\-n\fR \fInewsgroups\fR] +[\fB\-t\fR \fItimestring\fR] [\fB\-u\fR \fIfile\fR] \fIhost\fR +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBnntpget\fR connects to the \s-1NNTP\s0 server at the specified \fIhost\fR and retrieves +articles from it. The Message-IDs of the desired articles are read from +standard input. The articles are sent to standard output. +.PP +Instead of reading Message-IDs from standard output, the \fB\-d\fR, \fB\-f\fR, +\&\fB\-n\fR, \fB\-t\fR and \fB\-u\fR options make use of the \f(CW\*(C`NEWNEWS\*(C'\fR command, which +may not be available on the remote server. Only one of the \fB\-f\fR, \fB\-t\fR +or \fB\-u\fR option may be given at the same time; \fB\-d\fR and \fB\-n\fR can be +specified only if one of the other three options is in use. +.PP +If authentication credentials are present for the remote server in the +\&\fIpasswd.nntp\fR file in \fIpathetc\fR, then \fBnntpget\fR will use them to +authenticate. +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-d\fR \fIdist\fR" 4 +.IX Item "-d dist" +This option may be used to specify a distribution list when using the \fB\-f\fR, +\&\fB\-t\fR or \fB\-u\fR options. The default is no distribution list. +.IP "\fB\-f\fR \fIfile\fR" 4 +.IX Item "-f file" +The list of article Message-IDs is normally read from standard input. +If this option is used, then a \f(CW\*(C`NEWNEWS\*(C'\fR command is used to retrieve all +articles newer than the modification date of the specified \fIfile\fR. +.IP "\fB\-n\fR \fInewsgroups\fR" 4 +.IX Item "-n newsgroups" +If either the \fB\-f\fR, \fB\-t\fR or \fB\-u\fR options are used, then this option may be +used to limit the responses to only the newsgroups (if any) whose names match +the list. The default is \f(CW\*(C`*\*(C'\fR, that is to say all newsgroups are wanted. +.Sp +The \fInewsgroups\fR list can contain several patterns and wildmat characters. +For instance \f(CW\*(C`misc.*,!*.test\*(C'\fR is a valid list that will be given to the +\&\f(CW\*(C`NEWNEWS\*(C'\fR command. +.IP "\fB\-o\fR" 4 +.IX Item "-o" +This option may be used only if the command is executed on the host where the +\&\fBinnd\fR server is running. If this option is used, \fBnntpget\fR connects to +the specified remote \fIhost\fR to retrieve articles. Any article not present +in the local \fIhistory\fR database is then fetched from the remote site and +offered to the local server. +.Sp +Articles are not written to standard output. Only processed Message-IDs are, +if the \fB\-v\fR option is also used. +.IP "\fB\-t\fR \fItimestring\fR" 4 +.IX Item "-t timestring" +If this option is used, then the specified \fItimestring\fR is used as the time +and date parameter to the \f(CW\*(C`NEWNEWS\*(C'\fR command. Only the articles arrived +in the remote server since that timestamp are retrieved. +.Sp +The \fItimestring\fR is specified as \f(CW\*(C`yyyymmdd hhmmss GMT\*(C'\fR where \f(CW\*(C`yyyy\*(C'\fR is the +year, \f(CW\*(C`mm\*(C'\fR the month, \f(CW\*(C`dd\*(C'\fR the day of the month, \f(CW\*(C`hh\*(C'\fR the hours in the +24\-hour clock, \f(CW\*(C`mm\*(C'\fR the minutes, and \f(CW\*(C`ss\*(C'\fR the seconds. The token \f(CW\*(C`GMT\*(C'\fR +specifies that the date and time are given in Coordinated Universal Time. +.IP "\fB\-u\fR \fIfile\fR" 4 +.IX Item "-u file" +This option is like \fB\-f\fR except that if the transfer succeeds, the file +will be updated with a statistics line, modifying its timestamp so that it +can be used in later invocations. +.IP "\fB\-v\fR" 4 +.IX Item "-v" +If this option is used with \fB\-o\fR, then the Message-ID of each article will +be sent to standard output as it is processed. +.SH "HISTORY" +.IX Header "HISTORY" +Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten into +\&\s-1POD\s0 by Julien Elie. .SH "SEE ALSO" -innd(8). +.IX Header "SEE ALSO" +\&\fBinnd\fR\|(8), \fBpasswd.nntp\fR\|(5). diff -Nurp inn-2.6.4/doc/man/nntpsend.8 inn-2.6.5/doc/man/nntpsend.8 --- inn-2.6.4/doc/man/nntpsend.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/nntpsend.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "NNTPSEND 8" -.TH NNTPSEND 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH NNTPSEND 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -248,8 +248,6 @@ defaults to \f(CW180\fR. .IX Header "HISTORY" Written by Landon Curt Noll and Rich \f(CW$alz\fR for InterNetNews. Converted to \s-1POD\s0 by Julien Elie. -.PP -\&\f(CW$Id:\fR nntpsend.pod 9588 2013\-12\-19 17:46:41Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBinn.conf\fR\|(5), \fBinnxmit\fR\|(1), \fBnewsfeeds\fR\|(5), \fBnntpsend.ctl\fR\|(5), \fBshlock\fR\|(1), diff -Nurp inn-2.6.4/doc/man/nntpsend.ctl.5 inn-2.6.5/doc/man/nntpsend.ctl.5 --- inn-2.6.4/doc/man/nntpsend.ctl.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/nntpsend.ctl.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "NNTPSEND.CTL 5" -.TH NNTPSEND.CTL 5 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH NNTPSEND.CTL 5 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -168,8 +168,6 @@ See \fBnntpsend\fR\|(8) for an example o .IX Header "HISTORY" Written by Landon Curt Noll for InterNetNews. Converted to \&\s-1POD\s0 by Julien Elie. -.PP -\&\f(CW$Id:\fR nntpsend.ctl.pod 9071 2010\-05\-31 17:41:32Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBinnxmit\fR\|(1), \fBnewsfeeds\fR\|(5), \fBnntpsend\fR\|(8), \fBshrinkfile\fR\|(1). diff -Nurp inn-2.6.4/doc/man/ovdb.5 inn-2.6.5/doc/man/ovdb.5 --- inn-2.6.4/doc/man/ovdb.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/ovdb.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "OVDB 5" -.TH OVDB 5 "2021-01-21" "INN 2.6.4" "InterNetNews Documentation" +.TH OVDB 5 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -466,8 +466,6 @@ legacy \fIov3.c\fR file. .SH "HISTORY" .IX Header "HISTORY" Written by Heath Kehoe for InterNetNews. -.PP -\&\f(CW$Id:\fR ovdb.pod 10525 2021\-01\-20 11:51:15Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBinn.conf\fR\|(5), \fBinnd\fR\|(8), \fBmakehistory\fR\|(8), \fBnnrpd\fR\|(8), \fBovdb_init\fR\|(8), diff -Nurp inn-2.6.4/doc/man/ovdb_init.8 inn-2.6.5/doc/man/ovdb_init.8 --- inn-2.6.4/doc/man/ovdb_init.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/ovdb_init.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "OVDB_INIT 8" -.TH OVDB_INIT 8 "2018-03-18" "INN 2.6.4" "InterNetNews Documentation" +.TH OVDB_INIT 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -225,8 +225,6 @@ Note that the \fB\-u\fR option can be us .SH "HISTORY" .IX Header "HISTORY" Written by Heath Kehoe for InterNetNews. -.PP -\&\f(CW$Id:\fR ovdb_init.pod 10241 2018\-02\-04 15:38:19Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBovdb\fR\|(5), \fBmakehistory\fR\|(8), \fBrc.news\fR\|(8). diff -Nurp inn-2.6.4/doc/man/ovdb_monitor.8 inn-2.6.5/doc/man/ovdb_monitor.8 --- inn-2.6.4/doc/man/ovdb_monitor.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/ovdb_monitor.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "OVDB_MONITOR 8" -.TH OVDB_MONITOR 8 "2018-03-18" "INN 2.6.4" "InterNetNews Documentation" +.TH OVDB_MONITOR 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -162,8 +162,6 @@ automatically takes care of stopping \fB .SH "HISTORY" .IX Header "HISTORY" Written by Heath Kehoe for InterNetNews. -.PP -\&\f(CW$Id:\fR ovdb_monitor.pod 10241 2018\-02\-04 15:38:19Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBovdb\fR\|(5), \fBovdb_init\fR\|(8), \fBrc.news\fR\|(8). diff -Nurp inn-2.6.4/doc/man/ovdb_server.8 inn-2.6.5/doc/man/ovdb_server.8 --- inn-2.6.4/doc/man/ovdb_server.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/ovdb_server.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "OVDB_SERVER 8" -.TH OVDB_SERVER 8 "2018-01-28" "INN 2.6.4" "InterNetNews Documentation" +.TH OVDB_SERVER 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -160,8 +160,6 @@ exiting itself. .SH "HISTORY" .IX Header "HISTORY" Written by Heath Kehoe for InterNetNews. -.PP -\&\f(CW$Id:\fR ovdb_server.pod 10191 2017\-11\-25 21:11:53Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBovdb\fR\|(5), \fBovdb_init\fR\|(8), \fBrc.news\fR\|(8). diff -Nurp inn-2.6.4/doc/man/ovdb_stat.8 inn-2.6.5/doc/man/ovdb_stat.8 --- inn-2.6.4/doc/man/ovdb_stat.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/ovdb_stat.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "OVDB_STAT 8" -.TH OVDB_STAT 8 "2018-03-18" "INN 2.6.4" "InterNetNews Documentation" +.TH OVDB_STAT 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -210,8 +210,6 @@ because it may leave stale locks in the .SH "HISTORY" .IX Header "HISTORY" Written by Heath Kehoe for InterNetNews. -.PP -\&\f(CW$Id:\fR ovdb_stat.pod 10241 2018\-02\-04 15:38:19Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBovdb\fR\|(5). diff -Nurp inn-2.6.4/doc/man/overchan.8 inn-2.6.5/doc/man/overchan.8 --- inn-2.6.4/doc/man/overchan.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/overchan.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "OVERCHAN 8" -.TH OVERCHAN 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH OVERCHAN 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -182,8 +182,6 @@ single space. Written by Rob Robertson and Rich \f(CW$alz\fR for InterNetNews. Man page rewritten in \s-1POD\s0 by Russ Allbery . -.PP -\&\f(CW$Id:\fR overchan.pod 9767 2014\-12\-07 21:13:43Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBinn.conf\fR\|(5), \fBinnd\fR\|(8), \fBnewsfeeds\fR\|(5) diff -Nurp inn-2.6.4/doc/man/passwd.nntp.5 inn-2.6.5/doc/man/passwd.nntp.5 --- inn-2.6.4/doc/man/passwd.nntp.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/passwd.nntp.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "PASSWD.NNTP 5" -.TH PASSWD.NNTP 5 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH PASSWD.NNTP 5 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -144,7 +144,7 @@ passwd.nntp \- Passwords for connecting .IX Header "DESCRIPTION" The file \fIpathetc\fR/passwd.nntp contains host / name / password triplets for use when authenticating client programs to \s-1NNTP\s0 servers. -This file is normally interpreted by \fBNNTPsendpassword()\fR in \fBlibinn\fR\|(3). +This file is normally interpreted by \f(CW\*(C`NNTPsendpassword()\*(C'\fR in \fBlibinn\fR\|(3). Blank lines and lines beginning with a number sign (\f(CW\*(C`#\*(C'\fR) are ignored. All other lines should consist of three or four fields separated by colons: @@ -172,18 +172,19 @@ are described in \s-1RFC\s0\ 4643.) .PP For example: .PP -.Vb 3 -\& ## UUNET needs a password, MIT doesn\*(Aqt. -\& mit.edu:bbn::authinfo +.Vb 2 +\& mit.edu:bbn:mypasswd \& uunet.uu.net:bbn:yoyoma:authinfo .Ve .PP This file should not be world-readable. +.PP +\&\fBactsync\fR, \fBgetlist\fR, \fBinews\fR, \fBinnxbatch\fR, \fBinnxmit\fR, \fBnnrpd\fR, +\&\fBnntpget\fR and \fBrnews\fR make use of \fIpassd.nntp\fR when needing to connect +to a remote server. .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. -.PP -\&\f(CW$Id:\fR passwd.nntp.pod 8821 2009\-11\-20 17:32:37Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBinn.conf\fR\|(5), \fBinnd\fR\|(8), \fBlibinn\fR\|(3). diff -Nurp inn-2.6.4/doc/man/perl-nocem.8 inn-2.6.5/doc/man/perl-nocem.8 --- inn-2.6.4/doc/man/perl-nocem.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/perl-nocem.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "PERL-NOCEM 8" -.TH PERL-NOCEM 8 "2020-11-22" "INN 2.6.4" "InterNetNews Documentation" +.TH PERL-NOCEM 8 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -142,7 +142,7 @@ perl\-nocem \- A NoCeM\-on\-spool implementation for INN\ 2.x .SH "SYNOPSIS" .IX Header "SYNOPSIS" -perl-nocem +\&\fBperl-nocem\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" NoCeM, which is pronounced \fINo See 'Em\fR, is a protocol enabling @@ -162,32 +162,38 @@ on the criteria they use. .PP Processing NoCeM notices is easy to set up: .IP "1." 4 -Import the keys of the NoCeM issuers you trust in order to check -the authenticity of their notices. You can do: +If not already done, install GnuPG, or an equivalent implementation of the +OpenPGP standard, to be able to verify the signature of NoCeM notices. +It will provide the \fBgpg\fR and \fBgpgv\fR programs. If GnuPG was already +installed when \s-1INN\s0 was configured, then the paths to these programs were taken +into account. Otherwise, you have to set the \f(CW$gpg\fR and \f(CW$gpgv\fR variables +in \fIpathlib\fR/perl/INN/Config.pm to the paths to these programs. +.Sp +All still active NoCeM issuers use rather modern \s-1PGP\s0 keys accepted by both +GnuPG 1.x and 2.x versions. It is no longer needed to explicitly use \fBgpg1\fR +to process NoCeM notices. +.IP "2." 4 +Import the keys of the NoCeM issuers you trust in order to check the +authenticity of their notices. You can run the following command: .Sp .Vb 4 -\& gpg1 \-\-no\-default\-keyring \-\-primary\-keyring /pgp/ncmring.gpg \e -\& \-\-no\-options \-\-allow\-non\-selfsigned\-uid \-\-no\-permission\-warning \e -\& \-\-batch \-\-import +\& gpg \-\-no\-default\-keyring \-\-allow\-non\-selfsigned\-uid \e +\& \-\-primary\-keyring /pgp/ncmring.gpg \-\-no\-options \e +\& \-\-no\-permission\-warning \-\-batch \-\-import \& chmod 644 /pgp/ncmring.gpg .Ve .Sp -where is the value of the \fIpathetc\fR parameter set in -\&\fIinn.conf\fR and the file containing the key(s) to import. -The keyring must be located in /pgp/ncmring.gpg; you only -have to create the directory /pgp before using \fBgpg\fR (it will -automatically generate the \fIncmring.gpg\fR file) and make sure the news -user can read this file, once generated. -.Sp -As a few NoCeM issuers are still using old PGP-generated keys, you -may have to use \fBgpg1\fR with various legacy options in command-line -(like in the example above) instead of more recent versions of \fBgpg\fR -that no longer accept such keys. -.Sp -The keys of NoCeM issuers can be found in the web site of \fIThe NoCeM Registry\fR: -. You can even -download there a unique file which contains all the keys. -.IP "2." 4 +where is the value of the \fIpathetc\fR parameter set in \fIinn.conf\fR +and the file containing the key(s) to import. The keyring must +be located in \fI/pgp/ncmring.gpg\fR; you only have to create the +directory \fI/pgp\fR before using \fBgpg\fR (it will automatically +generate the \fIncmring.gpg\fR file) and make sure the news user can read this +file, once generated. +.Sp +The keys of NoCeM issuers can be found in the web site of \fIThe NoCeM +Registry\fR: . +You can even download there a unique file which contains all the keys. +.IP "3." 4 Create a \fInocem.ctl\fR config file in \fIpathetc\fR indicating the NoCeM issuers and notices you want to follow. This permission file contains lines like: .Sp @@ -197,15 +203,19 @@ and notices you want to follow. This pe .Ve .Sp This will remove all articles for which the issuer (first part of the line, -before the colon \f(CW\*(C`:\*(C'\fR) has issued NoCeM notices corresponding to the -criteria specified after the colon. -.Sp -You will also find information about that on the web site of -\&\fIThe NoCeM Registry\fR. -.IP "3." 4 +before the colon \f(CW\*(C`:\*(C'\fR) has issued NoCeM notices corresponding to the criteria +specified after the colon. Usually, you just keep the lines corresponding to +the keys previously installed. +.Sp +You will also find information about that on the web site of \fIThe NoCeM +Registry\fR. Note that \s-1INN\s0 is shipped with an up-to-date \fInocem.ctl\fR file +already configured with the current NoCeM issuers. (Only the keys installed +at the previous step are not included, so as to leave you the choice of whom +to trust, and download the most recent ones, in case they have changed.) +.IP "4." 4 Add to the \fInewsfeeds\fR file an entry like this one in order to feed \&\fBperl-nocem\fR the NoCeM notices posted to alt.nocem.misc and -news.lists.filters: +news.lists.filters, the usual groups where notices are sent: .Sp .Vb 3 \& nocem!\e @@ -213,13 +223,14 @@ news.lists.filters: \& :Tc,Wf,Ap:/perl\-nocem .Ve .Sp -with the correct path to \fBperl-nocem\fR, located in . Then, reload -the \fInewsfeeds\fR file (\f(CW\*(C`ctlinnd reload newsfeeds \*(AqNoCeM channel feed\*(Aq\*(C'\fR). +with the correct path to \fBperl-nocem\fR, located in . Then, run +\&\f(CW\*(C`inncheck\*(C'\fR to ensure the syntax of the modified \fInewsfeeds\fR file is correct, +and reload it (via \f(CW\*(C`ctlinnd reload newsfeeds \*(AqNoCeM channel feed\*(Aq\*(C'\fR). .Sp Note that you should at least carry news.lists.filters on your news server (or other newsgroups where NoCeM notices are sent) if you wish to process them. -.IP "4." 4 +.IP "5." 4 Everything should now work. However, do not hesitate to manually test \&\fBperl-nocem\fR with a NoCeM notice, using: .Sp @@ -248,11 +259,11 @@ The configuration file which specifies t The keyring which contains the public keys of trusted NoCeM issuers. .SH "BUGS" .IX Header "BUGS" -The Subject: header is not checked for the @@NCM string and there is no -check for the presence of the References: header. +The Subject header field body is not checked for the \f(CW@@NCM\fR string and +there is no check for the presence of the References header field. .PP -The Newsgroups: pseudo header is not checked, but this can be done in -\&\fBlocal_want_cancel_id()\fR. +The Newsgroups pseudo header field body is not checked, but this can +be done in \f(CW\*(C`local_want_cancel_id()\*(C'\fR. .PP The Hierarchies: header is ignored. .SH "HISTORY" @@ -260,8 +271,6 @@ The Hierarchies: header is ignored. Copyright 2000 by Miquel van Smoorenburg . .PP Copyright 2001 by Marco d'Itri . -.PP -\&\f(CW$Id:\fR perl\-nocem.in 10399 2020\-11\-12 20:24:35Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBgpg\fR\|(1), \fBgpgv\fR\|(1), \fBgrephistory\fR\|(1), \fBinn.conf\fR\|(5), \fBnewsfeeds\fR\|(5), \fBpgp\fR\|(1). diff -Nurp inn-2.6.4/doc/man/pgpverify.1 inn-2.6.5/doc/man/pgpverify.1 --- inn-2.6.4/doc/man/pgpverify.1 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/pgpverify.1 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "PGPVERIFY 1" -.TH PGPVERIFY 1 "2021-01-21" "INN 2.6.4" "InterNetNews Documentation" +.TH PGPVERIFY 1 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nurp inn-2.6.4/doc/man/procbatch.8 inn-2.6.5/doc/man/procbatch.8 --- inn-2.6.4/doc/man/procbatch.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/procbatch.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "PROCBATCH 8" -.TH PROCBATCH 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH PROCBATCH 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -261,8 +261,6 @@ Clayton O'Neill. .PP This manual page was written by Florian Schlichting, with the help of a memo by Russ Allbery. -.PP -\&\f(CW$Id:\fR procbatch.pod 9371 2011\-09\-04 09:21:43Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBfilechan\fR\|(8), \fBinnfeed\fR\|(8), \fBinnxmit\fR\|(8), \fBnews.daily\fR\|(8). diff -Nurp inn-2.6.4/doc/man/prunehistory.8 inn-2.6.5/doc/man/prunehistory.8 --- inn-2.6.4/doc/man/prunehistory.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/prunehistory.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "PRUNEHISTORY 8" -.TH PRUNEHISTORY 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH PRUNEHISTORY 8 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -151,10 +151,10 @@ them with spaces, so that the size and p does not change. This has an effect similar to expiring the article, in that it is still mentioned in the history database but cannot be retrieved. .PP -\&\fBprunehistory\fR reads the standard input. The input is taken as a set of lines. -Blank lines and lines starting with a number sign (\f(CW\*(C`#\*(C'\fR) are ignored. All other -lines should consist of a message-ID followed by zero or more other fields -(which are ignored). The message-ID is used as the \fBdbz\fR\|(3) key to get +\&\fBprunehistory\fR reads the standard input. The input is taken as a set of +lines. Blank lines and lines starting with a number sign (\f(CW\*(C`#\*(C'\fR) are ignored. +All other lines should consist of a message-ID followed by zero or more other +fields (which are ignored). The message-ID is used as the \fIdbz\fR key to get an offset into the text file. Since \fBinnd\fR only appends to the text file, \&\fBprunehistory\fR does not need to have any interaction with it. .SH "OPTIONS" @@ -173,8 +173,6 @@ a different name, use the \fB\-f\fR flag .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Converted to \&\s-1POD\s0 by Julien Elie. -.PP -\&\f(CW$Id:\fR prunehistory.pod 9447 2012\-12\-07 19:01:45Z eagle $ .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fBdbz\fR\|(3), \fBhistory\fR\|(5), \fBinnd\fR\|(8). +\&\fBhistory\fR\|(5), \fBinnd\fR\|(8), \fBlibinn_dbz\fR\|(3). diff -Nurp inn-2.6.4/doc/man/pullnews.1 inn-2.6.5/doc/man/pullnews.1 --- inn-2.6.4/doc/man/pullnews.1 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/pullnews.1 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "PULLNEWS 1" -.TH PULLNEWS 1 "2018-05-14" "INN 2.6.4" "InterNetNews Documentation" +.TH PULLNEWS 1 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -438,8 +438,6 @@ rewritten in \s-1POD\s0 by Russ Allbery Geraint A.\ Edwards greatly improved \fBpullnews\fR, adding no more than 16\ new recognized flags, fixing some bugs and integrating the \fBbackupfeed\fR contrib script by Kai Henningsen, adding again 6\ other flags. -.PP -\&\f(CW$Id:\fR pullnews.pod 10283 2018\-05\-14 12:43:05Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBincoming.conf\fR\|(5), \fBrnews\fR\|(1). diff -Nurp inn-2.6.4/doc/man/qio.3 inn-2.6.5/doc/man/qio.3 --- inn-2.6.4/doc/man/qio.3 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/qio.3 1970-01-01 01:00:00.000000000 +0100 @@ -1,247 +0,0 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) -.\" -.\" Standard preamble: -.\" ======================================================================== -.de Sp \" Vertical space (when we can't use .PP) -.if t .sp .5v -.if n .sp -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" Set up some character translations and predefined strings. \*(-- will -.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left -.\" double quote, and \*(R" will give a right double quote. \*(C+ will -.\" give a nicer C++. Capital omega is used to do unbreakable dashes and -.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, -.\" nothing in troff, for use with C<>. -.tr \(*W- -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -. ds C` -. ds C' -'br\} -.\" -.\" Escape single quotes in literal strings from groff's Unicode transform. -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" -.\" If the F register is >0, we'll generate index entries on stderr for -.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index -.\" entries marked with X<> in POD. Of course, you'll have to process the -.\" output yourself in some meaningful fashion. -.\" -.\" Avoid warning from groff about undefined register 'F'. -.de IX -.. -.nr rF 0 -.if \n(.g .if rF .nr rF 1 -.if (\n(rF:(\n(.g==0)) \{\ -. if \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" -.. -. if !\nF==2 \{\ -. nr % 0 -. nr F 2 -. \} -. \} -.\} -.rr rF -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "qio 3" -.TH qio 3 "2021-01-04" "INN 2.6.4" "InterNetNews Documentation" -.\" For nroff, turn off justification. Always turn off hyphenation; it makes -.\" way too many mistakes in technical documents. -.if n .ad l -.nh -.SH "NAME" -qio \- Quick I/O routines for reading files -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -.Vb 1 -\& #include -\& -\& QIOSTATE *QIOopen(const char *name); -\& -\& QIOSTATE *QIOfdopen(int> I for InterNetNews. Updated by -Russ Allbery . -.PP -\&\f(CW$Id:\fR qio.pod 10457 2020\-12\-19 06:10:49Z eagle $ diff -Nurp inn-2.6.4/doc/man/radius.8 inn-2.6.5/doc/man/radius.8 --- inn-2.6.4/doc/man/radius.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/radius.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "RADIUS 8" -.TH RADIUS 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH RADIUS 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -196,8 +196,6 @@ implement it correctly. .IX Header "HISTORY" The \s-1RADIUS\s0 authenticator was originally written by Aidan Cully. This documentation was written by Russ Allbery . -.PP -\&\f(CW$Id:\fR radius.pod 9940 2015\-09\-04 12:58:15Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBinn\-radius.conf\fR\|(5), \fBnnrpd\fR\|(8), \fBreaders.conf\fR\|(5). diff -Nurp inn-2.6.4/doc/man/rc.news.8 inn-2.6.5/doc/man/rc.news.8 --- inn-2.6.4/doc/man/rc.news.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/rc.news.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "RC.NEWS 8" -.TH RC.NEWS 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH RC.NEWS 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -216,8 +216,6 @@ user \s-1ID.\s0 .PP This manual page written by Jeffrey M.\ Vinocur for InterNetNews. -.PP -\&\f(CW$Id:\fR rc.news.pod 9723 2014\-09\-24 17:54:24Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBctlinnd\fR\|(8), \fBcnfsstat\fR\|(8), \fBexpirerm\fR\|(8), \fBinn.conf\fR\|(5), \fBinnwatch\fR\|(8), \fBovdb\fR\|(5). diff -Nurp inn-2.6.4/doc/man/readers.conf.5 inn-2.6.5/doc/man/readers.conf.5 --- inn-2.6.4/doc/man/readers.conf.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/readers.conf.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,13 +133,87 @@ .\" ======================================================================== .\" .IX Title "READERS.CONF 5" -.TH READERS.CONF 5 "2018-05-14" "INN 2.6.4" "InterNetNews Documentation" +.TH READERS.CONF 5 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" readers.conf \- Access control and configuration for nnrpd +.SH "IN A NUTSHELL" +.IX Header "IN A NUTSHELL" +The \fIreaders.conf\fR file parameters who is allowed to connect as a news +reader and what they're allowed to do after they connect. Bear in mind +that in \fIreaders.conf\fR, authentication and authorization are configured in +different blocks. First, a user is authenticated, and assigned an identity +(in an \f(CW\*(C`auth\*(C'\fR block). Then this identity is authorized to access certain +newsgroups with certain rights (in an \f(CW\*(C`access\*(C'\fR block). +.PP +As for authentication, your \f(CW\*(C`auth\*(C'\fR block for password users could look like +this: +.PP +.Vb 4 +\& auth "foreignokay" { +\& auth: "ckpasswd \-f /newsusers" +\& default: "" +\& } +.Ve +.PP +See the documentation of the \fB\-f\fR flag in the \fBckpasswd\fR\|(8) man page for how to +generate passwords and make use of this \fInewsusers\fR file. +.PP +This way, with the \f(CW\*(C`foreignokay\*(C'\fR authentication block, a user successfully +authenticated as user \f(CW\*(C`myusername\*(C'\fR will be assigned the identity +\&\f(CW\*(C`myusername\*(C'\fR. If authentication fails, it will be assigned the default +identity \f(CW\*(C`\*(C'\fR that will later be checked in \f(CW\*(C`access\*(C'\fR +blocks. +.PP +Authentication blocks are checked from the last one in the \fIreaders.conf\fR +file to the first one (bottom up). As soon as one matches, the corresponding +identity is assigned to the user. +.PP +As for authorization, let's do something in an \f(CW\*(C`access\*(C'\fR block for people +successfully authenticated with passwords: +.PP +.Vb 4 +\& access "authenticatedpeople" { +\& users: "*" +\& newsgroups: "*,!junk,!control,!control.*" +\& } +.Ve +.PP +And then something like one of the following two, depending on whether +unauthenticated users get any access: +.PP +.Vb 4 +\& access "restrictive" { +\& users: "" +\& newsgroups: "!*" +\& } +\& +\& access "readonly" { +\& users: "" +\& read: "local.*" +\& post: "!*" +\& } +.Ve +.PP +Please note that the \f(CW\*(C`authenticatedpeople\*(C'\fR block must appear in +\&\fIreaders.conf\fR before \f(CW\*(C`restrictive\*(C'\fR or \f(CW\*(C`readonly\*(C'\fR blocks because access +blocks are checked from the last one in the \fIreaders.conf\fR file to the first +one (bottom up). As soon as one matches the identity previously assigned +by an authentication block, it is chosen. The \f(CW\*(C`authenticatedpeople\*(C'\fR access +block matches every user that has not been assigned \f(CW\*(C`\*(C'\fR +as identity. +.PP +More examples and features are detailed below in this man page (notably +without any password file, with \s-1PAM,\s0 with Perl or Python hooks). +.PP +You don't need to reload anything after modifying \fIreaders.conf\fR; every +time a news client connects to the server, a new \fBnnrpd\fR process is spawned +and reads its configuration from disk. Nonetheless, after any changes, +you can run \f(CW\*(C`inncheck\*(C'\fR to perform basic syntax checks against the modified +\&\fIreaders.conf\fR file. .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIreaders.conf\fR in \fIpathetc\fR specifies access control for \fBnnrpd\fR\|(8). It @@ -783,12 +857,12 @@ access, not posting access. Here's a similar example for a news server that accepts connections from anywhere but requires the user to specify a username and password. The username and password are first checked against an external database of -usernames and passwords, and then against the system shadow password file: +usernames and passwords, and then make use of \s-1PAM:\s0 .PP .Vb 4 \& auth all { -\& auth: "ckpasswd \-d /newsusers" -\& auth: "ckpasswd \-s" +\& auth: "ckpasswd \-f /newsusers" +\& auth: ckpasswd \& } \& \& access full { @@ -802,16 +876,15 @@ they don't receive any valid identity an access groups (even ones with \f(CW\*(C`users: *\*(C'\fR). Such users receive nothing but authentication-required responses from nnrpd until they authenticate. .PP -If they then later authenticate, the username and password are checked -first by running \fBckpasswd\fR with the \fB\-d\fR option for an external dbm -file of encrypted passwords, and then with the \fB\-s\fR option to check the -shadow password database (note that this option may require ckpasswd to -be setgid to a shadow group, and there are security considerations; see -\&\fBckpasswd\fR\|(8) for details). If both of those fail, the user will continue -to have no identity; otherwise, an identity will be assigned (usually -the supplied username, perhaps with a domain appended, although an -authenticator technically can provide a completely different username -for the identity), and the access group will match, giving full access. +If they then later authenticate, the username and password are checked first +by running \fBckpasswd\fR with the \fB\-f\fR option for an external file of encrypted +passwords, and then uses \s-1PAM\s0 (if \s-1INN\s0 was built with \s-1PAM\s0 support) to check +the password (and if that fails, it tries to check the password against the +password field returned by \fBgetpwnam\fR\|(3)). If both of those fail, the user +will continue to have no identity; otherwise, an identity will be assigned +(usually the supplied username, perhaps with a domain appended, although an +authenticator technically can provide a completely different username for the +identity), and the access group will match, giving full access. .PP It may be educational to consider how to combine the above examples; general groups always go first. The order of the auth groups actually @@ -829,7 +902,7 @@ password-restricted. .Vb 5 \& auth "example.com" { \& hosts: "*.example.com" -\& auth: "ckpasswd \-d /newsusers" +\& auth: "ckpasswd \-f /newsusers" \& default: "anonymous" \& } \& @@ -876,7 +949,7 @@ cannot. \& auth shell { \& hosts: *.shell.example.com \& res: ident -\& auth: "ckpasswd \-s" +\& auth: ckpasswd \& default: \& default\-domain: shell.example.com \& } @@ -1006,9 +1079,7 @@ tunnel), use the localaddress: parameter .IX Header "HISTORY" Written by Aidan Cully for InterNetNews. Substantially expanded by Russ Allbery . -.PP -\&\f(CW$Id:\fR readers.conf.pod 10283 2018\-05\-14 12:43:05Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fBauth_krb5\fR\|(8), \fBckpasswd\fR\|(8), \fBinn.conf\fR\|(5), \fBinnd\fR\|(8), \fBnewsfeeds\fR\|(5), -\&\fBnnrpd\fR\|(8), \fBuwildmat\fR\|(3). +\&\fBauth_krb5\fR\|(8), \fBckpasswd\fR\|(8), \fBinn.conf\fR\|(5), \fBinnd\fR\|(8), \fBlibinn_uwildmat\fR\|(3), +\&\fBnewsfeeds\fR\|(5), \fBnnrpd\fR\|(8). diff -Nurp inn-2.6.4/doc/man/rnews.1 inn-2.6.5/doc/man/rnews.1 --- inn-2.6.4/doc/man/rnews.1 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/rnews.1 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "RNEWS 1" -.TH RNEWS 1 "2020-11-22" "INN 2.6.4" "InterNetNews Documentation" +.TH RNEWS 1 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -152,6 +152,10 @@ injecting articles received from other s generally use \fBinews\fR\|(1) instead. It is also used to process spooled messages created by, for example, \fBnnrpd\fR while \fBinnd\fR is not available. .PP +If authentication credentials are present for the remote server in +the \fIpasswd.nntp\fR file in \fIpathetc\fR, then \fBrnews\fR will use them to +authenticate. +.PP The message is read from \fIfile\fR if given, spooled files (with the \fB\-U\fR flag) or standard input if no file is given. Articles are sent to the server given in the \fB\-r\fR or \fB\-S\fR command line options if given, @@ -271,8 +275,7 @@ them. (Neither can the rest of \s-1INN\ .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten in \&\s-1POD\s0 by Russ Allbery . -.PP -\&\f(CW$Id:\fR rnews.pod 10382 2020\-05\-24 10:24:37Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fBbzip2\fR\|(1), \fBcompress\fR\|(1), \fBgzip\fR\|(1), \fBinn.conf\fR\|(5), \fBinnd\fR\|(8), \fBnnrpd\fR\|(8). +\&\fBbzip2\fR\|(1), \fBcompress\fR\|(1), \fBgzip\fR\|(1), \fBinn.conf\fR\|(5), \fBinnd\fR\|(8), \fBnnrpd\fR\|(8), +\&\fBpasswd.nntp\fR\|(5). diff -Nurp inn-2.6.4/doc/man/scanlogs.8 inn-2.6.5/doc/man/scanlogs.8 --- inn-2.6.4/doc/man/scanlogs.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/scanlogs.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "SCANLOGS 8" -.TH SCANLOGS 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH SCANLOGS 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -185,8 +185,6 @@ See \fBnewslog\fR\|(5) for the list of l .IX Header "HISTORY" Written by Landon Curt Noll and Rich \f(CW$alz\fR for InterNetNews. Converted to \s-1POD\s0 by Julien Elie. -.PP -\&\f(CW$Id:\fR scanlogs.pod 9903 2015\-06\-20 17:20:46Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBinn.conf\fR\|(5), \fBinnreport\fR\|(8), \fBnews.daily\fR\|(8), \fBnewslog\fR\|(5), \fBshlock\fR\|(1), diff -Nurp inn-2.6.4/doc/man/scanspool.8 inn-2.6.5/doc/man/scanspool.8 --- inn-2.6.4/doc/man/scanspool.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/scanspool.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "SCANSPOOL 8" -.TH SCANSPOOL 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH SCANSPOOL 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -255,8 +255,6 @@ Continuation lines are not taken into ac .PP This manual page was written by Florian Schlichting, largely based on comments in the script. -.PP -\&\f(CW$Id:\fR scanspool.pod 9301 2011\-08\-04 21:09:11Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBactive\fR\|(5). diff -Nurp inn-2.6.4/doc/man/send-ihave.8 inn-2.6.5/doc/man/send-ihave.8 --- inn-2.6.4/doc/man/send-ihave.8 1970-01-01 01:00:00.000000000 +0100 +++ inn-2.6.5/doc/man/send-ihave.8 2022-02-18 20:36:57.000000000 +0100 @@ -0,0 +1,253 @@ +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "SEND-IHAVE 8" +.TH SEND-IHAVE 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +send\-ihave \- Send ihave control messages to remote sites +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBsend-ihave\fR [\fB\-d\fR] \fIsitename\fR[\fB:\fR\fIhostname\fR] +[\fIsitename\fR[\fB:\fR\fIhostname\fR] ...] +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +Using \fBsend-ihave\fR is discouraged; the ihave and sendme control messages +implement a predecessor of the \s-1NNTP\s0 protocol, and are now largely obsolete on +the Internet but still see use in conjunction with some transport protocols +such as \s-1UUCP.\s0 +.PP +In case you really need using ihave and sendme control messages, and follow +these instructions to set them up, please inform the \s-1INN\s0 maintainers of any +documentation improvements that would have made the installation easier, +notably missing or unclear steps. +.PP +The basic idea behind the ihave and sendme control messages is that you tell +your \s-1UUCP\s0 peers what articles you have available via ihave control messages, +and you respond with a sendme control message for the articles that you want. +.PP +\&\fBsend-ihave\fR processes the batch files written by \fBinnd\fR to send ihave +control messages to remote \s-1NNTP\s0 sites. The sites to be fed are specified +by giving \f(CW\*(C`sitename:hostname\*(C'\fR pairs on the command line. The \fIsitename\fR +is the label the site has in the \fInewsfeeds\fR file, without its \f(CW\*(C`.ihave\*(C'\fR +suffix. The \fIhostname\fR is the real hostname of the remote site, a \s-1FQDN\s0 +(Fully Qualified Domain Name). Normally, the \fIsitename\fR and the \fIhostname\fR +are the same, and as such don't have to be specified as \f(CW\*(C`sitename:hostname\*(C'\fR +pairs but just as \f(CW\*(C`sitename\*(C'\fR. +.PP +\&\fBsend-ihave\fR encapsulates Message-IDs in an ihave control message and uses +\&\fBinews\fR to send the control message to a \f(CW\*(C`to.hostname\*(C'\fR pseudo-newsgroup. +.PP +The batch file generated by \fBsend-ihave\fR for a given site is named +\&\fIsitename.ihave\fR in the \fIpathoutgoing\fR directory. To prevent batch file +corruption, \fBshlock\fR\|(1) is used ensure these files are not processed by two +running instances in parallel. +.PP +For instance, to generate ihave control messages for \fInews.server.com\fR +when receiving articles in the comp.* hierarchy, just add the following +line in your \fInewsfeeds\fR file (and reload it): +.PP +.Vb 1 +\& news.server.com.ihave:comp.*:Tf,Wm: +.Ve +.PP +(Note that if you send \f(CW\*(C`*\*(C'\fR to \f(CW\*(C`news.server.com\*(C'\fR, you should add \f(CW\*(C`@to,@to.*\*(C'\fR +to the end of the newsgroup pattern so that the ihave control message +generated by \fBsend-ihave\fR isn't, itself, included in the list of articles +in an ihave control message. You may also want to add that pattern to +the end of any entry processing control articles, like \fBcontrolchan\fR, +or being fed a \f(CW\*(C`*\*(C'\fR pattern.) +.PP +Then, periodically run out of \fBcron\fR\|(1) the following command: +.PP +.Vb 1 +\& send\-ihave news.server.com +.Ve +.PP +\&\fBsend-ihave\fR will then post to the \f(CW\*(C`to.news.server.com\*(C'\fR pseudo-newsgroup +an ihave control article containing a list of Message-IDs. Several control +articles may be posted, each one containing up to 1000 Message-IDs. +.PP +Make sure the \f(CW\*(C`to.news.server.com\*(C'\fR pseudo-newsgroup exists on your server (or +the \f(CW\*(C`to\*(C'\fR pseudo-newsgroup if \fImergetogroups\fR is set to true in \fIinn.conf\fR), +and that ihave control articles are not filtered (the default Cleanfeed +configuration rejects them). These control articles will be filed in the +\&\f(CW\*(C`control\*(C'\fR pseudo-newsgroup (or \f(CW\*(C`control.ihave\*(C'\fR if it exists), or \f(CW\*(C`to\*(C'\fR +if \fImergetogroups\fR is set to true. +.PP +You now have to propagate them with any method you want to the remote server. +You probably already had one set up, in which case you only have to add +the \f(CW\*(C`to.news.server.com\*(C'\fR newsgroup in the list of groups to feed it. +(See how \fBsend\-uucp\fR\|(8) works to set up a \s-1UUCP\s0 feed.) +.PP +Besides sending ihave control messages, your news server needs processing the +sendme control messages it receives from remote peers. You have to add a +\&\f(CW\*(C`sendme\*(C'\fR entry in \fIcontrol.ctl.local\fR with a \fBdoit\fR action to allow the +processing of these messages matching a given From address. \fBcontrolchan\fR +will then generate a batch file named \fIpathname.work\fR in \fIpathoutgoing\fR, +containing a list of storage tokens (\fIpathname\fR is taken from the Path header +field body or the \s-1IP\s0 address of the remote peer, depending on the value +of \fIlogipaddr\fR in \fIinn.conf\fR). Finally, you'll have to set up \fBbatcher\fR\|(8) +or \fBsend\-uucp\fR\|(8) to send the news batches to your remote peers. +.PP +Similarly, your news server needs processing the ihave control messages it +receives from remote peers. This step is the easiest to do. Just add an +\&\f(CW\*(C`ihave\*(C'\fR entry in \fIcontrol.ctl.local\fR like the one you added for \f(CW\*(C`sendme\*(C'\fR. +\&\fBcontrolchan\fR will process these ihave control messages, and generate a +sendme control article for each article present in the ihave control message +but not in your local news server. These sendme control articles are posted +to the \f(CW\*(C`to.pathname\*(C'\fR pseudo-newsgroup, and will be propagated as described +before. (Note that there may be two different \f(CW\*(C`to\*(C'\fR groups to create because +the \fIsitename\fR used in \fInewsfeeds\fR may not be the same as \fIpathname\fR.) +.PP +Beware that the ihave and sendme control messages are not signed. You should +enforce restrictions on who can send articles to \f(CW\*(C`to.*\*(C'\fR groups, either +via \fIreaders.conf\fR or special rules in filter hooks, and on the \f(CW\*(C`ihave\*(C'\fR +and \f(CW\*(C`sendme\*(C'\fR lines in \fIcontrol.ctl.local\fR. +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-d\fR" 4 +.IX Item "-d" +The \fB\-d\fR flag causes \fBsend-ihave\fR to send output to stdout rather than +the \fIsend\-ihave.log\fR log file in \fIpathlog\fR. +.SH "HISTORY" +.IX Header "HISTORY" +Rewritten into \s-1POD\s0 by Julien Elie. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fBbatcher\fR\|(8), \fBcontrolchan\fR\|(8), \fBcontrol.ctl\fR\|(5), \fBinews\fR\|(1), \fBnewsfeeds\fR\|(5), +\&\fBsend\-uucp\fR\|(8). diff -Nurp inn-2.6.4/doc/man/send-nntp.8 inn-2.6.5/doc/man/send-nntp.8 --- inn-2.6.4/doc/man/send-nntp.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/send-nntp.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,84 +1,182 @@ -.TH SEND-UUCP 8 -.SH NAME -send-nntp, send-ihave \- send Usenet articles to remote site -.SH SYNOPSIS -.B send-nntp -[ -.B \-d -] -.B sitename:hostname | sitename -[ -.B sitename:hostname | sitename .. -] -.PP -.B send-ihave -[ -.B \-d -] -.B sitename:hostname | sitename -[ -.B sitename:hostname | sitename .. -] -.SH DESCRIPTION -The send-* utilities are scripts that process the batch files written -by -.IR innd (8) -to send Usenet articles to a remote NNTP site. -.PP -The sites to be fed may be specified by giving -.I sitename -.I hostname -pairs on the command line. -.PP -The -.I sitename -is the label the site has in the -.I newsfeeds -file, the -.I hostname -is the real hostname of the remote site, a FQDN (Fully Qualified Domain Name). -Normally, the -.I sitename -and the -.I hostname -are the same, and as such don't have to be specified as sitename:hostname -pairs but just as a sitename. -.PP -.I send-nntp -starts an innxmit to send the articles to the remote site. -.PP -.I send-ihave -encapsulates the articles in an -.I ihave -control message and uses -.I inews -to send the articles to a -.I to.sitename -pseudo-group. Using -.I send-ihave -is discouraged, nobody uses it anymore and even the author of this manpage -is unsure as to how it actually works or used to work. -.PP -.I send-* -expect that the batchfile for a site is named -.IR /sitename . -To prevent batchfile corruption, -.IR shlock (1) -is used to ``lock'' these files. -.SH OPTIONS -.TP -.B "\-d" -The ``\-d'' flag causes -.I nntpsend -to send output to stdout rather than the log file -.IR /.log . -.SH NOTES -You should probably not use send-nntp, but -.IR innfeed , -or if that is not possible, -.IR nntpsend . -.PP -The usual flags for a batch file for send-nntp are ``\fBTf,Wfm\fP''. +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "SEND-NNTP 8" +.TH SEND-NNTP 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +send\-nntp \- Send Usenet articles to remote sites +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBsend-nntp\fR [\fB\-d\fR] \fIsitename\fR[\fB:\fR[\fIport\fR\fB@\fR]\fIhostname\fR] +[\fIsitename\fR[\fB:\fR[\fIport\fR\fB@\fR]\fIhostname\fR] ...] +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBsend-nntp\fR processes the batch files written by \fBinnd\fR to send Usenet +articles to remote \s-1NNTP\s0 sites. The sites to be fed are specified by +giving \f(CW\*(C`sitename:hostname\*(C'\fR pairs on the command line. The \fIsitename\fR +is the label the site has in the \fInewsfeeds\fR file, the \fIhostname\fR is +the real hostname of the remote site, a \s-1FQDN\s0 (Fully Qualified Domain Name). +Normally, the \fIsitename\fR and the \fIhostname\fR are the same, and as such don't +have to be specified as \f(CW\*(C`sitename:hostname\*(C'\fR pairs but just as \f(CW\*(C`sitename\*(C'\fR. +.PP +\&\fBsend-nntp\fR starts \fBinnxmit\fR to send the articles to remote sites. +By default, \s-1NNTP\s0 port \f(CW119\fR is used to connect to remote sites. In case +another port should be used, it has to be prepended to \fIhostname\fR in a +syntax like \f(CW\*(C`sitename:port@hostname\*(C'\fR. +.PP +The batch files generated by \fBsend-nntp\fR for a given site is named +\&\fIsitename\fR in the \fIpathoutgoing\fR directory. To prevent batch file +corruption, \fBshlock\fR\|(1) is used ensure these files are not processed by two +running instances in parallel. +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-d\fR" 4 +.IX Item "-d" +The \fB\-d\fR flag causes \fBsend-nntp\fR to send output to stdout rather than +the \fIsend\-nntp.log\fR log files in \fIpathlog\fR. +.SH "NOTES" +.IX Header "NOTES" +You should probably not use \fBsend-nntp\fR, but \fBinnfeed\fR, or if that is not +possible, \fBnntpsend\fR. The usual flags for a batch file for \fBsend-nntp\fR +are \f(CW\*(C`Tf,Wfm\*(C'\fR in \fInewsfeeds\fR. +.SH "HISTORY" +.IX Header "HISTORY" +Rewritten into \s-1POD\s0 by Julien Elie. .SH "SEE ALSO" -newsfeeds(5), -nntpsend(8) +.IX Header "SEE ALSO" +\&\fBinnxmit\fR\|(8), \fBnewsfeeds\fR\|(5), \fBnntpsend\fR\|(8). diff -Nurp inn-2.6.4/doc/man/send-uucp.8 inn-2.6.5/doc/man/send-uucp.8 --- inn-2.6.4/doc/man/send-uucp.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/send-uucp.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "SEND-UUCP 8" -.TH SEND-UUCP 8 "2016-11-06" "INN 2.6.4" "InterNetNews Documentation" +.TH SEND-UUCP 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -157,7 +157,7 @@ are over dial-up connections). .IX Header "OPTIONS" Any arguments provided to the program are interpreted as a list of sites specified in \fIsend\-uucp.cf\fR for which batches should be generated. If no -arguments are supplied then batches will be generated for all sites listed +arguments are supplied, then batches will be generated for all sites listed in that configuration file. .SH "CONFIGURATION" .IX Header "CONFIGURATION" @@ -240,6 +240,167 @@ is kept between 4\ \s-1KB\s0 and 1\ \s-1 \& :*,!junk,!control,!control.*/!foo\e \& :Tf,Wnb,B4096/1024: .Ve +.SH "SETTING UP UUCP FEEDS" +.IX Header "SETTING UP UUCP FEEDS" +Here are the steps to follow to set up a \s-1UUCP\s0 feed over \s-1SSH\s0 between +two news servers, using the \s-1UUCP\s0 implementation available in Debian +as the \f(CW\*(C`uucp\*(C'\fR package. The mechanisms described below should be +transposed if you use another \s-1UUCP\s0 implementation. (And if you do, +please inform the \s-1INN\s0 maintainers about how to set up a feed with another +\&\s-1UUCP\s0 implementation, so that it can be added to this documentation.) +.IP "1." 4 +First of all, make sure \fBrnews\fR is correctly installed setuid \f(CW\*(C`news\*(C'\fR, +owned by group \f(CW\*(C`uucp\*(C'\fR, and mode \f(CW4550\fR. This will allow the \s-1UUCP\s0 +subsystem to run \fBrnews\fR to process \s-1UUCP\s0 batches of news articles. +The \f(CW\*(C`configure\*(C'\fR flag \fB\-\-enable\-uucp\-rnews\fR takes care of it when +installing \s-1INN.\s0 Otherwise, you'll have to manually change the +permissions on \fBrnews\fR. +.IP "2." 4 +Install the \f(CW\*(C`uucp\*(C'\fR package. It will notably provide \fBuucico\fR\|(8) +and \fBuux\fR\|(1). +.IP "3." 4 +Configure in \fI/etc/uucp/Poll\fR the remote news servers to poll, and +the hours during which they are to be polled. For instance, if you +send to \f(CW\*(C`news.server.to.feed\*(C'\fR \s-1UUCP\s0 batches every 4 hours, you can use: +.Sp +.Vb 2 +\& schedule news.server.to.feed 00 +\& poll news.server.to.feed 00 04 08 12 16 20 +.Ve +.Sp +If sending is hourly, just list all the hours. +.IP "4." 4 +Configure in \fI/etc/uucp/call\fR the credentials (usernames and passwords) +to use when authenticating against remote news servers, one per line. +For instance: +.Sp +.Vb 1 +\& news.server.to.feed login password +.Ve +.IP "5." 4 +Configure in \fI/etc/uucp/config\fR the \s-1UUCP\s0 name of the local news server. +For instance: +.Sp +.Vb 1 +\& nodename my.news.server +.Ve +.IP "6." 4 +Check that \fI/etc/uucp/expire\fR fits your needs as for the number of days +batches are retained as well as the configuration of daily reports. +Default values are normally fine, though you may want to receive a +daily report only if unusual things happen (and in that case, just set +\&\f(CW$important_only\fR to \f(CW1\fR). +.IP "7." 4 +Configure in \fI/etc/uucp/passwd\fR the credentials (usernames and passwords +separated by a tabulation) remote news servers use when authenticating +against the local news server, one per line. For instance: +.Sp +.Vb 1 +\& loginpassword +.Ve +.IP "8." 4 +Configure in \fI/etc/uucp/sys\fR how remote news servers connect to the +local news server. A typical entry to set an \s-1SSH\s0 connection is the +following one where \fIpathbin\fR should be changed to the real path +to \fBrnews\fR: +.Sp +.Vb 9 +\& system news.server.to.feed +\& call\-login * +\& call\-password * +\& commands /rnews +\& time any +\& chat "" \ed\ed\er\ec ogin: \ed\eL word: \eP +\& chat\-timeout 120 +\& protocol i +\& port ssh.news.server.to.feed +.Ve +.IP "9." 4 +Configure in \fI/etc/uucp/port\fR how to connect to remote news servers. +A typical entry to set an \s-1SSH\s0 connection using a private key is: +.Sp +.Vb 5 +\& port ssh.news.server.to.feed +\& type pipe +\& command /usr/bin/ssh \-a \-x \-q \-i \-l uucp news.server.to.feed +\& reliable true +\& protocol etyig +.Ve +.Sp +where \fIkey_file\fR is the private key to use for the \s-1SSH\s0 connection, +like for instance \fI/var/spool/uucp/.ssh/id_private_key\fR. +.IP "10." 4 +Make sure the administrators of remote news servers have added the +public key related to \fIid_private_key\fR for connections to the \f(CW\*(C`uucp\*(C'\fR +user of the remote news servers. +.IP "11." 4 +Supposing the home directory of the \f(CW\*(C`uucp\*(C'\fR user is \fI/var/spool/uucp\fR, +you need to configure the \s-1SSH\s0 keys in the \fI.ssh\fR subdirectory. First, +add the public keys of all remote news servers in \fIauthorized_keys\fR. +A typical entry is: +.Sp +.Vb 1 +\& no\-port\-forwarding,no\-X11\-forwarding,no\-agent\-forwarding,command="/usr/sbin/uucico \-l",from="news.server.to.feed" ssh\-rsa xxxyyyzzz uucp@news.server.to.feed +.Ve +.Sp +This ensures the \s-1SSH\s0 connection will not be used for another goal than +exchanging \s-1UUCP\s0 batches. +.IP "12." 4 +Make sure \fIid_private_key\fR is correctly present, as set in +\&\fI/etc/uucp/port\fR, and only readable by the \f(CW\*(C`uucp\*(C'\fR user. +.IP "13." 4 +Manually run as the \f(CW\*(C`uucp\*(C'\fR user the command set in \fI/etc/uucp/port\fR +so as to create the \fIknown_hosts\fR file so as to make sure the \s-1SSH\s0 +setting is fine. +.Sp +.Vb 1 +\& /usr/bin/ssh \-a \-x \-q \-i \-l uucp news.server.to.feed +.Ve +.IP "14." 4 +Parameter the feed to send to the remote servers. A typical entry in +\&\fInewsfeeds\fR to generate batches in \fIpathoutgoing\fR is: +.Sp +.Vb 1 +\& news.server.to.feed/pathname:*:Tf,Wnb,B4096/1024: +.Ve +.IP "15." 4 +Set up the compression method, batch sizes and when to generate them +in \fIsend\-uucp.cf\fR located in \fIpathetc\fR, as described earlier in this +documentation. +.Sp +.Vb 1 +\& news.server.to.feed bzip2 1048576 3,7,11,15,19,23 +.Ve +.IP "16." 4 +Check that \fBsend-uucp\fR is started hourly in crontab by the \f(CW\*(C`news\*(C'\fR user. +For instance in \fI/etc/cron.d/inn2\fR: +.Sp +.Vb 1 +\& 52 * * * * news /send\-uucp +.Ve +.Sp +It can be useful to set up a different launch time than your remote +servers. For instance, if you generate batches every hour at minute 52, +a remote peer may do the same at minute 22. This way, you may exchange +articles more frequently, depending on when each other connects. +.IP "17." 4 +Check that \s-1UUCP\s0 programs are automatically started in crontab (usually, +\&\fBuudemon.hr\fR is called hourly in \fI/etc/cron.d/uucp\fR to poll remote +news servers, and \fBuudemon.day\fR daily in \fI/etc/cron.daily/uucp\fR). +.Sp +Like for \fBsend-uucp\fR, adjust the launch time to maximize the number +and the freshness of batches to exchanges. +.IP "18." 4 +Check the logs in \fI/var/log/uucp\fR to ensure everything works fine, +both polling and sending. +.Sp +You will see that \fBsend-uucp\fR prepares \fBrnews\fR batches named like +\&\fID.0I8Y\fR, that are queued by \fBuux\fR. When \fBuucico\fR is afterwards +started from cron to transfer these batches, \fBuucico\fR takes available +batches from the remote sites at the same time. These received batches +are then processed by \fBuuxqt\fR which calls \fBrnews\fR to inject them. +.Sp +That's all! .SH "FILES" .IX Header "FILES" .IP "\fIpathbin\fR/send\-uucp" 4 @@ -248,6 +409,9 @@ The Perl script itself used to create ne .IP "\fIpathetc\fR/send\-uucp.cf" 4 .IX Item "pathetc/send-uucp.cf" The configuration file which specifies a list of sites to be processed. +.IP "\fIpathlog\fR/send\-uucp.log" 4 +.IX Item "pathlog/send-uucp.log" +The log file used if the syslog facility is not available. .SH "HISTORY" .IX Header "HISTORY" This program was originally written by Edvard Tuinder and then diff -Nurp inn-2.6.4/doc/man/sendinpaths.8 inn-2.6.5/doc/man/sendinpaths.8 --- inn-2.6.4/doc/man/sendinpaths.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/sendinpaths.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "SENDINPATHS 8" -.TH SENDINPATHS 8 "2018-05-14" "INN 2.6.4" "InterNetNews Documentation" +.TH SENDINPATHS 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -205,8 +205,6 @@ for two addresses: .SH "HISTORY" .IX Header "HISTORY" \&\fBsendinpaths\fR was written by Olaf Titz . -.PP -\&\f(CW$Id:\fR sendinpaths.pod 10283 2018\-05\-14 12:43:05Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBninpaths\fR\|(8). diff -Nurp inn-2.6.4/doc/man/shlock.1 inn-2.6.5/doc/man/shlock.1 --- inn-2.6.4/doc/man/shlock.1 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/shlock.1 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "SHLOCK 1" -.TH SHLOCK 1 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH SHLOCK 1 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -200,8 +200,6 @@ Written by Rich \f(CW$alz\fR . +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "SHRINKFILE 1" +.TH SHRINKFILE 1 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +shrinkfile \- Shrink files on line boundaries +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBshrinkfile\fR [\fB\-nv\fR] [\fB\-m\fR \fImaxsize\fR] [\fB\-s\fR \fIsize\fR] \fIfile\fR [\fIfile\fR +\&...] +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +The \fBshrinkfile\fR program shrinks files to at most a given \fIsize\fR when their +size is larger than \fImaxsize\fR, preserving the data at the end of the file. +Truncation is performed on line boundaries, where a line is a series of +bytes ending with a newline (\f(CW\*(C`\en\*(C'\fR). There is no line length restriction +and files may contain any binary data. +.PP +If the first line is longer than the absolute value of \fIsize\fR, the file +will be truncated to zero length. .PP -Temporary files are created in the -.I +The maximum file size \fBshrinkfile\fR can handle is 2,147,483,647 bytes. +.PP +Temporary files are created in the \fIpathtmp\fR directory as set in \fIinn.conf\fR. +The \f(CW\*(C`TMPDIR\*(C'\fR environment variable may be used to specify a different directory. -The ``TMPDIR'' environment variable may be used to specify a -different directory. .PP -A newline will be added to any non-empty file that does not end with a newline. -The maximum file size will not be exceeded by this addition. -.SH OPTIONS -.TP -.B \-s -By default, -.I size -is assumed to be zero and files are truncated to zero bytes. -By default, -.I maxsize -is the same as -.IR size . -If -.I maxsize -is less than -.IR size , -.I maxsize -is reset to -.IR size . -The ``\fB\-s\fP'' flag may be used to change the truncation size. -Because the program truncates only on line boundaries, the final size -may be smaller then the specified truncation size. -The -.I size -and -.I maxsize -parameter may end with a ``k'', ``m'', or ``g'', indicating -kilobyte (1024), megabyte (1048576) or gigabyte (1073741824) lengths. -Uppercase letters are also allowed. -The maximum file size is 2147483647 bytes. -.TP -.B \-v -If the ``\fB\-v\fP'' flag is used, then -.I shrinkfile -will print a status line if a file was shrunk. -.TP -.B \-n -If the ``\fB\-n\fP'' flag is used, then -.I shrinkfile -will exit 0 if any file is larger than -.I maxsize -and exit 1 otherwise. -No files will be altered. -.SH EXAMPLES +A newline will be added to any non-empty file that does not end with a +newline, if naturally the resulting file size does not exceed \fIsize\fR +by this addition. .PP +This program is currently used by only \fBnntpsend\fR\|(8). +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-m\fR \fImaxsize\fR" 4 +.IX Item "-m maxsize" +This option sets the maximum size allowed before truncation occurs. +.Sp +By default, \fImaxsize\fR is the same as \fIsize\fR (as set with the \fB\-s\fR flag). +If \fImaxsize\fR is less than \fIsize\fR, \fImaxsize\fR is reset to \fIsize\fR. +.Sp +This parameter may end with a \f(CW\*(C`k\*(C'\fR, \f(CW\*(C`m\*(C'\fR or \f(CW\*(C`g\*(C'\fR, indicating kilobyte (1,024 +bytes), megabyte (1,048,576 bytes) or gigabyte (1,073,741,824 bytes) lengths. +Uppercase letters are also allowed. +.IP "\fB\-n\fR" 4 +.IX Item "-n" +This flag is used to determine if any file is too large. No files will be +altered in this mode. +.Sp +Exits with status code \f(CW0\fR if any file is larger than \fImaxsize\fR (as set +with the \fB\-m\fR flag), and exits with status code \f(CW1\fR otherwise. +.IP "\fB\-s\fR \fIsize\fR" 4 +.IX Item "-s size" +By default, \fIsize\fR is assumed to be zero and files are truncated to zero +bytes. This flag may be used to change the truncation size. Because the +program truncates only on line boundaries, the final size may be smaller +than the specified truncation size. +.Sp +This parameter may end with a \f(CW\*(C`k\*(C'\fR, \f(CW\*(C`m\*(C'\fR or \f(CW\*(C`g\*(C'\fR, indicating kilobyte (1,024 +bytes), megabyte (1,048,576 bytes) or gigabyte (1,073,741,824 bytes) lengths. +Uppercase letters are also allowed. +.IP "\fB\-v\fR" 4 +.IX Item "-v" +Prints to standard output a status line if a file was shrunk. +.SH "EXAMPLES" +.IX Header "EXAMPLES" Example usage: -.sp 1 -.RS -.nf -shrinkfile -s 4m curds -shrinkfile -s 1g -v whey -shrinkfile -s 500k -m 4m -v curds whey -if shrinkfile -n -s 100m whey; then echo whey is way too big; fi -.fi -.RE .PP -.SH HISTORY -Written by Landon Curt Noll and Rich $alz - for InterNetNews. -.de R$ -This is revision \\$3, dated \\$4. -.. +.Vb 4 +\& shrinkfile \-s 4m curds +\& shrinkfile \-s 1g \-v whey +\& shrinkfile \-s 500k \-m 4m \-v curds whey +\& if shrinkfile \-n \-s 100m whey; then echo "whey is way too big"; fi +.Ve +.PP +The first command shrinks \fIcurds\fR to 4\ \s-1MB\s0 if bigger than this size. +The second command shrinks \fIwhey\fR to 1\ \s-1GB\s0 and outputs a log line if the +file is bigger than this size. The third command shrinks both \fIcurds\fR and +\&\fIwhey\fR to 500\ kB if bigger than 4\ \s-1MB,\s0 and outputs a log line for the +files it has shrunk. The fourth command just prints a sentence if \f(CW\*(C`whey\*(C'\fR +is bigger than 100\ \s-1MB,\s0 without shrinking it. +.SH "HISTORY" +.IX Header "HISTORY" +Written by Landon Curt Noll and Rich \f(CW$alz\fR + for InterNetNews. Rewritten into \s-1POD\s0 by Julien Elie. .SH "SEE ALSO" -inn.conf(5) +.IX Header "SEE ALSO" +\&\fBnntpsend\fR\|(8). diff -Nurp inn-2.6.4/doc/man/simpleftp.1 inn-2.6.5/doc/man/simpleftp.1 --- inn-2.6.4/doc/man/simpleftp.1 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/simpleftp.1 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "SIMPLEFTP 1" -.TH SIMPLEFTP 1 "2016-11-06" "INN 2.6.4" "InterNetNews Documentation" +.TH SIMPLEFTP 1 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -173,8 +173,6 @@ with the same name in the local director .IX Header "HISTORY" Tossed off by David C Lawrence for InterNetNews. Rewritten to use \f(CW\*(C`Net::FTP\*(C'\fR by Julien Elie. -.PP -\&\f(CW$Id:\fR simpleftp.pod 10097 2016\-11\-04 22:19:07Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBactsync\fR\|(8). diff -Nurp inn-2.6.4/doc/man/sm.1 inn-2.6.5/doc/man/sm.1 --- inn-2.6.4/doc/man/sm.1 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/sm.1 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "SM 1" -.TH SM 1 "2020-11-22" "INN 2.6.4" "InterNetNews Documentation" +.TH SM 1 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -236,8 +236,6 @@ succeeded, you should run \fBsm\fR on on .IX Header "HISTORY" Written by Katsuhiro Kondou for InterNetNews. Rewritten in \s-1POD\s0 by Russ Allbery . -.PP -\&\f(CW$Id:\fR sm.pod 10405 2020\-11\-21 07:02:43Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBctlinnd\fR\|(8), \fBgrephistory\fR\|(1), \fBhistory\fR\|(5), \fBrnews\fR\|(1), \fBstorage.conf\fR\|(5). diff -Nurp inn-2.6.4/doc/man/storage.conf.5 inn-2.6.5/doc/man/storage.conf.5 --- inn-2.6.4/doc/man/storage.conf.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/storage.conf.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "STORAGE.CONF 5" -.TH STORAGE.CONF 5 "2018-01-28" "INN 2.6.4" "InterNetNews Documentation" +.TH STORAGE.CONF 5 "2022-02-18" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -209,15 +209,17 @@ permanent (since it is used in storage t for instance numbered sequentially in \fIstorage.conf\fR. .IP "\fInewsgroups\fR: " 4 .IX Item "newsgroups: " -What newsgroups are stored using this storage method. is a \fBuwildmat\fR\|(3) -pattern which is matched against the newsgroups an article is posted to. -If \fIstoreonxref\fR in \fIinn.conf\fR is true, this pattern will be matched against -the newsgroup names in the Xref: header; otherwise, it will be matched against -the newsgroup names in the Newsgroups: header (see \fBinn.conf\fR\|(5) for discussion -of the differences between these possibilities). Poison wildmat expressions -(expressions starting with \f(CW\*(C`@\*(C'\fR) are allowed and can be used to exclude certain -group patterns: articles crossposted to poisoned newsgroups will not be stored -using this storage method. The pattern is matched in order. +What newsgroups are stored using this storage method. is a +\&\fIuwildmat\fR pattern which is matched against the newsgroups an article +is posted to. If \fIstoreonxref\fR in \fIinn.conf\fR is true, this pattern +will be matched against the newsgroup names in the Xref header field +body; otherwise, it will be matched against the newsgroup names in the +Newsgroups header field body (see \fBinn.conf\fR\|(5) for discussion of the +differences between these possibilities). Poison wildmat expressions +(expressions starting with \f(CW\*(C`@\*(C'\fR) are allowed and can be used to exclude +certain group patterns: articles crossposted to poisoned newsgroups +will not be stored using this storage method. The pattern +is matched in order. .Sp There is no default newsgroups pattern; if an entry should match all newsgroups, use an explicit \f(CW\*(C`newsgroups: *\*(C'\fR. @@ -482,9 +484,7 @@ should never expire or through the spool .IX Header "HISTORY" Written by Katsuhiro Kondou for InterNetNews. Rewritten into \s-1POD\s0 by Julien Elie. -.PP -\&\f(CW$Id:\fR storage.conf.pod 10230 2018\-01\-28 21:22:21Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBcycbuff.conf\fR\|(5), \fBexpire.ctl\fR\|(5), \fBexpireover\fR\|(8), \fBinn.conf\fR\|(5), \fBinnd\fR\|(8), -\&\fBuwildmat\fR\|(3). +\&\fBlibinn_uwildmat\fR\|(3). diff -Nurp inn-2.6.4/doc/man/subscriptions.5 inn-2.6.5/doc/man/subscriptions.5 --- inn-2.6.4/doc/man/subscriptions.5 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/subscriptions.5 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "SUBSCRIPTIONS 5" -.TH SUBSCRIPTIONS 5 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH SUBSCRIPTIONS 5 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -183,8 +183,6 @@ users group, one might want to list it f .SH "HISTORY" .IX Header "HISTORY" Written by Bettina Fink for InterNetNews. -.PP -\&\f(CW$Id:\fR subscriptions.pod 9137 2010\-10\-29 18:09:12Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBnnrpd\fR\|(8). diff -Nurp inn-2.6.4/doc/man/tally.control.8 inn-2.6.5/doc/man/tally.control.8 --- inn-2.6.4/doc/man/tally.control.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/tally.control.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "TALLY.CONTROL 8" -.TH TALLY.CONTROL 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH TALLY.CONTROL 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -179,8 +179,6 @@ An example of lines which can be found i Written by Landon Curt Noll and Rich \f(CW$alz\fR for InterNetNews. Rewritten and converted to \s-1POD\s0 by Julien Elie. -.PP -\&\f(CW$Id:\fR tally.control.pod 8357 2009\-02\-27 17:56:00Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBcontrol.ctl\fR\|(5), \fBnews.daily\fR\|(8), \fBnewslog\fR\|(5), \fBscanlogs\fR\|(8). diff -Nurp inn-2.6.4/doc/man/tdx-util.8 inn-2.6.5/doc/man/tdx-util.8 --- inn-2.6.4/doc/man/tdx-util.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/tdx-util.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "TDX-UTIL 8" -.TH TDX-UTIL 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH TDX-UTIL 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -361,8 +361,6 @@ using the tradspool article storage meth .SH "HISTORY" .IX Header "HISTORY" Written by Russ Allbery for InterNetNews. -.PP -\&\f(CW$Id:\fR tdx\-util.pod 9767 2014\-12\-07 21:13:43Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBmakehistory\fR\|(8), \fBnnrpd\fR\|(8). diff -Nurp inn-2.6.4/doc/man/tinyleaf.8 inn-2.6.5/doc/man/tinyleaf.8 --- inn-2.6.4/doc/man/tinyleaf.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/tinyleaf.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "TINYLEAF 8" -.TH TINYLEAF 8 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" +.TH TINYLEAF 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -226,8 +226,6 @@ them to the processor when starting up w .SH "HISTORY" .IX Header "HISTORY" Written by Russ Allbery for InterNetNews. -.PP -\&\f(CW$Id:\fR tinyleaf.pod 9767 2014\-12\-07 21:13:43Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBhosts_access\fR\|(5), \fBinetd\fR\|(8), \fBtcpd\fR\|(8). diff -Nurp inn-2.6.4/doc/man/tst.3 inn-2.6.5/doc/man/tst.3 --- inn-2.6.4/doc/man/tst.3 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/tst.3 1970-01-01 01:00:00.000000000 +0100 @@ -1,214 +0,0 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) -.\" -.\" Standard preamble: -.\" ======================================================================== -.de Sp \" Vertical space (when we can't use .PP) -.if t .sp .5v -.if n .sp -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" Set up some character translations and predefined strings. \*(-- will -.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left -.\" double quote, and \*(R" will give a right double quote. \*(C+ will -.\" give a nicer C++. Capital omega is used to do unbreakable dashes and -.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, -.\" nothing in troff, for use with C<>. -.tr \(*W- -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -. ds C` -. ds C' -'br\} -.\" -.\" Escape single quotes in literal strings from groff's Unicode transform. -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" -.\" If the F register is >0, we'll generate index entries on stderr for -.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index -.\" entries marked with X<> in POD. Of course, you'll have to process the -.\" output yourself in some meaningful fashion. -.\" -.\" Avoid warning from groff about undefined register 'F'. -.de IX -.. -.nr rF 0 -.if \n(.g .if rF .nr rF 1 -.if (\n(rF:(\n(.g==0)) \{\ -. if \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" -.. -. if !\nF==2 \{\ -. nr % 0 -. nr F 2 -. \} -. \} -.\} -.rr rF -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "tst 3" -.TH tst 3 "2015-09-12" "INN 2.6.4" "InterNetNews Documentation" -.\" For nroff, turn off justification. Always turn off hyphenation; it makes -.\" way too many mistakes in technical documents. -.if n .ad l -.nh -.SH "NAME" -tst \- ternary search trie functions -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -.Vb 1 -\& #include -\& -\& struct tst; -\& -\& struct tst *tst_init(int node_line_width); -\& -\& void tst_cleanup(struct tst *tst); -\& -\& int tst_insert(struct tst *tst, const unsigned char *key, void *data, int option, void **exist_ptr); -\& -\& void *tst_search(struct tst *tst, const unsigned char *key); -\& -\& void *tst_delete(struct tst *tst, const unsigned char *key); -.Ve -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fBtst_init\fR allocates memory for members of \fIstruct tst\fR, and -allocates the first \fInode_line_width\fR nodes. A \s-1NULL\s0 pointer is -returned by \fBtst_init\fR if any part of the memory allocation fails. On -success, a pointer to a \fIstruct tst\fR is returned. -.PP -The value for \fInode_line_width\fR must be chosen very carefully. One -node is required for every character in the tree. If you choose a -value that is too small, your application will spend too much time -calling \fBmalloc\fR\|(3) and your node space will be too spread out. Too large -a value is just a waste of space. -.PP -\&\fBtst_cleanup\fR frees all memory allocated to nodes, internal structures, -as well as \fItst\fR itself. -.PP -\&\fBtst_insert\fR inserts the string \fIkey\fR into the tree. Behavior when a -duplicate key is inserted is controlled by \fIoption\fR. If \fIkey\fR is -already in the tree then \fB\s-1TST_DUPLICATE_KEY\s0\fR is returned, and the -data pointer for the existing key is placed in \fIexist_ptr\fR. If -\&\fIoption\fR is set to \fB\s-1TST_REPLACE\s0\fR then the existing data pointer for -the existing key is replaced by \fIdata\fR. Note that the old data -pointer will still be placed in \fIexist_ptr\fR. -.PP -If a duplicate key is encountered and \fIoption\fR is not set to -\&\fB\s-1TST_REPLACE\s0\fR then \fB\s-1TST_DUPLICATE_KEY\s0\fR is returned. If \fIkey\fR is -zero length then \fB\s-1TST_NULL_KEY\s0\fR is returned. A successful insert or -replace returns \fB\s-1TST_OK\s0\fR. A return value of \fB\s-1TST_ERROR\s0\fR indicates -that a memory allocation error occurred while trying to grow the node -free. -.PP -Note that the \fIdata\fR argument must never be \fB\s-1NULL\s0\fR. If it is, then -calls to \fBtst_search\fR will fail for a key that exists because the -data value was set to \fB\s-1NULL\s0\fR, which is what \fBtst_search\fR returns. If -you just want a simple existence tree, use the \fBtst\fR pointer as the -data pointer. -.PP -\&\fBtst_search\fR finds the string \fIkey\fR in the tree if it exists and -returns the data pointer associated with that key. -.PP -If \fIkey\fR is not found then \fB\s-1NULL\s0\fR is returned, otherwise the data pointer -associated with \fIkey\fR is returned. -.PP -\&\fBtst_delete\fR deletes the string \fIkey\fR from the tree if it exists and -returns the data pointer assocaited with that key. -.PP -If \fIkey\fR is not found then \fB\s-1NULL\s0\fR is returned, otherwise the data -pointer associated with \fIkey\fR is returned. -.SH "HISTORY" -.IX Header "HISTORY" -Converted to \s-1POD\s0 from Peter A.\ Friend's ternary search trie -documentation by Alex Kiernan for -InterNetNews\ 2.4.0. -.PP -\&\f(CW$Id:\fR tst.pod 9073 2010\-05\-31 19:00:23Z iulius $ diff -Nurp inn-2.6.4/doc/man/uwildmat.3 inn-2.6.5/doc/man/uwildmat.3 --- inn-2.6.4/doc/man/uwildmat.3 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/uwildmat.3 1970-01-01 01:00:00.000000000 +0100 @@ -1,299 +0,0 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) -.\" -.\" Standard preamble: -.\" ======================================================================== -.de Sp \" Vertical space (when we can't use .PP) -.if t .sp .5v -.if n .sp -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" Set up some character translations and predefined strings. \*(-- will -.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left -.\" double quote, and \*(R" will give a right double quote. \*(C+ will -.\" give a nicer C++. Capital omega is used to do unbreakable dashes and -.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, -.\" nothing in troff, for use with C<>. -.tr \(*W- -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -. ds C` -. ds C' -'br\} -.\" -.\" Escape single quotes in literal strings from groff's Unicode transform. -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" -.\" If the F register is >0, we'll generate index entries on stderr for -.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index -.\" entries marked with X<> in POD. Of course, you'll have to process the -.\" output yourself in some meaningful fashion. -.\" -.\" Avoid warning from groff about undefined register 'F'. -.de IX -.. -.nr rF 0 -.if \n(.g .if rF .nr rF 1 -.if (\n(rF:(\n(.g==0)) \{\ -. if \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" -.. -. if !\nF==2 \{\ -. nr % 0 -. nr F 2 -. \} -. \} -.\} -.rr rF -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "uwildmat 3" -.TH uwildmat 3 "2018-05-14" "INN 2.6.4" "InterNetNews Documentation" -.\" For nroff, turn off justification. Always turn off hyphenation; it makes -.\" way too many mistakes in technical documents. -.if n .ad l -.nh -.SH "NAME" -uwildmat, uwildmat_simple, uwildmat_poison \- Perform wildmat matching -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -.Vb 1 -\& #include -\& -\& bool uwildmat(const char *text, const char *pattern); -\& -\& bool uwildmat_simple(const char *text, const char *pattern); -\& -\& enum uwildmat uwildmat_poison(const char *text, const char *pattern); -.Ve -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fBuwildmat\fR compares \fItext\fR against the wildmat expression \fIpattern\fR, -returning true if and only if the expression matches the text. \f(CW\*(C`@\*(C'\fR has -no special meaning in \fIpattern\fR when passed to \fBuwildmat\fR. Both \fItext\fR -and \fIpattern\fR are assumed to be in the \s-1UTF\-8\s0 character encoding, although -malformed \s-1UTF\-8\s0 sequences are treated in a way that attempts to be mostly -compatible with single-octet character sets like \s-1ISO 8859\-1.\s0 (In other -words, if you try to match \s-1ISO 8859\-1\s0 text with these routines everything -should work as expected unless the \s-1ISO 8859\-1\s0 text contains valid \s-1UTF\-8\s0 -sequences, which thankfully is somewhat rare.) -.PP -\&\fBuwildmat_simple\fR is identical to \fBuwildmat\fR except that neither \f(CW\*(C`!\*(C'\fR -nor \f(CW\*(C`,\*(C'\fR have any special meaning and \fIpattern\fR is always treated as a -single pattern. This function exists solely to support legacy interfaces -like \s-1NNTP\s0's \s-1XPAT\s0 command, and should be avoided when implementing new -features. -.PP -\&\fBuwildmat_poison\fR works similarly to \fBuwildmat\fR, except that \f(CW\*(C`@\*(C'\fR as the -first character of one of the patterns in the expression (see below) -\&\*(L"poisons\*(R" the match if it matches. \fBuwildmat_poison\fR returns -\&\fB\s-1UWILDMAT_MATCH\s0\fR if the expression matches the text, \fB\s-1UWILDMAT_FAIL\s0\fR if -it doesn't, and \fB\s-1UWILDMAT_POISON\s0\fR if the expression doesn't match because -a poisoned pattern matched the text. These enumeration constants are -defined in the \fBinn/libinn.h\fR header. -.SH "WILDMAT EXPRESSIONS" -.IX Header "WILDMAT EXPRESSIONS" -A wildmat expression follows rules similar to those of shell filename -wildcards but with some additions and changes. A wildmat \fIexpression\fR is -composed of one or more wildmat \fIpatterns\fR separated by commas. Each -character in the wildmat pattern matches a literal occurrence of that same -character in the text, with the exception of the following metacharacters: -.IP "?" 8 -Matches any single character (including a single \s-1UTF\-8\s0 multibyte -character, so \f(CW\*(C`?\*(C'\fR can match more than one byte). -.IP "*" 8 -Matches any sequence of zero or more characters. -.IP "\e" 8 -.IX Item "" -Turns off any special meaning of the following character; the following -character will match itself in the text. \f(CW\*(C`\e\*(C'\fR will escape any character, -including another backslash or a comma that otherwise would separate a -pattern from the next pattern in an expression. Note that \f(CW\*(C`\e\*(C'\fR is not -special inside a character range (no metacharacters are). -.IP "[...]" 8 -A character set, which matches any single character that falls within that -set. The presence of a character between the brackets adds that character -to the set; for example, \f(CW\*(C`[amv]\*(C'\fR specifies the set containing the -characters \f(CW\*(C`a\*(C'\fR, \f(CW\*(C`m\*(C'\fR, and \f(CW\*(C`v\*(C'\fR. A range of characters may be specified -using \f(CW\*(C`\-\*(C'\fR; for example, \f(CW\*(C`[0\-5abc]\*(C'\fR is equivalent to \f(CW\*(C`[012345abc]\*(C'\fR. The -order of characters is as defined in the \s-1UTF\-8\s0 character set, and if the -start character of such a range falls after the ending character of the -range in that ranking the results of attempting a match with that pattern -are undefined. -.Sp -In order to include a literal \f(CW\*(C`]\*(C'\fR character in the set, it must be the -first character of the set (possibly following \f(CW\*(C`^\*(C'\fR); for example, \f(CW\*(C`[]a]\*(C'\fR -matches either \f(CW\*(C`]\*(C'\fR or \f(CW\*(C`a\*(C'\fR. To include a literal \f(CW\*(C`\-\*(C'\fR character in the -set, it must be either the first or the last character of the set. -Backslashes have no special meaning inside a character set, nor do any -other of the wildmat metacharacters. -.IP "[^...]" 8 -A negated character set. Follows the same rules as a character set above, -but matches any character \fBnot\fR contained in the set. So, for example, -\&\f(CW\*(C`[^]\-]\*(C'\fR matches any character except \f(CW\*(C`]\*(C'\fR and \f(CW\*(C`\-\*(C'\fR. -.PP -In addition, \f(CW\*(C`!\*(C'\fR (and possibly \f(CW\*(C`@\*(C'\fR) have special meaning as the first -character of a pattern; see below. -.PP -When matching a wildmat expression against some text, each comma-separated -pattern is matched in order from left to right. In order to match, the -pattern must match the whole text; in regular expression terminology, it's -implicitly anchored at both the beginning and the end. For example, the -pattern \f(CW\*(C`a\*(C'\fR matches only the text \f(CW\*(C`a\*(C'\fR; it doesn't match \f(CW\*(C`ab\*(C'\fR or \f(CW\*(C`ba\*(C'\fR -or even \f(CW\*(C`aa\*(C'\fR. If none of the patterns match, the whole expression -doesn't match. Otherwise, whether the expression matches is determined -entirely by the rightmost matching pattern; the expression matches the -text if and only if the rightmost matching pattern is not negated. -.PP -For example, consider the text \f(CW\*(C`news.misc\*(C'\fR. The expression \f(CW\*(C`*\*(C'\fR matches -this text, of course, as does \f(CW\*(C`comp.*,news.*\*(C'\fR (because the second pattern -matches). \f(CW\*(C`news.*,!news.misc\*(C'\fR does not match this text because both -patterns match, meaning that the rightmost takes precedence, and the -rightmost matching pattern is negated. \f(CW\*(C`news.*,!news.misc,*.misc\*(C'\fR does -match this text, since the rightmost matching pattern is not negated. -.PP -Note that the expression \f(CW\*(C`!news.misc\*(C'\fR can't match anything. Either the -pattern doesn't match, in which case no patterns match and the expression -doesn't match, or the pattern does match, in which case because it's -negated the expression doesn't match. \f(CW\*(C`*,!news.misc\*(C'\fR, on the other hand, -is a useful pattern that matches anything except \f(CW\*(C`news.misc\*(C'\fR. -.PP -\&\f(CW\*(C`!\*(C'\fR has significance only as the first character of a pattern; anywhere -else in the pattern, it matches a literal \f(CW\*(C`!\*(C'\fR in the text like any other -non-metacharacter. -.PP -If the \fBuwildmat_poison\fR interface is used, then \f(CW\*(C`@\*(C'\fR behaves the same as -\&\f(CW\*(C`!\*(C'\fR except that if an expression fails to match because the rightmost -matching pattern began with \f(CW\*(C`@\*(C'\fR, \fB\s-1UWILDMAT_POISON\s0\fR is returned instead of -\&\fB\s-1UWILDMAT_FAIL\s0\fR. -.PP -If the \fBuwildmat_simple\fR interface is used, the matching rules are the -same as above except that none of \f(CW\*(C`!\*(C'\fR, \f(CW\*(C`@\*(C'\fR, or \f(CW\*(C`,\*(C'\fR have any special -meaning at all and only match those literal characters. -.SH "BUGS" -.IX Header "BUGS" -All of these functions internally convert the passed arguments to const -unsigned char pointers. The only reason why they take regular char -pointers instead of unsigned char is for the convenience of \s-1INN\s0 and other -callers that may not be using unsigned char everywhere they should. In a -future revision, the public interface should be changed to just take -unsigned char pointers. -.SH "HISTORY" -.IX Header "HISTORY" -Written by Rich \f(CW$alz\fR in 1986, and posted to Usenet -several times since then, most notably in comp.sources.misc in -March, 1991. -.PP -Lars Mathiesen enhanced the multi-asterisk failure -mode in early 1991. -.PP -Rich and Lars increased the efficiency of star patterns and reposted it to -comp.sources.misc in April, 1991. -.PP -Robert Elz added minus sign and close bracket handling -in June, 1991. -.PP -Russ Allbery added support for comma-separated patterns -and the \f(CW\*(C`!\*(C'\fR and \f(CW\*(C`@\*(C'\fR metacharacters to the core wildmat routines in July, -2000. He also added support for \s-1UTF\-8\s0 characters, changed the default -behavior to assume that both the text and the pattern are in \s-1UTF\-8,\s0 and -largely rewrote this documentation to expand and clarify the description -of how a wildmat expression matches. -.PP -Please note that the interfaces to these functions are named \fBuwildmat\fR -and the like rather than \fBwildmat\fR to distinguish them from the -\&\fBwildmat\fR function provided by Rich \f(CW$alz\fR's original implementation. -While this code is heavily based on Rich's original code, it has -substantial differences, including the extension to support \s-1UTF\-8\s0 -characters, and has noticeable functionality changes. Any bugs present in -it aren't Rich's fault. -.PP -\&\f(CW$Id:\fR uwildmat.pod 10283 2018\-05\-14 12:43:05Z iulius $ -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fBgrep\fR\|(1), \fBfnmatch\fR\|(3), \fBregex\fR\|(3), \fBregexp\fR\|(3). diff -Nurp inn-2.6.4/doc/man/writelog.8 inn-2.6.5/doc/man/writelog.8 --- inn-2.6.4/doc/man/writelog.8 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/man/writelog.8 2022-02-18 20:36:57.000000000 +0100 @@ -1,38 +1,169 @@ -.TH WRITELOG 8 -.SH NAME -writelog \- add a entry to an INN log file. -.SH SYNOPSIS -.B writelog -.I name -.I text... -.SH DESCRIPTION -.PP -The -.I writelog -script is used to write a log entry or send it as mail. -The -.I name -parameter specifies the name of the log file where the entry should -be written. -If it is the word ``mail'' then the entry is mailed to the news administrator, -.IR . -The data that is written or sent consists of the -.I text -given on the command line, followed by standard input indented by -four spaces. -.IR Shlock (1) -is used to avoid simultaneous updates to a single log file. -.SH HISTORY -Written by Landon Curt Noll and Rich $alz - for InterNetNews. -.de R$ -This is revision \\$3, dated \\$4. +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" .. -.R$ $Id: writelog.8 5909 2002-12-03 05:17:18Z vinocur $ +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "WRITELOG 8" +.TH WRITELOG 8 "2022-01-23" "INN 2.6.5" "InterNetNews Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +writelog \- Write or mail a log entry +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBwritelog\fR \fIname\fR \fItext\fR +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +The \fBwritelog\fR script is used to write a log entry or send it as mail. +.PP +The \fIname\fR parameter specifies the name of the log file where the +entry should be written. If it is the word \f(CW\*(C`mail\*(C'\fR, then the entry is +sent as the subject of a mail to the newsmaster address specified with +\&\fB\-\-with\-news\-master\fR at configure time (the default address is \f(CW\*(C`usenet\*(C'\fR). +.PP +If \fIname\fR is \f(CW\*(C`/dev/null\*(C'\fR, the script does nothing and exits. +.PP +The data that is written to a log file consists of the \fItext\fR given on the +command line, followed by standard input indented by four spaces. When sent +by mail, the subject is \fItext\fR and the body is standard input without +indentation. +.PP +\&\fBshlock\fR\|(1) is used to avoid simultaneous updates to a single log file. +.SH "HISTORY" +.IX Header "HISTORY" +Written by Landon Curt Noll and Rich \f(CW$alz\fR + for InterNetNews. Rewritten into \s-1POD\s0 by Julien Elie. .SH "SEE ALSO" -innd(8), -innstat(8), -news.daily(8), -newslog(5), -nnrpd(8), -scanlogs(8). +.IX Header "SEE ALSO" +\&\fBinnd\fR\|(8), \fBinnstat\fR\|(8), \fBnews.daily\fR\|(8), \fBnewslog\fR\|(5), \fBnnrpd\fR\|(8), \fBscanlogs\fR\|(8). diff -Nurp inn-2.6.4/doc/pod/Makefile inn-2.6.5/doc/pod/Makefile --- inn-2.6.4/doc/pod/Makefile 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/Makefile 2022-02-18 20:36:57.000000000 +0100 @@ -1,5 +1,3 @@ -## $Id: Makefile 9722 2014-09-24 17:47:12Z iulius $ -## ## This Makefile contains rules to generate the files derived from POD ## source. Normal make commands at the top level of the source tree don't ## recurse into this directory. These targets are only used by @@ -12,19 +10,23 @@ TEXT = ../../HACKING ../../INSTALL ../.. MAN1 = ../man/convdate.1 ../man/fastrm.1 ../man/getlist.1 \ ../man/grephistory.1 ../man/inews.1 ../man/innconfval.1 \ - ../man/innmail.1 ../man/pullnews.1 ../man/rnews.1 \ - ../man/shlock.1 ../man/simpleftp.1 ../man/sm.1 + ../man/innmail.1 ../man/nntpget.1 ../man/pullnews.1 ../man/rnews.1 \ + ../man/shlock.1 ../man/shrinkfile.1 ../man/simpleftp.1 ../man/sm.1 -MAN3 = ../man/libauth.3 ../man/libinnhist.3 ../man/libstorage.3 \ - ../man/list.3 ../man/qio.3 \ - ../man/tst.3 ../man/uwildmat.3 +MAN3 = ../man/libinn.3 ../man/libinn_clientlib.3 ../man/libinn_dbz.3 \ + ../man/libinn_inndcomm.3 \ + ../man/libauth.3 ../man/libinnhist.3 ../man/libstorage.3 \ + ../man/libinn_list.3 ../man/libinn_qio.3 \ + ../man/libinn_tst.3 ../man/libinn_uwildmat.3 MAN5 = ../man/active.5 ../man/active.times.5 ../man/buffindexed.conf.5 \ ../man/control.ctl.5 ../man/cycbuff.conf.5 ../man/distrib.pats.5 \ - ../man/distributions.5 ../man/expire.ctl.5 ../man/incoming.conf.5 \ - ../man/inn.conf.5 ../man/innfeed.conf.5 ../man/moderators.5 \ + ../man/distributions.5 ../man/expire.ctl.5 ../man/history.5 \ + ../man/incoming.conf.5 ../man/inn.conf.5 ../man/innfeed.conf.5 \ + ../man/innreport.conf.5 ../man/innwatch.ctl.5 ../man/moderators.5 \ ../man/motd.news.5 ../man/newsfeeds.5 ../man/newsgroups.5 \ - ../man/newslog.5 ../man/nntpsend.ctl.5 ../man/ovdb.5 \ + ../man/newslog.5 ../man/nnrpd.track.5 ../man/nntpsend.ctl.5 \ + ../man/ovdb.5 \ ../man/passwd.nntp.5 ../man/inn-radius.conf.5 ../man/readers.conf.5 \ ../man/storage.conf.5 ../man/subscriptions.5 @@ -33,10 +35,11 @@ MAN8 = ../man/actsync.8 ../man/archive.8 ../man/ckpasswd.8 ../man/cnfsheadconf.8 ../man/cnfsstat.8 \ ../man/controlchan.8 ../man/ctlinnd.8 ../man/cvtbatch.8 ../man/docheckgroups.8 \ ../man/domain.8 ../man/expire.8 ../man/expireover.8 \ - ../man/expirerm.8 ../man/ident.8 \ + ../man/expirerm.8 ../man/filechan.8 ../man/ident.8 \ ../man/innbind.8 ../man/inncheck.8 ../man/innd.8 ../man/inndf.8 \ - ../man/innfeed.8 ../man/innupgrade.8 ../man/innwatch.8 \ - ../man/innxmit.8 \ + ../man/innfeed.8 ../man/innreport.8 ../man/innstat.8 \ + ../man/innupgrade.8 \ + ../man/innwatch.8 ../man/innxbatch.8 ../man/innxmit.8 \ ../man/makedbz.8 ../man/makehistory.8 ../man/mod-active.8 \ ../man/news.daily.8 ../man/news2mail.8 ../man/ninpaths.8 \ ../man/nnrpd.8 ../man/nntpsend.8 \ @@ -44,9 +47,9 @@ MAN8 = ../man/actsync.8 ../man/archive.8 ../man/ovdb_stat.8 ../man/overchan.8 \ ../man/procbatch.8 ../man/prunehistory.8 ../man/radius.8 \ ../man/rc.news.8 ../man/scanlogs.8 ../man/scanspool.8 \ - ../man/sendinpaths.8 \ + ../man/send-ihave.8 ../man/send-nntp.8 ../man/sendinpaths.8 \ ../man/tally.control.8 ../man/tdx-util.8 \ - ../man/tinyleaf.8 + ../man/tinyleaf.8 ../man/writelog.8 ALL = $(TEXT) $(MAN1) $(MAN3) $(MAN5) $(MAN8) @@ -60,7 +63,7 @@ maintclean: distclean ../../HACKING: hacking.pod ; $(POD2TEXT) $? > $@ ../../INSTALL: install.pod ; $(POD2TEXT) $? > $@ ../../NEWS: news.pod ; $(POD2TEXT) $? > $@ -../../README: readme.pod ; $(POD2TEXT) $? > $@ +../../README: ../../readme.pod ; $(POD2TEXT) $? > $@ ../checklist: checklist.pod ; $(POD2TEXT) $? > $@ ../external-auth: external-auth.pod ; $(POD2TEXT) $? > $@ ../hook-perl: hook-perl.pod ; $(POD2TEXT) $? > $@ @@ -73,19 +76,25 @@ maintclean: distclean ../man/inews.1: inews.pod ; $(POD2MAN) -s 1 $? > $@ ../man/innconfval.1: innconfval.pod ; $(POD2MAN) -s 1 $? > $@ ../man/innmail.1: innmail.pod ; $(POD2MAN) -s 1 $? > $@ +../man/nntpget.1: nntpget.pod ; $(POD2MAN) -s 1 $? > $@ ../man/pullnews.1: pullnews.pod ; $(POD2MAN) -s 1 $? > $@ ../man/rnews.1: rnews.pod ; $(POD2MAN) -s 1 $? > $@ ../man/shlock.1: shlock.pod ; $(POD2MAN) -s 1 $? > $@ +../man/shrinkfile.1: shrinkfile.pod ; $(POD2MAN) -s 1 $? > $@ ../man/simpleftp.1: simpleftp.pod ; $(POD2MAN) -s 1 $? > $@ ../man/sm.1: sm.pod ; $(POD2MAN) -s 1 $? > $@ ../man/libauth.3: libauth.pod ; $(POD2MAN) -s 3 $? > $@ +../man/libinn.3: libinn.pod ; $(POD2MAN) -s 3 $? > $@ ../man/libinnhist.3: libinnhist.pod ; $(POD2MAN) -s 3 $? > $@ ../man/libstorage.3: libstorage.pod ; $(POD2MAN) -s 3 $? > $@ -../man/list.3: list.pod ; $(POD2MAN) -s 3 $? > $@ -../man/qio.3: qio.pod ; $(POD2MAN) -s 3 $? > $@ -../man/tst.3: tst.pod ; $(POD2MAN) -s 3 $? > $@ -../man/uwildmat.3: uwildmat.pod ; $(POD2MAN) -s 3 $? > $@ +../man/libinn_clientlib.3: libinn_clientlib.pod ; $(POD2MAN) -s 3 $? > $@ +../man/libinn_dbz.3: libinn_dbz.pod ; $(POD2MAN) -s 3 $? > $@ +../man/libinn_inndcomm.3: libinn_inndcomm.pod ; $(POD2MAN) -s 3 $? > $@ +../man/libinn_list.3: libinn_list.pod ; $(POD2MAN) -s 3 $? > $@ +../man/libinn_qio.3: libinn_qio.pod ; $(POD2MAN) -s 3 $? > $@ +../man/libinn_tst.3: libinn_tst.pod ; $(POD2MAN) -s 3 $? > $@ +../man/libinn_uwildmat.3: libinn_uwildmat.pod ; $(POD2MAN) -s 3 $? > $@ ../man/active.5: active.pod ; $(POD2MAN) -s 5 $? > $@ ../man/active.times.5: active.times.pod ; $(POD2MAN) -s 5 $? > $@ @@ -95,14 +104,18 @@ maintclean: distclean ../man/distrib.pats.5: distrib.pats.pod ; $(POD2MAN) -s 5 $? > $@ ../man/distributions.5: distributions.pod ; $(POD2MAN) -s 5 $? > $@ ../man/expire.ctl.5: expire.ctl.pod ; $(POD2MAN) -s 5 $? > $@ +../man/history.5: history.pod ; $(POD2MAN) -s 5 $? > $@ ../man/incoming.conf.5: incoming.conf.pod ; $(POD2MAN) -s 5 $? > $@ ../man/inn.conf.5: inn.conf.pod ; $(POD2MAN) -s 5 $? > $@ ../man/innfeed.conf.5: innfeed.conf.pod ; $(POD2MAN) -s 5 $? > $@ +../man/innreport.conf.5: innreport.conf.pod ; $(POD2MAN) -s 5 $? > $@ +../man/innwatch.ctl.5: innwatch.ctl.pod ; $(POD2MAN) -s 5 $? > $@ ../man/moderators.5: moderators.pod ; $(POD2MAN) -s 5 $? > $@ ../man/motd.news.5: motd.news.pod ; $(POD2MAN) -s 5 $? > $@ ../man/newsfeeds.5: newsfeeds.pod ; $(POD2MAN) -s 5 $? > $@ ../man/newsgroups.5: newsgroups.pod ; $(POD2MAN) -s 5 $? > $@ ../man/newslog.5: newslog.pod ; $(POD2MAN) -s 5 $? > $@ +../man/nnrpd.track.5: nnrpd.track.pod ; $(POD2MAN) -s 5 $? > $@ ../man/nntpsend.ctl.5: nntpsend.ctl.pod ; $(POD2MAN) -s 5 $? > $@ ../man/ovdb.5: ovdb.pod ; $(POD2MAN) -s 5 $? > $@ ../man/passwd.nntp.5: passwd.nntp.pod ; $(POD2MAN) -s 5 $? > $@ @@ -127,14 +140,18 @@ maintclean: distclean ../man/expire.8: expire.pod ; $(POD2MAN) -s 8 $? > $@ ../man/expireover.8: expireover.pod ; $(POD2MAN) -s 8 $? > $@ ../man/expirerm.8: expirerm.pod ; $(POD2MAN) -s 8 $? > $@ +../man/filechan.8: filechan.pod ; $(POD2MAN) -s 8 $? > $@ ../man/ident.8: ident.pod ; $(POD2MAN) -s 8 $? > $@ ../man/innbind.8: innbind.pod ; $(POD2MAN) -s 8 $? > $@ ../man/inncheck.8: inncheck.pod ; $(POD2MAN) -s 8 $? > $@ ../man/innd.8: innd.pod ; $(POD2MAN) -s 8 $? > $@ ../man/inndf.8: inndf.pod ; $(POD2MAN) -s 8 $? > $@ ../man/innfeed.8: innfeed.pod ; $(POD2MAN) -s 8 $? > $@ +../man/innreport.8: innreport.pod ; $(POD2MAN) -s 8 $? > $@ +../man/innstat.8: innstat.pod ; $(POD2MAN) -s 8 $? > $@ ../man/innupgrade.8: innupgrade.pod ; $(POD2MAN) -s 8 $? > $@ ../man/innwatch.8: innwatch.pod ; $(POD2MAN) -s 8 $? > $@ +../man/innxbatch.8: innxbatch.pod ; $(POD2MAN) -s 8 $? > $@ ../man/innxmit.8: innxmit.pod ; $(POD2MAN) -s 8 $? > $@ ../man/makedbz.8: makedbz.pod ; $(POD2MAN) -s 8 $? > $@ ../man/makehistory.8: makehistory.pod ; $(POD2MAN) -s 8 $? > $@ @@ -155,7 +172,10 @@ maintclean: distclean ../man/rc.news.8: rc.news.pod ; $(POD2MAN) -s 8 $? > $@ ../man/scanlogs.8: scanlogs.pod ; $(POD2MAN) -s 8 $? > $@ ../man/scanspool.8: scanspool.pod ; $(POD2MAN) -s 8 $? > $@ +../man/send-ihave.8: send-ihave.pod ; $(POD2MAN) -s 8 $? > $@ +../man/send-nntp.8: send-nntp.pod ; $(POD2MAN) -s 8 $? > $@ ../man/sendinpaths.8: sendinpaths.pod ; $(POD2MAN) -s 8 $? > $@ ../man/tally.control.8: tally.control.pod ; $(POD2MAN) -s 8 $? > $@ ../man/tdx-util.8: tdx-util.pod ; $(POD2MAN) -s 8 $? > $@ ../man/tinyleaf.8: tinyleaf.pod ; $(POD2MAN) -s 8 $? > $@ +../man/writelog.8: writelog.pod ; $(POD2MAN) -s 8 $? > $@ diff -Nurp inn-2.6.4/doc/pod/active.pod inn-2.6.5/doc/pod/active.pod --- inn-2.6.4/doc/pod/active.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/active.pod 2022-02-18 20:36:57.000000000 +0100 @@ -121,8 +121,6 @@ B called with the B<-u> f Written by Rich $alz for InterNetNews. Converted to POD by Russ Allbery . -$Id: active.pod 9767 2014-12-07 21:13:43Z iulius $ - =head1 SEE ALSO active.times(5), actsync(8), controlchan(8), ctlinnd(8), docheckgroups(8), diff -Nurp inn-2.6.4/doc/pod/active.times.pod inn-2.6.5/doc/pod/active.times.pod --- inn-2.6.4/doc/pod/active.times.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/active.times.pod 2022-02-18 20:36:57.000000000 +0100 @@ -45,8 +45,6 @@ the time is not necessarily the same on Written by Rich $alz for InterNetNews. Converted to POD by Russ Allbery . -$Id: active.times.pod 9971 2015-12-10 20:30:10Z iulius $ - =head1 SEE ALSO active(5), convdate(1), ctlinnd(8), getlist(1), inn.conf(5), innd(8), diff -Nurp inn-2.6.4/doc/pod/actsync.pod inn-2.6.5/doc/pod/actsync.pod --- inn-2.6.4/doc/pod/actsync.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/actsync.pod 2022-02-18 20:36:57.000000000 +0100 @@ -12,6 +12,30 @@ B [B<-AkmT>] [B<-b> I] B I [I [I]] +=head1 IN A NUTSHELL + +These programs permit keeping the list of newsgroups your news server carry +synchronized with an external source. + +For instance, you can decide to carry the same newsgroups as another news +server or as the ones listed in a file from an external FTP site, and +therefore synchronizing with the chosen source on a daily basis by running +B in a cron job. + +If you only want a subset of newsgroups from that source, it can be +parametered in the F configuration file in the I +directory. + +INN comes with a default configuration for fetching the list of newsgroups +from C. You can read about the policies used for maintaining +that F file at L. +Just make sure F (the configuration file) and F (the +synchronization rules) suit your needs, and run: + + actsyncd /actsync.cfg + +You'll find more detailed examples of use below in this man page. + =head1 DESCRIPTION B permits one to synchronize, compare, or merge two F @@ -107,10 +131,10 @@ contain the following options: ignore_file= flags= -The host=, ignore_file=, and flags= lines are mandatory. Each keyword must -start at the beginning of the line, and there may be no whitespace before -the C<=> character. Blank lines are ignored, as are comment lines that -start with C<#>. Any other lines may produce undefined results. +The C, C, and C lines are mandatory. +Each keyword must start at the beginning of the line, and there may be no +whitespace before the C<=> character. Blank lines are ignored, as are comment +lines that start with C<#>. Any other lines may produce undefined results. The setting refers to the second (remote) I parameter to B. If is provided, is accessed as an FTP @@ -119,18 +143,20 @@ C<.Z>, it will be automatically uncompre names the ignore file used by B (the B<-i> option). contains any other flags that you wish to pass to B. -Note that one should not include B<-i> or B<-o> options in the flags= -line; they are automatically taken care of by B. +Note that one should not include B<-i> or B<-o> options in the C line; +they are automatically taken care of by B. -One may produce a trial B run without changing anything on the -server by supplying the I argument: +One may produce a trial B run without changing anything on +the server by supplying the I argument: actsyncd /actsync.cfg 2 The I causes B to run B with a B<-v> -I flag (overriding any B<-v> flag on the flags= line), not -make any changes to the F file, write a new F file to -standard output, and write debug messages to standard error. +I flag (overriding any B<-v> flag on the C line), +not make any changes to the F file, write a new F file to +standard output, and write debug messages to standard error. Note that using +I is only supported when synchronizing with another news server, +not with FTP. If the I argument is also given to B, the data written to standard output will be in B<-o I> instead of in @@ -140,7 +166,7 @@ INN comes with default values of C for . You can read about the policies used for maintaining that F file at L. Consider synchronizing -from this file on a daily basis by using B. +from this file on a daily basis by using a cron job. =head1 OPTIONS @@ -163,7 +189,8 @@ second I argument, or the only one =item B<-A> -B tries to authenticate before issuing the LIST command. +B tries to authenticate using the username and password information +in passwd.nntp(5) before issuing the LIST command. =item B<-b> I @@ -241,7 +268,7 @@ one of two forms: If the rule begins with a C, the rule requests certain newsgroups to be checked. If the rule begins with an C, the rule requests certain newsgroups to be ignored. The field may be a specific -newsgroup, or a uwildmat(3) pattern. +newsgroup, or a I pattern. If one or more s are specified, then the rule applies to the newsgroup only if it is of the specified type. Types refer to the 4th field @@ -255,7 +282,7 @@ of the F file; that is, a type m =group.name Unlike F files, the C in an alias type may be a newsgroup -name or a uwildmat(3) pattern. Also, C<=> is equivalent to C<=*>. +name or a I pattern. Also, C<=> is equivalent to C<=*>. On each rule line, no pattern type may be repeated. For example, one may not have more than one type that begins with C<=>, per line. However, @@ -286,8 +313,8 @@ flag may be useful in conjunction with t actsync -i actsync.ign -I 2 -m host1 host2 -will keep all newsgroups currently on host1. It will also only -compare host1 groups with non-ignored newsgroups from host2. +will keep all newsgroups currently on I. It will also only +compare I groups with non-ignored newsgroups from I. The default is C<-I 12>; newsgroups from both hosts are ignored per the file specified with B<-i>. @@ -566,14 +593,14 @@ executed if C<-o x> is selected. =head1 EXAMPLES -Determine the difference (but don't change anything) between your -newsgroup set and uunet's set: +Determine the difference (but don't change anything) between your newsgroup +set and the one of another news server: - actsync news.uu.net + actsync news.server.com Same as above, with full debug and progress reports: - actsync -v 4 news.uu.net + actsync -v 4 news.server.com Force a site to have the same newsgroups as some other site: @@ -582,11 +609,11 @@ Force a site to have the same newsgroups This may be useful to sync a slave site to its master, or to sync internal site to a gateway. -Compare your site with uunet, disregarding local groups and certain local -differences with uunet. Produce a report if any differences were +Compare your site with news.server.com, disregarding local groups and +certain local differences with it. Produce a report if any differences were encountered: - actsync -v 2 -i actsync.ign news.uu.net + actsync -v 2 -i actsync.ign news.server.com where F contains: @@ -601,7 +628,7 @@ where F contains: i nsa.* # These groups are local favorites, so keep them - # even if uunet does not carry them. + # even if news.server.com does not carry them. # i ca.dump.bob.dorman i ca.keep.bob.dorman @@ -609,9 +636,9 @@ where F contains: i alt.tv.dinosaurs.barney.love.love.love i alt.sounds.* =alt.binaries.sounds.* -To interactively sync against news.uu.net, using the same ignore file: +To interactively sync against news.server.com, using the same ignore file: - actsync -o xi -v 2 -i actsync.ign news.uu.net + actsync -o xi -v 2 -i actsync.ign news.server.com Based on newsgroups that you decided to keep, one could make changes to the F file: @@ -627,7 +654,7 @@ the F file: i nsa.* # These groups are local favorites, so keep them - # even if uunet does not carry them. + # even if news.server.com does not carry them. # i ca.dump.bob.dorman i alt.tv.dinosaurs.barney.die.die.die @@ -645,7 +672,7 @@ Automatic processing may be set up by us file: # Host to sync off of (host2). - host=news.uu.net + host=news.server.com # Location of the ignore file. ignore_file=/actsync.ign @@ -657,7 +684,7 @@ file: # # Automatic execs, report if something was done, # otherwise don't say anything, don't report - # uunet active file problems, just ignore + # news.server.com active file problems, just ignore # the affected entries. flags=-o x -v 2 -q 2 @@ -669,11 +696,12 @@ The command actsyncd /actsync.cfg 4 >cmd.log 2>dbg.log -will operate in debug mode, not change the F file, write -B style commands to F, and write debug statements to -F. +will operate in debug mode, not change the F file, write B +style commands to F, and write debug statements to F. +(Note that using I is only supported when synchronizing with +another news server, not with FTP.) -To check only the major hierarchies against news.uu,net, use the following +To check only the major hierarchies against news.server.com, use the following F file: # By default, ignore everything. @@ -695,7 +723,7 @@ F file: and the command: - actsync -i actsync.ign news.uu.net + actsync -i actsync.ign news.server.com To determine the differences between your old F and your current default server: @@ -774,8 +802,6 @@ Written by Landon Curt Noll . Converted to POD by Russ Allbery . -$Id: actsync.pod 10097 2016-11-04 22:19:07Z iulius $ - By Landon Curt Noll (chongo was here /\../\). Copyright (c) Landon Curt Noll, 1993. All rights reserved. @@ -785,6 +811,7 @@ remains. Use at your own risk. No warr =head1 SEE ALSO -active(5), ctlinnd(8), getlist(8), inn.conf(5), mod-active(8), simpleftp(1). +active(5), ctlinnd(8), getlist(8), inn.conf(5), libinn_uwildmat(3), +mod-active(8), passwd.nntp(5), simpleftp(1). =cut diff -Nurp inn-2.6.4/doc/pod/archive.pod inn-2.6.5/doc/pod/archive.pod --- inn-2.6.4/doc/pod/archive.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/archive.pod 2022-02-18 20:36:57.000000000 +0100 @@ -82,8 +82,8 @@ LF replaced by spaces). =item B<-p> I -Limits the targets taken from the Xref: header to the groups specified in -I. I is a uwildmat(3) pattern matching newsgroups that +Limits the targets taken from the Xref header field to the groups specified in +I. I is a I pattern matching newsgroups that you wish to have B handle. =item B<-r> @@ -122,10 +122,8 @@ Replace and with Written by Rich $alz for InterNetNews. Converted to POD by Russ Allbery . -$Id: archive.pod 9767 2014-12-07 21:13:43Z iulius $ - =head1 SEE ALSO -inn.conf(5), newsfeeds(5). +inn.conf(5), libinn_uwildmat(3), newsfeeds(5). =cut diff -Nurp inn-2.6.4/doc/pod/auth_krb5.pod inn-2.6.5/doc/pod/auth_krb5.pod --- inn-2.6.4/doc/pod/auth_krb5.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/auth_krb5.pod 2022-02-18 20:36:57.000000000 +0100 @@ -81,8 +81,6 @@ Originally written by Christopher S based on Christopher's original F file. -$Id: auth_krb5.pod 9774 2015-01-04 21:50:10Z eagle $ - =head1 SEE ALSO ckpasswd(8), nnrpd(8), readers.conf(5). diff -Nurp inn-2.6.4/doc/pod/batcher.pod inn-2.6.5/doc/pod/batcher.pod --- inn-2.6.4/doc/pod/batcher.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/batcher.pod 2022-02-18 20:36:57.000000000 +0100 @@ -150,8 +150,6 @@ file as described above. Written by Rich $alz for InterNetNews. Rewritten by Russ Allbery in POD. -$Id: batcher.pod 9767 2014-12-07 21:13:43Z iulius $ - =head1 SEE ALSO ctlinnd(8), inn.conf(5), newsfeeds(5), rnews(8), send-uucp(8), shlock(1). diff -Nurp inn-2.6.4/doc/pod/buffchan.pod inn-2.6.5/doc/pod/buffchan.pod --- inn-2.6.4/doc/pod/buffchan.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/buffchan.pod 2022-02-18 20:36:57.000000000 +0100 @@ -90,8 +90,9 @@ has been open for more than I s =item B<-d> I -This flag may be used to specify a directory the program should change to -before starting. If this flag is used, the default for the B<-s> flag +By default, B writes its output into the I directory. +This flag may be used to specify a directory the program should change +to before starting. If this flag is used, the default for the B<-s> flag (see below) is changed to be a simple C<%s> (in other words, output files are considered to be relative to I). @@ -122,7 +123,10 @@ In the map file, blank lines and lines s are ignored. All other lines should have two host names separated by a colon. The first field is the name that may appear in the input stream; the second field names the file to be used when the name in the first -field appears. For example: +field appears. + +For example, the following map file may be used to map the short names used +in the example below to the full domain names: # This is a comment uunet:news.uu.net @@ -159,33 +163,41 @@ If the B<-u> flag is used, the output wi If B is invoked with C<-f 2> and given the following input: - news/software/b/132 <1643@munnari.oz.au> foo uunet - news/software/b/133 <102060@litchi.foo.com> uunet munnari - comp/sources/unix/2002 <999@news.foo.com> foo uunet munnari + news.software.nntp <1643@munnari.oz.au> foo uunet + news.software.nntp <102060@litchi.foo.com> uunet munnari + comp.sources.unix <999@news.foo.com> foo uunet munnari + +then the file F in I will have these lines: + + news.software.nntp <1643@munnari.oz.au> + comp.sources.unix <999@news.foo.com> -Then the file F will have these lines: +the file F in I will have these lines: - news/software/b/132 <1643@munnari.oz.au> - comp/sources/unix/2002 <999@news.foo.com> + news.software.nntp <102060@litchi.foo.com> + comp.sources.unix <999@news.foo.com> -the file F will have these lines: +and the file F in I will have these lines: - news/software/b/133 <102060@litchi.foo.com> - comp/sources/unix/2002 <999@news.foo.com> + news.software.nntp <1643@munnari.oz.au> + news.software.nntp <102060@litchi.foo.com> + comp.sources.unix <999@news.foo.com> -and the file F will have these lines: +Using B this way can be done in F with for instance: - news/software/b/132 <1643@munnari.oz.au> - news/software/b/133 <102060@litchi.foo.com> - comp/sources/unix/2002 <999@news.foo.com> + foo:*,@misc.*:Ap,Tm:buffchan! + munnari:*,@rec.*:Ap,Tm:buffchan! + uunet:*:Ap,Tm:buffchan! + buffchan!:*:Tx,WGm*:/buffchan -f 2 + +It will generate the examples above. See the C flag in newsfeeds(5) +for how to parameter the output. =head1 HISTORY Written by Rich $alz for InterNetNews. Converted to POD by Russ Allbery . -$Id: buffchan.pod 9767 2014-12-07 21:13:43Z iulius $ - =head1 SEE ALSO ctlinnd(8), filechan(8), inn.conf(5), innd(8), newsfeeds(5). diff -Nurp inn-2.6.4/doc/pod/buffindexed.conf.pod inn-2.6.5/doc/pod/buffindexed.conf.pod --- inn-2.6.4/doc/pod/buffindexed.conf.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/buffindexed.conf.pod 2022-02-18 20:36:57.000000000 +0100 @@ -150,8 +150,6 @@ user to read and write. Written by Katsuhiro Kondou for InterNetNews. Converted to POD by Russ Allbery . -$Id: buffindexed.conf.pod 10525 2021-01-20 11:51:15Z iulius $ - =head1 SEE ALSO expireover(8), inn.conf(5), inndf(8), makehistory(8). diff -Nurp inn-2.6.4/doc/pod/checklist.pod inn-2.6.5/doc/pod/checklist.pod --- inn-2.6.4/doc/pod/checklist.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/checklist.pod 2022-02-18 20:36:57.000000000 +0100 @@ -1,37 +1,73 @@ =head1 Introduction -$Id: checklist.pod 10283 2018-05-14 12:43:05Z iulius $ +This is an installation checklist initially written by Rebecca Ore, +intended to be the beginning of a different presentation of the information +in F, since getting started with installing INN can be complex. +Further clarifications, updates, and expansion are welcome. + +This checklist explains the steps to follow for a standard installation with +reasonable defaults. + +The first part of this documentation can be skipped if INN is already +installed on your system. Some distributions provide a package, which should +be used in preference of building from stratch. -This is an installation checklist written by Rebecca Ore, intended to be -the beginning of a different presentation of the information in F, -since getting started with installing INN can be complex. Further -clarifications, updates, and expansion are welcome. - -=head1 Setup +=head1 Compile (when installing from scratch) =over 4 =item * -Make sure there is a C user (and a C group to which the -C user belongs). If necessary, you can use: +Download the INN tarball and unpack. Make sure that you download +the last release from L or a snapshot +from L. + +=item * + +Make sure there is a C user (and a C group to which the C +user belongs). If necessary, you can use: adduser --group --home /usr/local/news news -where F is the home directory for the C user. -This directory will be passed to B via the B<--prefix> -option. It will also be set as I in F. +where F is the home directory for the C user. This +directory will be passed to C via the B<--prefix> option. It will +also be set as I in F. =item * -Create a local mail alias for C (editing your F file -for instance). +Work out configure options (C<./configure --help> for a list). If you +aren't working out of F, or want to put some files on a +different partition, you can set the directories now (or later in I +in F if you change your mind). By default, +B<--prefix=/usr/local/news> is used. + +You probably want B<--with-perl>. You might want to compile in TLS support. +You will need to have the relevant external libraries to compile (depending on +whether you use OpenSSL for TLS access to your news server, Perl and/or Python +for spam and abuse filtering, etc.) and to correctly set the right paths to +external programs (like for GnuPG to verify the authenticity of Usenet control +messages). + + ./configure --with-perl --with-openssl ... + make + + su + make install + +Note that if you update a previous installation of INN, you should use +C instead of C to keep your configuration files. + +If you wish to use TLS, you can use C to generate a self-signed +certificate and a private key. =item * Make sure the directory F and its subdirectories are owned by C, group C. +(If you ran C as root, all of the ownerships and permissions +should be correct.) + You want to be careful that things in that directory stay owned by C S<-- but> you can't just C after the install, because you may have binaries that are SUID root. You can do the build @@ -41,205 +77,197 @@ C to avoid creating maintenance once INN is working, you can generally be root. However, it is always better to be accustomed to doing that as the news user.) -=item * - -If necessary, add F<~news/bin> (that is to say I) to the news -user's path and F<~news/share/man> (that is to say I/share/man) -to the news user's MANPATH in your shell config files. (You may want to -do this, especially the second part, on your regular account; the -man pages are very useful.) - -You can do this now or later, but you will certainly want the man pages -to help with configuring INN. - -For bash, try: - - PATH=:$PATH - export PATH - MANPATH=/share/man:$MANPATH - export MANPATH - -or csh: - - setenv PATH :$PATH - setenv MANPATH /share/man:$MANPATH - -although if you don't already have MANPATH set, the above may give an -error or override your defaults (making it so you can only read the news -man pages); if C does not give some reasonable path, -you'll need to look up what the default is for your system (such as -F or F). - =back -=head1 Compile +=head1 Parameter =over 4 =item * -Download the INN tarball and unpack. Make sure that you download -the last release from L or a snapshot -from L. +Find F and open a separate window for it. A printout is probably a +good idea S<-- it's> long but very helpful. You'll find in F more +information and background about each step in this document. =item * -Work out configure options (C<./configure --help> for a list). If you -aren't working out of F, or want to put some files on a -different partition, you can set the directories now (or later in I -in F if you change your mind). By default, -B<--prefix=/usr/local/news> is used. +Now it's time to work on the configuration files in your I directory. +Start with F; you must fill in or check I (which can +be commented if you do not want to add a default Organization header field to +every post from your server), your path identity in I (usually your +fully qualified domain name), the NNTP server to use for posts (I +is commonly set to C), the maximum size of articles you accept +(I, set to S<1 MB> by default), and the abuse e-mail address +(I). -You probably want B<--with-perl>. If you're not using NetBSD with -cycbuffs or OpenBSD, perhaps B<--with-tagged-hash>. You might want to -compile in TLS/SSL and S, if your system supports them. You -will need to have the relevant external libraries to compile (depending -on whether you use OpenSSL for TLS/SSL access to your news server, GnuPG -to verify the authenticity of Usenet control messages, Perl, Python, etc.). +To store overview data, start with tradindexed overview method, already set +by default in the I parameter, but know that there are various other +options with their own pros and cons, as detailed in F. - ./configure --with-perl ... - make +=item * - su - make install +To store articles, start with traditional spool (named tradspool), but know +that there are various other options with their own pros and cons, as detailed +in F. -(If you do the last step as root, all of the ownerships and permissions -will be correct.) +The default F file is already parametered to use that storage +method. -Note that if you update a previous installation of INN, you should use -C instead of C to keep your configuration files. +=item * -If you wish to use TLS/SSL, you can use C to generate -a certificate and a private key. +Configure in F how long articles should be kept in your news +spool. The default of 90 days maybe does not fit your needs. You can use +different values for specific newsgroups or hierarchies depending on your +interest in them. -=back +=item * -=head1 Configure +Run C<< /inncheck -a -v -f --pedantic --perm >> and fix +anything noted; B gives a rough check on the appropriateness of the +configuration files as you go. -=over 4 +Note that B is very conservative about permissions; there's no +reason most of the config files can't be world-readable if you prefer that. =item * -Find F and open a separate window for it. A printout is -probably a good idea S<-- it's> long but very helpful. Any time the -instructions below ask you to make a decision, you can probably find -help in F. +You can now import an F file (I/active) and run B again. You may want to look at +L and only keep the lines +corresponding to the newsgroups you are interested in. Also import a +F file which contains the descriptions of these newsgroups (see +for instance L). + +Note that it is not necessary to do that now. INN is shipped with minimal +F and F files and you can add newsgroups later with +C or B (have a look at the examples at the end of +the actsync(8) man page for how to use it concretely). =item * -Now it's time to work on the files in F<~news/etc> (the default I -location set in F). Start with F; you must fill -in the default moderators address, your fully qualified domain names -and path. Fill in all the blanks. Change the file descriptor limits -to something like C<500>. +Review the F file, and update it according to the newsgroups +you carry on your news server. This file, which may be empty, is used by a +few news clients to suggest newsgroups on the first time they connect to a +news server. =item * -If using cycbuffs (the CNFS storage method), open F in one -window and a shell in another to create the cycbuff as described in -F. As you create them, record in F the paths and -sizes. Save paths and sizes in a separate text file on another machine -in case you ever blow away the wrong file. - -Name the metacycbuff, then configure F. +Create the cron jobs (especially B), the log files, and make the +changes to your system's F as noted in F. =item * -In F, be sure that all sizes of articles can be -accommodated. If you want to throw away large articles, do it explicitly -by using the C storage method (you can also set a lower I -in F). +Create a local mail alias for C (editing your F file for +instance). It will be useful for daily Usenet reports sent by B +and other parts of the system. =item * -The default options in F work fine if you have cycbuffs; if -not, configure to suit (depending on your disk space and your interest -in some hierarchies, you can define how long you keep articles in your -news spool). +If necessary, add the path to INN's binaries (as set in I in +F) to the news user's path and the path to INN's man pages (usually +I/share/man) to the news user's C in your shell config +files. (You may also want to do this, especially the second part, on your +regular account; the man pages are very useful.) -=item * +You can do this now or later, but you will certainly want the man pages to +help with configuring INN. -Check over F and F. You may want to also -configure the process of newsgroup control messages (see the corresponding -section in F). +For bash, try to add in your F<~/.bashrc> file: -=item * + PATH=:$PATH + export PATH + MANPATH=/share/man:$MANPATH + export MANPATH -Run C<< /inncheck -a -v -f --pedantic --perm >> and fix anything noted: -B gives a rough check on the appropriateness of the configuration -files as you go. (It's the equivalent of C for -Perl scripts.) +or csh in your F<~/.cshrc> file: -Note that B is very conservative about permissions; there's no -reason most of the config files can't be world-readable if you prefer -that. + setenv PATH :$PATH + setenv MANPATH /share/man:$MANPATH + +although if you don't already have C set, the above may give an +error or override your defaults (making it so you can only read the news +man pages); if C does not give some reasonable path, you'll +need to look up what the default is for your system (such as F or +F). =item * -You can now import an F file (I/active) and run B -again. You may want to look at L -and only keep the lines corresponding to the newsgroups you are interested in. -Also import a F file which contains the descriptions of these -newsgroups (see for instance L). +For the time being, we can see if everything initially works without worrying +about feeds or reader access. -Note that it is not necessary to do that now. INN is shipped with minimal -F and F files and you can add newsgroups later with -C or B. +=back -In case you need to create empty initial database files, import an F -file (owned by C) and execute as the news user: +=head1 Run - cd +=over 4 - touch newsgroups - touch active.times +=item * - touch history - /makedbz -i - mv history.n.hash history.hash - mv history.n.index history.index - mv history.n.dir history.dir +Start B by running I/rc.news B. It +is also what you should launch in your init scripts so that INN starts when +your server boots: - chmod 644 * + su news -s /bin/sh -c /rc.news -(However, it is not necessary to do that since INN takes care of these files -during the setup.) +Samples of init.d and systemd init scripts are present in the F +directory (and certainly already set up on your system if you installed INN +with a package for your distrubtion). =item * -Create the cron jobs (especially B), the log files, and make -the changes to your system's F as noted in F. Also -create the cron job for B if you've chosen that over B. +Check F, F and F in your I +directory to see if everything went well; also use C to see if B +is running. =item * -For the time being, we can see if everything initially works without -worrying about feeds or reader access. +C and you should see either a welcome banner or a C message. If not, investigate. + +Send C to end the telnet connection. + +=item * + +When you complete your configuration, do not forget to reload changed files +(see the C command in the ctlinnd(8) man page). You can also +see whether C reports any problems. =back -=head1 Run +=head1 Additional Configuration + +The following features are commonly used. Though not mandatory, they are +recommended and can of course be set up later. =over 4 =item * -Start B by running I/rc.news B. It -is also what you should launch in your init scripts: +You may want to configure the process of newsgroup control messages to keep +your list of newsgroups up to date (search for F in F to +find the Section explaining that). Also see controlchan(8) for how to set up +the F entry. - su news -s /bin/sh -c /rc.news +=item * + +You may want to configure the process of NoCeM notices used to cancel unwanted +articles like spam (see the perl-nocem(8) man page). -Check I/news.notice to see if everything went well; also use -C to see if B is running. +=item * + +You may want to install a spam and abuse filter. Good choices +are either Cleanfeed (a widely used Perl filter you can find at +L) or PyClean (also a great Python filter +you can find at L). -C and you should see either a welcome banner or a -C message. If not, investigate. +You need to have an INN installation built with Perl and/or Python support to +be able to use these filters. =item * -C now; you'll use C as you complete your -configuration. You can also see whether C reports -any problems. +You may want to submit your Path header field statistics to +L. Have a look at the ninpaths(8) man page +to see how to do that. =back @@ -251,20 +279,23 @@ All of this can be done while INN is run =item * -To get your incoming feeds working, edit F. When done, -C (where C is some text -that will show up in the logs S<-- anything> will do). +The first step is to get a news feed. You can ask for an external feed in +the news.admin.peering newsgroup. Several news administrators will certainly +respond and gracefully provide you with a news feed. =item * -To get your outgoing feeds working, decide whether to use B or -B. Edit F and either F or -F. +To get your incoming feeds working, edit F. When done, +C to reload that file (where C +is some text that will show up in the logs S<-- anything> will do). You'll +find examples in the incoming.conf(5) man page for how to set up this file. -In F, if using B, use the option which doesn't require -you to do a separate B configuration unless you know more than I do. +=item * -Then C. +To get your outgoing feeds working, edit F and F. +When done, C and C +to reload these configuration files. You'll find examples in the newsfeeds(5) +and innfeed.conf(5) man pages for how to set up these files. =back @@ -274,67 +305,24 @@ Then C, remember that auth and access blocks can be separated. - -Begin with auth. Your auth for password users could look like this: - - auth "foreignokay" { - auth: "ckpasswd -d /newsusers" - default: "" - } - -There is a Perl script in the ckpasswd(8) man page if you want to -do authentications by password and have the appropriate libraries. -Copy it to I, name the file something like F -and change the internal paths to whatever you're using and wherever -you're putting the newsusers database. The standard Apache B -tool also works just fine to create INN password files. For instance, -a line for the newsusers database corresponding to the user C -with the password C would be C as obtained -by the following command: - - % htpasswd -nbd user pass - user:LIfOpbjNaEQYE - -In case B is not installed or if you do not want to depend -on it, another command involving Perl does a similar job: - - % perl -e 'print "user:".crypt("pass", "LI")."\n";' - user:LIfOpbjNaEQYE - -Follow with the access stanzas. Something for people with passwords: - - access "generalpeople" { - users: "*" - newsgroups: "*,!junk,!control,!control.*" - } - -And then something like one of the following two, depending on whether -unauthenticated users get any access: - - access "restrictive" { - users: "" - newsgroups: "!*" - } - - access "readonly" { - users: "" - read: "local.*" - post: "!*" - } +In F, remember that authentication and authorization +are configured in different blocks. You'll find useful examples in the +readers.conf(5) man page. Also have a look at the description of the B<-f> +flag in the ckpasswd(8) man page, if you need to set up a password file. -You don't need to reload anything after modifying F; every -time an B launches, it reads its configuration from disk. +You don't need to reload anything after modifying F; every time +a news client connects to the server, a new B process is spawned and +reads its configuration from disk. =item * -If you wish to use TLS/SSL for your readers, you can either use the same +If you wish to use TLS for your readers, you can either use the same F file or use two different files (for instance F -and F). The syntax is similar for both these files. -You then need to start a second B to listen to these connections -to NNTPS port 563 and put something like that in your init scripts: +and F). The syntax is similar for both files. You then +need to start a second B to listen to these connections to NNTPS port +563 and put something like that in your init scripts: - su news -s /bin/sh -c '/nnrpd -D -c /readers-ssl.conf -p 563 -S' + su news -s /bin/sh -c '/nnrpd -D -c /readers-tls.conf -p 563 -S' Note that a news client which supports the STARTTLS command can also use the conventional NNTP port 119 to dynamically upgrade from unencrypted diff -Nurp inn-2.6.4/doc/pod/ckpasswd.pod inn-2.6.5/doc/pod/ckpasswd.pod --- inn-2.6.4/doc/pod/ckpasswd.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/ckpasswd.pod 2022-02-18 20:36:57.000000000 +0100 @@ -83,23 +83,20 @@ vaguely. That means each line should lo username:pdIh9NCNslkq6 -(and each line may have an additional colon after the encrypted password -and additional data; that data will be ignored by B). -Lines starting with a number sign (C<#>) are ignored. INN does not -come with a utility to create the encrypted passwords, but B -(which comes with Apache) can do so and it's a quick job with Perl -(see the example script under B<-d>, or also below). If using Apache's -B program, be sure to give it the B<-d> option so that it -will use crypt(3). +(and each line may have an additional colon after the encrypted password and +additional data; that data will be ignored by B). Lines starting +with a number sign (C<#>) are ignored. INN does not come with a utility to +create the encrypted passwords, but B (which comes with Apache) can +do so and it's a quick job with Perl (see the one-line example script below). -A line in I for the user C with the password C -would be C as obtained by the following command: +A line in I for the user C with the password C would be +C as obtained with the following command: % htpasswd -nbd user pass user:LIfOpbjNaEQYE -In case B is not installed or if you do not want to depend -on it, another command involving Perl does a similar job: +In case B is not installed on your server, just use the following +Perl command which does the same job: % perl -e 'print "user:".crypt("pass", "LI")."\n";' user:LIfOpbjNaEQYE @@ -187,8 +184,6 @@ it will print some sort of error message Written by Russ Allbery for InterNetNews. -$Id: ckpasswd.pod 9937 2015-09-02 12:44:39Z iulius $ - =head1 SEE ALSO crypt(3), nnrpd(8), pam(7), readers.conf(5). diff -Nurp inn-2.6.4/doc/pod/cnfsheadconf.pod inn-2.6.5/doc/pod/cnfsheadconf.pod --- inn-2.6.4/doc/pod/cnfsheadconf.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/cnfsheadconf.pod 2022-02-18 20:36:57.000000000 +0100 @@ -37,8 +37,6 @@ Prompt for modifications to make to cycb Written by Katsuhiro Kondou for InterNetNews. Converted to POD by Julien Elie. -$Id: cnfsheadconf.pod 8545 2009-07-03 21:56:39Z iulius $ - =head1 SEE ALSO cycbuff.conf(5), inn.conf(5), storage.conf(5). diff -Nurp inn-2.6.4/doc/pod/cnfsstat.pod inn-2.6.5/doc/pod/cnfsstat.pod --- inn-2.6.4/doc/pod/cnfsstat.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/cnfsstat.pod 2022-02-18 20:36:57.000000000 +0100 @@ -78,8 +78,6 @@ storage and the F file. Written by Katsuhiro Kondou for InterNetNews. Converted to POD by Julien Elie. -$Id: cnfsstat.pod 9721 2014-09-24 17:35:46Z iulius $ - =head1 SEE ALSO cycbuff.conf(5), history(5), inn.conf(5), rc.news(8), storage.conf(5). diff -Nurp inn-2.6.4/doc/pod/control.ctl.pod inn-2.6.5/doc/pod/control.ctl.pod --- inn-2.6.4/doc/pod/control.ctl.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/control.ctl.pod 2022-02-18 20:36:57.000000000 +0100 @@ -362,8 +362,6 @@ could have added them to the F for InterNetNews. Rewritten in POD by Russ Allbery . -$Id: control.ctl.pod 10283 2018-05-14 12:43:05Z iulius $ - =head1 SEE ALSO controlchan(8), inn.conf(5), innd(8), newsfeeds(5), newsgroups(5), diff -Nurp inn-2.6.4/doc/pod/controlchan.pod inn-2.6.5/doc/pod/controlchan.pod --- inn-2.6.4/doc/pod/controlchan.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/controlchan.pod 2022-02-18 20:36:57.000000000 +0100 @@ -81,8 +81,6 @@ Gives usage information. Written by Katsuhiro Kondou for InterNetNews. Converted to POD by Julien Elie. -$Id: controlchan.pod 10283 2018-05-14 12:43:05Z iulius $ - =head1 SEE ALSO control.ctl(5), inn.conf(5). diff -Nurp inn-2.6.4/doc/pod/convdate.pod inn-2.6.5/doc/pod/convdate.pod --- inn-2.6.4/doc/pod/convdate.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/convdate.pod 2022-02-18 20:36:57.000000000 +0100 @@ -94,8 +94,6 @@ determine (or at least override) the loc Written by Rich $alz , rewritten and updated by Russ Allbery for the B<-d> and B<-l> flags. -$Id: convdate.pod 9971 2015-12-10 20:30:10Z iulius $ - =head1 SEE ALSO active.times(5). diff -Nurp inn-2.6.4/doc/pod/ctlinnd.pod inn-2.6.5/doc/pod/ctlinnd.pod --- inn-2.6.4/doc/pod/ctlinnd.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/ctlinnd.pod 2022-02-18 20:36:57.000000000 +0100 @@ -496,11 +496,9 @@ server replies are limited to S<4 KB> on Written by Rich $alz for InterNetNews. Rewritten in POD by Russ Allbery . -$Id: ctlinnd.pod 9767 2014-12-07 21:13:43Z iulius $ - =head1 SEE ALSO active(5), active.times(5), buffchan(8), incoming.conf(5), innd(8), -inndcomm(3), inn.conf(5), newsfeeds(5), nnrpd(8). +inn.conf(5), libinn_inndcomm(3), newsfeeds(5), nnrpd(8). =cut diff -Nurp inn-2.6.4/doc/pod/cvtbatch.pod inn-2.6.5/doc/pod/cvtbatch.pod --- inn-2.6.4/doc/pod/cvtbatch.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/cvtbatch.pod 2022-02-18 20:36:57.000000000 +0100 @@ -48,8 +48,6 @@ followed by the message-ID of the articl Written by Rich $alz for InterNetNews. Converted to POD by Julien Elie. -$Id: cvtbatch.pod 8704 2009-11-03 18:51:44Z iulius $ - =head1 SEE ALSO grephistory(1), newsfeeds(5). diff -Nurp inn-2.6.4/doc/pod/cycbuff.conf.pod inn-2.6.5/doc/pod/cycbuff.conf.pod --- inn-2.6.4/doc/pod/cycbuff.conf.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/cycbuff.conf.pod 2022-02-18 20:36:57.000000000 +0100 @@ -70,6 +70,8 @@ device, it should be S<< * 1024 b If you're trying to stay under S<2 GB>, keep your sizes below C<2097152>. +Note that CNFSv4 supports files and partitions up to S<16 TB>. + =item I::[,,...][:] Specifies a collection of CNFS buffers that make up a single logical @@ -219,8 +221,6 @@ where C will be whatever you called Written by Katsuhiro Kondou for InterNetNews. Rewritten into POD by Russ Allbery . -$Id: cycbuff.conf.pod 10230 2018-01-28 21:22:21Z iulius $ - =head1 SEE ALSO ctlinnd(8), innd(8), nnrpd(8), sm(1), storage.conf(5). diff -Nurp inn-2.6.4/doc/pod/distrib.pats.pod inn-2.6.5/doc/pod/distrib.pats.pod --- inn-2.6.4/doc/pod/distrib.pats.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/distrib.pats.pod 2022-02-18 20:36:57.000000000 +0100 @@ -17,7 +17,7 @@ should be an arbitrary integer greater t the file is only important if groups have equal weight (in which case, the first matching line will be used). -The second field is either the name of a newsgroup or a uwildmat(3)-style +The second field is either the name of a newsgroup or a I-style pattern to specify a set of newsgroups. The third field is the value that should be used for the Distribution: @@ -43,10 +43,8 @@ in distributions(5). Written by Rich $alz for InterNetNews. Converted to POD by Russ Allbery . -$Id: distrib.pats.pod 9767 2014-12-07 21:13:43Z iulius $ - =head1 SEE ALSO -distributions(5), inn.conf(5), newsfeeds(5), nnrpd(8), uwildmat(3). +distributions(5), inn.conf(5), libinn_uwildmat(3), newsfeeds(5), nnrpd(8). =cut diff -Nurp inn-2.6.4/doc/pod/distributions.pod inn-2.6.5/doc/pod/distributions.pod --- inn-2.6.4/doc/pod/distributions.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/distributions.pod 2022-02-18 20:36:57.000000000 +0100 @@ -40,8 +40,6 @@ if distrib.pats(5) is correctly configur Written by Julien Elie for InterNetNews. -$Id: distributions.pod 9137 2010-10-29 18:09:12Z iulius $ - =head1 SEE ALSO distrib.pats(5), newsfeeds(5), nnrpd(8). diff -Nurp inn-2.6.4/doc/pod/docheckgroups.pod inn-2.6.5/doc/pod/docheckgroups.pod --- inn-2.6.4/doc/pod/docheckgroups.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/docheckgroups.pod 2022-02-18 20:36:57.000000000 +0100 @@ -186,8 +186,6 @@ The list of local newsgroups along with Documentation written by Julien Elie for InterNetNews. -$Id: docheckgroups.pod 8357 2009-02-27 17:56:00Z iulius $ - =head1 SEE ALSO active(5), controlchan(8), ctlinnd(8), mod-active(8), newsgroups(5). diff -Nurp inn-2.6.4/doc/pod/domain.pod inn-2.6.5/doc/pod/domain.pod --- inn-2.6.4/doc/pod/domain.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/domain.pod 2022-02-18 20:36:57.000000000 +0100 @@ -51,8 +51,6 @@ If so, the example above should reflect This documentation was written by Jeffrey S . -$Id: domain.pod 8200 2008-11-30 13:31:30Z iulius $ - =head1 SEE ALSO nnrpd(8), readers.conf(5) diff -Nurp inn-2.6.4/doc/pod/expire.ctl.pod inn-2.6.5/doc/pod/expire.ctl.pod --- inn-2.6.4/doc/pod/expire.ctl.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/expire.ctl.pod 2022-02-18 20:36:57.000000000 +0100 @@ -31,6 +31,7 @@ where is a decimal number that sp a history record for a given message-ID is retained (from its original posting time), regardless of whether the article is present in the spool. (History entries for articles still present in the spool are always retained.) +Setting it to C<0> means history records will be retained forever. The primary reason to retain a record of old articles is in case a peer offers old articles that were previously accepted but have already @@ -58,7 +59,7 @@ I, and therefore the tw same file. Normally, a rule matches a newsgroup through the combination of the - and fields. is a uwildmat(3)-style pattern, + and fields. is a I-style pattern, specifying the newsgroups to which the line is applied. Note that the last matching entry will be used, so general patterns (such as defaults for all groups where is C<*>) should appear at the beginning of @@ -169,11 +170,9 @@ When I is false, for cl Written by Rich $alz for InterNetNews. Converted to POD by Russ Allbery . -$Id: expire.ctl.pod 9767 2014-12-07 21:13:43Z iulius $ - =head1 SEE ALSO -expire(8), expireover(8), inn.conf(5), innd(8), news.daily(8), -storage.conf(5), uwildmat(3). +expire(8), expireover(8), inn.conf(5), innd(8), libinn_uwildmat(3), +news.daily(8), storage.conf(5). =cut diff -Nurp inn-2.6.4/doc/pod/expire.pod inn-2.6.5/doc/pod/expire.pod --- inn-2.6.4/doc/pod/expire.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/expire.pod 2022-02-18 20:36:57.000000000 +0100 @@ -55,7 +55,7 @@ to the specified I. =item B<-h> I To specify an alternate input text history file, use the B<-h> flag. -B uses the old dbz(3) database to determine the size of the +B uses the old I database to determine the size of the new one. (If the B<-d> flag is not used, the output filename will be the same as the input filename with an extension of C<.n>.) @@ -151,11 +151,9 @@ is specified, the file I/expire Written by Rich $alz for InterNetNews. Converted to POD by Julien Elie. -$Id: expire.pod 8573 2009-08-18 13:49:54Z iulius $ - =head1 SEE ALSO -ctlinnd(8), dbz(3), expire.ctl(5), history(5), inn.conf(5), innd(8), -inndcomm(3), news.daily(8). +ctlinnd(8), expire.ctl(5), history(5), inn.conf(5), innd(8), libinn_dbz(3), +libinn_inndcomm(3), news.daily(8). =cut diff -Nurp inn-2.6.4/doc/pod/expireover.pod inn-2.6.5/doc/pod/expireover.pod --- inn-2.6.4/doc/pod/expireover.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/expireover.pod 2022-02-18 20:36:57.000000000 +0100 @@ -145,8 +145,6 @@ Written by Rob Robertson (with help from Dave Lawrence ) for InterNetNews. -$Id: expireover.pod 8571 2009-08-17 19:10:07Z iulius $ - =head1 SEE ALSO active(5), ctlinnd(8), expire(8), expire.ctl(5), inn.conf(5), diff -Nurp inn-2.6.4/doc/pod/expirerm.pod inn-2.6.5/doc/pod/expirerm.pod --- inn-2.6.4/doc/pod/expirerm.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/expirerm.pod 2022-02-18 20:36:57.000000000 +0100 @@ -24,8 +24,6 @@ I is renamed to I/expire. Written by Landon Curt Noll and Rich $alz . Converted to POD by Julien Elie. -$Id: expirerm.pod 8573 2009-08-18 13:49:54Z iulius $ - =head1 SEE ALSO expire(8), fastrm(8), newslog(5). diff -Nurp inn-2.6.4/doc/pod/external-auth.pod inn-2.6.5/doc/pod/external-auth.pod --- inn-2.6.4/doc/pod/external-auth.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/external-auth.pod 2022-02-18 20:36:57.000000000 +0100 @@ -113,6 +113,4 @@ you write, and F as an example Written by Aidan Cully for InterNetNews. This documentation was rewritten in POD by Jeffrey S . -$Id: external-auth.pod 8200 2008-11-30 13:31:30Z iulius $ - =cut diff -Nurp inn-2.6.4/doc/pod/fastrm.pod inn-2.6.5/doc/pod/fastrm.pod --- inn-2.6.4/doc/pod/fastrm.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/fastrm.pod 2022-02-18 20:36:57.000000000 +0100 @@ -181,8 +181,6 @@ general fast file removal program. B was originally written by . This manual page was rewritten in POD by Russ Allbery for InterNetNews. -$Id: fastrm.pod 9767 2014-12-07 21:13:43Z iulius $ - =head1 SEE ALSO expirerm(8). diff -Nurp inn-2.6.4/doc/pod/filechan.pod inn-2.6.5/doc/pod/filechan.pod --- inn-2.6.4/doc/pod/filechan.pod 1970-01-01 01:00:00.000000000 +0100 +++ inn-2.6.5/doc/pod/filechan.pod 2022-02-18 20:36:57.000000000 +0100 @@ -0,0 +1,114 @@ +=head1 NAME + +filechan - File-writing backend for INN + +=head1 SYNOPSIS + +B [B<-d> I] [B<-f> I] [B<-m> I] +[B<-p> I] + +=head1 DESCRIPTION + +B reads lines from standard input and copies the initial fields in +each line to the files named by the remaining fields on the line. B +is intended to be called by B as a channel feed. (It is not a full +exploder and does not accept commands; see newsfeeds(5) for a description +of the difference, and buffchan(8) for an exploder program.) + +The input is interpreted as a sequence of lines. Each line contains a fixed +number of initial fields, followed by a variable number of filename fields. +All fields in a line are separated by whitespace and do not contain any +whitespace. The default number of initial fields is one. + +For each line of input, B writes the initial fields, separated +by a space and followed by a newline, to each of the files named in the +filename fields. When writing to a file, B opens it in append +mode and tries to lock it and change the ownership to the user and group +owning the directory where the file is being written. + +Because the time window in which a file is open is very small, complicated +flushing and locking protocols have not been implemented and are not +necessarily needed for the way B is called and works; mv(1) +followed by sleep(1) for a couple of seconds is sufficient. + +=head1 OPTIONS + +=over 4 + +=item B<-d> I + +By default, B writes its output into the I directory. +This flag may be used to specify a directory the program should change to +before starting. + +=item B<-f> I + +This flag specifies a different number of initial fields. + +=item B<-m> I + +A map file may be specified by using this flag. Blank lines and lines +starting with a number sign (C<#>) are ignored. All other lines should have +two host names separated by a colon. The first field is the name that may +appear in the input stream; the second field names the file to be used when +the name in the first field appears. + +For example, the following map file may be used to map the short names used +in the example below to the full domain names: + + # This is a comment. + uunet:news.uu.net + foo:foo.com + munnari:munnari.oz.au + +=item B<-p> I + +If this flag is used, B will write a line containing its process ID +(in text) to the specified file. + +=back + +=head1 EXAMPLES + +If B is invoked with C<-f 2> and given the following input: + + news.software.nntp <1643@munnari.oz.au> foo uunet + news.software.nntp <102060@litchi.foo.com> uunet munnari + comp.sources.unix <999@news.foo.com> foo uunet munnari + +then the file F in I will have these lines: + + news.software.nntp <1643@munnari.oz.au> + comp.sources.unix <999@news.foo.com> + +the file F in I will have these lines: + + news.software.nntp <102060@litchi.foo.com> + comp.sources.unix <999@news.foo.com> + +and the file F in I will have these lines: + + news.software.nntp <1643@munnari.oz.au> + news.software.nntp <102060@litchi.foo.com> + comp.sources.unix <999@news.foo.com> + +Using B this way can be done in F with for instance: + + foo:*,@misc.*:Ap,Tm:filechan! + munnari:*,@rec.*:Ap,Tm:filechan! + uunet:*:Ap,Tm:filechan! + filechan!:*:Tc,WGm*:/filechan -f 2 + +It will generate the examples above. See the C flag in newsfeeds(5) +for how to parameter the output. + +=head1 HISTORY + +Written by Robert Elz , flags added by Rich $alz +. Rewritten into POD by Julien Elie. + +=head1 SEE ALSO + +buffchan(8), newsfeeds(5). + +=cut diff -Nurp inn-2.6.4/doc/pod/getlist.pod inn-2.6.5/doc/pod/getlist.pod --- inn-2.6.4/doc/pod/getlist.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/getlist.pod 2022-02-18 20:36:57.000000000 +0100 @@ -25,7 +25,7 @@ active.times(5), distrib.pats(5) and new The listing files other than the F file are common extensions to the NNTP protocol and may not be available on all servers. For instance, C C, C, C, C, C and -C, amongst other, may be available. Moreover, a uwildmat(3) +C, amongst other, may be available. Moreover, a I pattern I may also be usable for some of these listing files. For more information on the formats of these files, see distributions(5), @@ -40,7 +40,7 @@ is mentioned just before the flag of thi The I parameter may be used with a I value of C, C or C to limit the output. If given, only -entries corresponding to newsgroups that match the uwildmat(3) pattern +entries corresponding to newsgroups that match the I pattern I will be printed. If the I parameter is C, a third parameter, I, may @@ -102,12 +102,10 @@ to protect it from the shell. Written by Landon Curt Noll for InterNetNews. Rewritten in POD by Russ Allbery . -$Id: getlist.pod 9767 2014-12-07 21:13:43Z iulius $ - =head1 SEE ALSO active(5), active.times(5), distrib.pats(5), distributions(5), inn.conf(5), -moderators(5), motd.news(5), newsgroups(5), nnrpd(8), passwd.nntp(5), -subscriptions(5), uwildmat(3). +libinn_uwildmat(3), moderators(5), motd.news(5), newsgroups(5), nnrpd(8), +passwd.nntp(5), subscriptions(5). =cut diff -Nurp inn-2.6.4/doc/pod/grephistory.pod inn-2.6.5/doc/pod/grephistory.pod --- inn-2.6.4/doc/pod/grephistory.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/grephistory.pod 2022-02-18 20:36:57.000000000 +0100 @@ -112,8 +112,6 @@ It matches the number recorded in histor Written by Rich $alz for InterNetNews. Rewritten in POD by Russ Allbery . -$Id: grephistory.pod 9971 2015-12-10 20:30:10Z iulius $ - =head1 SEE ALSO history(5), inn.conf(5), sm(1). diff -Nurp inn-2.6.4/doc/pod/hacking.pod inn-2.6.5/doc/pod/hacking.pod --- inn-2.6.4/doc/pod/hacking.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/hacking.pod 2022-02-18 20:36:57.000000000 +0100 @@ -8,14 +8,14 @@ contributors, and secondarily as documen First of all, if you plan on working on INN source, please start from the current development tree. There may be significant changes from the previous full release, so starting from development sources will make it -considerably easier to integrate your work. You can check out the current -development tree using Subversion from: +considerably easier to integrate your work. You can check out or clone +the current development tree using Git from: - + -or view it with Trac source browser at: +or browse the current development source on Github at: - + You will need S or later to use the development tree. After checking out the tree, run C<./autogen> to generate the necessary autoconf @@ -62,7 +62,7 @@ F, run C. Please don't include patches to either F or F when sending patches to INN; instead, note in your patch that those files must be regenerated. These -(and all other) generated files should not be checked into Subversion. +(and all other) generated files should not be checked into Git. At the time of this writing, S or later is required. @@ -551,9 +551,7 @@ Other multiline comments in the source a /* This is a multiline comment. */ -Comments before functions saying what they do are nice to have. In -general, the RCS/SVN C tag is on the first line of each source file -since it's useful to know when a file was last modified. +Comments before functions saying what they do are nice to have. =item * @@ -736,6 +734,8 @@ so as to be sure they work fine (especia B<--enable-tagged-hash>, B<--enable-keywords>, B<--enable-largefiles> and B<--enable-reduced-depends>). +Update F with the list of supported systems. + =item 3. Update copyright years in F. @@ -768,17 +768,15 @@ L in Subversion named after the major release. -This branch will be used for minor releases based on that major release -and can be done a little while before the C<.0> release of that major -release. +If making a major release, create a new branch in Git named after the +major release. This branch will be used for minor releases based on +that major release and can be done a little while before the C<.0> +release of that major release. - svn copy -r ZZZZ -m "Branch Y.Y.0 release." \ - file:///srv/svn/inn/trunk file:///srv/svn/inn/branches/Y.Y + git checkout -b Y.Y Then, in that newly created branch, remove the first paragraph in -F which deals with development versions. +F which deals with development versions. =item 8. @@ -811,15 +809,7 @@ differences; otherwise, fix the F for a final release, C for the first beta version of a new release, or C -for the first release candidate version of a new release. Note that you -need to have a copy of B from L -to do this; at least version 0.7 is required. Start the F at -the time of the previous release. (Eventually, the script will be smart -enough to do this for you.) - -Check that the F file is correct; otherwise, regenerate it or -manually edit it. Then run again C or any other command -you used. +for the first release candidate version of a new release. =item 10. @@ -874,25 +864,30 @@ C). =item 14. -After the ISC web site has been updated with links towards the new -release, send an announce on inn-announce and in news.software.nntp -(with a possible crosspost to news.admin.announce). +Publish a release in GitHub, based on the commit used to generate the release +tarball. Include the description from F, and attach the tarball as well +as its signature. -=item 15. +GitHub will create the appropriate annotated tag when publishing the release. -Tag the checked-out tree that was used for generating the release with a -release tag by copying it to F in Subversion. +=item 15. - svn copy -r ZZZZ -m "Tag Y.Y.Y release." \ - file:///srv/svn/inn/branches/Y.Y file:///srv/svn/inn/tags/Y.Y.Y +After ftp.isc.org has correctly mirrored the release, send an announce +on inn-announce and in news.software.nntp (with a possible crosspost to +news.admin.announce). + +The ISC web site does not need being updated as it does not directly link to +the release, nor mention the version of the last release. (Just check the +information at L is still available +and accurate, though.) =item 16. Bump revision numbers to reflect the one of the following release, -especially in F and F +especially in F and F for major releases, F and F for both -minor and major releases. The release versions in the Trac wiki should -also be updated. +minor and major releases. The release versions in the GitHub bug tracker +should also be updated. =item 17. @@ -927,18 +922,17 @@ a lot of interesting discussion of why N A collection of documents about the Usenet article format, including most of the relevant RFCs and Internet-Drafts. -=item L +=item L The archives for the USEFOR IETF working group, the working group for the S replacement (the format of Usenet articles), now published as S and S. -=item L +=item L -Forrest Cavalier provides several tools for following INN development at -this page and elsewhere in the Usenet RKT. Under here is a web-accessible -checked-out copy of the current INN source tree and pointers to how to use -CVSup. However, please note that INN development now uses Subversion. +Forrest Cavalier provides several tools related to earlier versions +of INN (2.0 to 2.3.x). His web site is a great source of information +about Usenet in general. =item L @@ -947,6 +941,4 @@ technical details as needed, useful when =back -$Id: hacking.pod 10531 2021-01-20 11:59:59Z iulius $ - =cut diff -Nurp inn-2.6.4/doc/pod/history.pod inn-2.6.5/doc/pod/history.pod --- inn-2.6.4/doc/pod/history.pod 1970-01-01 01:00:00.000000000 +0100 +++ inn-2.6.5/doc/pod/history.pod 2022-02-18 20:36:57.000000000 +0100 @@ -0,0 +1,64 @@ +=head1 NAME + +history - Record of current and recently expired Usenet articles + +=head1 DESCRIPTION + +The file I/history keeps a record of all articles currently +stored in the news system, as well as those that have been received but +since expired. In a typical production environment, this file will be +many megabytes. + +The file consists of text lines. Each line corresponds to one article. +The file is normally kept sorted in the order in which articles are +received, although this is not a requirement. B appends a new +line each time it files an article, and B builds a new version +of the file by removing old articles and purging old entries. + +Each line consists of two or three fields separated by a tab, shown +below as C< \t >: + + [hash] \t date + [hash] \t date \t @token@ + +The I field is the ASCII representation of the hash of the +Message-ID. This is directly used for the key of the I. + +The I field consists of three sub-fields separated by a tilde. +All sub-fields are the text representation of the number of seconds +since the epoch, that is to say a I like in C. +The first sub-field is the article's arrival date. If copies of the +article are still present, then the second sub-field is either the value +of the article's Expires header field, or a hyphen if no expiration +date was specified. If an article has been expired, then the second +sub-field will be a hyphen. The third sub-field is the value of the +article's Date header field, recording when the article was posted. + +The I field is a token of the article. This field is empty if +the article has been expired. + +For example, an article whose Message-ID was +<7q2saq$sal$1@isrv4.pa.vix.com>, posted on 26 Aug 1999 08:02:34 GMT +and received at 26 Aug 1999 08:06:54 GMT, could have a history line +(broken into three lines for display) like the following: + + [E6184A5BC2898A35A3140B149DE91D5C] \t + 935678987~-~935678821 \t + @030154574F00000000000007CE3B000004BA@ + +In addition to the text file, there is a I database associated +with the file that uses the Message-ID field as a key to determine the +offset in the text file where the associated line begins. For historical +reasons, the key includes the trailing C<\0> byte (which is not stored +in the text file). + +=head1 HISTORY + +Written by Rich $alz for InterNetNews. Rewritten +into POD by Julien Elie. + +=head1 SEE ALSO + +expire(8), inn.conf(5), innd(8), libinn_dbz(3), makehistory(8). + +=cut diff -Nurp inn-2.6.4/doc/pod/hook-perl.pod inn-2.6.5/doc/pod/hook-perl.pod --- inn-2.6.4/doc/pod/hook-perl.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/hook-perl.pod 2022-02-18 20:36:57.000000000 +0100 @@ -679,6 +679,4 @@ Usenet daily. It uses F Authentication Module -You need to create a F module in INN's filter directory +You need to create an F module in INN's filter directory (see the I setting in F) where you should define a class holding certain methods depending on which hooks you want to use. @@ -712,6 +712,4 @@ an extremely powerful spam filter on Use =back -$Id: hook-python.pod 10282 2018-05-14 12:42:14Z iulius $ - =cut diff -Nurp inn-2.6.4/doc/pod/ident.pod inn-2.6.5/doc/pod/ident.pod --- inn-2.6.4/doc/pod/ident.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/ident.pod 2022-02-18 20:36:57.000000000 +0100 @@ -61,8 +61,6 @@ network whose machines respond to ident This documentation was written by Jeffrey S . -$Id: ident.pod 8200 2008-11-30 13:31:30Z iulius $ - =head1 SEE ALSO nnrpd(8), readers.conf(5) diff -Nurp inn-2.6.4/doc/pod/incoming.conf.pod inn-2.6.5/doc/pod/incoming.conf.pod --- inn-2.6.4/doc/pod/incoming.conf.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/incoming.conf.pod 2022-02-18 20:36:57.000000000 +0100 @@ -2,6 +2,24 @@ incoming.conf - Configuration of incoming news feeds +=head1 IN A NUTSHELL + +The I file configures from which remote peers B accepts +NNTP feeds. + +A common entry to allow C as an incoming peer is: + + peer news.server.com { + hostname: "news.server.com" + } + +The port used for incoming feeds is the one B is listening on. + +After any changes, run C to perform basic syntax checks, and reload +this configuration file with the following command: + + ctlinnd reload incoming.conf 'new peer' + =head1 DESCRIPTION The file I/incoming.conf consists of three types of entries: @@ -185,10 +203,8 @@ This key requires a boolean value. It d Written by Fabien Tassin for InterNetNews. Converted to POD by Julien Elie. -$Id: incoming.conf.pod 10179 2017-09-18 20:13:48Z iulius $ - =head1 SEE ALSO -inn.conf(5), innd(8), newsfeeds(5), uwildmat(3). +inn.conf(5), innd(8), libinn_uwildmat(3), newsfeeds(5). =cut diff -Nurp inn-2.6.4/doc/pod/inews.pod inn-2.6.5/doc/pod/inews.pod --- inn-2.6.4/doc/pod/inews.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/inews.pod 2022-02-18 20:36:57.000000000 +0100 @@ -135,8 +135,6 @@ Unix news clients or by themselves. Written by Rich $alz for InterNetNews. Rewritten in POD by Russ Allbery . -$Id: inews.pod 9767 2014-12-07 21:13:43Z iulius $ - =head1 SEE ALSO inn.conf(5), passwd.nntp(5), rnews(1). diff -Nurp inn-2.6.4/doc/pod/inn-radius.conf.pod inn-2.6.5/doc/pod/inn-radius.conf.pod --- inn-2.6.4/doc/pod/inn-radius.conf.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/inn-radius.conf.pod 2022-02-18 20:36:57.000000000 +0100 @@ -102,8 +102,6 @@ The shared secret with the RADIUS server This documentation was written by Russ Allbery based on the comments in the sample F file by Yury S. -$Id: inn-radius.conf.pod 9940 2015-09-04 12:58:15Z iulius $ - =head1 SEE ALSO radius(8). diff -Nurp inn-2.6.4/doc/pod/inn.conf.pod inn-2.6.5/doc/pod/inn.conf.pod --- inn-2.6.4/doc/pod/inn.conf.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/inn.conf.pod 2022-02-18 20:36:57.000000000 +0100 @@ -22,12 +22,12 @@ other lines specify parameters, and shou : -(Any amount of whitespace can be put after the colon and is optional.) If -the value contains embedded whitespace or any of the characters C<[]<>"\:>, -it must be enclosed in double quotes (""). A backslash (C<\>) can be used -to escape quotes and backslashes inside double quotes. is -case-sensitive; C is not the same as C or C. -(F parameters are generally all in lowercase.) +(Any amount of whitespace can be put after the colon and is optional.) If the +value contains embedded whitespace or any of the characters C<< []<>{}"\:; >>, +it must be enclosed in double quotes (""). A backslash (C<\>) can be used to +escape quotes and backslashes inside double quotes. is case-sensitive; +C is not the same as C or C. (F parameters +are generally all in lowercase.) If occurs more than once in the file, the first value is used. Some parameters specified in the file may be overridden by environment @@ -416,8 +416,8 @@ be set. =item C -Stores history data in the INN history v6 format: history(5) text -file and a number of dbz(3) database files; this may be in true history +Stores history data in the INN history v6 format: history(5) text +file and a number of I database files; this may be in true history v6 format, or tagged hash format, depending on the build options. Separation of these two is a project which has not yet been undertaken. @@ -589,7 +589,7 @@ This setting is ignored unless I If set, restricts the overview data stored by INN to only the newsgroups -matching this comma-separated list of uwildmat(3) expressions. Newsgroups not +matching this comma-separated list of I expressions. Newsgroups not matching this setting may not be readable, and if I is set to true and the storage method for these newsgroups does not have self-expire functionality, storing overview data will fail. @@ -1114,9 +1114,31 @@ The path to a file containing the server TLS clients. This parameter is only used if B is built with TLS/SSL support. The default value is I/cert.pem. -Note that unlike Apache's I directive, I -should not contain a concatenation of certificates. Instead, if you have -a certificate authority root certificate, set I to its path. +If you want to use a complete certificate chain, you can directly put +it in I (like Apache's I directive). +Alternately, you can put a single certificate in I and use +I for additional certificates needed to complete the chain, +like a separate authority root certificate. + +More concretly, when using S certificates, Certbot's +files can be installed as follows: + + tlscapath: /etc/letsencrypt/live/news.server.com + tlscertfile: /etc/letsencrypt/live/news.server.com/fullchain.pem + tlskeyfile: /etc/letsencrypt/live/news.server.com/privkey.pem + +or: + + tlscapath: /etc/letsencrypt/live/news.server.com + tlscafile: /etc/letsencrypt/live/news.server.com/chain.pem + tlscertfile: /etc/letsencrypt/live/news.server.com/cert.pem + tlskeyfile: /etc/letsencrypt/live/news.server.com/privkey.pem + +Make sure that the permission rights are properly set so that the +news user or the news group can read these directories and files +(typically, he should access F and +F where the real keys are located, +and the private key should not be world-readable). =item I @@ -1194,9 +1216,9 @@ the server will choose following its own The list of TLS/SSL protocol versions to support. Valid protocols are B, B, B, B, B and B. -The default value is to only allow TLS protocols: +The default value is to only allow secure TLS protocols: - tlsprotocols: [ TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 ] + tlsprotocols: [ TLSv1.2 TLSv1.3 ] Note that the listed protocols will be enabled only if the OpenSSL library INN has been built with, supports them. In case OpenSSL supports @@ -1204,6 +1226,9 @@ protocols more recent than TLSv1.3, they (which anyway is fine regarding security, as newer protocols are supposed to be more secure). +C was formally deprecated by S in 2011, C +by S in 2015, C and C by S in 2021. + =back =head2 Monitoring @@ -1452,6 +1477,13 @@ environments, see setbuf(3)). How many times to attempt a fork(2) before giving up. The default value is C<10>. +=item I + +How many incoming connections can queue up in the listen backlog for +B, B and the C overview storage method. The default +value is C<128> and should be raised in case you notice that some +connection requests get dropped. + =item I If set to anything other than C<0>, all child processes of innd(8) will @@ -1628,11 +1660,10 @@ values for reference. Written by Rich $alz for InterNetNews and since modified, updated, and reorganized by innumerable other people. -$Id: inn.conf.pod 10523 2021-01-17 21:52:00Z iulius $ - =head1 SEE ALSO -inews(1), innd(8), innwatch(8), makehistory(8), nnrpd(8), rnews(1). +inews(1), innd(8), innwatch(8), libinn_dbz(3), libinn_uwildmat(3), +makehistory(8), nnrpd(8), rnews(1). Nearly every program in INN uses this file to one degree or another. The above are just the major and most frequently mentioned ones. diff -Nurp inn-2.6.4/doc/pod/innbind.pod inn-2.6.5/doc/pod/innbind.pod --- inn-2.6.4/doc/pod/innbind.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/innbind.pod 2022-02-18 20:36:57.000000000 +0100 @@ -217,8 +217,6 @@ to bind the IPv4 socket on file descript Written by Russ Allbery for InterNetNews. -$Id: innbind.pod 9767 2014-12-07 21:13:43Z iulius $ - =head1 SEE ALSO inet_aton(3), inet_pton(3), innd(8), nnrpd(8). diff -Nurp inn-2.6.4/doc/pod/inncheck.pod inn-2.6.5/doc/pod/inncheck.pod --- inn-2.6.4/doc/pod/inncheck.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/inncheck.pod 2022-02-18 20:36:57.000000000 +0100 @@ -142,8 +142,6 @@ relevant lines yourself, or merge the va Written by Brendan Kehoe and Rich Salz for InterNetNews. Converted to POD by Julien Elie. -$Id: inncheck.pod 9428 2012-06-15 18:18:45Z iulius $ - =head1 SEE ALSO active(5), control.ctl(5), expire.ctl(5), history(5), incoming.conf(5), diff -Nurp inn-2.6.4/doc/pod/innconfval.pod inn-2.6.5/doc/pod/innconfval.pod --- inn-2.6.4/doc/pod/innconfval.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/innconfval.pod 2022-02-18 20:36:57.000000000 +0100 @@ -101,8 +101,6 @@ Print INN's version. This is equivalent Written by Rich $alz for InterNetNews. -$Id: innconfval.pod 9288 2011-07-22 23:08:57Z iulius $ - =head1 SEE ALSO inn.conf(5), INN::Config(3pm). diff -Nurp inn-2.6.4/doc/pod/innd.pod inn-2.6.5/doc/pod/innd.pod --- inn-2.6.4/doc/pod/innd.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/innd.pod 2022-02-18 20:36:57.000000000 +0100 @@ -109,6 +109,11 @@ value of I in F. T the value of that setting. If I is 0, this check is suppressed and B will accept articles regardless of how old they are. +Note that rejected articles are remembered during the number of days +specified by the C line in expire.ctl(5). You'll have to +wait that number of days before being able to inject again an article +with the same previously rejected Message-ID. + =item B<-C> This flag tells B to accept and propagate but not actually process @@ -502,12 +507,10 @@ disables source routing. Written by Rich $alz for InterNetNews. -$Id: innd.pod 10523 2021-01-17 21:52:00Z iulius $ - =head1 SEE ALSO -active(5), ctlinnd(8), dbz(3), history(5), incoming.conf(5), inn.conf(5), -innbind(8), innfeed(8), innstat(8), newsfeeds(5), nnrpd(8), rnews(1), -syslog(3). +active(5), ctlinnd(8), history(5), incoming.conf(5), inn.conf(5), innbind(8), +innfeed(8), innstat(8), libinn_dbz(3), libinn_inndcomm(3), newsfeeds(5), +nnrpd(8), rnews(1), syslog(3). =cut diff -Nurp inn-2.6.4/doc/pod/inndf.pod inn-2.6.5/doc/pod/inndf.pod --- inn-2.6.4/doc/pod/inndf.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/inndf.pod 2022-02-18 20:36:57.000000000 +0100 @@ -113,8 +113,6 @@ Katsuhiro Kondou added the B<-n> and B<- reporting of percentage free disk space. Support for B<-f> and B<-F> was added by Fabien Tassin . -$Id: inndf.pod 10283 2018-05-14 12:43:05Z iulius $ - =head1 SEE ALSO df(1), innwatch.ctl(5), innstat(8). diff -Nurp inn-2.6.4/doc/pod/innfeed.conf.pod inn-2.6.5/doc/pod/innfeed.conf.pod --- inn-2.6.4/doc/pod/innfeed.conf.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/innfeed.conf.pod 2022-02-18 20:36:57.000000000 +0100 @@ -2,6 +2,32 @@ innfeed.conf - Configuration file for innfeed +=head1 IN A NUTSHELL + +The I file configures to which remote peers B sends +NNTP feeds. + +A common entry to parameter C as an outgoing feed is: + + peer news.server.com { + ip-name: "news.server.com" + } + +If standard NNTP port 119 is not used, you may specify an alternate port as +follows: + + peer news.server.com { + ip-name: "news.server.com" + port-number: 433 + } + +After any changes, run C to perform basic syntax checks, and +reload this configuration file with the following command which makes B +respawn a new instance of B (assuming C is the name of the +corresponding channel feed in F): + + ctlinnd flush innfeed! + =head1 DESCRIPTION The configuration file F in I is used to control @@ -729,8 +755,6 @@ B is now part of INN and shares Please note that the F format has changed dramatically since S. -$Id: innfeed.conf.pod 10179 2017-09-18 20:13:48Z iulius $ - =head1 SEE ALSO inn.conf(5), innfeed(8), newsfeeds(5). diff -Nurp inn-2.6.4/doc/pod/innfeed.pod inn-2.6.5/doc/pod/innfeed.pod --- inn-2.6.4/doc/pod/innfeed.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/innfeed.pod 2022-02-18 20:36:57.000000000 +0100 @@ -476,8 +476,6 @@ POD by Julien Elie. Earlier versions of B (up to 0.10.1) were shipped separately; B is now part of INN and shares the same version number. -$Id: innfeed.pod 9588 2013-12-19 17:46:41Z iulius $ - =head1 SEE ALSO ctlinnd(8), inn.conf(5), innfeed.conf(5), innd(8), procbatch(8). diff -Nurp inn-2.6.4/doc/pod/innmail.pod inn-2.6.5/doc/pod/innmail.pod --- inn-2.6.4/doc/pod/innmail.pod 2021-01-21 22:53:07.000000000 +0100 +++ inn-2.6.5/doc/pod/innmail.pod 2022-02-18 20:36:57.000000000 +0100 @@ -61,8 +61,6 @@ B was written by James Brister InterNetNews. This manual page was originally written by Jeffrey M. Vinocur. -$Id: innmail.pod 7851 2008-05-26 19:33:08Z iulius $ - =head1 SEE ALSO inn.conf(5), mail(1). diff -Nurp inn-2.6.4/doc/pod/innreport.conf.pod inn-2.6.5/doc/pod/innreport.conf.pod --- inn-2.6.4/doc/pod/innreport.conf.pod 1970-01-01 01:00:00.000000000 +0100 +++ inn-2.6.5/doc/pod/innreport.conf.pod 2022-02-18 20:36:57.000000000 +0100 @@ -0,0 +1,312 @@ +=head1 NAME + +innreport.conf - Configuration file for innreport + +=head1 DESCRIPTION + +The file I/innreport.conf permits configuring the behaviour of +B. It consists of a series of lines; blank lines and what follows +a number sign (C<#>) in a line are ignored. The structure of this file is: + + section default { + libpath "/path/to/libraries"; + logpath "/path/to/logs"; + module "innreport_inn"; + unwanted_log "unwanted.log"; + text true; + html true; # Enable HTML reports. + # Other options to set. + }; + +Only this very section needs being configured. It begins with C
and ends with C<};>. Each line in the section consists of an +option name followed with one or more spaces or tabulations, its value and +a semi-colon C<;>. + +Other sections are present in the configuration file to parameter the +display, how and what to report, but should not be changed (unless you +precisely know what you are doing). + +=head1 OPTIONS + +The following options can be set in the C section of the +configuration file: + +=over 4 + +=item I + +Sets whether HTML pages and graphs should be archived if HTML reports are +enabled. When this option is set to C, which is the default, a date +will be added in the file name of each report and each graph. Otherwise, +only the latest HTML report is kept. + +Use of the B<->[B]B flag with innreport(8) takes precedence +over the configuration file. + +=item I + +When this option is set to C, which is the default, case sensitive +searches are done in news log files for predetermined patterns. + +Use of the B<->[B]B flag with innreport(8) takes precedence +over the configuration file. + +=item I + +Sets how many report files should be kept if HTML reports are enabled and +archived. The default is C<0>, meaning all archives are kept. The value +C also means C<0>. + +Use of the B<-cycle> flag with innreport(8) takes precedence over the +configuration file. + +=item I + +Specifies the character set to use in XML and Content-Type declarations of +HTML reports. The default is C. + +=item I