diff -Nurp inn-2.5.4/CONTRIBUTORS inn-2.5.5/CONTRIBUTORS --- inn-2.5.4/CONTRIBUTORS 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/CONTRIBUTORS 2015-05-23 06:24:41.000000000 -0700 @@ -276,4 +276,4 @@ Lars Magne Ingebrigtsen, Sam Varshavchik Edmund H. Ramm, Raphael Barrois, Bo Lindbergh, Matthias Meyser, Dennis Preiser, Paolo Amoroso, Dennis Davis, River Tarnell, Jochen Schmitt, Tim Fardell, Remco Rijnders, David Binderman, Tony Evans, Christian Garbs, -Colin Watson +Colin Watson, Lauri Tirkkonen, Christian Mock, Richard Kettlewell diff -Nurp inn-2.5.4/ChangeLog inn-2.5.5/ChangeLog --- inn-2.5.4/ChangeLog 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/ChangeLog 2015-05-23 06:24:41.000000000 -0700 @@ -1,585 +1,508 @@ -2014-05-17 iulius +2015-05-23 iulius - * Typos - - * Bump version number in FAQ for new INN 2.5.4 release - - * Mention the expected rights for ncmring.gpg in perl-nocem man - page - - * Update config.guess and config.sub to upstream versions from - 2014-05-17 - -2014-05-14 iulius - - * Document already existing res blocks functionality in - readers.conf - - * Document res blocks, their log: and program: keywords, and the - include directive in readers.conf man page. - - * Recognize res blocks and their keywords in inncheck. + * innxmit: tidy up GetMessageID buffer handling In theory, if you + could get a message with an empty message-id header through + before anything else, it would call memcpy(NULL, p, 0) which + (surprisingly) has undefined behavior. This doesn't seem a very + likely contingency but I tidied up the code to avoid it and + (hopefully) be clearer anyway. - * Do not consider as errors in daily reports the lines logged in - news.notice by the log: keyword in readers.conf. - - * Also teach other known lines to innreport (especially the use - of "ctlinnd xexec" and normal rejection of nnrpd connections - during news.daily operations). - - * Typo in readers.conf man page (access instead of auth). + Thanks to Richard Kettlewell for the patch. - * Prevent innwatch from throttling innd when no overview directory - exists + * storage/cnfs/cnfs.c: don't read uninitialised cycbuffname - Thanks to John F. Morse for the report. + Thanks to Richard Kettlewell for the patch. - * Mention in news.daily documentation that lowmark requires - expireover - - Thanks to John F. Morse for the report. +2015-05-17 iulius -2014-04-13 iulius + * Fixed alignment issues when storing values - * Update control.ctl to upstream version from 2014-04-06 +2015-05-14 iulius -2014-03-16 iulius + * Add Richard Kettlewell as a contributor - * Fix typo (two "d" in "address") + * Correct remap check in tradindexed lookup - Also remove the top1000.org domain that no longer exists. + The check was off by one; and when it happened, it invalidated + the 'parent' pointer, causing a use-after-munmap (or + use-after-free) condition. + + Thanks to Richard Kettlewell for the bug report. -2014-03-15 iulius + * Correctly flush CNFS buffers when nfswriter is true in inn.conf - * Fix AC_LANG_PROGRAM warnings from Autoconf 2.68 + * Correct remap check in tradindexed group lookup - Autoconf 2.68 complains with several: AC_LANG_CONFTEST: no - AC_LANG_SOURCE call detected in body + Previously the remap check had an off-by-one bug and moreover + would never be done due to the loop condition (making the + off-by-one bug moot). - Libtool 2.4 (used by INN 2.6) fixed the issue but as INN 2.5 - still uses Libtool 2.2.6b, just backport commit - 2680f79c22e6bb1f8b9c7b5428da728b7e028b0c from git Libtool. + This one could be a problem in real life; if creating a group + causes innd to expand the index then an already-running nnrpd + will not automatically notice, and so won't be able to find the + group. - * m4/libtool.m4 (_LT_SYS_MODULE_PATH_AIX): Fix underquoted - AC_LANG_PROGRAM call. * m4/libtool.m4 (_LT_LINKER_SHLIBS) [irix, - GCC]: Use the right source for the given language. + Thanks to Richard Kettlewell for the patch. - * Handle several UIDs on PGP keys when verifying control messages + * nnrpd/commands.c: paranoid checking of AUTHINFO GENERIC reply - Fixed a long-standing limitation on how controlchan and pgpverify - were checking the signer of control messages. They now properly - handle the case of several UIDs being defined on a single PGP - key, as well as the presence of spaces into UIDs. In previous - versions of INN, a few valid control messages got ignored because - of that limitation (fido.ger.* and grisbi.* were for instance - impacted). - -2014-03-13 iulius - - * Update copyright years - - * Update control.ctl to upstream version from 2014-03-13 - - * Update install-sh to upstream version from 2014-03-13 - - * Update config.guess and config.sub to upstream versions from - 2014-03-13 + Check the number of arguments returned by AUTHINFO GENERIC. + + Thanks to Richard Kettlewell for the patch. -2014-02-17 iulius + * innfeed/connection.c: avoid violating C aliasing rules + + The object was written as a 'struct sockaddr' but then read as a + 'struct sockaddr_storage', which violates C99 s6.5#7. The fix is + to always access it as a 'struct sockaddr' and use a union to + ensure enough space for any possible address type. + + Thanks to Richard Kettlewell for the patch. - * improve documentation about using storeonxref with tradspool + * nnrpd/commands.c: correct sense of PERMgeneric reply - Mention in the inn.conf man page that storeonxref needs being set - to true in case the tradspool article storage method is used. + The comment has always been wrong, as well as the return value + for ~15 years... - Though a few parts of tradspool handle both values for - storeonxref, the implementation when storeonxref is false is not - complete. For instance, CrackXref() is still called on the - Newsgroups: header once, which obviously fails. + Thanks to Richard Kettlewell for the patch. - * do not install motd files by default, but only samples + * nnrpd/perm.c: don't dereference a null pointer if there are no + access groups - On a fresh INN install, motd.innd and motd.nnrpd are no longer - installed by default. Instead, samples for these files are - provided in >pathetc>, named differently so that their default - contents are not displayed to news clients before they get - customised. + Thanks to Richard Kettlewell for the patch. - * readers.conf: make mandatory the program: key in res blocks + * nnrpd/article.c: A wrong variable was used for vhost feature. - Fixed a segfault occurring in nnrpd when a res block was used in - readers.conf without the program: key. + Since these are created by the local innd, the error should not + normally occur. - This key is now explicitly made mandatory. + Thanks to Richard Kettlewell for the patch. - * nnrpd: fixed an overlapping copy + * Verify that setuid() and setgid() actually succeed - Fixed an issue where users were denied posting because of an - overlapping buffer copy in a check nnrpd was doing. + See: https://lwn.net/Articles/451985/ for a discussion of the + issues in this area. - The error seen was "address not in Internet syntax" while using a - From: address of the form . Debugging revealed that - nnrpd copies a buffer into itself to look at the part behind the - "@", and for very specific inputs on an old version of nnrpd that - still uses strcpy, the result did not contain the dot separating - the top-level domain any more. + The checks in newuser.c are probably unnecessary due to the + subsequent tests. rnews.c is straight-up broken though. - Thanks to Florian Schlichting for the patch. + Thanks to Richard Kettlewell for the patch. + +2015-05-02 iulius -2014-02-08 iulius + * expire/fastrm.c: Fix a dereferencing issue - * add a valid shell when su'ing to the news user + * configure.ac: Build fix for current Mac OS X versions - Pass "-s /bin/sh" to "su news" to cope with the change of the - news user's shell in base-passwd 3.5.30. + The build was failing with recent versions of Mac OS X: - Thanks to Colin Watson for the patch. - -2013-12-27 iulius - - * Mention that --with-sasl requires Cyrus SASL (and not SASL). - -2013-12-19 iulius - - * fix typo + clang: error: no such file or directory: + '/usr/local/news/lib/libinn.3.dylib' make[1]: *** [libinn.la] + Error 1 make: *** [all-lib] Error 2 + + The reason is the '-multiply_defined'-part of the command line. + This switch is marked as obsolete in ld(1): + + -multiply_defined treatment Previously provided a way to warn or + error if any of the sym- bols used from a dynamic library were + also available in another linked dynamic library. This option is + obsolete. + + Thanks to Dennis Preiser for the report. - * rewording so as to make the documentation of noresendid clearer + * innfeed/imap_connection.c: fix support of Cyrus SASL 2.1.25 and + later + + Fix how sasl_callback_ft, added with Cyrus SASL 2.1.25, was + handled by innfeed. See revision [9381] for more information. + + Thanks to Dennis Preiser for the report. - * mention innduct as a possible replacement for innfeed, innxmit - and nntpsend + * innd/art.c: Fix a dereferencing issue when parsing + Injection-Info: header field + + Thanks to David Binderman for the patch. -2013-12-14 iulius +2015-05-01 iulius - * ckpasswd: check for both gdbm/ndbm.h and gdbm-ndbm.h headers + * Bump version number in FAQ for new INN 2.5.5 release - libgdbm-dev in Debian provides /usr/include/gdbm-ndbm.h whereas - gdbm-devel in Red Hat provides /usr/include/gdbm/ndbm.h; INN then - has to make sure to search for the right header file when DBM - support is found. Define HAVE_GDBM_SLASH_NDBM_H and - HAVE_GDBM_HYPHEN_NDBM_H instead of HAVE_GDBM_NDBM_H to properly - disambiguate the two headers that are mapped to the same - preprocessor name by Autoconf. - - Thanks to Jesse Rehmer for the bug report. + Also remove link to Elena Samsonova's web site that appears to be + defunct. -2013-12-12 iulius +2015-04-23 iulius - * innd: fix a segfault when running news.daily + * mailpost: add new -t flag to specify the default temporary + directory - On systems where time_t is a 64-bit integer, innd segfaults on - "ctlinnd name" commands (for instance when news.daily uses these - commands on connected peers). + Check that the database directory and the temporary directory are + writable when mailpost is run, and otherwise die with an error. - Thanks to S.P. Zeidler for the patch. - -2013-12-09 iulius + Two paths are now tried by default for the temporary directory: + pathtmp, and then /var/tmp if pathtmp is not writable. - * innreport: update the pattern for "strange strings" + * Fix GCC 5.1.0 warning for incompatible pointer type - The "Including strange strings" innreport section is now back in - daily Usenet reports. Fix regression introduced with commit - [8389]. + Rename the "U" macro used by two tests to "SUC" (casting to + String of Unsigned Chars) because it otherwise conflicts with how + Unicode strings are declared in ISO C11, the new default mode for + the GCC 5 series. -2013-12-06 eagle +2015-04-20 iulius - * Update the URL for BerkeleyDB - - Oracle has gratuitously reorganized their web pages yet again. + * Update TODO with references to existing patches -2013-11-26 iulius +2015-04-05 iulius - * update links to ISC and Trac - - * Russ' web site now lists the contributed links that were on the - old ISC web site (the new ISC web site is only a download page of - the last release). * Accessing Trac now requires a TLS - connection. + * Mention required TLS ciphers for interoperability -2013-11-17 iulius + * Update TODO with current state of INN 2.6.0 - * fix the path to simpleftp in innshellvars and INN::Config - - When neither wget nor ncftpget nor ncftp was found at configure - time, the path to the simpleftp substitution program shipped with - INN was not proprely set in innshellvars, innshellvars.pl, and - the INN::Config Perl module. Thanks to Christian Garbs for the - bug report. +2015-04-02 iulius -2013-11-10 iulius + * Update changelog to mention other changes for INN 2.5.5 - * getnameinfo.c: sync with rra-c-util - - Check the return status of snprintf instead of assuming that it - will always succeed. + * Use Sys::Hostname Perl core module instead of calling + /bin/hostname -2013-11-06 iulius +2015-03-24 iulius - * socket.h: add socket_set_errno - - Fix a build error because of the introduction of socket_set_errno - in commit [9557]. - - Backport commit [9345] to the 2.5 branch. + * Add two missing contrib programs in the exceptions of mkmanifest -2013-11-06 eagle + * Typo in POD formatting - * Fix another outdated link to BerkeleyDB in the ovdb documentation + * Update copyright years (add 2015) - * Fix broken link for obtaining Perl in Perl hook documentation + * Update config.guess and config.sub to upstream versions from + 2015-03-08 + + * Update control.ctl to upstream version from 2014-06-17 -2013-11-05 iulius +2015-03-21 iulius - * inet_ntop.c: sync with rra-c-util + * scanlogs: Limit the number of lines to show from error log files - - Use socket_set_errno instead of assigning to errno. + When lots of lines are present in error log files, they appear in + the news.daily verbatim, and the resulting email is so large it + is bouncing. - - Check the return status of snprintf in the inet_ntop - replacement function instead of assuming that it will always - succeed. - -2013-11-03 iulius + Restrict the number of lines to 50 (the default value for unknown + lines from news.notice). + + Thanks to Jeffrey M. Vinocur for the bug report. - * update changelog for previous commit [9538] + * nnrpd: Count write time stats when using SASL - * asprintf.c: synchronize with rra-c-util + * Improve the count of sleeping channels + + The highest file descriptor of sleeping channels was not always + properly updated. A new CHANresetlastsleeping() function now does + the job when called. - In the vasprintf replacement, preserve errno if snprintf fails - when formatting the string into the newly-allocated buffer. + Also prevent innd from crashing if a channel is supposed to sleep + but does not have a Waker set. + + Thanks to Petr Novopashenniy for the bug report. -2013-10-05 eagle + * readers.conf: improve the first example to disambiguate its + effect against loca l connections - * Perl and BerkeleyDB URL updates +2015-03-18 iulius -2013-09-22 eagle + * pullnews: when giving a port along with a server name, check + there is only one ":" + + Otherwise, it is very likely that the given server name is an + IPv6 address, and therefore its end should not be interpreted as + a port. - * Fix link to the NoCeM registry in the perl-nocem documentation +2015-01-21 iulius -2013-09-20 iulius + * Fix the unsignedness of TMRgettime when printed - * fix include directories at configure time for Berkeley DB support - - Do not add /usr/include and /usr/lib to compiler and linker - include directories. +2015-01-10 eagle - * fix ovdb documentation about --with-berkeleydb + * http://www.imc.org/ietf-usefor/ appears to be gone - Since commit [7819], likely locations like /usr/include/db44 or - /usr/local/BerkeleyDB.4.4 are no longer checked. + Replace this link in HACKING with a link to the usefor mailing + list archives and to my Usenet article format pages. -2013-08-25 iulius +2015-01-10 iulius - * improve the detection of ndbm compatibility layer + * Do not mention that TLS compression will be disabled in the next + INN release - When INN is configured with Berkeley DB support, ckpasswd tries - to use the ndbm compatibility layer provided by Berkeley DB even - though Berkeley DB was not built with ndbm support. This patch - fixes that, by detecting at configure time that Berkeley DB - really has its ndbm compatibility layer. - - Also add support for gdbm libraries in ckpasswd. + As the CRIME attack is not exploitable in NNTP, disabling TLS + compression by default is pointless. No vulnerability in TLS + compression is currently known as far as NNTP is concerned. - * do not use yyget_leng() function as it is not defined by old flex - versions - - Better keep using yyleng, still cast to size_t. + * Add a cast to fix a gcc warning -2013-08-01 iulius +2015-01-07 iulius - * ckpasswd: use Berkeley DB ndbm compatibility layer first + * Regenerate Makefile dependencies with gcc 4.7.2 - On a few systems like Fedora 18 ppc64, the GNU dbm library - shipped as ndbm.h is not usable. + Also adapt support/makedepend to keep the two leading spaces, as + in previous versions of gcc. - ckpasswd.c: In function 'password_dbm': ckpasswd.c:165:5: - warning: passing argument 1 of 'dbm_open' discards 'const' - qualifier from pointer target type [enabled by default] database - = dbm_open(file, O_RDONLY, 0600); ^ In file included from - ckpasswd.c:30:0: /usr/include/ndbm.h:55:14: note: expected 'char - *' but argument is of type 'const char *' extern DBM *dbm_open - (char *file, int flags, int mode); ^ ckpasswd.o: In function - `password_dbm': - /home/iulius/autobuild/inn/authprogs/ckpasswd.c:165: undefined - reference to `dbm_open' - /home/iulius/autobuild/inn/authprogs/ckpasswd.c:170: undefined - reference to `dbm_fetch' - /home/iulius/autobuild/inn/authprogs/ckpasswd.c:177: undefined - reference to `dbm_close' - /home/iulius/autobuild/inn/authprogs/ckpasswd.c:172: undefined - reference to `dbm_close' collect2: error: ld returned 1 exit - status - -2013-07-31 iulius + Backport commit [9566]. - * fix three casts to unsigned char when using toupper() + * Cleanup in include stuff - GCC complains because of char-subscripts warnings. - - * fix build with flex 2.5.36+ + - Add missing BEGIN_DECLS/END_DECLS, and also use them instead of + their expansion. - Cast yyget_leng() to size_t because it used to be an int in flex - versions anterior to 2.5.35 (not included). + - Add missing inclusion of . -2013-07-22 eagle +2015-01-04 eagle - * Update the URL for NoCeM + * Remove dead link to nnrpkrb5auth - * Fix another old URL for downloading Perl +2014-12-16 iulius - * Update URL to download Perl in the Perl hook documentation + * nnrp.access2readers.conf: add default username when none is + specified -2013-07-08 iulius +2014-12-14 iulius - * pullnews: fixed a Perl warning + * Add new contrib/nnrp.access2readers.conf.in script - Latest Perl versions catch this use of uninitialized variable. + This script converts old-style nnrp.access to readers.conf. - Thanks to Tony Evans for the bug report. + Thanks to Jeffrey M. Vinocur for his contribution. - * pullnews: looks for the config file in the running user's home - directory - - After commits [9304] and [9330], INN 2.5.3 broke the legacy - behaviour of pullnews looking for its configuration file in the - running user's home directory. Adding INN::Config changed the - $HOME environment variable to the news user's home directory (in - fact the pathnews parameter set in inn.conf). Besides, pullnews - was no longer useable outside INN. - - Fixed these issues by: - making INN::Config and - INN::Utils::Shlock optional. If these Perl modules are not - present, pullnews falls back to its legacy handle of locks (that - is unfortunately broken in Solaris); - setting the home directory - to the one of the running user. - - Thanks to Tony Evans for the bug report. +2014-12-07 iulius + + * Update Russ's mail address -2013-07-01 iulius + * Fix typos - * clarify distribution restrictions in the ME entry of the - newsfeeds sample file +2014-12-01 iulius + + * Add support for choosing the elliptic curve to use with TLS + support - Note in the newsfeeds sample file that restrictions on accepted - distributions will have no effect if the article has no - distribution at all. + The new tlseccurve parameter in inn.conf takes the name of a + curve OpenSSL knows about, to use for ephemeral key exchanges. - Follow up commit [9500]. + Thanks to Christian Mock for the patch. -2013-07-01 eagle +2014-11-23 iulius - * Clarify distribution restrictions on articles with none + * m4/sendmail.m4: add missing brackets - Note in the newsfeeds man page that restrictions on accepted - distributions will have no deffect if the article has no - distribution at all. + The configure script was failing when running that part of code. + +2014-11-12 iulius + + * inn.conf: Improve documentation about tlsprotocols and + tlscompression -2013-06-25 iulius +2014-11-11 iulius - * fix a few resource leaks + * Improve tuning of the SSL/TLS configuration - A few files were remaining open. + nnrpd's TLS support is basically using OpenSSL's defaults WRT + issues such as protocol support and cipher suites. In these days + of POODLEs and other vulnerabilities, it should be useful to be + able to have better control over what's offered. So this patch + adds a few options to inn.conf: - Thanks to David Binderman for having reported the issue. - - * imapfeed: fix buffer overflow + - tlsprotocols: allows to select the SSL/TLS versions that are + supported - Fixed a buffer overflow when using imapfeed with more than a - million commands during the same IMAP session. + - tlsciphers: allows to give an OpenSSL cipher string to tailor + the cipher suites that are offered to clients - Thanks to David Binderman for having reported the issue. - - * fix segfault during dereferencing + - tlspreferserverciphers: switches on the server-side selection + of the cipher suite (TLS default is "client chooses") - Remove a useless unlink(). + - tlscompression: allows to turn off TLS compression (because of + the CRIME attack) if the OpenSSL version supports this. - Thanks to David Binderman for having reported the issue. + Many thanks to Christian Mock for his patch. -2013-06-24 iulius +2014-11-09 iulius - * fix a Perl warning in inncheck - - defined(@array) has been deprecated since Perl 5.16. - - Thanks to Remco Rijnders for the report. + * Mention PyClean as a Python-based variant of Cleanfeed. -2013-06-12 iulius +2014-10-28 iulius - * document htpasswd and perl commands to generate the auth - newsusers database + * Update default paths for Debian and Fedora -2013-06-08 iulius + * Fix a dependency in a build rule - * mention in INSTALL that CNFS buffers are compatible between LFS - and non-LFS vers ions +2014-10-03 iulius -2013-06-06 iulius + * innwatch: report an error when the control file is missing - * properly undef two hashes used in Perl hooks +2014-09-24 iulius - * add the attributes hash to nnrpd Perl posting filter - - The attributes hash was only created for Perl authentication and - access functions. It is now accessible to Perl posting filter. + * rc.news: no longer explicitly sleep before starting innwatch and + cnfsstat - Also update the sample filter_nnrpd.pl file. + Instead, make these two scripts sleep by themselves. - Thanks to Steve Crook for the patch. - -2013-06-03 iulius + Also update documentation: improve the list of actions done by + rc.news, and no longer mentions that innd should be throttled + before being stopped (this is not true - the shutdown process + already does the actions throttling does). - * innfeed, scanlogs: reopen log files on sighup + * innwatch: add -i flag to specify how many seconds to sleep at + startup - The recent patch [9464] to flush exploder and process channels in - innd, and to send 'ctlinnd flushlogs' again after log rotation - solved the problem of controlchan or ninpaths holding open an - already deleted errlog file. However this does not yet solve the - original issue with innfeed.log when innfeed is run as a - standalone daemon via a funnel-file. + - Also fix previous commit [9651] that did not totally fix the + issue it was supposed to fix. - This patch implements the changes suggested by Julien Elie in - January 2013, to add an openLogFile() call to the sighup handler. - The sigusr1 handler is not available, as it is already used to - increase / decrease the debugging level along with sigusr2. Also, - reopening the log after re-reading the configuration might be a - good idea anyway, as the log file location may have been changed. + - Fix the behaviour of the -f flag (it wasn't doing anything). - Additionally, call sighup on the innfeed pid in scanlogs, and - document the changes briefly in innfeed(8) / innfeed.conf(5). + - Fix how the -l flag was parsed (a space was required between -l + and its argument, whils it should not have been required). - Thanks to Florian Schlichting for the patch. + - Add new POD documentation for innwatch, and update it at the + same time: document new -i flag, and document already existing -f + flag. -2013-05-24 iulius - - * rename radius.conf to inn-radius.conf + * cnfsstat: add -i flag to specify how many seconds to sleep at + startup - The name of the radius.conf configuration file shipped with INN - conflicts with the libradius package. innupgrade will take care - of the renaming. + Update documentation, and homogenize POD syntax at the same time. + +2014-09-24 eagle + + * Re-add second $(LIBSTORAGE) when linking backends - Reported by Jochen Schmitt. + Backend commands (such as nntpget) linked with both history and + storage libraries list $(LIBSTORAGE) in the link line twice. This + isn't a mistake; there are some unfortunate circular dependencies + that require listing $(LIBSTORAGE) both before and after + $(LIBINNHIST) in the link line or static linking will fail. -2013-05-21 eagle +2014-09-22 iulius - * Force the actsync exit code documentation to not be a numbered - list + * Fix build issues on AIX 7.1 - POD has changed how it disambiguates numbered lists from - description lists and issues a new warning. Force the exit codes - to be a description list since they don't start with 1. + mmap is redefined to mmap64 when large file support is enabled. -2013-05-20 iulius +2014-09-21 iulius - * fixed the occurrence of an unexpected "cant select" error - generated by innd errno was not preserved; the status hook was - stuck between the select and the check of its return status, so - we're getting a spurious EPERM from STATUSsummary, probably from - some random glibc internal syscall involved in fopen() that isn't - actually important. + * Fixed a warning and an unnecessary sys/stropts.h header + + * Typos + + * Fix build of contrib/respool.c + + Remove an unused variable. + + Add a link to libhistory. + + * Fix build of contrib/reset-cnfs.c - It only happens twice since it can only happen when select is - interrupted by a signal (triggering EINTR, which then gets - overwritten with EPERM), which is probably due to child processes - completing, which is probably only happening during specific - events on your server during expire. + Add correct include header files. - The solution is to rewrite this code to the order that it should - have been written in the first place. + Use the right DO_LARGEFILES variable instead of LARGE_FILES. - Thanks to Paul Tomblin for having caught that long-standing - issue. + Reformat the code (remove tabulations). + + Properly exit with the right status code. -2013-04-14 iulius + * Fix a few warnings, and update svn:ignore for contrib - * compilation with gcc 4.8.0 + * Fix build of contrib/expirectl.c - Explicitly give the known size of a pointer used in a snprintf() - call in the OfferArticle() function. New - -Wsizeof-pointer-memaccess warning introduced in gcc 4.8.0. - -2013-03-22 iulius + Add correct include header files, and fix a few warnings in + printf() calls. + + Add portability code for statfs/statvfs support. - * update documentation for the new behaviour of "ctlinnd flushlogs" + * Add compilation rules for contrib/auth_pass.c and + contrib/expirectl.c - Also fix a POD error introduced by the previous commit. Thanks to - Florian Schlichting for having caught it. + Use the right socklen_t type, and add crypt.h header if + available. -2013-03-18 iulius + * FAQ: add how to feed articles arrived between two dates to + another server - * Rotate innfeed logs +2014-09-11 iulius + + * innupgrade: fix its execution + + On a few systems like AIX, innupgrade failed to run during an + upgrade because "perl -T" was not explicitly called. Failure was: + "-T" is on the #! line, it must also be used on the command line - Exploder and process channels are now properly reopened when - "ctlinnd flushlogs" is used, which is in particular the command - invoked by scanlogs to rotate log files. It solves the issue that - caused the patch to be reverted by commit [9450]. + Thanks to The Doctor for his bug report. - * Superfluous character in innfeed.log output +2014-09-07 iulius -2013-01-16 iulius + * Add missing dependency for libtest.o during the build of + nnrpd/auth-ext.t - * test suite: remove a useless wrapped test for setenv - - Remove a test that makes the test suite fail on a few systems. - The code it is testing is obvious whereas getting the amount of - memory and the data size limits right is extremely difficult in - all cases. Besides, this test does not serve much purpose and is - not present in rra-c-util 4.7. +2014-09-05 iulius - * Typos. - - Thanks to Florian Schlichting for the report. + * Fix typos in INN_HAVE_SYS_BITYPES_H and + INN_MACRO_IN6_ARE_ADDR_EQUAL names + +2014-08-30 iulius -2012-12-30 eagle + * libinn documentation: update the name of the fdflag functions - * Fix the innfeed configfile parser generation rule + * pullnews: improve logging when an error occurs during GROUP - Using $? in the rule, now that the extra dependency has been - added, caused the wrong arguments to be passed to bison. Pass the - correct arguments explicitly. + Also rewrite a ternary condition to improve readability. - This still seems to run bison twice for reasons that I can't - figure out, but that should be harmless. - -2012-12-29 eagle + Patch from Geraint A. Edwards. - * Add additional dependency to de-parallelize innfeed yacc rule + * pullnews: new -a flag (hashfeed ability) - With a highly parallel make, yacc could be invoked on the innfeed - configuration parser twice, once to build the *.c file and once - to build the *.h file, leading to one of the mv commands failing. - Follow the recommendation in the Automake manual and add an - additional dependency from the *.h file to the *.c file, forcing - the rule to be run once. + Add a new feature to pullnews: hashfeed to split feeds. It uses + MD5 and is Diablo-compatible. - Reported by Remco Rijnders. + Thanks to Geraint Edwards for the patch. -2012-12-23 eagle - - * Do not attempt to rotate innfeed logs + * pullnews: new -B flag (header-only feeding) - innfeed with funnel feeds will hold its log files open forever, - so those log files cannot be safely rotated with scanlogs. - There's no way to signal innfeed to close the log file and open a - new one. Remove the code in scanlogs that attempts to deal with - them. + Add a new feature to pullnews: header-only feeding. - Patch from Florian Schlichting . - -2012-12-07 eagle + If the article does not already have a Bytes: header field, one + is added. Bodies are kept only for control articles. + + Thanks to Geraint Edwards for the patch. - * Remove reference to reap from prunehistory man page + * pullnews: bug fix to rnews when -O; improved rnews reporting - The FTP site from which this program was available seems to have - disappeared, and it was already marked as obsolete. + Thanks to Geraint Edwards for the patch. -2012-09-04 iulius + * pullnews: improve wording + + * When pullnews runs for the first time against a newsgroup, say + "never" instead of January, 1st 1970 as the last run date. * + Improve spaces, uppercase characters and singular forms when 1 + article is retrieved. * Update the config file even when the + group is empty. - * Mention CVE-2012-3523 in the NEWS file (though posterior to the - 2.5.3 release) + * pullnews: remove headers matching (or not) a given regexp + + Enable the -m flag to remove headers matching (or not) a given + regexp. + + Thanks to Geraint Edwards for the patch. -2012-07-07 eagle +2014-08-09 iulius - * Update URL for NewsPortal to one that works + * innwatch: no longer creates a child process for sleeping + + innwatch creates a child process only for sleeping and then waits + on that process. The forked-off process is not killed by 'rc.news + stop' (only its parent is), and will only die after it's done + sleeping. If running under SMF on illumos/Solaris, this causes + the service to likely drop into maintenance state (since not all + processes die within timeout). + + Thanks to Lauri Tirkkonen for the patch. -2012-06-30 iulius +2014-06-04 iulius - * bump revision numbers to 2.5.4 (the following STABLE release) + * Bump version number to 2.5.5 for STABLE. diff -Nurp inn-2.5.4/HACKING inn-2.5.5/HACKING --- inn-2.5.4/HACKING 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/HACKING 2015-05-23 06:24:41.000000000 -0700 @@ -714,12 +714,14 @@ References list traffic contains a lot of interesting discussion of why NNTP is the way it is. - + + 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. Also contains a lot of - references to other relevant work. Another useful link is - . + published as RFC 5536 and RFC 5537. Forrest Cavalier provides several tools for following INN @@ -733,5 +735,5 @@ References technical details as needed, useful when working on IPv6 support in INN. - $Id: hacking.pod 9574 2013-11-26 19:08:41Z iulius $ + $Id: hacking.pod 9788 2015-01-10 20:46:06Z eagle $ diff -Nurp inn-2.5.4/LICENSE inn-2.5.5/LICENSE --- inn-2.5.4/LICENSE 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/LICENSE 2015-05-23 06:24:41.000000000 -0700 @@ -3,7 +3,7 @@ different licenses and/or copyrights is and license: Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, - 2013, 2014 by Internet Systems Consortium, Inc. ("ISC") + 2013, 2014, 2015 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 diff -Nurp inn-2.5.4/MANIFEST inn-2.5.5/MANIFEST --- inn-2.5.4/MANIFEST 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/MANIFEST 2015-05-23 06:24:41.000000000 -0700 @@ -75,6 +75,7 @@ contrib/mkbuf Cr contrib/mlockfile.c Lock files into memory using mlock contrib/mm_ckpasswd Check passwords against Mailman db contrib/newsresp.c Measure responsiveness of remote server +contrib/nnrp.access2readers.conf.in Convert nnrp.access file to readers.conf contrib/pullart.c Recover articles from cyclic buffers contrib/reset-cnfs.c Reset the state parts of a CNFS buffer contrib/respool.c Respool articles in the storage manager @@ -276,6 +277,7 @@ doc/pod/innfeed.conf.pod Ma doc/pod/innfeed.pod Master file for innfeed.8 doc/pod/innmail.pod Master file for innmail.1 doc/pod/innupgrade.pod Master file for innupgrade.8 +doc/pod/innwatch.pod Master file for innwatch.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 diff -Nurp inn-2.5.4/Makefile inn-2.5.5/Makefile --- inn-2.5.4/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 9391 2011-12-26 16:20:32Z iulius $ +## $Id: Makefile 9689 2014-09-11 11:28:49Z iulius $ include Makefile.global @@ -112,15 +112,15 @@ update: echo '' ; \ cd $$D && $(MAKE) install || exit 1 ; cd .. ; \ done - test -z "$D" && $(PATHBIN)/innupgrade $(PATHAUTHPASSWD) - test -z "$D" && $(PATHBIN)/innupgrade $(PATHBIN) - test -z "$D" && $(PATHBIN)/innupgrade $(PATHDOC) - test -z "$D" && $(PATHBIN)/innupgrade $(PATHETC) - test -z "$D" && $(PATHBIN)/innupgrade ${PATHFILTER} - test -z "$D" && $(PATHBIN)/innupgrade $(MAN1) - test -z "$D" && $(PATHBIN)/innupgrade $(MAN3) - test -z "$D" && $(PATHBIN)/innupgrade $(MAN5) - test -z "$D" && $(PATHBIN)/innupgrade $(MAN8) + test -z "$D" && $(PERL) -Tw $(PATHBIN)/innupgrade $(PATHAUTHPASSWD) + test -z "$D" && $(PERL) -Tw $(PATHBIN)/innupgrade $(PATHBIN) + test -z "$D" && $(PERL) -Tw $(PATHBIN)/innupgrade $(PATHDOC) + test -z "$D" && $(PERL) -Tw $(PATHBIN)/innupgrade $(PATHETC) + test -z "$D" && $(PERL) -Tw $(PATHBIN)/innupgrade ${PATHFILTER} + test -z "$D" && $(PERL) -Tw $(PATHBIN)/innupgrade $(MAN1) + test -z "$D" && $(PERL) -Tw $(PATHBIN)/innupgrade $(MAN3) + test -z "$D" && $(PERL) -Tw $(PATHBIN)/innupgrade $(MAN5) + test -z "$D" && $(PERL) -Tw $(PATHBIN)/innupgrade $(MAN8) install-root: @chmod +x support/install-sh diff -Nurp inn-2.5.4/Makefile.global.in inn-2.5.5/Makefile.global.in --- inn-2.5.4/Makefile.global.in 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/Makefile.global.in 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile.global.in 9433 2012-06-30 22:39:51Z iulius $ +## $Id: Makefile.global.in 9646 2014-06-04 19:13:47Z 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 @@ -18,7 +18,7 @@ ## keep their length reasonable; otherwise, your news server will not ## be complying with the NNTP protocol. -VERSION = 2.5.4 +VERSION = 2.5.5 VERSION_EXTRA = ## If you want to install INN relative to a root directory other than /, diff -Nurp inn-2.5.4/NEWS inn-2.5.5/NEWS --- inn-2.5.4/NEWS 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/NEWS 2015-05-23 06:24:41.000000000 -0700 @@ -1,3 +1,72 @@ +Changes in 2.5.5 + + * New inn.conf parameters used by nnrpd to fine-tune the SSL/TLS + configuration have been added: *tlsciphers*, *tlscompression*, + *tlseccurve*, *tlspreferserverciphers*, and *tlsprotocols*. Many + thanks to Christian Mock for his contribution that permits to tighten + the level of security provided by TLS/SSL. + + * innwatch no longer creates a child process only for sleeping and then + waits on that process. The forked-off process only died after it had + done sleeping, which caused the INN service to drop into maintenance + state when for instance running under SMF on illumos/Solaris (since + not all processes die within timeout). Thanks to Lauri Tirkkonen for + the patch. + + * innd no longer crashes if a channel is supposed to sleep but does not + define a waker callback function. Also, the highest file descriptor + of sleeping channels is now properly updated. Thanks to Petr + Novopashenniy for the bug report. + + * Add new -i flag to both cnfsstat and innwatch to specify how many + seconds they should sleep at startup. It will especially be useful in + rc.news so that these scripts are actually started and then sleep by + themselves, instead of being started a minute after innd and therefore + not being properly stopped if "rc.news stop" is invoked during that + minute. + + * Add new -f flag to innwatch to specify the configuration file to use, + in case it is not the default innwatch.ctl file. + + * 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 + in inn.conf, and then /var/tmp if *pathtmp* is not writable. + + * When the creation of a newsgroup needed expanding the tradindexed + group index, an already-running nnrpd was not automatically noticing + newly created newsgroups. Richard Kettlewell fixed that issue. + + * Fixed flushing of CNFS buffers when using NFS storage. + + * Fixed how innupgrade is executed during an update of an INN + installation; on a few systems like AIX, it fails to run because its + 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, + the new -B flag triggers header-only feeding, the -m flag now permits + to remove headers matching (or not) a given regexp, and rnews + reporting is improved. + + * innreport now properly takes into account the time nnrpd spends + writing when using SASL. + + * scanlogs now only shows the first 50 lines from error log files. + Otherwise, all of them were present verbatim in the daily report, and + the resulting e-mail could bounce owing to its length. Thanks to + Jeffrey M. Vinocur for the bug report. + + * Fixed the use of the legacy AUTHINFO GENERIC command, that has been + broken since INN 2.4.0 (therefore proving readers probably no longer + use that method to authenticate). Thanks to Richard Kettlewell for + having noticed, though, and contributed to tighten the security of the + replies of this command. + + * Add the nnrp.access2readers.conf contribution script written by + Jeffrey M. Vinocur to convert old-style nnrp.access file to + readers.conf. + Changes in 2.5.4 * An up-to-date control.ctl file is provided with this release. You @@ -1890,5 +1959,5 @@ Changes in 2.2.0 * The innshellvars.csh.in script is obsolete (and lives in the obsolete directory, for now). - $Id: news.pod 9644 2014-05-17 08:17:16Z iulius $ + $Id: news.pod 9866 2015-05-14 13:43:28Z iulius $ diff -Nurp inn-2.5.4/README inn-2.5.5/README --- inn-2.5.4/README 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/README 2015-05-23 06:24:41.000000000 -0700 @@ -229,6 +229,9 @@ Related Packages until 1998. Then Marco d'Itri until 2002. Steve Crook has been maintaining it since 2007. + A Python-based variant of Cleanfeed, named PyClean, also exists and + can be found at . + GUP (Group Update Program) URL: @@ -298,5 +301,5 @@ Supporting the INN Effort Katsuhiro Kondou - $Id: readme.pod 9590 2013-12-19 17:48:22Z iulius $ + $Id: readme.pod 9742 2014-11-09 20:35:21Z iulius $ diff -Nurp inn-2.5.4/TODO inn-2.5.5/TODO --- inn-2.5.4/TODO 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/TODO 2015-05-23 06:24:41.000000000 -0700 @@ -23,10 +23,10 @@ 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 9574 2013-11-26 19:08:41Z iulius $. +Last modified $Id: TODO 9826 2015-04-20 17:27:24Z iulius $. -Scheduled for INN 2.5 +Scheduled for INN 2.6 * Rework and clean up the overview API. The major change is that the initialization function should return a pointer to an opaque struct @@ -68,10 +68,9 @@ Scheduled for INN 2.5 it to POD while checking that it's still accurate and adding any additional useful information that was missed. -* Replace the current innshellvars.pl file with a real INN Perl module for - Perl programs, and include the necessary glue so that other Perl modules - can be added to INN's build tree and installed with INN, allowing their - capabilities to be available to the portions of INN written in Perl. +* Include the necessary glue so that Perl modules can be added to INN's + build tree and installed with INN, allowing their capabilities to be + available to the portions of INN written in Perl. * Switch nnrpd over to using the new wildmat routines rather than breaking apart strings on commas and matching each expression separately. This @@ -91,7 +90,7 @@ Scheduled for INN 2.5 into libinn. -Scheduled for INN 2.6 +Scheduled for INN 2.7 * Add a generic, modular anti-spam and anti-abuse filter, off by default, but coming with INN and prominently mentioned in the INSTALL @@ -116,8 +115,8 @@ Scheduled for INN 2.6 straight headers-only feed that only pulls articles down via NNTP from a remote server and a caching feed where some articles are pre-fed, some articles are pulled down at first read, and some articles are never - stored locally should be possible. [Patches for a header-only feed have - already been written and submitted to inn-workers.] + stored locally should be possible. [A patch for a header-only feed + from innfeed is included in ticket #17.] * The libinn, libstorage, and other library interfaces should be treated as stable libraries and properly versioned using libtool's @@ -148,10 +147,10 @@ High Priority Projects reload-happy; it should be better at making incremental changes without reloading everything. -* Add authenticated Path support, based on the current USEFOR draft or the - behavior of some other servers (such as Diablo). [Andrew Gierth wrote a - patch for part of this a while back, which Russ has. Marco d'Itri - expressed some interest in working on this.] +* Add authenticated Path support, based on USEPRO (RFC 5537). + [Andrew Gierth wrote a patch for part of this a while back, which + is included in ticket #19. Marco d'Itri expressed some interest in + working on this.] * Various parts of INN are using write or writev; they should all use xwrite or xwritev instead. Even for writes that are unlikely to ever be @@ -210,9 +209,6 @@ Documentation Projects 5536 and 5537, preferrably in a format that could be suitable for future inclusion into new revisions of the RFCs. -* Audit readers.conf.5 against perm.c for missing options ("include" at - least is missing from the documentation). - * More comprehensive documentation in texinfo would be interesting; it would allow for better organization, separation of specialized topics into cleaner chapters, and a significantly better printed manual. This @@ -280,7 +276,7 @@ Needed Bug Fixes syntax errors (particularly for long message IDs), and innfeed doesn't handle this particularly well at the moment. It really should have an error handler for this case. [Sven Paulus has a preliminary patch that - needs testing.] + needs testing, included in ticket #26.] * Editing the active file by hand can currently munge it fairly badly even if the server is throttled unless you reload active before restarting @@ -292,15 +288,6 @@ Needed Bug Fixes innfeed generates. It should ideally generate some summary, or at least note that some error has occurred and the logs should be examined. -* INN's message ID parser should be more forgiving about surrounding - whitespace. Right now, it will reject messages with a trailing space in - the Message-ID header. - -* nnrpd doesn't check the message ID of a posted article for syntactic - validity before remailing it to the moderator, since normally it relies - on innd to check the message ID. The message ID checking code from - innd/art.c should be moved into lib so that nnrpd can use it as well. - * Handling of compressed batches needs to be thoroughly reviewed by someone who understands how they're supposed to work. It's not clear that INN_PATH_GZIP is being used correctly at the moment and that @@ -383,8 +370,8 @@ Needed Bug Fixes Requested New Features * Consider implementing the HEADERS command as discussed rather - extensively in news.software.nntp. [Greg Andruk has a preliminary - patch.] + extensively in news.software.nntp. HEADERS was intended as a general + replacement for XHDR and XPAT. [Greg Andruk has a preliminary patch.] * There have been a few requests for the ability to programmatically set the subject of the report generated by news.daily, with escapes that are @@ -394,38 +381,20 @@ Requested New Features ctlinnd, although it may be a bit afield of what ctlinnd is currently for. -* Sven Paulus's patch for nnrpd volume reports should be integrated. See - . - -* Lots of people encrypt X-Trace in various ways. Should that be offered - as a standard option? The first data element should probably remain - unencrypted so that the O flag in newsfeeds doesn't break. - - Should there also be an option not to generate X-Trace? And this whole - area may change if USEFOR ever standardizes poster trace information; - it's been proposed to put it in the path tail instead. The current - USEFOR trend as of January, 2001 appears to be towards an Injector-Info - header with this information, allowing a token or an injecting hostname. - For a token, one really wants it to be hierarchically structured for - spam filtering even if it's encrypted (in other words, to get a "group" - of clients, one could just match the first n bytes of the token instead - of the whole thing). - - Olaf Titz suggests: - - This can be done by formatting the (rest of) the header in a way - that fields are always a multiple of 8 bytes and applying a 64 bit - block cipher in ECB mode on it. But then we would be better off - using binary fields, as the timestamp is 9 bytes and an IP address - 10-12 bytes. - - Combining the timestamp and PID into one block, adding an - authenticated user field and omitting the redundant formatted time - would give the following format: +* Sven Paulus's patch for nnrpd volume reports should be integrated. + [Patch included in ticket #135.] + +* Lots of people encrypt Injection-Info in various ways. Should that be + offered as a standard option? The first data element should probably + remain unencrypted so that the O flag in newsfeeds doesn't break. - X-Trace: g212.hadiko.de [395109AA000016FF] [AC14302A00000000] [...] - time | pid ip |reserved user + Should there also be an option not to generate Injection-Info? + + Olaf Titz suggests for encryption: + + This can be done by formatting injection fields in a way that they + are always a multiple of 8 bytes and applying a 64 bit block cipher + in ECB mode on it (for instance "395109AA000016FF"). * ctlinnd flushlogs currently renames all of the log files. It would be nice to support the method of log rotation that most other daemons @@ -443,7 +412,8 @@ Requested New Features * Several people have Perl interfaces to pieces of INN that should ideally be part of the INN source tree in some fashion. Greg Andruk has a bunch - of stuff that Russ has copies of, for example. + of stuff that Russ has copies of, for example. [Patches included in + tickets #133 and #134.] * There are various available patches for Cancel-Lock and an Internet draft; support should be added to INN for both generation and @@ -516,7 +486,7 @@ Requested New Features * Somebody should look at keeping the "newsgroups" file more accurate (e.g. newgroups for existing groups should change description, better - checkgroups handling, checking for duplicates) + checkgroups handling, checking for duplicates). * The by-domain statistics innreport generates for nnrpd count all local connections (those with no "." in the hostname) in with the errors as @@ -544,7 +514,7 @@ Requested New Features * When using SSL, use the server's key to generate an HMAC of the body of the message (and most headers?), then include that digest in the headers. This allows a news administrator to determine if a complaint - about the content of a message is fradulent since the message was + about the content of a message is fraudulent since the message was changed after transmission. * Allow permission for posting cancels to be configured in readers.conf @@ -560,9 +530,6 @@ Requested New Features * Add cnfsstat to innstat. cnfsstat really needs a more succinct mode before doing this, since right now the output can be quite verbose. -* nnrpd's Perl filter code doesn't currently permit deleting headers. It - would be nice to allow this. - General Projects @@ -589,16 +556,11 @@ General Projects fixed. * More details as to why a message ID is bad would be useful to return to - the user, particularly for rnews, inews, etc. innd also rejects message - IDs with trailing spaces, which can be hard to check. + the user, particularly for rnews, inews, etc. * Support putting the history file in different directory from the other (much smaller) db files without hand-editing a bunch of files. -* nnrpd's NNTP command parsing interacts poorly with AUTHINFO and - passwords containing spaces. The correct solution isn't clear; check - with the current NNTP RFC draft and how existing clients handle it? - * frontends/pullnews and frontends/nntpget should be merged in one script. * backends/filechan is just a simple version of backends/buffchan. It @@ -620,11 +582,10 @@ Long-Term Projects * Look at turning header parsing into a library of some sort. Lots of INN does this, but different parts of INN need subtly different things, so - the best best API is unclear. + the best API is unclear. -* INN's header handling needs to be checked against the current USEFOR - draft. This may want wait until after we have a header parsing library. - It should definitely wait until USEFOR gets its act together. +* INN's header handling needs to be checked against RFC 5536 and 5537. + This may want wait until after we have a header parsing library. * The innd filter should be able to specify additional or replacement groups into which an article should be filed, or even spool the article diff -Nurp inn-2.5.4/authprogs/Makefile inn-2.5.5/authprogs/Makefile --- inn-2.5.4/authprogs/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/authprogs/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 8921 2010-01-22 23:33:08Z iulius $ +## $Id: Makefile 9781 2015-01-07 21:04:11Z iulius $ include ../Makefile.global @@ -81,38 +81,36 @@ depend: Makefile $(SOURCES) auth_krb5.o: auth_krb5.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h libauth.h ../include/portable/socket.h \ - ../include/config.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h ../include/inn/defines.h \ - ../include/inn/messages.h ../include/inn/libinn.h + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/inn/defines.h ../include/inn/messages.h \ + ../include/inn/libinn.h ckpasswd.o: ckpasswd.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/messages.h ../include/inn/defines.h \ ../include/inn/qio.h ../include/inn/vector.h ../include/inn/libinn.h \ - libauth.h ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h + libauth.h ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h domain.o: domain.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/messages.h ../include/inn/defines.h \ ../include/inn/libinn.h libauth.h ../include/portable/socket.h \ - ../include/config.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h ident.o: ident.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/messages.h ../include/inn/defines.h \ ../include/inn/network.h ../include/inn/libinn.h libauth.h \ - ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h + ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h libauth.o: libauth.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/inn/messages.h ../include/inn/defines.h libauth.h \ ../include/inn/libinn.h radius.o: radius.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/time.h ../include/config.h \ - ../include/inn/innconf.h ../include/inn/defines.h ../include/inn/md5.h \ - ../include/inn/messages.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/conffile.h libauth.h \ - ../include/portable/socket.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h + ../include/config.h ../include/portable/time.h ../include/inn/innconf.h \ + ../include/inn/defines.h ../include/inn/md5.h ../include/inn/messages.h \ + ../include/inn/libinn.h ../include/inn/nntp.h ../include/inn/paths.h \ + ../include/conffile.h libauth.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h diff -Nurp inn-2.5.4/backends/Makefile inn-2.5.5/backends/Makefile --- inn-2.5.4/backends/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/backends/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 8921 2010-01-22 23:33:08Z iulius $ +## $Id: Makefile 9781 2015-01-07 21:04:11Z iulius $ include ../Makefile.global @@ -71,6 +71,8 @@ profiled: ## Compilation rules. +# $(LIBSTORAGE) must be listed twice to resolve circular dependencies +# when doing static linking. BOTH = $(LIBSTORAGE) $(LIBHIST) $(LIBSTORAGE) $(LIBINN) LINK = $(LIBLD) $(LDFLAGS) -o $@ @@ -130,17 +132,16 @@ depend: Makefile $(SOURCES) # DO NOT DELETE THIS LINE -- make depend depends on it. actsync.o: actsync.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/wait.h ../include/config.h \ - ../include/inn/innconf.h ../include/inn/defines.h \ - ../include/inn/messages.h ../include/inn/hashtab.h ../include/inn/qio.h \ - ../include/inn/libinn.h ../include/inn/paths.h + ../include/config.h ../include/portable/wait.h ../include/inn/innconf.h \ + ../include/inn/defines.h ../include/inn/messages.h \ + ../include/inn/hashtab.h ../include/inn/qio.h ../include/inn/libinn.h \ + ../include/inn/paths.h archive.o: archive.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/buffer.h ../include/inn/defines.h \ ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/qio.h \ ../include/inn/vector.h ../include/inn/wire.h ../include/inn/libinn.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h batcher.o: batcher.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ @@ -161,15 +162,15 @@ cvtbatch.o: cvtbatch.c ../include/config filechan.o: filechan.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - ../include/inn/messages.h ../include/inn/libinn.h \ - ../include/inn/paths.h map.h + ../include/inn/messages.h ../include/inn/libinn.h ../include/inn/paths.h \ + map.h innbind.o: innbind.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/inn/libinn.h ../include/inn/defines.h \ - ../include/inn/messages.h ../include/inn/newsuser.h ../include/config.h \ - ../include/clibrary.h ../include/inn/vector.h + ../include/inn/messages.h ../include/inn/newsuser.h \ + ../include/inn/vector.h inndf.o: inndf.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ @@ -178,21 +179,20 @@ inndf.o: inndf.c ../include/config.h ../ ../include/inn/libinn.h ../include/inn/paths.h innxbatch.o: innxbatch.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/portable/time.h ../include/inn/innconf.h \ ../include/inn/defines.h ../include/inn/messages.h \ ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h innxmit.o: innxmit.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/portable/time.h ../include/inn/history.h \ ../include/inn/defines.h ../include/inn/innconf.h \ ../include/inn/messages.h ../include/inn/qio.h ../include/inn/timer.h \ ../include/inn/wire.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h map.o: map.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/libinn.h ../include/inn/defines.h \ @@ -202,7 +202,7 @@ ninpaths.o: ninpaths.c ../include/config ../include/config.h nntpget.o: nntpget.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/portable/time.h ../include/inn/history.h \ ../include/inn/defines.h ../include/inn/innconf.h \ @@ -210,11 +210,11 @@ nntpget.o: nntpget.c ../include/config.h ../include/inn/paths.h overchan.o: overchan.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/time.h ../include/config.h \ - ../include/inn/innconf.h ../include/inn/defines.h \ - ../include/inn/messages.h ../include/inn/overview.h \ - ../include/inn/storage.h ../include/inn/options.h ../include/inn/qio.h \ - ../include/inn/libinn.h ../include/inn/paths.h + ../include/config.h ../include/portable/time.h ../include/inn/innconf.h \ + ../include/inn/defines.h ../include/inn/messages.h \ + ../include/inn/overview.h ../include/inn/storage.h \ + ../include/inn/options.h ../include/inn/qio.h ../include/inn/libinn.h \ + ../include/inn/paths.h shlock.o: shlock.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/messages.h ../include/inn/defines.h diff -Nurp inn-2.5.4/backends/innbind.c inn-2.5.5/backends/innbind.c --- inn-2.5.4/backends/innbind.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/backends/innbind.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: innbind.c 9179 2011-02-01 21:42:11Z eagle $ +/* $Id: innbind.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Helper program to bind a socket to a low-numbered port. ** -** Written by Russ Allbery +** Written by Russ Allbery */ #include "config.h" diff -Nurp inn-2.5.4/backends/inndf.c inn-2.5.5/backends/inndf.c --- inn-2.5.4/backends/inndf.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/backends/inndf.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: inndf.c 7585 2006-11-21 09:37:51Z eagle $ +/* $Id: inndf.c 9714 2014-09-21 12:55:56Z iulius $ ** ** Reports free kilobytes (not disk blocks) or free inodes. ** @@ -60,8 +60,8 @@ df_declare declares a variable of the appropriate type to pass to df_stat along with a path; df_stat will return true on success, false on failure. df_avail gives the number of free blocks, the size of those blocks given - in df_bsize (which handles SysV's weird fragment vs. preferred block size - thing). df_inodes returns the free inodes. */ + in df_scale (which handles SysV's weird fragment vs. preferred block size + thing). df_favail returns the free inodes. */ #if HAVE_STATVFS # include # define df_stat(p, s) (statvfs((p), (s)) == 0) diff -Nurp inn-2.5.4/backends/innxmit.c inn-2.5.5/backends/innxmit.c --- inn-2.5.4/backends/innxmit.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/backends/innxmit.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: innxmit.c 9364 2011-08-21 23:23:26Z eagle $ +/* $Id: innxmit.c 9876 2015-05-23 13:11:16Z iulius $ ** ** Transmit articles to remote site. ** Modified for NNTP streaming: 1996-01-03 Jerry Aguirre. @@ -680,9 +680,10 @@ REMsendarticle(char *Article, char *Mess */ static char * GetMessageID(ARTHANDLE *art) { - static char *buff; - static int buffsize = 0; - const char *p, *q; + static char *buff = NULL; + static size_t buffsize = 0; /* total size of buff */ + size_t buffneed; + const char *p, *q; p = wire_findheader(art->data, art->len, "Message-ID", true); if (p == NULL) @@ -693,12 +694,11 @@ GetMessageID(ARTHANDLE *art) { } if (q == art->data + art->len) return NULL; - if (buffsize < q - p) { - if (buffsize == 0) - buff = xmalloc(q - p + 1); - else - buff = xrealloc(buff, q - p + 1); - buffsize = q - p; + + buffneed = q - p + 1; /* bytes needed, including '\0' terminator */ + if (buffsize < buffneed) { + buff = xrealloc(buff, buffneed); + buffsize = buffneed; } memcpy(buff, p, q - p); buff[q - p] = '\0'; diff -Nurp inn-2.5.4/configure inn-2.5.5/configure --- inn-2.5.4/configure 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/configure 2015-05-23 06:24:41.000000000 -0700 @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.ac Revision: 9587 . +# From configure.ac Revision: 9840 . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for INN 2.5.4. +# Generated by GNU Autoconf 2.69 for INN 2.5.5. # # Report bugs to . # @@ -730,8 +730,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='INN' PACKAGE_TARNAME='inn' -PACKAGE_VERSION='2.5.4' -PACKAGE_STRING='INN 2.5.4' +PACKAGE_VERSION='2.5.5' +PACKAGE_STRING='INN 2.5.5' PACKAGE_BUGREPORT='inn-workers@lists.isc.org' PACKAGE_URL='' @@ -1542,7 +1542,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.5.4 to adapt to many kinds of systems. +\`configure' configures INN 2.5.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1607,7 +1607,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of INN 2.5.4:";; + short | recursive ) echo "Configuration of INN 2.5.5:";; esac cat <<\_ACEOF @@ -1762,7 +1762,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -INN configure 2.5.4 +INN configure 2.5.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2418,7 +2418,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.5.4, which was +It was created by INN $as_me 2.5.5, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -13085,7 +13085,7 @@ $as_echo "#define _GNU_SOURCE 1" >>confd fi ;; -*darwin*) +*-darwin[0-9].*|*-darwin1[0-2].*) LDFLAGS="$LDFLAGS -multiply_defined suppress" ;; @@ -13892,7 +13892,7 @@ fi if test -z "$SENDMAIL" ; then - as_fn_error re-run with --with-sendmail "sendmail not found" "$LINENO" 5 + as_fn_error $? "sendmail not found, re-run with --with-sendmail" "$LINENO" 5 fi fi @@ -19090,7 +19090,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.5.4, which was +This file was extended by INN $as_me 2.5.5, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19156,7 +19156,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -INN config.status 2.5.4 +INN config.status 2.5.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nurp inn-2.5.4/configure.ac inn-2.5.5/configure.ac --- inn-2.5.4/configure.ac 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/configure.ac 2015-05-23 06:24:41.000000000 -0700 @@ -1,5 +1,5 @@ dnl Process this file with Autoconf to produce a configure script. -dnl $Id: configure.ac 9587 2013-12-14 20:10:48Z iulius $ +dnl $Id: configure.ac 9840 2015-05-02 15:39:27Z 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,9 +26,9 @@ dnl bother checking for it. Compile-tim dnl useful information for someone debugging a problem than configure-time dnl errors. -AC_INIT([INN], [2.5.4], [inn-workers@lists.isc.org]) +AC_INIT([INN], [2.5.5], [inn-workers@lists.isc.org]) AC_PREREQ(2.61) -AC_REVISION($Revision: 9587 $) +AC_REVISION($Revision: 9840 $) AC_CONFIG_AUX_DIR([support]) dnl Lots of our macros are stored in separate files for ease of maintenance. @@ -238,8 +238,9 @@ dnl -g on link as well as compile for de fi ;; -dnl OSX needs -multiply_defined suppress. -*darwin*) +dnl Mac OS X needed "-multiply_defined suppress" before this linker flag became +dnl obsolete (darwin13 is Mavericks, OS X v10.9). +*-darwin[[0-9]].*|*-darwin1[[0-2]].*) LDFLAGS="$LDFLAGS -multiply_defined suppress" ;; diff -Nurp inn-2.5.4/contrib/Makefile inn-2.5.5/contrib/Makefile --- inn-2.5.4/contrib/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/contrib/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 8818 2009-11-17 18:58:24Z iulius $ +## $Id: Makefile 9771 2014-12-14 20:55:49Z 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 @@ -9,9 +9,11 @@ include ../Makefile.global top = .. CFLAGS = $(GCFLAGS) -ALL = archivegz backlogstat cleannewsgroups delayer \ +ALL = archivegz auth_pass backlogstat cleannewsgroups \ + delayer expirectl \ findreadgroups makeexpctl makestorconf mlockfile newsresp \ - pullart reset-cnfs respool stathist thdexpire \ + nnrp.access2readers.conf pullart reset-cnfs respool \ + stathist thdexpire \ tunefeed all: $(ALL) @@ -33,8 +35,9 @@ $(FIXSCRIPT): LINK = $(LIBLD) $(LDFLAGS) -o $@ FIX = $(FIXSCRIPT) -STORELIBS = $(LIBSTORAGE) $(LIBINN) $(STORAGE_LIBS) $(LIBS) +STORELIBS = $(LIBSTORAGE) $(LIBHIST) $(LIBINN) $(STORAGE_LIBS) $(LIBS) +auth_pass: auth_pass.o ; $(LINK) auth_pass.o $(LIBINN) $(CRYPT_LIBS) expirectl: expirectl.o ; $(LINK) expirectl.o mlockfile: mlockfile.o ; $(LINK) mlockfile.o newsresp: newsresp.o ; $(LINK) newsresp.o $(LIBS) @@ -49,6 +52,7 @@ delayer: delayer.in $(FI findreadgroups: findreadgroups.in $(FIX) ; $(FIX) findreadgroups.in makeexpctl: makeexpctl.in $(FIX) ; $(FIX) makeexpctl.in makestorconf: makestorconf.in $(FIX) ; $(FIX) makestorconf.in +nnrp.access2readers.conf: nnrp.access2readers.conf.in $(FIX) ; $(FIX) -i nnrp.access2readers.conf.in stathist: stathist.in $(FIX) ; $(FIX) -i stathist.in thdexpire: thdexpire.in $(FIX) ; $(FIX) thdexpire.in tunefeed: tunefeed.in $(FIX) ; $(FIX) -i tunefeed.in diff -Nurp inn-2.5.4/contrib/README inn-2.5.5/contrib/README --- inn-2.5.4/contrib/README 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/contrib/README 2015-05-23 06:24:41.000000000 -0700 @@ -40,6 +40,11 @@ authmysql database. Could also be easily modified to check against any other type of database that Perl's DBI module can talk to. +auth_pass + + A sample authorization program for use with the (deprecated) AUTHINFO + GENERIC command in nnrpd. + backlogstat Prints informations about the current state of innfeed's backlog, if @@ -124,6 +129,11 @@ newsresp times. Can check the round-trip time and the history lookup time. See the comments at the beginning of the source for more details. +nnrp.access2readers.conf + + Converts an old-style nnrp.access file to readers.conf format. + (readers.conf replaced nnrp.access, starting with INN 2.3.0.) + pullart Attempts to pull news articles out of CNFS cycbuffs. Useful for diff -Nurp inn-2.5.4/contrib/auth_pass.c inn-2.5.5/contrib/auth_pass.c --- inn-2.5.4/contrib/auth_pass.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/contrib/auth_pass.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,5 +1,5 @@ /* - * auth_pass.c ( $Revision: 9204 $ ) + * auth_pass.c ( $Revision: 9707 $ ) * * Abstract: * @@ -39,7 +39,12 @@ #include #include +#if HAVE_CRYPT_H +# include +#endif + +int main(int argc, char** argv) /*+ * Abstract: @@ -64,7 +69,7 @@ main(int argc, char** argv) */ { struct hostent * hp; - int length; + socklen_t length; char password[256]; char peername[1024]; struct passwd * pwd; diff -Nurp inn-2.5.4/contrib/expirectl.c inn-2.5.5/contrib/expirectl.c --- inn-2.5.4/contrib/expirectl.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/contrib/expirectl.c 2015-05-23 06:24:41.000000000 -0700 @@ -31,13 +31,51 @@ * will not really exercise the program for another 14 days or so :-). */ - -#include -#include +#include "config.h" +#include "clibrary.h" #include -#include -#include -#include +#include + +/* Following portability code lifted from inndf.c */ +#if HAVE_STATVFS +# include +# define df_stat(p, s) (statvfs((p), (s)) == 0) +# define df_declare(s) struct statvfs s +# define df_total(s) ((s).f_blocks) +# define df_avail(s) ((s).f_bavail) +# define df_scale(s) ((s).f_frsize == 0 ? (s).f_bsize : (s).f_frsize) +# define df_files(s) ((s).f_files) +# define df_favail(s) ((s).f_favail) +#elif HAVE_STATFS +# if HAVE_SYS_VFS_H +# include +# endif +# if HAVE_SYS_PARAM_H +# include +# endif +# if HAVE_SYS_MOUNT_H +# include +# endif +# ifdef __ultrix__ +# define df_stat(p, s) (statfs((p), (s)) >= 1) +# define df_declare(s) struct fs_data s +# define df_total(s) ((s).fd_btot) +# define df_avail(s) ((s).fd_bfreen) +# define df_scale(s) 1024 +# define df_files(s) ((s).fd_gtot) +# define df_favail(s) ((s).fd_gfree) +# else +# define df_stat(p, s) (statfs((p), (s)) == 0) +# define df_declare(s) struct statfs s +# define df_total(s) ((s).f_blocks) +# define df_avail(s) ((s).f_bavail) +# define df_scale(s) ((s).f_bsize) +# define df_files(s) ((s).f_files) +# define df_favail(s) ((s).f_ffree) +# endif +#else +# error "Platform not supported. Neither statvfs nor statfs available." +#endif #define EXPIRE_CTL_DIR "/home/news" #define NEWS_SPOOL "/home/news/spool/news/." @@ -46,10 +84,10 @@ #define EXPIRE_CTL EXPIRE_CTL_DIR "/expire.ctl" #define EXPIRE_CTL_CTL EXPIRE_CTL_DIR "/expire.ctl.ctl" -void +int main(int ac, char **av) { - struct statfs sfs; + df_declare(sfs); long minFree = 100 * 1024 * 1024; long minIFree = 20 * 1024; long expireDays = 2; @@ -104,7 +142,7 @@ main(int ac, char **av) } } - if (statfs("/home/news/spool/news/.", &sfs) != 0) { + if (!df_stat("/home/news/spool/news/.", &sfs)) { fprintf(stderr, "expirectl: couldn't fsstat /home/news/spool/news/.\n"); exit(1); } @@ -139,8 +177,8 @@ main(int ac, char **av) if (verbose) { printf("spool: %4.2lfM / %3.2lfKinode free\n", - (double)sfs.f_fsize * (double)sfs.f_bavail / (1024.0 * 1024.0), - (double)sfs.f_ffree / 1024.0 + (double)df_scale(sfs) * (double)df_avail(sfs) / (1024.0 * 1024.0), + (double)df_favail(sfs) / 1024.0 ); printf("decrs: %4.2lfM / %3.2lfKinode\n", (double)(minFree) / (double)(1024*1024), @@ -160,8 +198,8 @@ main(int ac, char **av) double bytes; long inodes; - bytes = (double)sfs.f_fsize * (double)sfs.f_bavail; - inodes = sfs.f_ffree; + bytes = (double)df_scale(sfs) * (double)df_avail(sfs); + inodes = df_favail(sfs); if (bytes < (double)minFree || inodes < minIFree) { if (--expireDays <= 0) { @@ -170,7 +208,7 @@ main(int ac, char **av) } if (modified >= 0) modified = 1; - printf("decrement expiration to %d days\n", expireDays); + printf("decrement expiration to %ld days\n", expireDays); } else if (bytes >= (double)minFree * 2.0 && inodes >= minIFree * 2) { long dt = (long)(time(NULL) - expireIncTime); @@ -179,12 +217,12 @@ main(int ac, char **av) expireIncTime = time(NULL); if (modified >= 0) modified = 1; - printf("increment expiration to %d days\n", expireDays); + printf("increment expiration to %ld days\n", expireDays); } else { printf("will increment expiration later\n"); } } else if (verbose) { - printf("expiration unchanged: %d\n", expireDays); + printf("expiration unchanged: %ld\n", expireDays); } } @@ -223,7 +261,7 @@ main(int ac, char **av) v = 1; if (v < m) v = m; - sprintf(dptr, "%d", v); + sprintf(dptr, "%ld", v); dptr += strlen(dptr); ++sptr; } @@ -253,8 +291,8 @@ main(int ac, char **av) FILE *fo; if ((fo = fopen(EXPIRE_DAYS, "w")) != NULL) { - fprintf(fo, "time 0x%08lx\n", expireIncTime); - fprintf(fo, "days %d\n", expireDays); + fprintf(fo, "time 0x%08lx\n", (unsigned long) expireIncTime); + fprintf(fo, "days %ld\n", expireDays); fclose(fo); } else { fprintf(stderr, "unable to create %s\n", EXPIRE_DAYS); diff -Nurp inn-2.5.4/contrib/mlockfile.c inn-2.5.5/contrib/mlockfile.c --- inn-2.5.4/contrib/mlockfile.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/contrib/mlockfile.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: mlockfile.c 6014 2002-12-16 11:28:07Z alexk $ */ +/* $Id: mlockfile.c 9717 2014-09-21 19:54:27Z iulius $ */ /* Locks the files given on the command line into memory using mlock. This code has only been tested on Solaris and may not work on other @@ -17,7 +17,6 @@ #include #include #include -#include struct mlock { const char *path; @@ -27,6 +26,8 @@ struct mlock { size_t length; }; +void inn_lock_files(struct mlock *); + char *progname; int flush = 0; @@ -56,7 +57,7 @@ inn_lock_files(struct mlock *ml) ml->st.st_size != st.st_size) { if (ml->base != MAP_FAILED) munmap(ml->base, - ml->length ? ml->length : ml->st.st_size); + ml->length > 0 ? ml->length : (size_t) ml->st.st_size); /* free everything here, so in case of failure we try * again next time */ @@ -65,7 +66,7 @@ inn_lock_files(struct mlock *ml) ml->st.st_size = 0; ml->base = mmap(NULL, - ml->length ? ml->length : st.st_size, + ml->length > 0 ? ml->length : (size_t) st.st_size, PROT_READ, MAP_SHARED, fd, ml->offset); @@ -74,7 +75,7 @@ inn_lock_files(struct mlock *ml) progname, ml->path, strerror(errno)); } else { if (mlock(ml->base, - ml->length ? ml->length : st.st_size) != 0) { + ml->length > 0 ? ml->length : (size_t) st.st_size) != 0) { fprintf(stderr, "%s: can't mlock `%s' - %s\n", progname, ml->path, strerror(errno)); } else { @@ -82,7 +83,7 @@ inn_lock_files(struct mlock *ml) } } } else if (flush) { - msync(ml->base, ml->length ? ml->length : st.st_size, MS_SYNC); + msync(ml->base, ml->length > 0 ? ml->length : (size_t) st.st_size, MS_SYNC); } } close (fd); diff -Nurp inn-2.5.4/contrib/newsresp.c inn-2.5.5/contrib/newsresp.c --- inn-2.5.4/contrib/newsresp.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/contrib/newsresp.c 2015-05-23 06:24:41.000000000 -0700 @@ -64,26 +64,34 @@ * 0.1 0.0 <<< 205 . */ -#include -#include -#include -#include -#include -#include +#include "clibrary.h" +#include "portable/socket.h" + #include +#ifdef HAVE_SYS_TIME_H +# include +#endif #define NNTPPORT 119 + +void error(const char *); +void fatal(const char *); +void ierror(const char *, const char *); +void ifatal(const char *, const char *); +unsigned int do_time(unsigned int); +void ptime(void); +void massagebuff(int, char *); +bool punt(int); + struct sockaddr_in sock_in; int sock; char buf[1024]; -main(argc,argv) -int argc; -char *argv[]; +int +main(int argc, char *argv[]) { int errflg = 0, c; - extern char *optarg; - extern int optind; + bool status = true; struct hostent *host; unsigned long temp; unsigned numart = 1; @@ -126,40 +134,46 @@ char *argv[]; sock_in.sin_port = htons(NNTPPORT); printf("---------------------------------\n%s is %s port %d\n", *whoP,inet_ntoa(sock_in.sin_addr),ntohs(sock_in.sin_port)); - punt(numart); + status = punt(numart); close(sock); } + if (status) { + exit(0); + } else { + exit(1); + } } -error(what) -char *what; +void +error(const char *what) { - ptime(); fflush(stdout); + ptime(); + fflush(stdout); perror(what); } -fatal(what) -char *what; +void +fatal(const char *what) { error(what); exit(2); } -ierror(how,what) -char *how, *what; +void +ierror(const char *how, const char *what) { - printf("Expected %s, bailing out.\n",how); + printf("Expected %s, received %s; bailing out.\n", how, what); } -ifatal(how,what) -char *how, *what; +void +ifatal(const char *how, const char *what) { - ierror(how,what); + ierror(how, what); exit(1); } -unsigned do_time(start) -unsigned start; +unsigned int +do_time(unsigned int start) { struct timeval now; @@ -167,10 +181,10 @@ unsigned start; return ( now.tv_sec*1000 + now.tv_usec/1000 - start ); } +unsigned int start, elapsed, diff; -unsigned start, elapsed, diff; - -ptime() +void +ptime(void) { diff = elapsed; elapsed = do_time(start); @@ -178,9 +192,8 @@ ptime() printf("%5.1f %5.1f ",((float)elapsed)/1000.0,((float)diff)/1000.0); } -massagebuff(bread,buf) -int bread; -char *buf; +void +massagebuff(int bread, char *buf) { char *p; @@ -197,8 +210,8 @@ char *buf; } } -punt(numart) -int numart; +bool +punt(int numart) { static char ihave[32], dot[] = ".\r\n", @@ -215,42 +228,42 @@ int numart; printf("Connecting ...\n"); if ( connect(sock,(struct sockaddr*)&sock_in,sizeof(sock_in)) < 0 ) { error("connect"); - return(-1); + return false; } ptime(); printf("OK, waiting for prompt\n"); if ( (bread=read(sock,buf,sizeof(buf))) < 0 ) { error("read socket"); - return(-1); + return false; } massagebuff(bread,buf); ptime(); printf("<<< %s",buf); if ( strncmp(buf,"200",3) != 0 && strncmp(buf,"201",3) != 0 ) { ierror("200 or 201",buf); - return(-1); + return false; } do { snprintf(ihave,sizeof(ihave),"ihave <%u@a>\r\n",start+numart); ptime(); printf(">>> %s",ihave); - if ( write(sock,ihave,strlen(ihave)) != strlen(ihave) ) { + if ( write(sock,ihave,strlen(ihave)) != (int) strlen(ihave) ) { error("write socket"); - return(-1); + return false; } if ( (bread=read(sock,buf,sizeof(buf))) < 0 ) { error("read socket"); - return(-1); + return false; } massagebuff(bread,buf); ptime(); printf("<<< %s",buf); if ( strncmp(buf,"335",3) != 0 && strncmp(buf,"435",3) != 0 ) { - ierror("335 or 435 ",buf); - return(-1); + ierror("335 or 435",buf); + return false; } if ( strncmp(buf,"335",3) == 0 ) { @@ -258,19 +271,19 @@ int numart; printf(">>> %s",dot); if ( write(sock,dot,sizeof(dot)-1) != sizeof(dot)-1 ) { error("write socket"); - return(-1); + return false; } if ( (bread=read(sock,buf,sizeof(buf))) < 0 ) { error("read socket"); - return(-1); + return false; } massagebuff(bread,buf); ptime(); printf("<<< %s",buf); if ( strncmp(buf,"437",3) != 0 && strncmp(buf,"235",3) != 0 ) { ierror("437 or 235",buf); - return(-1); + return false; } } } while ( --numart != 0 ); @@ -279,19 +292,19 @@ int numart; printf(">>> %s",quit); if ( write(sock,quit,sizeof(quit)-1) != sizeof(quit)-1 ) { error("write socket"); - return(-1); + return false; } if ( (bread=read(sock,buf,sizeof(buf))) < 0 ) { error("read socket"); - return(-1); + return false; } massagebuff(bread,buf); ptime(); printf("<<< %s",buf); if ( strncmp(buf,"205",3) != 0 ) { ierror("205",buf); - return(-1); + return false; } - return(0); + return true; } diff -Nurp inn-2.5.4/contrib/nnrp.access2readers.conf.in inn-2.5.5/contrib/nnrp.access2readers.conf.in --- inn-2.5.4/contrib/nnrp.access2readers.conf.in 1969-12-31 16:00:00.000000000 -0800 +++ inn-2.5.5/contrib/nnrp.access2readers.conf.in 2015-05-23 06:24:41.000000000 -0700 @@ -0,0 +1,144 @@ +#! /usr/bin/perl -w + +## $Id: nnrp.access2readers.conf.in 9773 2014-12-16 20:46:34Z iulius $ +## +## Convert an old-style nnrp.access file to readers.conf format. +## (readers.conf replaced nnrp.access, starting with INN 2.3.0.) +## +## Written by Jeffrey M. Vinocur . +## +## This work is hereby placed in the public domain by its author. + +use strict; + +my ($src, $passwd, $dst, $debug); + +if (@ARGV == 1) { + $src = shift; + $passwd = 'passwd'; + $debug = 1; +} elsif (@ARGV == 3) { + ($src, $passwd, $dst) = @ARGV; + $debug = 0; +} else { + usage(); +} + +my ($address, $access, $user, $pass, $groups); +my ($noauth, $shadow); +my %passwords; +my @badsyntax; +my @duplicates; +my $OUT; + +open(SRC, $src) or die "Could not open $src: $!\n"; + +if ($debug) { + $OUT = \*STDOUT; +} else { + open(DST, ">$dst") or die "Could not open $dst: $!\n"; + $OUT = \*DST; +} + +while () { + chomp; + # Keep comments and blank lines. + if (/^\s*$/) { + print $OUT "\n"; + next; + } + if (/(\#.*)/) { + print $OUT "$1\n"; + } + s/\s*\#.*//; + next if /^$/; + + # TODO - The following syntax is currently not recognized: + # host:/path/to/another/file + # %DEFINE0:bar.* + # bar.foo.net:RP:::%0 + ($address, $access, $user, $pass, $groups) = split /:/; + unless (defined $groups) { + push (@badsyntax, $.); + next; + } + + # If there is whitespace in user/pass, access is disabled. + $noauth = ($user =~ /\s/ or $pass =~ /\s/) ? 1 : 0; + + # If user is '+', then authentication is against /etc/shadow. + $shadow = ($user eq '+') ? 1 : 0; + + $user = '' if ($noauth or $shadow); + + # Only keep R, P, N, and L for the access rights. + $access =~ s/[^RPNL]//g; + + unless ($user eq '') { + push (@duplicates, $.) if defined ($passwords{$user}); + $passwords{$user} = $pass; + } + + print $OUT "auth \"$address\" {\n"; + print $OUT " hosts: \"$address\"\n"; + print $OUT " key: \"line$.\"\n"; + print $OUT " auth: \"ckpasswd -f $passwd\"\n" unless $user eq ''; + print $OUT " auth: \"ckpasswd -s\"\n" if $shadow; + print $OUT " default: \"\"\n" if $user eq '' and not $shadow; + print $OUT "}\n"; + print $OUT "access \"$address\" {\n"; + print $OUT " key: \"line$.\"\n"; + print $OUT " newsgroups: \"$groups\"\n"; + print $OUT " access: \"$access\"\n"; + print $OUT " users: \"$user\"\n" unless $user eq ''; + print $OUT " reject_with: \"Access disabled.\"\n" if $noauth; + print $OUT "}\n\n"; + +} +close SRC; + +srand($$^time); + +if (!$debug) { + close $OUT; + open(PASSWD, ">$passwd") or die "Could not open $passwd: $!\n"; + $OUT = \*PASSWD; +} +while (my ($user, $pass) = each %passwords) { + $pass = crypt($pass, seedchar().seedchar()); + print $OUT "$user:$pass\n"; +} +close PASSWD unless $debug; + +print STDERR "\nHad trouble with syntax on line", + @badsyntax > 1 ? 's ' : ' ', + join(", ", @badsyntax), ".\n" + if @badsyntax; + +print STDERR "\nFound username duplication on line", + @duplicates > 1 ? 's ' : ' ', + join(", ", @duplicates), ".\n" + if @duplicates; + + +sub seedchar { # From Randal Schwarz. + ('a'..'z','A'..'Z','0'..'9','.','/')[rand(64)]; +} + +sub usage { + print STDERR << "__END__"; +Usage: + +$0 [ ] + +Use $0 to convert an old-style nnrp.access file to readers.conf format. +All unique user/password pairs from the nnrp.access file are placed in +the passwd file (in format suitable for ckpasswd). + +If the second and third arguments are missing, everything is printed +instead to stdout for examination purposes. + +__END__ + +exit 1; +} diff -Nurp inn-2.5.4/contrib/pullart.c inn-2.5.5/contrib/pullart.c --- inn-2.5.4/contrib/pullart.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/contrib/pullart.c 2015-05-23 06:24:41.000000000 -0700 @@ -17,9 +17,7 @@ rifkin@uconn.edu */ #include "config.h" -#include -#include -#include +#include "clibrary.h" #define INFILE 1 #define FILEPREFIX 2 @@ -195,7 +193,7 @@ printf ("string <%s>\n", string); } - close (Infile); + fclose (Infile); return 0; } @@ -290,7 +288,7 @@ WriteArticle while (n--) fprintf (outfile, "%c", *buff++); - close (outfile); + fclose (outfile); /* Return number of files written */ return 1; diff -Nurp inn-2.5.4/contrib/reset-cnfs.c inn-2.5.5/contrib/reset-cnfs.c --- inn-2.5.4/contrib/reset-cnfs.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/contrib/reset-cnfs.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,56 +1,67 @@ /* Quick and Dirty Hack to reset a CNFS buffer without having to DD the * Entire Thing from /dev/zero again. */ -#include -#include +#include "config.h" +#include "clibrary.h" + #include #include +#include -#include - -/* uncomment the below for LARGE_FILES support */ -/* #define LARGE_FILES */ -int main(int argc, char *argv[]) +int +main(int argc, char *argv[]) { int fd; int i, j; char buf[512]; -#ifdef LARGE_FILES - struct stat64 st; -#else - struct stat st; +#ifdef DO_LARGEFILES + struct stat64 st; +#else + struct stat st; #endif int numwr; + bool status = true; bzero(buf, sizeof(buf)); for (i = 1; i < argc; i++) { -#ifdef LARGE_FILES - if ((fd = open(argv[i], O_LARGEFILE | O_RDWR, 0664)) < 0) -#else - if ((fd = open(argv[i], O_RDWR, 0664)) < 0) +#ifdef DO_LARGEFILES + if ((fd = open(argv[i], O_LARGEFILE | O_RDWR, 0664)) < 0) { +#else + if ((fd = open(argv[i], O_RDWR, 0664)) < 0) { #endif - fprintf(stderr, "Could not open file %s: %s\n", argv[i], strerror(errno)); - else { -#ifdef LARGE_FILES - if (fstat64(fd, &st) < 0) { -#else - if (fstat(fd, &st) < 0) { + fprintf(stderr, "Could not open file %s: %s\n", argv[i], strerror(errno)); + status = false; + } else { +#ifdef DO_LARGEFILES + if (fstat64(fd, &st) < 0) { +#else + if (fstat(fd, &st) < 0) { #endif - fprintf(stderr, "Could not stat file %s: %s\n", argv[i], strerror(errno)); - } else { - /* each bit in the bitfield is 512 bytes of data. Each byte - * has 8 bits, so calculate as 512 * 8 bytes of data, plus - * fuzz. buf has 512 bytes in it, therefore containing data for - * (512 * 8) * 512 bytes of data. */ - numwr = (st.st_size / (512*8) / sizeof(buf)) + 50; - printf("File %s: %u %u\n", argv[i], st.st_size, numwr); - for (j = 0; j < numwr; j++) { - if (!(j % 100)) - printf("\t%d/%d\n", j, numwr); - write(fd, buf, sizeof(buf)); - } - } - close(fd); - } + fprintf(stderr, "Could not stat file %s: %s\n", argv[i], strerror(errno)); + status = false; + } else { + /* Each bit in the bitfield is 512 bytes of data. Each byte + * has 8 bits, so calculate as 512 * 8 bytes of data, plus + * fuzz. buf has 512 bytes in it, therefore containing data + * for (512 * 8) * 512 bytes of data. */ + numwr = (st.st_size / (512*8) / sizeof(buf)) + 50; + printf("File %s: %lu %u\n", argv[i], + (long unsigned) st.st_size, numwr); + for (j = 0; j < numwr; j++) { + if (!(j % 100)) { + printf("\t%d/%d\n", j, numwr); + } + write(fd, buf, sizeof(buf)); + } + } + close(fd); + status = true; + } + } + + if (status) { + exit(0); + } else { + exit(1); } } diff -Nurp inn-2.5.4/contrib/respool.c inn-2.5.5/contrib/respool.c --- inn-2.5.4/contrib/respool.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/contrib/respool.c 2015-05-23 06:24:41.000000000 -0700 @@ -29,7 +29,6 @@ ProcessLine(char *line) ARTHANDLE newart; TOKEN token, newtoken; char *arttmp; - time_t arrived; tokenptr = line; @@ -47,7 +46,6 @@ ProcessLine(char *line) if ((art = SMretrieve(token, RETR_ALL)) == NULL) return; len = art->len; - arrived = art->arrived; arttmp = xmalloc(len); memcpy(arttmp, art->data, len); SMfreearticle(art); diff -Nurp inn-2.5.4/contrib/tunefeed.in inn-2.5.5/contrib/tunefeed.in --- inn-2.5.4/contrib/tunefeed.in 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/contrib/tunefeed.in 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ #!/usr/bin/perl -$version = q$Id: tunefeed.in 4329 2001-01-14 13:47:52Z rra $; +$version = q$Id: tunefeed.in 9768 2014-12-07 21:22:57Z iulius $; # # tunefeed -- Compare active files with a remote site to tune a feed. -# Copyright 1998 by Russ Allbery +# Copyright 1998 by Russ Allbery # # This program is free software; you can redistribute it and/or modify it # under the same terms as Perl itself. @@ -469,6 +469,6 @@ recommend running this program on any so =head1 AUTHOR -Russ Allbery Erra@stanford.eduE +Russ Allbery Eeagle@eyrie.orgE =cut diff -Nurp inn-2.5.4/control/signcontrol.in inn-2.5.5/control/signcontrol.in --- inn-2.5.4/control/signcontrol.in 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/control/signcontrol.in 2015-05-23 06:24:41.000000000 -0700 @@ -1,6 +1,6 @@ #! /usr/bin/perl -w # written April 1996, (David C Lawrence) -# Currently maintained by Russ Allbery +# Currently maintained by Russ Allbery # Version 1.8, 2003-07-06 # # Changes from 1.6 -> 1.8 diff -Nurp inn-2.5.4/doc/FAQ inn-2.5.5/doc/FAQ --- inn-2.5.4/doc/FAQ 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/FAQ 2015-05-23 06:24:41.000000000 -0700 @@ -1,6 +1,6 @@ -$Id: FAQ 9642 2014-05-17 06:31:46Z iulius $ +$Id: FAQ 9833 2015-05-01 12:16:54Z iulius $ -From: Russ Allbery +From: Russ Allbery Subject: INN 2.x FAQ Newsgroups: news.software.nntp Organization: The Eyrie @@ -23,7 +23,7 @@ you can use them to navigate between sec use Ctrl-G to skip to the next section; in Gnus, press Ctrl-D to break each section into a separate article. -Please send any comments, suggestions, or updates to rra@stanford.edu. +Please send any comments, suggestions, or updates to . Bear in mind when sending me e-mail that I receive upwards of 800 mail messages a day and have unanswered personal e-mail dating back six months or more, so please don't expect an immediate response. You may receive @@ -137,7 +137,7 @@ beginner's introduction, see the news.ne Subject: 1.2. What is the current version? -The most recently released version of INN is 2.5.4. +The most recently released version of INN is 2.5.5. INN development proceeds in two branches, as with many other free software projects. The STABLE branch is maintenance of the most recently released @@ -207,10 +207,6 @@ to the latter is off the INN page refere Finally, the following additional links may be useful: - - Excellent introductory and overview documentation for INN 2.3 and - later. - A tutorial on setting up INN aimed at beginners using SCO Unix. While it's mostly focused on SCO, it may be useful for any beginner to INN @@ -249,7 +245,7 @@ inn-announce@lists.isc.org Where announcements about INN are set (no posting allowed). inn-workers@lists.isc.org - Discussion of INN development. It is also where to send bug reports + 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 @@ -987,9 +983,9 @@ pathcontrol: /usr/local/news/bin/contr pathdb: /usr/local/news/db /var/lib/news pathetc: /usr/local/news/etc /etc/news pathfilter: /usr/local/news/bin/filter /etc/news/filter -pathhttp: /usr/local/news/log /var/log/news +pathhttp: /usr/local/news/http /var/www/inn pathlog: /usr/local/news/log /var/log/news -pathrun: /usr/local/news/run /var/run/news +pathrun: /usr/local/news/run /run/news pathtmp: /usr/local/news/tmp /var/spool/news/incoming/tmp pathspool: /usr/local/news/spool /var/spool/news patharchive: /usr/local/news/spool/archive /var/spool/news/archive @@ -999,15 +995,15 @@ pathoutgoing: /usr/local/news/spool/out pathoverview: /usr/local/news/spool/overview /var/spool/news/overview DEFAULT FEDORA -pathnews: /usr/local/news /usr/lib/news -pathbin: /usr/local/news/bin /usr/lib/news/bin -pathcontrol: /usr/local/news/bin/control /usr/lib/news/bin/control +pathnews: /usr/local/news /usr/libexec/news +pathbin: /usr/local/news/bin /usr/libexec/news +pathcontrol: /usr/local/news/bin/control /usr/libexec/news/control pathdb: /usr/local/news/db /var/lib/news pathetc: /usr/local/news/etc /etc/news -pathfilter: /usr/local/news/bin/filter /usr/lib/news/bin/filter -pathhttp: /usr/local/news/log /var/log/news +pathfilter: /usr/local/news/bin/filter /usr/libexec/news/filter +pathhttp: /usr/local/news/http /var/lib/news/http pathlog: /usr/local/news/log /var/log/news -pathrun: /usr/local/news/run /var/run/news +pathrun: /usr/local/news/run /run/news pathtmp: /usr/local/news/tmp /var/lib/news/tmp pathspool: /usr/local/news/spool /var/spool/news patharchive: /usr/local/news/spool/archive /var/spool/news/archive @@ -1016,24 +1012,6 @@ pathincoming: /usr/local/news/spool/inc pathoutgoing: /usr/local/news/spool/outgoing /var/spool/news/outgoing pathoverview: /usr/local/news/spool/overview /var/spool/news/overview - DEFAULT MANDRAKE -pathnews: /usr/local/news /usr -pathbin: /usr/local/news/bin /usr/bin -pathcontrol: /usr/local/news/bin/control /usr/lib/news/bin/control -pathdb: /usr/local/news/db /var/lib/news -pathetc: /usr/local/news/etc /etc/news -pathfilter: /usr/local/news/bin/filter /usr/lib/news/bin/filter -pathhttp: /usr/local/news/log /var/log/news -pathlog: /usr/local/news/log /var/log/news -pathrun: /usr/local/news/run /var/run/news -pathtmp: /usr/local/news/tmp /usr/tmp -pathspool: /usr/local/news/spool /var/spool/news -patharchive: /usr/local/news/spool/archive /var/spool/news/archive -patharticles: /usr/local/news/spool/articles /var/spool/news/articles -pathincoming: /usr/local/news/spool/incoming /var/spool/news/incoming -pathoutgoing: /usr/local/news/spool/outgoing /var/spool/news/outgoing -pathoverview: /usr/local/news/spool/overview /var/spool/news/overview - In addition, the FreeBSD port uses the standard INN paths except that it puts logs in /var/log/news and pathtmp in /usr/local/news/spool/tmp. @@ -1109,7 +1087,8 @@ Then try these commands (a variation on Kondou to inn-workers) on the old server: cd - perl -ne 'chomp; ($a,$b,$_) = split " "; print "$_\n" if $_' history \ + perl -ne 'chomp; our ($hash, $timestamps, $_) = split " "; \ + print "$_\n" if $_' history \ | tr . / > /list innxmit server list @@ -1118,6 +1097,25 @@ where is the path to the direct directory (usually ~news/spool/outgoing), and server is the name of the new news server to which you're feeding the articles. +In case you wish to only feed articles arrived on the old server +between two dates, you can adapt the previous commands. For instance, +the following commands will feed articles arrived between two given +timestamps (that can be computed with the convdate utility shipped +with INN). + + convdate -n '15 Apr 2014 20:42 +0200' '16 Apr 2014 12:37 +0200' + +returns the two corresponding timestamps 1397586540 and 1397644620 that +can then be used to retrieve a subset of articles to feed: + + cd + perl -ne 'chomp; our ($hash, $timestamps, $_) = split " "; \ + my ($arrived, $expires, $posted) = split("~", $timestamps); \ + print "$_\n" if $_ and $arrived >= 1397586540 \ + and $arrived <= 1397644620' history \ + | tr . / > /list + innxmit server list + When done, set xrefslave to false in inn.conf again if you changed it and then either restart INN on the new server (necessary if you changed xrefslave) or use another ctlinnd param command to set the cutoff value diff -Nurp inn-2.5.4/doc/hook-python inn-2.5.5/doc/hook-python --- inn-2.5.4/doc/hook-python 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/hook-python 2015-05-23 06:24:41.000000000 -0700 @@ -640,5 +640,20 @@ Writing an nnrpd Filter It is intended to be a replacement for a Python native syslog. It works like "INN.syslog", seen above. - $Id: hook-python.pod 8968 2010-02-08 21:06:43Z iulius $ +Available Packages + + This is an unofficial list of known filtering packages at the time of + publication. This is not an endorsement of these filters by ISC or the + INN developers, but is included as assistance in locating packages which + make use of this filter mechanism. + + PyClean + URL: (maintained by Steve + Crook) + + PyClean performs a similar role to the original Perl-based + Cleanfeed, an extremely powerful spam filter on Usenet. It uses + filter_innd.py. + + $Id: hook-python.pod 9742 2014-11-09 20:35:21Z iulius $ diff -Nurp inn-2.5.4/doc/man/INN__Config.3pm inn-2.5.5/doc/man/INN__Config.3pm --- inn-2.5.4/doc/man/INN__Config.3pm 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/INN__Config.3pm 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INN::Config 3pm" -.TH INN::Config 3pm "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH INN::Config 3pm "2014-03-15" "INN 2.5.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.5.4/doc/man/INN__Utils__Shlock.3pm inn-2.5.5/doc/man/INN__Utils__Shlock.3pm --- inn-2.5.4/doc/man/INN__Utils__Shlock.3pm 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/INN__Utils__Shlock.3pm 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INN::Utils::Shlock 3pm" -.TH INN::Utils::Shlock 3pm "2012-06-15" "INN 2.5.4" "InterNetNews Documentation" +.TH INN::Utils::Shlock 3pm "2012-06-15" "INN 2.5.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.5.4/doc/man/active.5 inn-2.5.5/doc/man/active.5 --- inn-2.5.4/doc/man/active.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/active.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "ACTIVE 5" -.TH ACTIVE 5 "2010-03-23" "INN 2.5.4" "InterNetNews Documentation" +.TH ACTIVE 5 "2015-03-24" "INN 2.5.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 @@ -252,9 +252,9 @@ your \fInewsgroups\fR file, which can be .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Converted to -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR active.pod 9031 2010\-03\-23 18:31:55Z iulius $ +\&\f(CW$Id:\fR active.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive.times\fR\|(5), \fIactsync\fR\|(8), \fIcontrolchan\fR\|(8), \fIctlinnd\fR\|(8), \fIdocheckgroups\fR\|(8), diff -Nurp inn-2.5.4/doc/man/active.times.5 inn-2.5.5/doc/man/active.times.5 --- inn-2.5.4/doc/man/active.times.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/active.times.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "ACTIVE.TIMES 5" -.TH ACTIVE.TIMES 5 "2009-09-29" "INN 2.5.4" "InterNetNews Documentation" +.TH ACTIVE.TIMES 5 "2015-03-24" "INN 2.5.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 @@ -174,9 +174,9 @@ the time is not necessarily the same on .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Converted to -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR active.times.pod 8638 2009\-09\-28 19:59:48Z iulius $ +\&\f(CW$Id:\fR active.times.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive\fR\|(5), \fIconvdate\fR\|(1), \fIctlinnd\fR\|(8), \fIgetlist\fR\|(1), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), diff -Nurp inn-2.5.4/doc/man/actsync.8 inn-2.5.5/doc/man/actsync.8 --- inn-2.5.4/doc/man/actsync.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/actsync.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "ACTSYNC 8" -.TH ACTSYNC 8 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH ACTSYNC 8 "2015-03-24" "INN 2.5.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 @@ -886,9 +886,9 @@ will be issued. .IX Header "HISTORY" Written by Landon Curt Noll for InterNetNews. Updated to support \s-1FTP\s0 fetching by David Lawrence . Converted to -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR actsync.pod 9475 2013\-05\-21 20:06:20Z eagle $ +\&\f(CW$Id:\fR actsync.pod 9768 2014\-12\-07 21:22:57Z iulius $ .PP By Landon Curt Noll (chongo was here /\e../\e). .PP diff -Nurp inn-2.5.4/doc/man/archive.8 inn-2.5.5/doc/man/archive.8 --- inn-2.5.4/doc/man/archive.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/archive.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "ARCHIVE 8" -.TH ARCHIVE 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH ARCHIVE 8 "2015-03-24" "INN 2.5.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 @@ -243,9 +243,9 @@ Replace and with .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Converted to -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR archive.pod 7851 2008\-05\-26 19:33:08Z iulius $ +\&\f(CW$Id:\fR archive.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinn.conf\fR\|(5), \fInewsfeeds\fR\|(5). diff -Nurp inn-2.5.4/doc/man/auth_krb5.8 inn-2.5.5/doc/man/auth_krb5.8 --- inn-2.5.4/doc/man/auth_krb5.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/auth_krb5.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "AUTH_KRB5 8" -.TH AUTH_KRB5 8 "2009-09-11" "INN 2.5.4" "InterNetNews Documentation" +.TH AUTH_KRB5 8 "2015-03-24" "INN 2.5.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,13 +200,10 @@ error message. .SH "HISTORY" .IX Header "HISTORY" Originally written by Christopher P.\ Lindsey. This documentation was -written by Russ Allbery based on Christopher's original +written by Russ Allbery based on Christopher's original \&\fI\s-1README\s0\fR file. .PP -\&\f(CW$Id:\fR auth_krb5.pod 8595 2009\-08\-21 08:29:26Z iulius $ +\&\f(CW$Id:\fR auth_krb5.pod 9775 2015\-01\-04 21:50:26Z eagle $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIckpasswd\fR\|(8), \fInnrpd\fR\|(8), \fIreaders.conf\fR\|(5). -.PP -The latest version of Christopher's original \fBnnrpkrb5auth\fR may be found -on his web site at . diff -Nurp inn-2.5.4/doc/man/batcher.8 inn-2.5.5/doc/man/batcher.8 --- inn-2.5.4/doc/man/batcher.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/batcher.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "BATCHER 8" -.TH BATCHER 8 "2009-11-15" "INN 2.5.4" "InterNetNews Documentation" +.TH BATCHER 8 "2015-03-24" "INN 2.5.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 @@ -256,9 +256,9 @@ file as described above. .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten by -Russ Allbery in \s-1POD\s0. +Russ Allbery in \s-1POD\s0. .PP -\&\f(CW$Id:\fR batcher.pod 8774 2009\-11\-15 09:23:27Z iulius $ +\&\f(CW$Id:\fR batcher.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIctlinnd\fR\|(8), \fIinn.conf\fR\|(5), \fInewsfeeds\fR\|(5), \fIrnews\fR\|(8), \fIsend\-uucp\fR\|(8), \fIshlock\fR\|(1). diff -Nurp inn-2.5.4/doc/man/buffchan.8 inn-2.5.5/doc/man/buffchan.8 --- inn-2.5.4/doc/man/buffchan.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/buffchan.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "BUFFCHAN 8" -.TH BUFFCHAN 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH BUFFCHAN 8 "2015-03-24" "INN 2.5.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 @@ -295,9 +295,9 @@ and the file \fIuunet\fR will have these .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Converted to -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR buffchan.pod 7851 2008\-05\-26 19:33:08Z iulius $ +\&\f(CW$Id:\fR buffchan.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIctlinnd\fR\|(8), \fIfilechan\fR\|(8), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), \fInewsfeeds\fR\|(5). diff -Nurp inn-2.5.4/doc/man/buffindexed.conf.5 inn-2.5.5/doc/man/buffindexed.conf.5 --- inn-2.5.4/doc/man/buffindexed.conf.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/buffindexed.conf.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "BUFFINDEXED.CONF 5" -.TH BUFFINDEXED.CONF 5 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH BUFFINDEXED.CONF 5 "2015-03-24" "INN 2.5.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 @@ -272,9 +272,9 @@ user to read and write. .SH "HISTORY" .IX Header "HISTORY" Written by Katsuhiro Kondou for InterNetNews. -Converted to \s-1POD\s0 by Russ Allbery . +Converted to \s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR buffindexed.conf.pod 8195 2008\-11\-29 11:07:02Z iulius $ +\&\f(CW$Id:\fR buffindexed.conf.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIexpireover\fR\|(8), \fIinn.conf\fR\|(5), \fIinndf\fR\|(8), \fImakehistory\fR\|(8). diff -Nurp inn-2.5.4/doc/man/ckpasswd.8 inn-2.5.5/doc/man/ckpasswd.8 --- inn-2.5.4/doc/man/ckpasswd.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/ckpasswd.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "CKPASSWD 8" -.TH CKPASSWD 8 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH CKPASSWD 8 "2015-03-24" "INN 2.5.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 @@ -310,9 +310,9 @@ username and passwords stored in \fI/pat it will print some sort of error message and exit a non-zero status. .SH "HISTORY" .IX Header "HISTORY" -Written by Russ Allbery for InterNetNews. +Written by Russ Allbery for InterNetNews. .PP -\&\f(CW$Id:\fR ckpasswd.pod 9532 2013\-08\-25 13:50:55Z iulius $ +\&\f(CW$Id:\fR ckpasswd.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypt\fR\|(3), \fInnrpd\fR\|(8), \fIpam\fR\|(7), \fIreaders.conf\fR\|(5). diff -Nurp inn-2.5.4/doc/man/cnfsheadconf.8 inn-2.5.5/doc/man/cnfsheadconf.8 --- inn-2.5.4/doc/man/cnfsheadconf.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/cnfsheadconf.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "CNFSHEADCONF 8" -.TH CNFSHEADCONF 8 "2009-08-16" "INN 2.5.4" "InterNetNews Documentation" +.TH CNFSHEADCONF 8 "2009-08-16" "INN 2.5.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.5.4/doc/man/cnfsstat.8 inn-2.5.5/doc/man/cnfsstat.8 --- inn-2.5.4/doc/man/cnfsstat.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/cnfsstat.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "CNFSSTAT 8" -.TH CNFSSTAT 8 "2011-08-22" "INN 2.5.4" "InterNetNews Documentation" +.TH CNFSSTAT 8 "2015-03-24" "INN 2.5.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 @@ -133,19 +133,20 @@ cnfsstat \- Show usage of CNFS buffers .SH "SYNOPSIS" .IX Header "SYNOPSIS" -\&\fBcnfsstat\fR [\fB\-ahpPsv\fR] [\fB\-c\fR \fIclass\fR] [\fB\-l\fR [\fIseconds\fR]] [\fB\-m\fR \fIbuffer\fR] +\&\fBcnfsstat\fR [\fB\-ahpPsv\fR] [\fB\-c\fR \fIclass\fR] [\fB\-i\fR \fIseconds\fR] +[\fB\-l\fR [\fIseconds\fR]] [\fB\-m\fR \fIbuffer\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" -\&\fIcnfsstat\fR reads \fIpathetc\fR/cycbuff.conf and \fIpathetc\fR/storage.conf +\&\fBcnfsstat\fR reads \fIpathetc\fR/cycbuff.conf and \fIpathetc\fR/storage.conf to determine which \s-1CNFS\s0 buffers are available. It then reads the specified -cyclic buffers and shows their usage status. \fIcnfsstat\fR can be invoked from +cyclic buffers and shows their usage status. \fBcnfsstat\fR can be invoked from \&\fBrc.news\fR if \fIdocnfsstat\fR is set to true in \fIinn.conf\fR, and the result is written to \fIsyslog\fR\|(3). .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-a\fR" 4 .IX Item "-a" -Besides its usual output, \fIcnfsstat\fR prints the age of the oldest article +Besides its usual output, \fBcnfsstat\fR prints the age of the oldest article in the cycbuff. You may also want to use the \fB\-v\fR flag to see extended consistency checks. .IP "\fB\-c\fR \fIclass\fR" 4 @@ -154,11 +155,17 @@ Only information for the specified class .IP "\fB\-h\fR" 4 .IX Item "-h" Print usage information and exit. +.IP "\fB\-i\fR \fIseconds\fR" 4 +.IX Item "-i seconds" +With this option, \fBcnfsstat\fR has an initial sleep of \fIseconds\fR +seconds at startup. This is useful when \fBcnfsstat\fR is started at +the same time as \s-1INN\s0, so that it can wait a little before beginning +performing its checks. .IP "\fB\-l\fR [\fIseconds\fR]" 4 .IX Item "-l [seconds]" -With this option, \fIcnfsstat\fR prints a status snapshot every \fIseconds\fR, -and only exits if an error occurs. When unspecified, the default interval -is \f(CW600\fR seconds. +With this option, \fBcnfsstat\fR prints a status snapshot every \fIseconds\fR +seconds, and only exits if an error occurs. When unspecified, the +default interval is \f(CW600\fR seconds. .Sp At each iteration, \fBcnfsstat\fR checks whether the \fIcycbuff.conf\fR and \&\fIstorage.conf\fR files have been modified, and loads the new configuration @@ -184,7 +191,7 @@ storage and the \fIhistory\fR file. Written by Katsuhiro Kondou for InterNetNews. Converted to \s-1POD\s0 by Julien Elie. .PP -\&\f(CW$Id:\fR cnfsstat.pod 9342 2011\-08\-16 14:00:13Z iulius $ +\&\f(CW$Id:\fR cnfsstat.pod 9725 2014\-09\-24 18:01:11Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcycbuff.conf\fR\|(5), \fIhistory\fR\|(5), \fIinn.conf\fR\|(5), \fIrc.news\fR\|(8), \fIstorage.conf\fR\|(5). diff -Nurp inn-2.5.4/doc/man/control.ctl.5 inn-2.5.5/doc/man/control.ctl.5 --- inn-2.5.4/doc/man/control.ctl.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/control.ctl.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "CONTROL.CTL 5" -.TH CONTROL.CTL 5 "2009-11-15" "INN 2.5.4" "InterNetNews Documentation" +.TH CONTROL.CTL 5 "2015-03-24" "INN 2.5.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 @@ -476,9 +476,9 @@ could have added them to the \fIlocalgro .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten in -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR control.ctl.pod 8804 2009\-11\-15 09:29:51Z iulius $ +\&\f(CW$Id:\fR control.ctl.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcontrolchan\fR\|(8), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), \fInewsfeeds\fR\|(5), \fInewsgroups\fR\|(5), diff -Nurp inn-2.5.4/doc/man/controlchan.8 inn-2.5.5/doc/man/controlchan.8 --- inn-2.5.4/doc/man/controlchan.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/controlchan.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "CONTROLCHAN 8" -.TH CONTROLCHAN 8 "2011-07-17" "INN 2.5.4" "InterNetNews Documentation" +.TH CONTROLCHAN 8 "2011-07-17" "INN 2.5.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.5.4/doc/man/convdate.1 inn-2.5.5/doc/man/convdate.1 --- inn-2.5.4/doc/man/convdate.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/convdate.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "CONVDATE 1" -.TH CONVDATE 1 "2010-02-08" "INN 2.5.4" "InterNetNews Documentation" +.TH CONVDATE 1 "2015-03-24" "INN 2.5.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,9 +212,9 @@ determine (or at least override) the loc .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR , rewritten and updated by Russ -Allbery for the \fB\-d\fR and \fB\-l\fR flags. +Allbery for the \fB\-d\fR and \fB\-l\fR flags. .PP -\&\f(CW$Id:\fR convdate.pod 8894 2010\-01\-17 13:04:04Z iulius $ +\&\f(CW$Id:\fR convdate.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive.times\fR\|(5). diff -Nurp inn-2.5.4/doc/man/ctlinnd.8 inn-2.5.5/doc/man/ctlinnd.8 --- inn-2.5.4/doc/man/ctlinnd.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/ctlinnd.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "CTLINND 8" -.TH CTLINND 8 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH CTLINND 8 "2015-03-24" "INN 2.5.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 @@ -580,9 +580,9 @@ server replies are limited to 4\ \s-1KB\ .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten in -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR ctlinnd.pod 9466 2013\-03\-22 15:09:01Z iulius $ +\&\f(CW$Id:\fR ctlinnd.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive\fR\|(5), \fIactive.times\fR\|(5), \fIbuffchan\fR\|(8), \fIincoming.conf\fR\|(5), \fIinnd\fR\|(8), diff -Nurp inn-2.5.4/doc/man/cvtbatch.8 inn-2.5.5/doc/man/cvtbatch.8 --- inn-2.5.4/doc/man/cvtbatch.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/cvtbatch.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "CVTBATCH 8" -.TH CVTBATCH 8 "2009-11-15" "INN 2.5.4" "InterNetNews Documentation" +.TH CVTBATCH 8 "2009-11-15" "INN 2.5.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.5.4/doc/man/cycbuff.conf.5 inn-2.5.5/doc/man/cycbuff.conf.5 --- inn-2.5.4/doc/man/cycbuff.conf.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/cycbuff.conf.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "CYCBUFF.CONF 5" -.TH CYCBUFF.CONF 5 "2010-02-16" "INN 2.5.4" "InterNetNews Documentation" +.TH CYCBUFF.CONF 5 "2015-03-24" "INN 2.5.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 @@ -331,9 +331,9 @@ where \f(CW\*(C`ONE\*(C'\fR will be what .SH "HISTORY" .IX Header "HISTORY" Written by Katsuhiro Kondou for InterNetNews. -Rewritten into \s-1POD\s0 by Russ Allbery . +Rewritten into \s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR cycbuff.conf.pod 8987 2010\-02\-16 19:48:45Z iulius $ +\&\f(CW$Id:\fR cycbuff.conf.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIctlinnd\fR\|(8), \fIinnd\fR\|(8), \fInnrpd\fR\|(8), \fIsm\fR\|(1), \fIstorage.conf\fR\|(5). diff -Nurp inn-2.5.4/doc/man/distrib.pats.5 inn-2.5.5/doc/man/distrib.pats.5 --- inn-2.5.4/doc/man/distrib.pats.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/distrib.pats.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "DISTRIB.PATS 5" -.TH DISTRIB.PATS 5 "2009-11-15" "INN 2.5.4" "InterNetNews Documentation" +.TH DISTRIB.PATS 5 "2015-03-24" "INN 2.5.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 @@ -171,9 +171,9 @@ in \fIdistributions\fR\|(5). .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Converted to -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR distrib.pats.pod 8803 2009\-11\-15 09:29:41Z iulius $ +\&\f(CW$Id:\fR distrib.pats.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdistributions\fR\|(5), \fIinn.conf\fR\|(5), \fInewsfeeds\fR\|(5), \fInnrpd\fR\|(8), \fIuwildmat\fR\|(3). diff -Nurp inn-2.5.4/doc/man/distributions.5 inn-2.5.5/doc/man/distributions.5 --- inn-2.5.4/doc/man/distributions.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/distributions.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "DISTRIBUTIONS 5" -.TH DISTRIBUTIONS 5 "2011-06-10" "INN 2.5.4" "InterNetNews Documentation" +.TH DISTRIBUTIONS 5 "2011-06-10" "INN 2.5.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.5.4/doc/man/docheckgroups.8 inn-2.5.5/doc/man/docheckgroups.8 --- inn-2.5.4/doc/man/docheckgroups.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/docheckgroups.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "DOCHECKGROUPS 8" -.TH DOCHECKGROUPS 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH DOCHECKGROUPS 8 "2009-05-21" "INN 2.5.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.5.4/doc/man/domain.8 inn-2.5.5/doc/man/domain.8 --- inn-2.5.4/doc/man/domain.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/domain.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "DOMAIN 8" -.TH DOMAIN 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH DOMAIN 8 "2009-05-21" "INN 2.5.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.5.4/doc/man/expire.8 inn-2.5.5/doc/man/expire.8 --- inn-2.5.4/doc/man/expire.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/expire.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "EXPIRE 8" -.TH EXPIRE 8 "2009-09-11" "INN 2.5.4" "InterNetNews Documentation" +.TH EXPIRE 8 "2009-09-11" "INN 2.5.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.5.4/doc/man/expire.ctl.5 inn-2.5.5/doc/man/expire.ctl.5 --- inn-2.5.4/doc/man/expire.ctl.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/expire.ctl.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "EXPIRE.CTL 5" -.TH EXPIRE.CTL 5 "2010-02-08" "INN 2.5.4" "InterNetNews Documentation" +.TH EXPIRE.CTL 5 "2015-03-24" "INN 2.5.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 @@ -306,9 +306,9 @@ When \fIgroupbaseexpiry\fR is false, for .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Converted to -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR expire.ctl.pod 8970 2010\-02\-08 21:07:13Z iulius $ +\&\f(CW$Id:\fR expire.ctl.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIexpire\fR\|(8), \fIexpireover\fR\|(8), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), \fInews.daily\fR\|(8), diff -Nurp inn-2.5.4/doc/man/expireover.8 inn-2.5.5/doc/man/expireover.8 --- inn-2.5.4/doc/man/expireover.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/expireover.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "EXPIREOVER 8" -.TH EXPIREOVER 8 "2009-09-11" "INN 2.5.4" "InterNetNews Documentation" +.TH EXPIREOVER 8 "2009-09-11" "INN 2.5.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.5.4/doc/man/expirerm.8 inn-2.5.5/doc/man/expirerm.8 --- inn-2.5.4/doc/man/expirerm.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/expirerm.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "EXPIRERM 8" -.TH EXPIRERM 8 "2009-09-11" "INN 2.5.4" "InterNetNews Documentation" +.TH EXPIRERM 8 "2009-09-11" "INN 2.5.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.5.4/doc/man/fastrm.1 inn-2.5.5/doc/man/fastrm.1 --- inn-2.5.4/doc/man/fastrm.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/fastrm.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "FASTRM 1" -.TH FASTRM 1 "2009-09-11" "INN 2.5.4" "InterNetNews Documentation" +.TH FASTRM 1 "2015-03-24" "INN 2.5.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 @@ -299,9 +299,9 @@ general fast file removal program. .SH "HISTORY" .IX Header "HISTORY" \&\fBfastrm\fR was originally written by . This manual page -was rewritten in \s-1POD\s0 by Russ Allbery for InterNetNews. +was rewritten in \s-1POD\s0 by Russ Allbery for InterNetNews. .PP -\&\f(CW$Id:\fR fastrm.pod 8576 2009\-08\-18 13:55:11Z iulius $ +\&\f(CW$Id:\fR fastrm.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIexpirerm\fR\|(8). diff -Nurp inn-2.5.4/doc/man/getlist.1 inn-2.5.5/doc/man/getlist.1 --- inn-2.5.4/doc/man/getlist.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/getlist.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "GETLIST 1" -.TH GETLIST 1 "2010-02-08" "INN 2.5.4" "InterNetNews Documentation" +.TH GETLIST 1 "2015-03-24" "INN 2.5.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 @@ -224,9 +224,9 @@ to protect it from the shell. .SH "HISTORY" .IX Header "HISTORY" Written by Landon Curt Noll for InterNetNews. Rewritten -in \s-1POD\s0 by Russ Allbery . +in \s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR getlist.pod 8837 2009\-12\-03 21:08:59Z iulius $ +\&\f(CW$Id:\fR getlist.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive\fR\|(5), \fIactive.times\fR\|(5), \fIdistrib.pats\fR\|(5), \fIdistributions\fR\|(5), \fIinn.conf\fR\|(5), diff -Nurp inn-2.5.4/doc/man/grephistory.1 inn-2.5.5/doc/man/grephistory.1 --- inn-2.5.4/doc/man/grephistory.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/grephistory.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "GREPHISTORY 1" -.TH GREPHISTORY 1 "2009-09-11" "INN 2.5.4" "InterNetNews Documentation" +.TH GREPHISTORY 1 "2015-03-24" "INN 2.5.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 @@ -232,9 +232,9 @@ It matches the number recorded in histor .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten in -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR grephistory.pod 8582 2009\-08\-19 08:04:32Z iulius $ +\&\f(CW$Id:\fR grephistory.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIhistory\fR\|(5), \fIinn.conf\fR\|(5), \fIsm\fR\|(1). diff -Nurp inn-2.5.4/doc/man/ident.8 inn-2.5.5/doc/man/ident.8 --- inn-2.5.4/doc/man/ident.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/ident.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "IDENT 8" -.TH IDENT 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH IDENT 8 "2009-05-21" "INN 2.5.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.5.4/doc/man/incoming.conf.5 inn-2.5.5/doc/man/incoming.conf.5 --- inn-2.5.4/doc/man/incoming.conf.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/incoming.conf.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INCOMING.CONF 5" -.TH INCOMING.CONF 5 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH INCOMING.CONF 5 "2014-03-15" "INN 2.5.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.5.4/doc/man/inews.1 inn-2.5.5/doc/man/inews.1 --- inn-2.5.4/doc/man/inews.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/inews.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INEWS 1" -.TH INEWS 1 "2010-02-08" "INN 2.5.4" "InterNetNews Documentation" +.TH INEWS 1 "2015-03-24" "INN 2.5.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 @@ -249,9 +249,9 @@ Unix news clients or by themselves. .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten in -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR inews.pod 8941 2010\-01\-28 20:45:16Z iulius $ +\&\f(CW$Id:\fR inews.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinn.conf\fR\|(5), \fIpasswd.nntp\fR\|(5), \fIrnews\fR\|(1). diff -Nurp inn-2.5.4/doc/man/inn-radius.conf.5 inn-2.5.5/doc/man/inn-radius.conf.5 --- inn-2.5.4/doc/man/inn-radius.conf.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/inn-radius.conf.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INN-RADIUS.CONF 5" -.TH INN-RADIUS.CONF 5 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH INN-RADIUS.CONF 5 "2015-03-24" "INN 2.5.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,10 +216,10 @@ the \s-1RADIUS\s0 server: The shared secret with the \s-1RADIUS\s0 server is \f(CW\*(C`IamARADIUSsecRET\*(C'\fR. .SH "HISTORY" .IX Header "HISTORY" -This documentation was written by Russ Allbery based on +This documentation was written by Russ Allbery based on the comments in the sample \fIinn\-radius.conf\fR file by Yury B.\ Razbegin. .PP -\&\f(CW$Id:\fR inn\-radius.conf.pod 9478 2013\-05\-24 16:28:27Z iulius $ +\&\f(CW$Id:\fR inn\-radius.conf.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIradius\fR\|(8) diff -Nurp inn-2.5.4/doc/man/inn.conf.5 inn-2.5.5/doc/man/inn.conf.5 --- inn-2.5.4/doc/man/inn.conf.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/inn.conf.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INN.CONF 5" -.TH INN.CONF 5 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH INN.CONF 5 "2015-05-01" "INN 2.5.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 @@ -816,7 +816,7 @@ and the default is false. .IX Item "readertrack" Whether to enable the tracking system for client behavior. Tracked information is recorded to \fIpathlog\fR/tracklogs/log\-\fI\s-1ID\s0\fR, where \s-1ID\s0 is -determined by nnrpd's \s-1PID\s0 and launch time.) Currently the information +determined by nnrpd's \s-1PID\s0 and launch time. Currently the information recorded includes initial connection and posting; only information about clients listed in \fInnrpd.track\fR is recorded. In addition, every posted article will be saved in \fIpathlog\fR/trackposts/track.\fImessage-id\fR, where @@ -1033,9 +1033,11 @@ most 86400/\fIbackoffpostslow\fR posts p .IX Item "backofftrigger" This many postings are allowed before the backoff algorithm is triggered. The default value is \f(CW10000\fR. +.SS "\s-1TLS/SSL\s0 Support for Reading and Posting" +.IX Subsection "TLS/SSL Support for Reading and Posting" +Here are the parameters used by \fInnrpd\fR\|(8) to provide \s-1TLS/SSL\s0 support. .PP -Finally, here are the parameters used by \fInnrpd\fR\|(8) to provide \s-1TLS/SSL\s0 -support: +The parameters related to certificates are: .IP "\fItlscafile\fR" 4 .IX Item "tlscafile" The path to a file containing certificate authority root certificates, @@ -1067,6 +1069,59 @@ used if \fBnnrpd\fR is built with \s-1TL .Sp This file must only be readable by the news user or \fBnnrpd\fR will refuse to use it. +.PP +Finally, here are the parameters that can be used to tighten the level +of security provided by \s-1TLS/SSL\s0 in case new attacks exploitable in \s-1NNTP\s0 +on the \s-1TLS\s0 protocol or some supported cipher suite are discovered: +.IP "\fItlsciphers\fR" 4 +.IX Item "tlsciphers" +The string describing the cipher suites OpenSSL will support. See +OpenSSL's \fIciphers\fR\|(1) command documentation for details. The default +is unset, which uses OpenSSL's default cipher suite list. +.Sp +Formally, keeping the \s-1TLS_RSA_WITH_RC4_128_MD5\s0 and +\&\s-1TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA\s0 cipher suites is important, as it +assures that any two compliant implementations can be configured to +interoperate (see \s-1RFC\s0 4642 for more details). +.IP "\fItlscompression\fR" 4 +.IX Item "tlscompression" +Whether to enable or disable \s-1SSL/TLS\s0 compression support. This is a +boolean and the default is true, that is to say compression is enabled. +.IP "\fItlseccurve\fR" 4 +.IX Item "tlseccurve" +The name of the elliptic curve to use for ephemeral key exchanges. +To see the list of curves supported by OpenSSL, use \f(CW\*(C`openssl ecparam +\&\-list_curves\*(C'\fR. +.Sp +The default is unset, which means an appropriate curve is auto-selected +(if your OpenSSL version supports it) or the \s-1NIST\s0 P\-256 curve is used. +.Sp +This option is only effective if your OpenSSL version has \s-1ECDH\s0 support. +.IP "\fItlspreferserverciphers\fR" 4 +.IX Item "tlspreferserverciphers" +Whether to let the client or the server decide the preferred cipher. +This is a boolean and the default is false, that is to say the client +decides the preferred cipher. (Note that the default value will be +true in the next major release of \s-1INN\s0.) +.IP "\fItlsprotocols\fR" 4 +.IX Item "tlsprotocols" +The list of \s-1SSL/TLS\s0 protocol versions to support. Valid protocols are +\&\fBSSLv2\fR, \fBSSLv3\fR, \fBTLSv1\fR, \fBTLSv1.1\fR and \fBTLSv1.2\fR. The default +value is to allow all these protocols: +.Sp +.Vb 1 +\& tlsprotocols: [ SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 ] +.Ve +.Sp +Note that the default value will be to only allow \s-1TLS\s0 protocols in +the next major release of \s-1INN\s0 (using SSLv2 and SSLv3 will be disabled +by default). +.Sp +Also note that the listed protocols will be enabled only if the OpenSSL +library \s-1INN\s0 has been built with, supports them. In case OpenSSL supports +protocols more recent than TLSv1.2, they will be automatically enabled +(which anyway is fine regarding security, as newer protocols are supposed +to be more secure). .SS "Monitoring" .IX Subsection "Monitoring" These parameters control the behavior of \fIinnwatch\fR\|(8), the program that @@ -1194,7 +1249,7 @@ default value. .IP "\fIstatus\fR" 4 .IX Item "status" How frequently (in seconds) \fIinnd\fR\|(8) should write out a status report. The -report is written to \fIpathhttp\fR/inn_status.html or \fIpathlog\fR/inn.status +report is written to \fIpathhttp\fR/inn_status.html or \fIpathlog\fR/inn.status depending on the value of \fIhtmlstatus\fR. If this is set to \f(CW0\fR or \&\f(CW\*(C`false\*(C'\fR, status reporting is disabled. The default value is \f(CW0\fR. .IP "\fItimer\fR" 4 @@ -1413,7 +1468,7 @@ values for reference. Written by Rich \f(CW$alz\fR for InterNetNews and since modified, updated, and reorganized by innumerable other people. .PP -\&\f(CW$Id:\fR inn.conf.pod 9608 2014\-02\-17 19:12:15Z iulius $ +\&\f(CW$Id:\fR inn.conf.pod 9823 2015\-04\-05 13:28:36Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinews\fR\|(1), \fIinnd\fR\|(8), \fIinnwatch\fR\|(8), \fImakehistory\fR\|(8), \fInnrpd\fR\|(8), \fIrnews\fR\|(1). diff -Nurp inn-2.5.4/doc/man/innbind.8 inn-2.5.5/doc/man/innbind.8 --- inn-2.5.4/doc/man/innbind.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/innbind.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INNBIND 8" -.TH INNBIND 8 "2010-02-08" "INN 2.5.4" "InterNetNews Documentation" +.TH INNBIND 8 "2015-03-24" "INN 2.5.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 @@ -333,9 +333,9 @@ to bind the IPv4 socket on file descript 10.0.0.3. .SH "HISTORY" .IX Header "HISTORY" -Written by Russ Allbery for InterNetNews. +Written by Russ Allbery for InterNetNews. .PP -\&\f(CW$Id:\fR innbind.pod 8894 2010\-01\-17 13:04:04Z iulius $ +\&\f(CW$Id:\fR innbind.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinet_aton\fR\|(3), \fIinet_pton\fR\|(3), \fIinnd\fR\|(8), \fInnrpd\fR\|(8). diff -Nurp inn-2.5.4/doc/man/inncheck.8 inn-2.5.5/doc/man/inncheck.8 --- inn-2.5.4/doc/man/inncheck.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/inncheck.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INNCHECK 8" -.TH INNCHECK 8 "2012-06-15" "INN 2.5.4" "InterNetNews Documentation" +.TH INNCHECK 8 "2012-06-15" "INN 2.5.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.5.4/doc/man/innconfval.1 inn-2.5.5/doc/man/innconfval.1 --- inn-2.5.4/doc/man/innconfval.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/innconfval.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INNCONFVAL 1" -.TH INNCONFVAL 1 "2011-08-22" "INN 2.5.4" "InterNetNews Documentation" +.TH INNCONFVAL 1 "2011-08-22" "INN 2.5.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.5.4/doc/man/innd.8 inn-2.5.5/doc/man/innd.8 --- inn-2.5.4/doc/man/innd.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/innd.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INND 8" -.TH INND 8 "2011-07-17" "INN 2.5.4" "InterNetNews Documentation" +.TH INND 8 "2011-07-17" "INN 2.5.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.5.4/doc/man/inndf.8 inn-2.5.5/doc/man/inndf.8 --- inn-2.5.4/doc/man/inndf.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/inndf.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INNDF 8" -.TH INNDF 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH INNDF 8 "2009-05-21" "INN 2.5.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.5.4/doc/man/innfeed.8 inn-2.5.5/doc/man/innfeed.8 --- inn-2.5.4/doc/man/innfeed.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/innfeed.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INNFEED 8" -.TH INNFEED 8 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH INNFEED 8 "2014-03-15" "INN 2.5.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.5.4/doc/man/innfeed.conf.5 inn-2.5.5/doc/man/innfeed.conf.5 --- inn-2.5.4/doc/man/innfeed.conf.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/innfeed.conf.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INNFEED.CONF 5" -.TH INNFEED.CONF 5 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH INNFEED.CONF 5 "2014-03-15" "INN 2.5.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.5.4/doc/man/innmail.1 inn-2.5.5/doc/man/innmail.1 --- inn-2.5.4/doc/man/innmail.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/innmail.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INNMAIL 1" -.TH INNMAIL 1 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH INNMAIL 1 "2009-05-21" "INN 2.5.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.5.4/doc/man/innupgrade.8 inn-2.5.5/doc/man/innupgrade.8 --- inn-2.5.4/doc/man/innupgrade.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/innupgrade.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INNUPGRADE 8" -.TH INNUPGRADE 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH INNUPGRADE 8 "2015-03-24" "INN 2.5.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 @@ -233,6 +233,6 @@ Any upgrade rules that apply to \fIinn.c alternate file. .SH "HISTORY" .IX Header "HISTORY" -Written by Russ Allbery for InterNetNews. +Written by Russ Allbery for InterNetNews. .PP -\&\f(CW$Id:\fR innupgrade.pod 8415 2009\-04\-12 20:19:35Z iulius $ +\&\f(CW$Id:\fR innupgrade.pod 9768 2014\-12\-07 21:22:57Z iulius $ diff -Nurp inn-2.5.4/doc/man/innwatch.8 inn-2.5.5/doc/man/innwatch.8 --- inn-2.5.4/doc/man/innwatch.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/innwatch.8 2015-05-23 06:24:41.000000000 -0700 @@ -1,59 +1,181 @@ -.TH INNWATCH 8 -.SH NAME -innwatch \- monitor innd. -.SH SYNOPSIS -.B innwatch -[ -.BI -l " logfile" -] -[ -.BI -t " seconds" -] -.SH DESCRIPTION -.I Innwatch -is normally started by -.IR rc.news . -It periodically \(em every -.I -seconds \(em examines the load average, and the number of free blocks -and inodes on the spool partition, as described by its -control file, -.IR innwatch.ctl . +.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) +.\" +.\" 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" '' +'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 turned on, 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. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" 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 "INNWATCH 8" +.TH INNWATCH 8 "2015-03-24" "INN 2.5.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" +innwatch \- Monitor the state of INN and the system +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBinnwatch\fR [\fB\-f\fR \fIctlfile\fR] [\fB\-i\fR \fIseconds\fR] [\fB\-l\fR \fIlogfile\fR] +[\fB\-t\fR \fIseconds\fR] +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBinnwatch\fR is normally started by \fBrc.news\fR. Every +\&\fIinnwatchsleeptime\fR seconds, as set in \fIinn.conf\fR, it examines the load +average, and the number of free blocks and inodes on the spool partition, +as described by its control file, \fIinnwatch.ctl\fR in \fIpathetc\fR. .PP -If the load gets too high, or the disk gets too full, it throttles the server. -When the condition restores, it unblocks the server. -In addition, on each pass through the loop it will check the -logfile -.I /news.crit -to see if it has been modified, and send mail to the news administrator -if so. +If the load gets too high, or the disk gets too full, it throttles +the server. When the condition restores, it unblocks the server. +In addition, on each pass through the loop, it will check the logfile +\&\fIpathlog\fR/news.crit to see if it has been modified, and send mail to +the news administrator if so. .PP -Upon receipt of an interrupt signal (SIGINT), -.IR innwatch -will report its status in the file -.IR /innwatch.status . -.SH OPTIONS -.TP -.B \-l logfile -To specify a log file to watch, other than the default of -.IR news.crit , -use the ``\fB\-l\fP'' flag. -.TP -.B \-t seconds -To change the period between checks from the default from -.I inn.conf , -use the ``\fB\-t\fP'' -flag. -.SH HISTORY +Upon receipt of an interrupt signal (\s-1SIGINT\s0), \fBinnwatch\fR will report +its status in the file \fIinnwatch.status\fR in \fIpathrun\fR. +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-f\fR \fIfile\fR" 4 +.IX Item "-f file" +Specify the control file to use, other than the default of +\&\fIinnwatch.ctl\fR in \fIpathetc\fR. +.IP "\fB\-i\fR \fIseconds\fR" 4 +.IX Item "-i seconds" +With this option, \fBinnwatch\fR has an initial sleep of \fIseconds\fR +seconds at startup. This is useful when \fBinnwatch\fR is started at +the same time as \s-1INN\s0, so that it can wait a little before beginning +performing its checks. +.IP "\fB\-l\fR \fIlogfile\fR" 4 +.IX Item "-l logfile" +Specify a log file to watch, other than the default of \fInews.crit\fR. +.IP "\fB\-t\fR \fIseconds\fR" 4 +.IX Item "-t seconds" +Specify the period in seconds between checks, to override the value +set in \fIinn.conf\fR. +.SH "HISTORY" +.IX Header "HISTORY" Written by Mike Cooper , with modifications by -, Steve Groom and -Christophe Wolfhugel . -.de R$ -This is revision \\$3, dated \\$4. -.. -.R$ $Id: innwatch.8 5909 2002-12-03 05:17:18Z vinocur $ +, Steve Groom and +Christophe Wolfhugel . Converted to \s-1POD\s0 by Julien Elie. +.PP +\&\f(CW$Id:\fR innwatch.pod 9726 2014\-09\-24 18:05:04Z iulius $ .SH "SEE ALSO" -ctlinnd(8), -inn.conf(5), -innwatch.ctl(5), -shlock(1). +.IX Header "SEE ALSO" +\&\fIinn.conf\fR\|(5), \fIinnwatch.ctl\fR\|(5), \fInewslog\fR\|(5), \fIrc.news\fR\|(8). diff -Nurp inn-2.5.4/doc/man/innxmit.8 inn-2.5.5/doc/man/innxmit.8 --- inn-2.5.4/doc/man/innxmit.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/innxmit.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "INNXMIT 8" -.TH INNXMIT 8 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH INNXMIT 8 "2014-03-15" "INN 2.5.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.5.4/doc/man/libauth.3 inn-2.5.5/doc/man/libauth.3 --- inn-2.5.4/doc/man/libauth.3 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/libauth.3 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "libauth 3" -.TH libauth 3 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH libauth 3 "2009-05-21" "INN 2.5.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.5.4/doc/man/libinn.3 inn-2.5.5/doc/man/libinn.3 --- inn-2.5.4/doc/man/libinn.3 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/libinn.3 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -.\" $Revision: 8894 $ +.\" $Revision: 9668 $ .TH LIBINN 3 .SH NAME libinn \- InterNetNews library routines @@ -232,7 +232,7 @@ been created by or .IR CAlistopen . .PP -.I CloseOnExec +.I close_on_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'' @@ -277,7 +277,7 @@ It can be called as often as necessary. 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 SetNonBlocking +.I nonblocking enables (if .I flag is non-zero) or disables (if @@ -463,7 +463,7 @@ if ((F = CAopen(FromServer, ToServer)) = Fatal("Can't open active file"); /* Don't pass the file on to our children. */ -CloseOnExec(fileno(F), 1); +close_on_exec(fileno(F), 1); /* Make a local copy. */ p = ReadInDescriptor(fileno(F), (struct stat *)NULL); @@ -483,7 +483,7 @@ Written by Rich $alz /mailpost -\& \-b /var/tmp \-d local local.mail.rec.bicycles.racing" +\& \-b /var/tmp \-t /var/tmp \-d local local.mail.rec.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. +.PP Instead of \fI/var/tmp\fR, the mail spool directory can be specified, or any other directory where the \fBmailpost\fR process has write access. .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, the value given is added to the article as +an Approved: header. .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 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 -temporary directory. The default value is \fIpathtmp\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 temporary directory. +The default value is \fIpathtmp\fR as set in \fIinn.conf\fR. .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 @@ -197,8 +205,8 @@ The \fB\-f\fR flag is a synonym for the Print usage information and exit. .IP "\fB\-m\fR \fImailing-list\fR" 4 .IX Item "-m mailing-list" -If the \fB\-m\fR flag is used, the value given is added to the article in a -Mailing-List: header, if such a header doesn't already exist. +If the \fB\-m\fR flag is used, the value given is added to the article in +a Mailing-List: header, if such a header doesn't already exist. .IP "\fB\-n\fR" 4 .IX Item "-n" If the \fB\-n\fR flag is used, neither an article is posted nor a mail is sent @@ -216,6 +224,14 @@ If given, \fB\-p\fR is passed along to \ .IX Item "-r addr" A heuristic is used to determine a reasonable value for the Path: header. 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. .IP "\fB\-x\fR \fIheader\fR[\fB:\fR\fIheader\fR...]" 4 .IX Item "-x header[:header...]" A colon-separated list of additional headers which should be treated as @@ -248,10 +264,10 @@ 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. +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 9409 2012\-05\-28 18:43:20Z iulius $ +\&\f(CW$Id:\fR mailpost.in 9831 2015\-04\-23 19:07:39Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive\fR\|(5), \fIinews\fR\|(1), \fIinn.conf\fR\|(5), \fInnrpd\fR\|(8), \fIuwildmat\fR\|(3). diff -Nurp inn-2.5.4/doc/man/makedbz.8 inn-2.5.5/doc/man/makedbz.8 --- inn-2.5.4/doc/man/makedbz.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/makedbz.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "MAKEDBZ 8" -.TH MAKEDBZ 8 "2009-09-11" "INN 2.5.4" "InterNetNews Documentation" +.TH MAKEDBZ 8 "2009-09-11" "INN 2.5.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.5.4/doc/man/makehistory.8 inn-2.5.5/doc/man/makehistory.8 --- inn-2.5.4/doc/man/makehistory.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/makehistory.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "MAKEHISTORY 8" -.TH MAKEHISTORY 8 "2009-08-16" "INN 2.5.4" "InterNetNews Documentation" +.TH MAKEHISTORY 8 "2009-08-16" "INN 2.5.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.5.4/doc/man/mod-active.8 inn-2.5.5/doc/man/mod-active.8 --- inn-2.5.4/doc/man/mod-active.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/mod-active.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "MOD-ACTIVE 8" -.TH MOD-ACTIVE 8 "2011-06-10" "INN 2.5.4" "InterNetNews Documentation" +.TH MOD-ACTIVE 8 "2011-06-10" "INN 2.5.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.5.4/doc/man/moderators.5 inn-2.5.5/doc/man/moderators.5 --- inn-2.5.4/doc/man/moderators.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/moderators.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "MODERATORS 5" -.TH MODERATORS 5 "2010-02-08" "INN 2.5.4" "InterNetNews Documentation" +.TH MODERATORS 5 "2015-03-24" "INN 2.5.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 @@ -207,9 +207,9 @@ pairs should therefore not be created. .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten in -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR moderators.pod 8830 2009\-11\-29 16:49:59Z iulius $ +\&\f(CW$Id:\fR moderators.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinn.conf\fR\|(5), \fInnrpd\fR\|(8), \fIuwildmat\fR\|(3). diff -Nurp inn-2.5.4/doc/man/motd.news.5 inn-2.5.5/doc/man/motd.news.5 --- inn-2.5.4/doc/man/motd.news.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/motd.news.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "MOTD.NEWS 5" -.TH MOTD.NEWS 5 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH MOTD.NEWS 5 "2015-03-24" "INN 2.5.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 @@ -159,9 +159,9 @@ in \fIpathec\fR; you will therefore find to news clients. .SH "HISTORY" .IX Header "HISTORY" -Rewritten in \s-1POD\s0 by Russ Allbery for InterNetNews. +Rewritten in \s-1POD\s0 by Russ Allbery for InterNetNews. .PP -\&\f(CW$Id:\fR motd.news.pod 9605 2014\-02\-17 18:04:21Z iulius $ +\&\f(CW$Id:\fR motd.news.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinn.conf\fR\|(5). diff -Nurp inn-2.5.4/doc/man/news.daily.8 inn-2.5.5/doc/man/news.daily.8 --- inn-2.5.4/doc/man/news.daily.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/news.daily.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "NEWS.DAILY 8" -.TH NEWS.DAILY 8 "2014-05-16" "INN 2.5.4" "InterNetNews Documentation" +.TH NEWS.DAILY 8 "2014-05-16" "INN 2.5.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.5.4/doc/man/news2mail.8 inn-2.5.5/doc/man/news2mail.8 --- inn-2.5.4/doc/man/news2mail.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/news2mail.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "NEWS2MAIL 8" -.TH NEWS2MAIL 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH NEWS2MAIL 8 "2009-05-21" "INN 2.5.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.5.4/doc/man/newsfeeds.5 inn-2.5.5/doc/man/newsfeeds.5 --- inn-2.5.4/doc/man/newsfeeds.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/newsfeeds.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "NEWSFEEDS 5" -.TH NEWSFEEDS 5 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH NEWSFEEDS 5 "2015-03-24" "INN 2.5.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 @@ -552,7 +552,8 @@ Only up to four totally independent valu .Sp Therefore, it allows to a generate a second level of deterministic distribution. Indeed, if a news server is fed \f(CW\*(C`Q1/2\*(C'\fR, it can go on -splitting thanks to \f(CW\*(C`Q1\-3/9_4\*(C'\fR for instance. +splitting thanks to \f(CW\*(C`Q1\-3/9_4\*(C'\fR for instance. Up to four levels of +deterministic distribution can be used. .Sp The algorithm is compatible with the one used by Diablo\ 5.1 and up. If you want to use the legacy quickhashing method used by Diablo @@ -918,9 +919,9 @@ the standard newsfeeds entries used by m .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Reformatted -and rewritten in \s-1POD\s0 by Russ Allbery . +and rewritten in \s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR newsfeeds.pod 9500 2013\-07\-01 08:21:58Z eagle $ +\&\f(CW$Id:\fR newsfeeds.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive\fR\|(5), \fIbuffchan\fR\|(8), \fIcontrolchan\fR\|(8), \fIctlinnd\fR\|(8), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), diff -Nurp inn-2.5.4/doc/man/newsgroups.5 inn-2.5.5/doc/man/newsgroups.5 --- inn-2.5.4/doc/man/newsgroups.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/newsgroups.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "NEWSGROUPS 5" -.TH NEWSGROUPS 5 "2010-02-08" "INN 2.5.4" "InterNetNews Documentation" +.TH NEWSGROUPS 5 "2015-03-24" "INN 2.5.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 @@ -251,9 +251,9 @@ The preferred format for a one-line news the policies by which the \fInewsgroups\fR file in is maintained; they were originally written by David Lawrence and updated by Russ Allbery -. +. .PP -\&\f(CW$Id:\fR newsgroups.pod 8822 2009\-11\-20 17:34:15Z iulius $ +\&\f(CW$Id:\fR newsgroups.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive\fR\|(5), \fIcontrolchan\fR\|(8), \fIctlinnd\fR\|(8), \fIgetlist\fR\|(1), \fInnrpd\fR\|(8). diff -Nurp inn-2.5.4/doc/man/newslog.5 inn-2.5.5/doc/man/newslog.5 --- inn-2.5.4/doc/man/newslog.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/newslog.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "NEWSLOG 5" -.TH NEWSLOG 5 "2010-02-08" "INN 2.5.4" "InterNetNews Documentation" +.TH NEWSLOG 5 "2010-02-08" "INN 2.5.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.5.4/doc/man/ninpaths.8 inn-2.5.5/doc/man/ninpaths.8 --- inn-2.5.4/doc/man/ninpaths.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/ninpaths.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "NINPATHS 8" -.TH NINPATHS 8 "2011-12-26" "INN 2.5.4" "InterNetNews Documentation" +.TH NINPATHS 8 "2011-12-26" "INN 2.5.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.5.4/doc/man/nnrpd.8 inn-2.5.5/doc/man/nnrpd.8 --- inn-2.5.4/doc/man/nnrpd.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/nnrpd.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "NNRPD 8" -.TH NNRPD 8 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH NNRPD 8 "2015-03-24" "INN 2.5.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 @@ -338,6 +338,12 @@ to \fI/etc/inetd.conf\fR or the equivale run \fBnnrpd\fR. (Change the path to \fBnnrpd\fR to match your installation.) You may need to replace \f(CW\*(C`nntps\*(C'\fR with \f(CW563\fR if \f(CW\*(C`nntps\*(C'\fR isn't defined in \fI/etc/services\fR on your system. +.PP +Optionally, you may set the \fItlsciphers\fR, \fItlscompression\fR, +\&\fItlseccurve\fR, \fItlspreferserverciphers\fR, and \fItlsprotocols\fR parameters +in \fIinn.conf\fR to fine-tune the behaviour of the \s-1SSL/TLS\s0 negotiation +whenever a new attack on the \s-1TLS\s0 protocol or some supported cipher +suite is discovered. .SH "PROTOCOL DIFFERENCES" .IX Header "PROTOCOL DIFFERENCES" \&\fBnnrpd\fR implements the \s-1NNTP\s0 commands defined in \s-1RFC\s0\ 3977 (\s-1NNTP\s0), @@ -389,7 +395,7 @@ support added by Rob Robertston for InterNetNews. .PP -\&\f(CW$Id:\fR ovdb_init.pod 7851 2008\-05\-26 19:33:08Z iulius $ +\&\f(CW$Id:\fR ovdb_init.pod 9766 2014\-12\-07 21:08:08Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIovdb\fR\|(5), \fImakehistory\fR\|(8) diff -Nurp inn-2.5.4/doc/man/ovdb_monitor.8 inn-2.5.5/doc/man/ovdb_monitor.8 --- inn-2.5.4/doc/man/ovdb_monitor.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/ovdb_monitor.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,15 +124,15 @@ .\" ======================================================================== .\" .IX Title "OVDB_MONITOR 8" -.TH OVDB_MONITOR 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH OVDB_MONITOR 8 "2015-03-24" "INN 2.5.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" ovdb_monitor \- Database maintenance -.SH "SYNOPSYS" -.IX Header "SYNOPSYS" +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" Use \f(CW\*(C`ovdb_init\*(C'\fR to start ovdb_monitor .SH "DESCRIPTION" .IX Header "DESCRIPTION" @@ -150,7 +150,7 @@ down the three children and wait for the .IX Header "HISTORY" Written by Heath Kehoe for InterNetNews. .PP -\&\f(CW$Id:\fR ovdb_monitor.pod 7851 2008\-05\-26 19:33:08Z iulius $ +\&\f(CW$Id:\fR ovdb_monitor.pod 9766 2014\-12\-07 21:08:08Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIovdb\fR\|(5), \fIovdb_init\fR\|(8) diff -Nurp inn-2.5.4/doc/man/ovdb_server.8 inn-2.5.5/doc/man/ovdb_server.8 --- inn-2.5.4/doc/man/ovdb_server.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/ovdb_server.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,15 +124,15 @@ .\" ======================================================================== .\" .IX Title "OVDB_SERVER 8" -.TH OVDB_SERVER 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH OVDB_SERVER 8 "2015-03-24" "INN 2.5.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" ovdb_server \- overview 'helper' server -.SH "SYNOPSYS" -.IX Header "SYNOPSYS" +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" Use \f(CW\*(C`ovdb_init\*(C'\fR to start ovdb_server .SH "DESCRIPTION" .IX Header "DESCRIPTION" @@ -149,7 +149,7 @@ down its children and wait for their exi .IX Header "HISTORY" Written by Heath Kehoe for InterNetNews. .PP -\&\f(CW$Id:\fR ovdb_server.pod 7851 2008\-05\-26 19:33:08Z iulius $ +\&\f(CW$Id:\fR ovdb_server.pod 9766 2014\-12\-07 21:08:08Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIovdb\fR\|(5), \fIovdb_init\fR\|(8) diff -Nurp inn-2.5.4/doc/man/ovdb_stat.8 inn-2.5.5/doc/man/ovdb_stat.8 --- inn-2.5.4/doc/man/ovdb_stat.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/ovdb_stat.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,15 +124,15 @@ .\" ======================================================================== .\" .IX Title "OVDB_STAT 8" -.TH OVDB_STAT 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH OVDB_STAT 8 "2015-03-24" "INN 2.5.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" ovdb_stat \- Display information from the ovdb database -.SH "SYNOPSYS" -.IX Header "SYNOPSYS" +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" \&\fBovdb_stat\fR \fB\-Hgci\fR [\fB\-r\fR \fIartnumrange\fR] newsgroup [newsgroup ...] .PP \&\fBovdb_stat\fR \fB\-Hklmtv\fR [\fB\-d\fR \fIdatabase\fR] @@ -200,7 +200,7 @@ because it may leave stale locks in the .IX Header "HISTORY" Written by Heath Kehoe for InterNetNews. .PP -\&\f(CW$Id:\fR ovdb_stat.pod 7851 2008\-05\-26 19:33:08Z iulius $ +\&\f(CW$Id:\fR ovdb_stat.pod 9766 2014\-12\-07 21:08:08Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIovdb\fR\|(5) diff -Nurp inn-2.5.4/doc/man/overchan.8 inn-2.5.5/doc/man/overchan.8 --- inn-2.5.4/doc/man/overchan.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/overchan.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "OVERCHAN 8" -.TH OVERCHAN 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH OVERCHAN 8 "2015-03-24" "INN 2.5.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 @@ -172,9 +172,9 @@ single space. .IX Header "HISTORY" Written by Rob Robertson and Rich \f(CW$alz\fR for InterNetNews. Man page rewritten in \s-1POD\s0 by Russ -Allbery . +Allbery . .PP -\&\f(CW$Id:\fR overchan.pod 7851 2008\-05\-26 19:33:08Z iulius $ +\&\f(CW$Id:\fR overchan.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinn.conf\fR\|(5), \fIinnd\fR\|(8), \fInewsfeeds\fR\|(5) diff -Nurp inn-2.5.4/doc/man/passwd.nntp.5 inn-2.5.5/doc/man/passwd.nntp.5 --- inn-2.5.4/doc/man/passwd.nntp.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/passwd.nntp.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "PASSWD.NNTP 5" -.TH PASSWD.NNTP 5 "2010-02-08" "INN 2.5.4" "InterNetNews Documentation" +.TH PASSWD.NNTP 5 "2010-02-08" "INN 2.5.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.5.4/doc/man/perl-nocem.8 inn-2.5.5/doc/man/perl-nocem.8 --- inn-2.5.4/doc/man/perl-nocem.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/perl-nocem.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "PERL-NOCEM 8" -.TH PERL-NOCEM 8 "2014-05-16" "INN 2.5.4" "InterNetNews Documentation" +.TH PERL-NOCEM 8 "2014-05-16" "INN 2.5.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.5.4/doc/man/pgpverify.1 inn-2.5.5/doc/man/pgpverify.1 --- inn-2.5.4/doc/man/pgpverify.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/pgpverify.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "PGPVERIFY 1" -.TH PGPVERIFY 1 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH PGPVERIFY 1 "2014-03-15" "INN 2.5.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.5.4/doc/man/procbatch.8 inn-2.5.5/doc/man/procbatch.8 --- inn-2.5.4/doc/man/procbatch.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/procbatch.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "PROCBATCH 8" -.TH PROCBATCH 8 "2011-09-18" "INN 2.5.4" "InterNetNews Documentation" +.TH PROCBATCH 8 "2011-09-18" "INN 2.5.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.5.4/doc/man/prunehistory.8 inn-2.5.5/doc/man/prunehistory.8 --- inn-2.5.4/doc/man/prunehistory.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/prunehistory.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "PRUNEHISTORY 8" -.TH PRUNEHISTORY 8 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH PRUNEHISTORY 8 "2014-03-15" "INN 2.5.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.5.4/doc/man/pullnews.1 inn-2.5.5/doc/man/pullnews.1 --- inn-2.5.4/doc/man/pullnews.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/pullnews.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "PULLNEWS 1" -.TH PULLNEWS 1 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH PULLNEWS 1 "2015-03-24" "INN 2.5.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 @@ -133,10 +133,11 @@ pullnews \- Pull news from multiple news servers and feed it to another .SH "SYNOPSIS" .IX Header "SYNOPSIS" -\&\fBpullnews\fR [\fB\-hnqRx\fR] [\fB\-b\fR \fIfraction\fR] [\fB\-c\fR \fIconfig\fR] [\fB\-C\fR \fIwidth\fR] +\&\fBpullnews\fR [\fB\-BhnOqRx\fR] [\fB\-a\fR \fIhashfeed\fR] [\fB\-b\fR \fIfraction\fR] +[\fB\-c\fR \fIconfig\fR] [\fB\-C\fR \fIwidth\fR] [\fB\-d\fR \fIlevel\fR] [\fB\-f\fR \fIfraction\fR] [\fB\-F\fR \fIfakehop\fR] [\fB\-g\fR \fIgroups\fR] [\fB\-G\fR \fInewsgroups\fR] [\fB\-H\fR \fIheaders\fR] [\fB\-k\fR \fIcheckpt\fR] [\fB\-l\fR \fIlogfile\fR] -[\fB\-m\fR \fIheader_pats\fR] [\fB\-M\fR \fInum\fR] [\fB\-N\fR \fItimeout\fR] [\fB\-O\fR] [\fB\-p\fR \fIport\fR] +[\fB\-m\fR \fIheader_pats\fR] [\fB\-M\fR \fInum\fR] [\fB\-N\fR \fItimeout\fR] [\fB\-p\fR \fIport\fR] [\fB\-P\fR \fIhop_limit\fR] [\fB\-Q\fR \fIlevel\fR] [\fB\-r\fR \fIfile\fR] [\fB\-s\fR \fIto-server\fR[:\fIport\fR]] [\fB\-S\fR \fImax-run\fR] [\fB\-t\fR \fIretries\fR] [\fB\-T\fR \fIconnect-pause\fR] [\fB\-w\fR \fInum\fR] [\fB\-z\fR \fIarticle-pause\fR] [\fB\-Z\fR \fIgroup-pause\fR] [\fIfrom-server\fR ...] @@ -161,12 +162,58 @@ destination server via the \s-1IHAVE\s0 setting up traditional peering and is not meant for handling large feeds. .SH "OPTIONS" .IX Header "OPTIONS" +.IP "\fB\-a\fR \fIhashfeed\fR" 4 +.IX Item "-a hashfeed" +This option is a deterministic way to control the flow of articles and to +split a feed. The \fIhashfeed\fR parameter must be in the form \f(CW\*(C`value/mod\*(C'\fR +or \f(CW\*(C`start\-end/mod\*(C'\fR. The Message-ID of each article is hashed using \s-1MD5\s0, +which results in a 128\-bit hash. The lowest 32\ bits are then taken +by default as the hashfeed value (which is an integer). If the hashfeed +value modulus \f(CW\*(C`mod\*(C'\fR plus one equals \f(CW\*(C`value\*(C'\fR or is between \f(CW\*(C`start\*(C'\fR +and \f(CW\*(C`end\*(C'\fR, \fBpullnews\fR will feed the article. All these numbers must +be integers. +.Sp +For instance: +.Sp +.Vb 2 +\& pullnews \-a 1/2 Feeds about 50% of all articles. +\& pullnews \-a 2/2 Feeds the other 50% of all articles. +.Ve +.Sp +Another example: +.Sp +.Vb 3 +\& pullnews \-a 1\-3/10 Feeds about 30% of all articles. +\& pullnews \-a 4\-5/10 Feeds about 20% of all articles. +\& pullnews \-a 6\-10/10 Feeds about 50% of all articles. +.Ve +.Sp +You can use an extended syntax of the form \f(CW\*(C`value/mod:offset\*(C'\fR or +\&\f(CW\*(C`start\-end/mod:offset\*(C'\fR (using an underscore \f(CW\*(C`_\*(C'\fR instead of a colon +\&\f(CW\*(C`:\*(C'\fR is also recognized). As \s-1MD5\s0 generates a 128\-bit return value, +it is possible to specify from which byte-offset the 32\-bit integer +used by hashfeed starts. The default value for \f(CW\*(C`offset\*(C'\fR is \f(CW\*(C`:0\*(C'\fR and +thirteen overlapping values from \f(CW\*(C`:0\*(C'\fR to \f(CW\*(C`:12\*(C'\fR can be used. Only up to +four totally independent values exist: \f(CW\*(C`:0\*(C'\fR, \f(CW\*(C`:4\*(C'\fR, \f(CW\*(C`:8\*(C'\fR and \f(CW\*(C`:12\*(C'\fR. +.Sp +Therefore, it allows to a generate a second level of deterministic +distribution. Indeed, if \fBpullnews\fR feeds \f(CW\*(C`1/2\*(C'\fR, it can go on +splitting thanks to \f(CW\*(C`1\-3/9:4\*(C'\fR for instance. Up to four levels of +deterministic distribution can be used. +.Sp +The algorithm is compatible with the one used by Diablo\ 5.1 and up. .IP "\fB\-b\fR \fIfraction\fR" 4 .IX Item "-b fraction" Backtrack on server numbering reset. Specify the proportion (\f(CW0.0\fR to \f(CW1.0\fR) of a group's articles to pull when the server's article number is less than our high for that group. When \fIfraction\fR is \f(CW1.0\fR, pull all the articles on a renumbered server. The default is to do nothing. +.IP "\fB\-B\fR" 4 +.IX Item "-B" +Feed is header-only, that is to say \fBpullnews\fR only feeds the headers +of the articles, plus one blank line. It adds the Bytes: header field +if the article does not already have one, and keeps the body only if +the article is a control article. .IP "\fB\-c\fR \fIconfig\fR" 4 .IX Item "-c config" Normally, the config file is stored in \fI~/.pullnews\fR for the user running @@ -222,11 +269,14 @@ whitespace-separated tuples (each tuple regular expression). For instance: .Sp .Vb 1 -\& \-m "Hdr1:regexp1 !Hdr2:regexp2" +\& \-m "Hdr1:regexp1 !Hdr2:regexp2 #Hdr3:regexp3 !#Hdr4:regexp4" .Ve .Sp specifies that the article will be passed only if the \f(CW\*(C`Hdr1:\*(C'\fR header matches \f(CW\*(C`regexp1\*(C'\fR and the \f(CW\*(C`Hdr2:\*(C'\fR header does not match \f(CW\*(C`regexp2\*(C'\fR. +Besides, if the \f(CW\*(C`Hdr3:\*(C'\fR header matches \f(CW\*(C`regexp3\*(C'\fR, that header is +removed; and if the \f(CW\*(C`Hdr4:\*(C'\fR header does not match \f(CW\*(C`regexp4\*(C'\fR, that +header is removed. .IP "\fB\-M\fR \fInum\fR" 4 .IX Item "-M num" Specify the maximum number of articles (per group) to process. @@ -366,13 +416,13 @@ The default config file. It is in the r .SH "HISTORY" .IX Header "HISTORY" \&\fBpullnews\fR was written by James Brister for \s-1INN\s0. The documentation was -rewritten in \s-1POD\s0 by Russ Allbery . +rewritten in \s-1POD\s0 by Russ Allbery . .PP 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 9504 2013\-07\-08 19:28:15Z iulius $ +\&\f(CW$Id:\fR pullnews.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIincoming.conf\fR\|(5), \fIrnews\fR\|(1). diff -Nurp inn-2.5.4/doc/man/qio.3 inn-2.5.5/doc/man/qio.3 --- inn-2.5.4/doc/man/qio.3 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/qio.3 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "qio 3" -.TH qio 3 "2011-06-10" "INN 2.5.4" "InterNetNews Documentation" +.TH qio 3 "2015-03-24" "INN 2.5.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,6 +236,6 @@ printing out each line preceded by its o .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Updated by -Russ Allbery . +Russ Allbery . .PP -\&\f(CW$Id:\fR qio.pod 9074 2010\-05\-31 19:01:32Z iulius $ +\&\f(CW$Id:\fR qio.pod 9768 2014\-12\-07 21:22:57Z iulius $ diff -Nurp inn-2.5.4/doc/man/radius.8 inn-2.5.5/doc/man/radius.8 --- inn-2.5.4/doc/man/radius.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/radius.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "RADIUS 8" -.TH RADIUS 8 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH RADIUS 8 "2015-03-24" "INN 2.5.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,9 +185,9 @@ implement it correctly. .SH "HISTORY" .IX Header "HISTORY" The \s-1RADIUS\s0 authenticator was originally written by Aidan Cully. This -documentation was written by Russ Allbery . +documentation was written by Russ Allbery . .PP -\&\f(CW$Id:\fR radius.pod 9478 2013\-05\-24 16:28:27Z iulius $ +\&\f(CW$Id:\fR radius.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinn\-radius.conf\fR\|(5), \fInnrpd\fR\|(8), \fIreaders.conf\fR\|(5) diff -Nurp inn-2.5.4/doc/man/rc.news.8 inn-2.5.5/doc/man/rc.news.8 --- inn-2.5.4/doc/man/rc.news.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/rc.news.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "RC.NEWS 8" -.TH RC.NEWS 8 "2014-03-15" "INN 2.5.4" "InterNetNews Documentation" +.TH RC.NEWS 8 "2015-03-24" "INN 2.5.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 @@ -133,7 +133,7 @@ rc.news \- Start or stop INN daemons .SH "SYNOPSIS" .IX Header "SYNOPSIS" -\&\fBrc.news\fR [start | stop] +\&\fBrc.news\fR [\f(CW\*(C`start\*(C'\fR | \f(CW\*(C`stop\*(C'\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBrc.news\fR can be used to start or stop \fBinnd\fR and supporting programs. @@ -160,6 +160,12 @@ If \fIovmethod\fR is set to \f(CW\*(C`ov If \fIrc.news.local\fR exists in \fIpathbin\fR: \fBrc.news.local\fR is run with argument \f(CW\*(C`start\*(C'\fR or \f(CW\*(C`stop\*(C'\fR (to perform site-specific startup or shutdown tasks). +.IP "\(bu" 4 +When started, if \s-1INN\s0 appears to have previously been shut down during +its expiry process, run \fBexpirerm\fR if there are articles to unlink. +.IP "\(bu" 4 +When started, if overview data appears to have just been rebuilt and +\&\fIactive\fR needs to be renumbered, then actually renumber it. .SH "OPTIONS" .IX Header "OPTIONS" .ie n .IP """start""" 4 @@ -170,27 +176,25 @@ If the first argument is \f(CW\*(C`start .ie n .IP """stop""" 4 .el .IP "\f(CWstop\fR" 4 .IX Item "stop" -If the first argument is \f(CW\*(C`stop\*(C'\fR, \fBrc.news\fR initiates \s-1INN\s0 shutdown. It -is recommended to throttle the server first as described in \fIctlinnd\fR\|(8). +If the first argument is \f(CW\*(C`stop\*(C'\fR, \fBrc.news\fR initiates \s-1INN\s0 shutdown. .SH "EXAMPLES" .IX Header "EXAMPLES" To start \s-1INN\s0 and leave certain error messages going to the terminal: .PP .Vb 1 -\& su \- news \-s /bin/sh \-c /rc.news +\& su news \-s /bin/sh \-c /rc.news .Ve .PP To run \s-1INN\s0 at startup time from appropriate system boot scripts: .PP .Vb 1 -\& su \- news \-s /bin/sh \-c /rc.news >/dev/console +\& su news \-s /bin/sh \-c /rc.news >> /rc.news 2>&1 .Ve .PP -To stop \s-1INN\s0 (throttling first): +To stop \s-1INN:\s0 .PP -.Vb 2 -\& /ctlinnd throttle reason -\& su \- news \-s /bin/sh \-c \*(Aq/rc.news stop\*(Aq +.Vb 1 +\& su news \-s /bin/sh \-c \*(Aq/rc.news stop\*(Aq .Ve .SH "BUGS" .IX Header "BUGS" @@ -204,7 +208,7 @@ user \s-1ID\s0. This manual page written by Jeffrey M.\ Vinocur for InterNetNews. .PP -\&\f(CW$Id:\fR rc.news.pod 9599 2014\-02\-08 13:56:54Z iulius $ +\&\f(CW$Id:\fR rc.news.pod 9727 2014\-09\-24 18:06:23Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fIctlinnd\fR\|(8), \fIcnfsstat\fR\|(8), \fIinn.conf\fR\|(5), \fIinnwatch\fR\|(8), \fIovdb\fR\|(5). +\&\fIctlinnd\fR\|(8), \fIcnfsstat\fR\|(8), \fIexpirerm\fR\|(8), \fIinn.conf\fR\|(5), \fIinnwatch\fR\|(8), \fIovdb\fR\|(5). diff -Nurp inn-2.5.4/doc/man/readers.conf.5 inn-2.5.5/doc/man/readers.conf.5 --- inn-2.5.4/doc/man/readers.conf.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/readers.conf.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "READERS.CONF 5" -.TH READERS.CONF 5 "2014-05-16" "INN 2.5.4" "InterNetNews Documentation" +.TH READERS.CONF 5 "2015-03-24" "INN 2.5.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 @@ -714,18 +714,24 @@ elsewhere: .Vb 4 \& auth example.com { \& hosts: "*.example.com, example.com" -\& default: +\& default: "" \& } \& \& access full { +\& users: "" \& newsgroups: * \& } .Ve .PP -Note that the access realm has no users: key and therefore applies to any -user identity. The only available auth realm only matches hosts in the -\&\*(L"example.com\*(R" domain, though, so any connections from other hosts will be -rejected immediately. +Note that the above access realm could also be written without the +users: key, in which case it applies to any user identity (though in +this example, the user identity that will be assigned to all matching +connections is \f(CW\*(C`\*(C'\fR). It is however recommended to keep +an explicit users: key so as to better view to whom the access block +applies. +.PP +As the only available auth realm only matches hosts in the \*(L"example.com\*(R" +domain, any connections from other hosts will be rejected immediately. .PP If you have some systems that should only have read-only access to the server, you can modify the example above slightly by adding an additional @@ -973,9 +979,9 @@ tunnel), use the localaddress: parameter .SH "HISTORY" .IX Header "HISTORY" Written by Aidan Cully for InterNetNews. Substantially -expanded by Russ Allbery . +expanded by Russ Allbery . .PP -\&\f(CW$Id:\fR readers.conf.pod 9636 2014\-05\-14 18:06:52Z iulius $ +\&\f(CW$Id:\fR readers.conf.pod 9799 2015\-03\-21 13:31:06Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIauth_krb5\fR\|(8), \fIckpasswd\fR\|(8), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), \fInewsfeeds\fR\|(5), diff -Nurp inn-2.5.4/doc/man/rnews.1 inn-2.5.5/doc/man/rnews.1 --- inn-2.5.4/doc/man/rnews.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/rnews.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "RNEWS 1" -.TH RNEWS 1 "2009-08-16" "INN 2.5.4" "InterNetNews Documentation" +.TH RNEWS 1 "2015-03-24" "INN 2.5.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 @@ -245,9 +245,9 @@ them. (Neither can the rest of \s-1INN\ .SH "HISTORY" .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten in -\&\s-1POD\s0 by Russ Allbery . +\&\s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR rnews.pod 8537 2009\-06\-28 08:48:31Z iulius $ +\&\f(CW$Id:\fR rnews.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbzip2\fR\|(1), \fIcompress\fR\|(1), \fIgzip\fR\|(1), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), \fInnrpd\fR\|(8). diff -Nurp inn-2.5.4/doc/man/scanlogs.8 inn-2.5.5/doc/man/scanlogs.8 --- inn-2.5.4/doc/man/scanlogs.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/scanlogs.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "SCANLOGS 8" -.TH SCANLOGS 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH SCANLOGS 8 "2009-05-21" "INN 2.5.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.5.4/doc/man/scanspool.8 inn-2.5.5/doc/man/scanspool.8 --- inn-2.5.4/doc/man/scanspool.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/scanspool.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "SCANSPOOL 8" -.TH SCANSPOOL 8 "2011-08-22" "INN 2.5.4" "InterNetNews Documentation" +.TH SCANSPOOL 8 "2011-08-22" "INN 2.5.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.5.4/doc/man/send-uucp.8 inn-2.5.5/doc/man/send-uucp.8 --- inn-2.5.4/doc/man/send-uucp.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/send-uucp.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "SEND-UUCP 8" -.TH SEND-UUCP 8 "2012-06-15" "INN 2.5.4" "InterNetNews Documentation" +.TH SEND-UUCP 8 "2012-06-15" "INN 2.5.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.5.4/doc/man/sendinpaths.8 inn-2.5.5/doc/man/sendinpaths.8 --- inn-2.5.4/doc/man/sendinpaths.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/sendinpaths.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "SENDINPATHS 8" -.TH SENDINPATHS 8 "2014-05-16" "INN 2.5.4" "InterNetNews Documentation" +.TH SENDINPATHS 8 "2014-05-16" "INN 2.5.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.5.4/doc/man/shlock.1 inn-2.5.5/doc/man/shlock.1 --- inn-2.5.4/doc/man/shlock.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/shlock.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "SHLOCK 1" -.TH SHLOCK 1 "2011-08-22" "INN 2.5.4" "InterNetNews Documentation" +.TH SHLOCK 1 "2011-08-22" "INN 2.5.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.5.4/doc/man/simpleftp.1 inn-2.5.5/doc/man/simpleftp.1 --- inn-2.5.4/doc/man/simpleftp.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/simpleftp.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "SIMPLEFTP 1" -.TH SIMPLEFTP 1 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH SIMPLEFTP 1 "2009-05-21" "INN 2.5.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.5.4/doc/man/sm.1 inn-2.5.5/doc/man/sm.1 --- inn-2.5.4/doc/man/sm.1 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/sm.1 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "SM 1" -.TH SM 1 "2010-02-08" "INN 2.5.4" "InterNetNews Documentation" +.TH SM 1 "2015-03-24" "INN 2.5.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 @@ -221,9 +221,9 @@ succeeded, you should run \fBsm\fR on on .SH "HISTORY" .IX Header "HISTORY" Written by Katsuhiro Kondou for InterNetNews. -Rewritten in \s-1POD\s0 by Russ Allbery . +Rewritten in \s-1POD\s0 by Russ Allbery . .PP -\&\f(CW$Id:\fR sm.pod 8818 2009\-11\-17 18:58:24Z iulius $ +\&\f(CW$Id:\fR sm.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIctlinnd\fR\|(8), \fIgrephistory\fR\|(1), \fIhistory\fR\|(5), \fIrnews\fR\|(1), \fIstorage.conf\fR\|(5). diff -Nurp inn-2.5.4/doc/man/storage.conf.5 inn-2.5.5/doc/man/storage.conf.5 --- inn-2.5.4/doc/man/storage.conf.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/storage.conf.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "STORAGE.CONF 5" -.TH STORAGE.CONF 5 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH STORAGE.CONF 5 "2009-05-21" "INN 2.5.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.5.4/doc/man/subscriptions.5 inn-2.5.5/doc/man/subscriptions.5 --- inn-2.5.4/doc/man/subscriptions.5 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/subscriptions.5 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "SUBSCRIPTIONS 5" -.TH SUBSCRIPTIONS 5 "2011-06-10" "INN 2.5.4" "InterNetNews Documentation" +.TH SUBSCRIPTIONS 5 "2011-06-10" "INN 2.5.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.5.4/doc/man/tally.control.8 inn-2.5.5/doc/man/tally.control.8 --- inn-2.5.4/doc/man/tally.control.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/tally.control.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "TALLY.CONTROL 8" -.TH TALLY.CONTROL 8 "2009-05-21" "INN 2.5.4" "InterNetNews Documentation" +.TH TALLY.CONTROL 8 "2009-05-21" "INN 2.5.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.5.4/doc/man/tdx-util.8 inn-2.5.5/doc/man/tdx-util.8 --- inn-2.5.4/doc/man/tdx-util.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/tdx-util.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "TDX-UTIL 8" -.TH TDX-UTIL 8 "2010-02-15" "INN 2.5.4" "InterNetNews Documentation" +.TH TDX-UTIL 8 "2015-03-24" "INN 2.5.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 @@ -351,9 +351,9 @@ corrupted overview information for a par using the tradspool article storage method. .SH "HISTORY" .IX Header "HISTORY" -Written by Russ Allbery for InterNetNews. +Written by Russ Allbery for InterNetNews. .PP -\&\f(CW$Id:\fR tdx\-util.pod 8975 2010\-02\-08 22:01:33Z iulius $ +\&\f(CW$Id:\fR tdx\-util.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fImakehistory\fR\|(8), \fInnrpd\fR\|(8). diff -Nurp inn-2.5.4/doc/man/tinyleaf.8 inn-2.5.5/doc/man/tinyleaf.8 --- inn-2.5.4/doc/man/tinyleaf.8 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/tinyleaf.8 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "TINYLEAF 8" -.TH TINYLEAF 8 "2009-11-15" "INN 2.5.4" "InterNetNews Documentation" +.TH TINYLEAF 8 "2015-03-24" "INN 2.5.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,9 +216,9 @@ An option to scan the spool directory fo them to the processor when starting up would be useful. .SH "HISTORY" .IX Header "HISTORY" -Written by Russ Allbery for InterNetNews. +Written by Russ Allbery for InterNetNews. .PP -\&\f(CW$Id:\fR tinyleaf.pod 8794 2009\-11\-15 09:28:19Z iulius $ +\&\f(CW$Id:\fR tinyleaf.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIhosts_access\fR\|(5), \fIinetd\fR\|(8), \fItcpd\fR\|(8). diff -Nurp inn-2.5.4/doc/man/tst.3 inn-2.5.5/doc/man/tst.3 --- inn-2.5.4/doc/man/tst.3 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/tst.3 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "tst 3" -.TH tst 3 "2011-06-10" "INN 2.5.4" "InterNetNews Documentation" +.TH tst 3 "2011-06-10" "INN 2.5.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.5.4/doc/man/uwildmat.3 inn-2.5.5/doc/man/uwildmat.3 --- inn-2.5.4/doc/man/uwildmat.3 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/man/uwildmat.3 2015-05-23 06:24:41.000000000 -0700 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "uwildmat 3" -.TH uwildmat 3 "2011-06-10" "INN 2.5.4" "InterNetNews Documentation" +.TH uwildmat 3 "2015-03-24" "INN 2.5.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 @@ -269,7 +269,7 @@ comp.sources.misc in April, 1991. Robert Elz added minus sign and close bracket handling in June, 1991. .PP -Russ Allbery added support for comma-separated patterns +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 @@ -284,7 +284,7 @@ substantial differences, including the e characters, and has noticable functionality changes. Any bugs present in it aren't Rich's fault. .PP -\&\f(CW$Id:\fR uwildmat.pod 9074 2010\-05\-31 19:01:32Z iulius $ +\&\f(CW$Id:\fR uwildmat.pod 9768 2014\-12\-07 21:22:57Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgrep\fR\|(1), \fIfnmatch\fR\|(3), \fIregex\fR\|(3), \fIregexp\fR\|(3). diff -Nurp inn-2.5.4/doc/pod/Makefile inn-2.5.5/doc/pod/Makefile --- inn-2.5.4/doc/pod/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 9478 2013-05-24 16:28:27Z iulius $ +## $Id: Makefile 9726 2014-09-24 18:05:04Z 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 @@ -35,7 +35,7 @@ MAN8 = ../man/actsync.8 ../man/archive.8 ../man/domain.8 ../man/expire.8 ../man/expireover.8 \ ../man/expirerm.8 ../man/ident.8 \ ../man/innbind.8 ../man/inncheck.8 ../man/innd.8 ../man/inndf.8 \ - ../man/innfeed.8 ../man/innupgrade.8 \ + ../man/innfeed.8 ../man/innupgrade.8 ../man/innwatch.8 \ ../man/innxmit.8 \ ../man/makedbz.8 ../man/makehistory.8 ../man/mod-active.8 \ ../man/news.daily.8 ../man/news2mail.8 ../man/ninpaths.8 \ @@ -134,6 +134,7 @@ maintclean: distclean ../man/inndf.8: inndf.pod ; $(POD2MAN) -s 8 $? > $@ ../man/innfeed.8: innfeed.pod ; $(POD2MAN) -s 8 $? > $@ ../man/innupgrade.8: innupgrade.pod ; $(POD2MAN) -s 8 $? > $@ +../man/innwatch.8: innwatch.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 $? > $@ diff -Nurp inn-2.5.4/doc/pod/active.pod inn-2.5.5/doc/pod/active.pod --- inn-2.5.4/doc/pod/active.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/active.pod 2015-05-23 06:24:41.000000000 -0700 @@ -119,9 +119,9 @@ B called with the B<-u> f =head1 HISTORY Written by Rich $alz for InterNetNews. Converted to -POD by Russ Allbery . +POD by Russ Allbery . -$Id: active.pod 9031 2010-03-23 18:31:55Z iulius $ +$Id: active.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/active.times.pod inn-2.5.5/doc/pod/active.times.pod --- inn-2.5.4/doc/pod/active.times.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/active.times.pod 2015-05-23 06:24:41.000000000 -0700 @@ -43,9 +43,9 @@ the time is not necessarily the same on =head1 HISTORY Written by Rich $alz for InterNetNews. Converted to -POD by Russ Allbery . +POD by Russ Allbery . -$Id: active.times.pod 8638 2009-09-28 19:59:48Z iulius $ +$Id: active.times.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/actsync.pod inn-2.5.5/doc/pod/actsync.pod --- inn-2.5.4/doc/pod/actsync.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/actsync.pod 2015-05-23 06:24:41.000000000 -0700 @@ -773,9 +773,9 @@ will be issued. Written by Landon Curt Noll for InterNetNews. Updated to support FTP fetching by David Lawrence . Converted to -POD by Russ Allbery . +POD by Russ Allbery . -$Id: actsync.pod 9475 2013-05-21 20:06:20Z eagle $ +$Id: actsync.pod 9768 2014-12-07 21:22:57Z iulius $ By Landon Curt Noll (chongo was here /\../\). diff -Nurp inn-2.5.4/doc/pod/archive.pod inn-2.5.5/doc/pod/archive.pod --- inn-2.5.4/doc/pod/archive.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/archive.pod 2015-05-23 06:24:41.000000000 -0700 @@ -120,9 +120,9 @@ Replace and with =head1 HISTORY Written by Rich $alz for InterNetNews. Converted to -POD by Russ Allbery . +POD by Russ Allbery . -$Id: archive.pod 7851 2008-05-26 19:33:08Z iulius $ +$Id: archive.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/auth_krb5.pod inn-2.5.5/doc/pod/auth_krb5.pod --- inn-2.5.4/doc/pod/auth_krb5.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/auth_krb5.pod 2015-05-23 06:24:41.000000000 -0700 @@ -78,16 +78,13 @@ error message. =head1 HISTORY Originally written by Christopher S. This documentation was -written by Russ Allbery based on Christopher's original +written by Russ Allbery based on Christopher's original F file. -$Id: auth_krb5.pod 8595 2009-08-21 08:29:26Z iulius $ +$Id: auth_krb5.pod 9775 2015-01-04 21:50:26Z eagle $ =head1 SEE ALSO ckpasswd(8), nnrpd(8), readers.conf(5). -The latest version of Christopher's original B may be found -on his web site at L. - =cut diff -Nurp inn-2.5.4/doc/pod/batcher.pod inn-2.5.5/doc/pod/batcher.pod --- inn-2.5.4/doc/pod/batcher.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/batcher.pod 2015-05-23 06:24:41.000000000 -0700 @@ -148,9 +148,9 @@ file as described above. =head1 HISTORY Written by Rich $alz for InterNetNews. Rewritten by -Russ Allbery in POD. +Russ Allbery in POD. -$Id: batcher.pod 8774 2009-11-15 09:23:27Z iulius $ +$Id: batcher.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/buffchan.pod inn-2.5.5/doc/pod/buffchan.pod --- inn-2.5.4/doc/pod/buffchan.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/buffchan.pod 2015-05-23 06:24:41.000000000 -0700 @@ -182,9 +182,9 @@ and the file F will have these li =head1 HISTORY Written by Rich $alz for InterNetNews. Converted to -POD by Russ Allbery . +POD by Russ Allbery . -$Id: buffchan.pod 7851 2008-05-26 19:33:08Z iulius $ +$Id: buffchan.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/buffindexed.conf.pod inn-2.5.5/doc/pod/buffindexed.conf.pod --- inn-2.5.4/doc/pod/buffindexed.conf.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/buffindexed.conf.pod 2015-05-23 06:24:41.000000000 -0700 @@ -141,9 +141,9 @@ user to read and write. =head1 HISTORY Written by Katsuhiro Kondou for InterNetNews. -Converted to POD by Russ Allbery . +Converted to POD by Russ Allbery . -$Id: buffindexed.conf.pod 8195 2008-11-29 11:07:02Z iulius $ +$Id: buffindexed.conf.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/ckpasswd.pod inn-2.5.5/doc/pod/ckpasswd.pod --- inn-2.5.4/doc/pod/ckpasswd.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/ckpasswd.pod 2015-05-23 06:24:41.000000000 -0700 @@ -182,9 +182,9 @@ it will print some sort of error message =head1 HISTORY -Written by Russ Allbery for InterNetNews. +Written by Russ Allbery for InterNetNews. -$Id: ckpasswd.pod 9532 2013-08-25 13:50:55Z iulius $ +$Id: ckpasswd.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/cnfsstat.pod inn-2.5.5/doc/pod/cnfsstat.pod --- inn-2.5.4/doc/pod/cnfsstat.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/cnfsstat.pod 2015-05-23 06:24:41.000000000 -0700 @@ -4,13 +4,14 @@ cnfsstat - Show usage of CNFS buffers =head1 SYNOPSIS -B [B<-ahpPsv>] [B<-c> I] [B<-l> [I]] [B<-m> I] +B [B<-ahpPsv>] [B<-c> I] [B<-i> I] +[B<-l> [I]] [B<-m> I] =head1 DESCRIPTION -I reads I/cycbuff.conf and I/storage.conf +B reads I/cycbuff.conf and I/storage.conf to determine which CNFS buffers are available. It then reads the specified -cyclic buffers and shows their usage status. I can be invoked from +cyclic buffers and shows their usage status. B can be invoked from B if I is set to true in F, and the result is written to syslog(3). @@ -20,7 +21,7 @@ written to syslog(3). =item B<-a> -Besides its usual output, I prints the age of the oldest article +Besides its usual output, B prints the age of the oldest article in the cycbuff. You may also want to use the B<-v> flag to see extended consistency checks. @@ -32,11 +33,18 @@ Only information for the specified class Print usage information and exit. +=item B<-i> I + +With this option, B has an initial sleep of I +seconds at startup. This is useful when B is started at +the same time as INN, so that it can wait a little before beginning +performing its checks. + =item B<-l> [I] -With this option, I prints a status snapshot every I, -and only exits if an error occurs. When unspecified, the default interval -is C<600> seconds. +With this option, B prints a status snapshot every I +seconds, and only exits if an error occurs. When unspecified, the +default interval is C<600> seconds. At each iteration, B checks whether the F and F files have been modified, and loads the new configuration @@ -70,7 +78,7 @@ storage and the F file. Written by Katsuhiro Kondou for InterNetNews. Converted to POD by Julien Elie. -$Id: cnfsstat.pod 9342 2011-08-16 14:00:13Z iulius $ +$Id: cnfsstat.pod 9725 2014-09-24 18:01:11Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/control.ctl.pod inn-2.5.5/doc/pod/control.ctl.pod --- inn-2.5.4/doc/pod/control.ctl.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/control.ctl.pod 2015-05-23 06:24:41.000000000 -0700 @@ -360,9 +360,9 @@ could have added them to the F for InterNetNews. Rewritten in -POD by Russ Allbery . +POD by Russ Allbery . -$Id: control.ctl.pod 8804 2009-11-15 09:29:51Z iulius $ +$Id: control.ctl.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/convdate.pod inn-2.5.5/doc/pod/convdate.pod --- inn-2.5.4/doc/pod/convdate.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/convdate.pod 2015-05-23 06:24:41.000000000 -0700 @@ -92,9 +92,9 @@ determine (or at least override) the loc =head1 HISTORY Written by Rich $alz , rewritten and updated by Russ -Allbery for the B<-d> and B<-l> flags. +Allbery for the B<-d> and B<-l> flags. -$Id: convdate.pod 8894 2010-01-17 13:04:04Z iulius $ +$Id: convdate.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/ctlinnd.pod inn-2.5.5/doc/pod/ctlinnd.pod --- inn-2.5.4/doc/pod/ctlinnd.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/ctlinnd.pod 2015-05-23 06:24:41.000000000 -0700 @@ -494,9 +494,9 @@ server replies are limited to S<4 KB> on =head1 HISTORY Written by Rich $alz for InterNetNews. Rewritten in -POD by Russ Allbery . +POD by Russ Allbery . -$Id: ctlinnd.pod 9466 2013-03-22 15:09:01Z iulius $ +$Id: ctlinnd.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/cycbuff.conf.pod inn-2.5.5/doc/pod/cycbuff.conf.pod --- inn-2.5.4/doc/pod/cycbuff.conf.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/cycbuff.conf.pod 2015-05-23 06:24:41.000000000 -0700 @@ -211,9 +211,9 @@ where C will be whatever you called =head1 HISTORY Written by Katsuhiro Kondou for InterNetNews. -Rewritten into POD by Russ Allbery . +Rewritten into POD by Russ Allbery . -$Id: cycbuff.conf.pod 8987 2010-02-16 19:48:45Z iulius $ +$Id: cycbuff.conf.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/distrib.pats.pod inn-2.5.5/doc/pod/distrib.pats.pod --- inn-2.5.4/doc/pod/distrib.pats.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/distrib.pats.pod 2015-05-23 06:24:41.000000000 -0700 @@ -41,9 +41,9 @@ in distributions(5). =head1 HISTORY Written by Rich $alz for InterNetNews. Converted to -POD by Russ Allbery . +POD by Russ Allbery . -$Id: distrib.pats.pod 8803 2009-11-15 09:29:41Z iulius $ +$Id: distrib.pats.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/expire.ctl.pod inn-2.5.5/doc/pod/expire.ctl.pod --- inn-2.5.4/doc/pod/expire.ctl.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/expire.ctl.pod 2015-05-23 06:24:41.000000000 -0700 @@ -167,9 +167,9 @@ When I is false, for cl =head1 HISTORY Written by Rich $alz for InterNetNews. Converted to -POD by Russ Allbery . +POD by Russ Allbery . -$Id: expire.ctl.pod 8970 2010-02-08 21:07:13Z iulius $ +$Id: expire.ctl.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/fastrm.pod inn-2.5.5/doc/pod/fastrm.pod --- inn-2.5.4/doc/pod/fastrm.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/fastrm.pod 2015-05-23 06:24:41.000000000 -0700 @@ -179,9 +179,9 @@ general fast file removal program. =head1 HISTORY B was originally written by . This manual page -was rewritten in POD by Russ Allbery for InterNetNews. +was rewritten in POD by Russ Allbery for InterNetNews. -$Id: fastrm.pod 8576 2009-08-18 13:55:11Z iulius $ +$Id: fastrm.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/getlist.pod inn-2.5.5/doc/pod/getlist.pod --- inn-2.5.4/doc/pod/getlist.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/getlist.pod 2015-05-23 06:24:41.000000000 -0700 @@ -100,9 +100,9 @@ to protect it from the shell. =head1 HISTORY Written by Landon Curt Noll for InterNetNews. Rewritten -in POD by Russ Allbery . +in POD by Russ Allbery . -$Id: getlist.pod 8837 2009-12-03 21:08:59Z iulius $ +$Id: getlist.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/grephistory.pod inn-2.5.5/doc/pod/grephistory.pod --- inn-2.5.4/doc/pod/grephistory.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/grephistory.pod 2015-05-23 06:24:41.000000000 -0700 @@ -110,9 +110,9 @@ It matches the number recorded in histor =head1 HISTORY Written by Rich $alz for InterNetNews. Rewritten in -POD by Russ Allbery . +POD by Russ Allbery . -$Id: grephistory.pod 8582 2009-08-19 08:04:32Z iulius $ +$Id: grephistory.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/hacking.pod inn-2.5.5/doc/pod/hacking.pod --- inn-2.5.4/doc/pod/hacking.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/hacking.pod 2015-05-23 06:24:41.000000000 -0700 @@ -762,12 +762,16 @@ to the IETF NNTP working group archives of the new NNTP standard. The old archived mailing list traffic contains a lot of interesting discussion of why NNTP is the way it is. -=item L +=item L + +A collection of documents about the Usenet article format, including +most of the relevant RFCs and Internet-Drafts. + +=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. Also contains a lot of references to other -relevant work. Another useful link is L. +S and S. =item L @@ -783,6 +787,6 @@ technical details as needed, useful when =back -$Id: hacking.pod 9574 2013-11-26 19:08:41Z iulius $ +$Id: hacking.pod 9788 2015-01-10 20:46:06Z eagle $ =cut diff -Nurp inn-2.5.4/doc/pod/hook-python.pod inn-2.5.5/doc/pod/hook-python.pod --- inn-2.5.4/doc/pod/hook-python.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/hook-python.pod 2015-05-23 06:24:41.000000000 -0700 @@ -682,6 +682,24 @@ like C, seen above. =back -$Id: hook-python.pod 8968 2010-02-08 21:06:43Z iulius $ +=head1 Available Packages + +This is an unofficial list of known filtering packages at the time of +publication. This is not an endorsement of these filters by ISC or +the INN developers, but is included as assistance in locating packages +which make use of this filter mechanism. + +=over 4 + +=item PyClean + +URL: L (maintained by Steve Crook) + +PyClean performs a similar role to the original Perl-based Cleanfeed, +an extremely powerful spam filter on Usenet. It uses F. + +=back + +$Id: hook-python.pod 9742 2014-11-09 20:35:21Z iulius $ =cut diff -Nurp inn-2.5.4/doc/pod/inews.pod inn-2.5.5/doc/pod/inews.pod --- inn-2.5.4/doc/pod/inews.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/inews.pod 2015-05-23 06:24:41.000000000 -0700 @@ -133,9 +133,9 @@ Unix news clients or by themselves. =head1 HISTORY Written by Rich $alz for InterNetNews. Rewritten in -POD by Russ Allbery . +POD by Russ Allbery . -$Id: inews.pod 8941 2010-01-28 20:45:16Z iulius $ +$Id: inews.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/inn-radius.conf.pod inn-2.5.5/doc/pod/inn-radius.conf.pod --- inn-2.5.4/doc/pod/inn-radius.conf.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/inn-radius.conf.pod 2015-05-23 06:24:41.000000000 -0700 @@ -97,10 +97,10 @@ The shared secret with the RADIUS server =head1 HISTORY -This documentation was written by Russ Allbery based on +This documentation was written by Russ Allbery based on the comments in the sample F file by Yury S. -$Id: inn-radius.conf.pod 9478 2013-05-24 16:28:27Z iulius $ +$Id: inn-radius.conf.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/inn.conf.pod inn-2.5.5/doc/pod/inn.conf.pod --- inn-2.5.4/doc/pod/inn.conf.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/inn.conf.pod 2015-05-23 06:24:41.000000000 -0700 @@ -757,7 +757,7 @@ and the default is false. Whether to enable the tracking system for client behavior. Tracked information is recorded to I/tracklogs/log-I, where ID is -determined by nnrpd's PID and launch time.) Currently the information +determined by nnrpd's PID and launch time. Currently the information recorded includes initial connection and posting; only information about clients listed in F is recorded. In addition, every posted article will be saved in I/trackposts/track.I, where @@ -1014,8 +1014,11 @@ The default value is C<10000>. =back -Finally, here are the parameters used by nnrpd(8) to provide TLS/SSL -support: +=head2 TLS/SSL Support for Reading and Posting + +Here are the parameters used by nnrpd(8) to provide TLS/SSL support. + +The parameters related to certificates are: =over 4 @@ -1056,6 +1059,66 @@ use it. =back +Finally, here are the parameters that can be used to tighten the level +of security provided by TLS/SSL in case new attacks exploitable in NNTP +on the TLS protocol or some supported cipher suite are discovered: + +=over 4 + +=item I + +The string describing the cipher suites OpenSSL will support. See +OpenSSL's ciphers(1) command documentation for details. The default +is unset, which uses OpenSSL's default cipher suite list. + +Formally, keeping the TLS_RSA_WITH_RC4_128_MD5 and +TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA cipher suites is important, as it +assures that any two compliant implementations can be configured to +interoperate (see RFC 4642 for more details). + +=item I + +Whether to enable or disable SSL/TLS compression support. This is a +boolean and the default is true, that is to say compression is enabled. + +=item I + +The name of the elliptic curve to use for ephemeral key exchanges. +To see the list of curves supported by OpenSSL, use C. + +The default is unset, which means an appropriate curve is auto-selected +(if your OpenSSL version supports it) or the NIST P-256 curve is used. + +This option is only effective if your OpenSSL version has ECDH support. + +=item I + +Whether to let the client or the server decide the preferred cipher. +This is a boolean and the default is false, that is to say the client +decides the preferred cipher. (Note that the default value will be +true in the next major release of INN.) + +=item I + +The list of SSL/TLS protocol versions to support. Valid protocols are +B, B, B, B and B. The default +value is to allow all these protocols: + + tlsprotocols: [ SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 ] + +Note that the default value will be to only allow TLS protocols in +the next major release of INN (using SSLv2 and SSLv3 will be disabled +by default). + +Also note that the listed protocols will be enabled only if the OpenSSL +library INN has been built with, supports them. In case OpenSSL supports +protocols more recent than TLSv1.2, they will be automatically enabled +(which anyway is fine regarding security, as newer protocols are supposed +to be more secure). + +=back + =head2 Monitoring These parameters control the behavior of innwatch(8), the program that @@ -1213,7 +1276,7 @@ default value. =item I How frequently (in seconds) innd(8) should write out a status report. The -report is written to I/inn_status.html or I/inn.status +report is written to I/inn_status.html or I/inn.status depending on the value of I. If this is set to C<0> or C, status reporting is disabled. The default value is C<0>. @@ -1475,7 +1538,7 @@ values for reference. Written by Rich $alz for InterNetNews and since modified, updated, and reorganized by innumerable other people. -$Id: inn.conf.pod 9608 2014-02-17 19:12:15Z iulius $ +$Id: inn.conf.pod 9823 2015-04-05 13:28:36Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/innbind.pod inn-2.5.5/doc/pod/innbind.pod --- inn-2.5.4/doc/pod/innbind.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/innbind.pod 2015-05-23 06:24:41.000000000 -0700 @@ -215,9 +215,9 @@ to bind the IPv4 socket on file descript =head1 HISTORY -Written by Russ Allbery for InterNetNews. +Written by Russ Allbery for InterNetNews. -$Id: innbind.pod 8894 2010-01-17 13:04:04Z iulius $ +$Id: innbind.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/innupgrade.pod inn-2.5.5/doc/pod/innupgrade.pod --- inn-2.5.4/doc/pod/innupgrade.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/innupgrade.pod 2015-05-23 06:24:41.000000000 -0700 @@ -117,8 +117,8 @@ alternate file. =head1 HISTORY -Written by Russ Allbery for InterNetNews. +Written by Russ Allbery for InterNetNews. -$Id: innupgrade.pod 8415 2009-04-12 20:19:35Z iulius $ +$Id: innupgrade.pod 9768 2014-12-07 21:22:57Z iulius $ =cut diff -Nurp inn-2.5.4/doc/pod/innwatch.pod inn-2.5.5/doc/pod/innwatch.pod --- inn-2.5.4/doc/pod/innwatch.pod 1969-12-31 16:00:00.000000000 -0800 +++ inn-2.5.5/doc/pod/innwatch.pod 2015-05-23 06:24:41.000000000 -0700 @@ -0,0 +1,65 @@ +=head1 NAME + +innwatch - Monitor the state of INN and the system + +=head1 SYNOPSIS + +B [B<-f> I] [B<-i> I] [B<-l> I] +[B<-t> I] + +=head1 DESCRIPTION + +B is normally started by B. Every +I seconds, as set in F, it examines the load +average, and the number of free blocks and inodes on the spool partition, +as described by its control file, F in I. + +If the load gets too high, or the disk gets too full, it throttles +the server. When the condition restores, it unblocks the server. +In addition, on each pass through the loop, it will check the logfile +I/news.crit to see if it has been modified, and send mail to +the news administrator if so. + +Upon receipt of an interrupt signal (SIGINT), B will report +its status in the file F in I. + +=head1 OPTIONS + +=over 4 + +=item B<-f> I + +Specify the control file to use, other than the default of +F in I. + +=item B<-i> I + +With this option, B has an initial sleep of I +seconds at startup. This is useful when B is started at +the same time as INN, so that it can wait a little before beginning +performing its checks. + +=item B<-l> I + +Specify a log file to watch, other than the default of F. + +=item B<-t> I + +Specify the period in seconds between checks, to override the value +set in F. + +=back + +=head1 HISTORY + +Written by Mike Cooper , with modifications by +, Steve Groom and +Christophe Wolfhugel . Converted to POD by Julien Elie. + +$Id: innwatch.pod 9726 2014-09-24 18:05:04Z iulius $ + +=head1 SEE ALSO + +inn.conf(5), innwatch.ctl(5), newslog(5), rc.news(8). + +=cut diff -Nurp inn-2.5.4/doc/pod/moderators.pod inn-2.5.5/doc/pod/moderators.pod --- inn-2.5.4/doc/pod/moderators.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/moderators.pod 2015-05-23 06:24:41.000000000 -0700 @@ -74,9 +74,9 @@ pairs should therefore not be created. =head1 HISTORY Written by Rich $alz for InterNetNews. Rewritten in -POD by Russ Allbery . +POD by Russ Allbery . -$Id: moderators.pod 8830 2009-11-29 16:49:59Z iulius $ +$Id: moderators.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/motd.news.pod inn-2.5.5/doc/pod/motd.news.pod --- inn-2.5.4/doc/pod/motd.news.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/motd.news.pod 2015-05-23 06:24:41.000000000 -0700 @@ -31,9 +31,9 @@ to news clients. =head1 HISTORY -Rewritten in POD by Russ Allbery for InterNetNews. +Rewritten in POD by Russ Allbery for InterNetNews. -$Id: motd.news.pod 9605 2014-02-17 18:04:21Z iulius $ +$Id: motd.news.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/news.pod inn-2.5.5/doc/pod/news.pod --- inn-2.5.4/doc/pod/news.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/news.pod 2015-05-23 06:24:41.000000000 -0700 @@ -1,3 +1,105 @@ +=head1 Changes in 2.5.5 + +=over 2 + +=item * + +New F parameters used by B to fine-tune the SSL/TLS +configuration have been added: I, I, +I, I, and I. +Many thanks to Christian Mock for his contribution that permits to +tighten the level of security provided by TLS/SSL. + +=item * + +B no longer creates a child process only for sleeping and then +waits on that process. The forked-off process only died after it had +done sleeping, which caused the INN service to drop into maintenance +state when for instance running under SMF on illumos/Solaris (since +not all processes die within timeout). Thanks to Lauri Tirkkonen for +the patch. + +=item * + +B no longer crashes if a channel is supposed to sleep but does not +define a waker callback function. Also, the highest file descriptor of +sleeping channels is now properly updated. Thanks to Petr Novopashenniy +for the bug report. + +=item * + +Add new B<-i> flag to both B and B to specify +how many seconds they should sleep at startup. It will especially be +useful in B so that these scripts are actually started and then +sleep by themselves, instead of being started a minute after B +and therefore not being properly stopped if C is invoked +during that minute. + +=item * + +Add new B<-f> flag to B to specify the configuration file to +use, in case it is not the default F file. + +=item * + +Add new B<-t> flag to B 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: I as +set in F, and then F if I is not writable. + +=item * + +When the creation of a newsgroup needed expanding the tradindexed group +index, an already-running B was not automatically noticing newly +created newsgroups. Richard Kettlewell fixed that issue. + +=item * + +Fixed flushing of CNFS buffers when using NFS storage. + +=item * + +Fixed how B is executed during an update of an INN +installation; on a few systems like AIX, it fails to run because its +taint mode was unproperly declared. + +=item * + +Several improvements have been contributed to B by Geraint +Edwards: the new B<-a> flag adds the Diablo-compatible hashfeed +ability, the new B<-B> flag triggers header-only feeding, the B<-m> +flag now permits to remove headers matching (or not) a given regexp, +and B reporting is improved. + +=item * + +B now properly takes into account the time B spends +writing when using SASL. + + +=item * + +B now only shows the first 50 lines from error log files. +Otherwise, all of them were present verbatim in the daily report, +and the resulting e-mail could bounce owing to its length. Thanks to +Jeffrey S for the bug report. + +=item * + +Fixed the use of the legacy AUTHINFO GENERIC command, that has been +broken since S (therefore proving readers probably no longer +use that method to authenticate). Thanks to Richard Kettlewell for +having noticed, though, and contributed to tighten the security of the +replies of this command. + +=item * + +Add the B contribution script written by +Jeffrey S to convert old-style F file to +F. + +=back + =head1 Changes in 2.5.4 =over 2 @@ -2608,6 +2710,6 @@ directory, for now). =back -$Id: news.pod 9644 2014-05-17 08:17:16Z iulius $ +$Id: news.pod 9866 2015-05-14 13:43:28Z iulius $ =cut diff -Nurp inn-2.5.4/doc/pod/newsfeeds.pod inn-2.5.5/doc/pod/newsfeeds.pod --- inn-2.5.4/doc/pod/newsfeeds.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/newsfeeds.pod 2015-05-23 06:24:41.000000000 -0700 @@ -440,7 +440,8 @@ C<_8> and C<_12>. Therefore, it allows to a generate a second level of deterministic distribution. Indeed, if a news server is fed C, it can go on -splitting thanks to C for instance. +splitting thanks to C for instance. Up to four levels of +deterministic distribution can be used. The algorithm is compatible with the one used by S and up. If you want to use the legacy quickhashing method used by Diablo @@ -810,9 +811,9 @@ the standard newsfeeds entries used by m =head1 HISTORY Written by Rich $alz for InterNetNews. Reformatted -and rewritten in POD by Russ Allbery . +and rewritten in POD by Russ Allbery . -$Id: newsfeeds.pod 9500 2013-07-01 08:21:58Z eagle $ +$Id: newsfeeds.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/newsgroups.pod inn-2.5.5/doc/pod/newsgroups.pod --- inn-2.5.4/doc/pod/newsgroups.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/newsgroups.pod 2015-05-23 06:24:41.000000000 -0700 @@ -118,9 +118,9 @@ The preferred format for a one-line news the policies by which the F file in L is maintained; they were originally written by David Lawrence and updated by Russ Allbery -. +. -$Id: newsgroups.pod 8822 2009-11-20 17:34:15Z iulius $ +$Id: newsgroups.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/nnrpd.pod inn-2.5.5/doc/pod/nnrpd.pod --- inn-2.5.4/doc/pod/nnrpd.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/nnrpd.pod 2015-05-23 06:24:41.000000000 -0700 @@ -224,6 +224,12 @@ run B. (Change the path to B with C<563> if C isn't defined in F on your system. +Optionally, you may set the I, I, +I, I, and I parameters +in F to fine-tune the behaviour of the SSL/TLS negotiation +whenever a new attack on the TLS protocol or some supported cipher +suite is discovered. + =head1 PROTOCOL DIFFERENCES B implements the NNTP commands defined in S (NNTP), @@ -294,7 +300,7 @@ support added by Rob Robertston |C<-r>] @@ -135,7 +135,7 @@ It is OK to specify C<-u> even if no upg Written by Heath Kehoe Ehakehoe@avalon.netE for InterNetNews. -$Id: ovdb_init.pod 7851 2008-05-26 19:33:08Z iulius $ +$Id: ovdb_init.pod 9766 2014-12-07 21:08:08Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/ovdb_monitor.pod inn-2.5.5/doc/pod/ovdb_monitor.pod --- inn-2.5.4/doc/pod/ovdb_monitor.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/ovdb_monitor.pod 2015-05-23 06:24:41.000000000 -0700 @@ -2,7 +2,7 @@ ovdb_monitor - Database maintenance -=head1 SYNOPSYS +=head1 SYNOPSIS Use C to start ovdb_monitor @@ -23,7 +23,7 @@ down the three children and wait for the Written by Heath Kehoe Ehakehoe@avalon.netE for InterNetNews. -$Id: ovdb_monitor.pod 7851 2008-05-26 19:33:08Z iulius $ +$Id: ovdb_monitor.pod 9766 2014-12-07 21:08:08Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/ovdb_server.pod inn-2.5.5/doc/pod/ovdb_server.pod --- inn-2.5.4/doc/pod/ovdb_server.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/ovdb_server.pod 2015-05-23 06:24:41.000000000 -0700 @@ -2,7 +2,7 @@ ovdb_server - overview 'helper' server -=head1 SYNOPSYS +=head1 SYNOPSIS Use C to start ovdb_server @@ -22,7 +22,7 @@ down its children and wait for their exi Written by Heath Kehoe Ehakehoe@avalon.netE for InterNetNews. -$Id: ovdb_server.pod 7851 2008-05-26 19:33:08Z iulius $ +$Id: ovdb_server.pod 9766 2014-12-07 21:08:08Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/ovdb_stat.pod inn-2.5.5/doc/pod/ovdb_stat.pod --- inn-2.5.4/doc/pod/ovdb_stat.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/ovdb_stat.pod 2015-05-23 06:24:41.000000000 -0700 @@ -2,7 +2,7 @@ ovdb_stat - Display information from the ovdb database -=head1 SYNOPSYS +=head1 SYNOPSIS B B<-Hgci> [B<-r> I] newsgroup [newsgroup ...] @@ -90,7 +90,7 @@ because it may leave stale locks in the Written by Heath Kehoe Ehakehoe@avalon.netE for InterNetNews. -$Id: ovdb_stat.pod 7851 2008-05-26 19:33:08Z iulius $ +$Id: ovdb_stat.pod 9766 2014-12-07 21:08:08Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/overchan.pod inn-2.5.5/doc/pod/overchan.pod --- inn-2.5.4/doc/pod/overchan.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/overchan.pod 2015-05-23 06:24:41.000000000 -0700 @@ -41,9 +41,9 @@ single space. Written by Rob Robertson and Rich $alz for InterNetNews. Man page rewritten in POD by Russ -Allbery . +Allbery . -$Id: overchan.pod 7851 2008-05-26 19:33:08Z iulius $ +$Id: overchan.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/pullnews.pod inn-2.5.5/doc/pod/pullnews.pod --- inn-2.5.4/doc/pod/pullnews.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/pullnews.pod 2015-05-23 06:24:41.000000000 -0700 @@ -4,10 +4,11 @@ pullnews - Pull news from multiple news =head1 SYNOPSIS -B [B<-hnqRx>] [B<-b> I] [B<-c> I] [B<-C> I] +B [B<-BhnOqRx>] [B<-a> I] [B<-b> I] +[B<-c> I] [B<-C> I] [B<-d> I] [B<-f> I] [B<-F> I] [B<-g> I] [B<-G> I] [B<-H> I] [B<-k> I] [B<-l> I] -[B<-m> I] [B<-M> I] [B<-N> I] [B<-O>] [B<-p> I] +[B<-m> I] [B<-M> I] [B<-N> I] [B<-p> I] [B<-P> I] [B<-Q> I] [B<-r> I] [B<-s> I[:I]] [B<-S> I] [B<-t> I] [B<-T> I] [B<-w> I] [B<-z> I] [B<-Z> I] [I ...] @@ -37,6 +38,43 @@ setting up traditional peering and is no =over 4 +=item B<-a> I + +This option is a deterministic way to control the flow of articles and to +split a feed. The I parameter must be in the form C +or C. The Message-ID of each article is hashed using MD5, +which results in a 128-bit hash. The lowest S<32 bits> are then taken +by default as the hashfeed value (which is an integer). If the hashfeed +value modulus C plus one equals C or is between C +and C, B will feed the article. All these numbers must +be integers. + +For instance: + + pullnews -a 1/2 Feeds about 50% of all articles. + pullnews -a 2/2 Feeds the other 50% of all articles. + +Another example: + + pullnews -a 1-3/10 Feeds about 30% of all articles. + pullnews -a 4-5/10 Feeds about 20% of all articles. + pullnews -a 6-10/10 Feeds about 50% of all articles. + +You can use an extended syntax of the form C or +C (using an underscore C<_> instead of a colon +C<:> is also recognized). As MD5 generates a 128-bit return value, +it is possible to specify from which byte-offset the 32-bit integer +used by hashfeed starts. The default value for C is C<:0> and +thirteen overlapping values from C<:0> to C<:12> can be used. Only up to +four totally independent values exist: C<:0>, C<:4>, C<:8> and C<:12>. + +Therefore, it allows to a generate a second level of deterministic +distribution. Indeed, if B feeds C<1/2>, it can go on +splitting thanks to C<1-3/9:4> for instance. Up to four levels of +deterministic distribution can be used. + +The algorithm is compatible with the one used by S and up. + =item B<-b> I Backtrack on server numbering reset. Specify the proportion (C<0.0> to C<1.0>) @@ -44,6 +82,13 @@ of a group's articles to pull when the s our high for that group. When I is C<1.0>, pull all the articles on a renumbered server. The default is to do nothing. +=item B<-B> + +Feed is header-only, that is to say B only feeds the headers +of the articles, plus one blank line. It adds the Bytes: header field +if the article does not already have one, and keeps the body only if +the article is a control article. + =item B<-c> I Normally, the config file is stored in F<~/.pullnews> for the user running @@ -109,10 +154,13 @@ Feed an article based on header matching whitespace-separated tuples (each tuple being a colon-separated header and regular expression). For instance: - -m "Hdr1:regexp1 !Hdr2:regexp2" + -m "Hdr1:regexp1 !Hdr2:regexp2 #Hdr3:regexp3 !#Hdr4:regexp4" specifies that the article will be passed only if the C header matches C and the C header does not match C. +Besides, if the C header matches C, that header is +removed; and if the C header does not match C, that +header is removed. =item B<-M> I @@ -276,13 +324,13 @@ The default config file. It is in the r =head1 HISTORY B was written by James Brister for INN. The documentation was -rewritten in POD by Russ Allbery . +rewritten in POD by Russ Allbery . Geraint S greatly improved B, adding no more than S<16 new> recognized flags, fixing some bugs and integrating the B contrib script by Kai Henningsen, adding again S<6 other> flags. -$Id: pullnews.pod 9504 2013-07-08 19:28:15Z iulius $ +$Id: pullnews.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/qio.pod inn-2.5.5/doc/pod/qio.pod --- inn-2.5.4/doc/pod/qio.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/qio.pod 2015-05-23 06:24:41.000000000 -0700 @@ -106,8 +106,8 @@ printing out each line preceded by its o =head1 HISTORY Written by Rich $alz for InterNetNews. Updated by -Russ Allbery . +Russ Allbery . -$Id: qio.pod 9074 2010-05-31 19:01:32Z iulius $ +$Id: qio.pod 9768 2014-12-07 21:22:57Z iulius $ =cut diff -Nurp inn-2.5.4/doc/pod/radius.pod inn-2.5.5/doc/pod/radius.pod --- inn-2.5.4/doc/pod/radius.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/radius.pod 2015-05-23 06:24:41.000000000 -0700 @@ -64,9 +64,9 @@ implement it correctly. =head1 HISTORY The RADIUS authenticator was originally written by Aidan Cully. This -documentation was written by Russ Allbery . +documentation was written by Russ Allbery . -$Id: radius.pod 9478 2013-05-24 16:28:27Z iulius $ +$Id: radius.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/rc.news.pod inn-2.5.5/doc/pod/rc.news.pod --- inn-2.5.4/doc/pod/rc.news.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/rc.news.pod 2015-05-23 06:24:41.000000000 -0700 @@ -4,7 +4,7 @@ rc.news - Start or stop INN daemons =head1 SYNOPSIS -B [start | stop] +B [C | C] =head1 DESCRIPTION @@ -45,6 +45,16 @@ If F exists in I argument C or C (to perform site-specific startup or shutdown tasks). +=item * + +When started, if INN appears to have previously been shut down during +its expiry process, run B if there are articles to unlink. + +=item * + +When started, if overview data appears to have just been rebuilt and +F needs to be renumbered, then actually renumber it. + =back =head1 OPTIONS @@ -58,8 +68,7 @@ B initiates INN startup. =item C -If the first argument is C, B initiates INN shutdown. It -is recommended to throttle the server first as described in ctlinnd(8). +If the first argument is C, B initiates INN shutdown. =back @@ -67,16 +76,15 @@ is recommended to throttle the server fi To start INN and leave certain error messages going to the terminal: - su - news -s /bin/sh -c /rc.news + su news -s /bin/sh -c /rc.news To run INN at startup time from appropriate system boot scripts: - su - news -s /bin/sh -c /rc.news >/dev/console + su news -s /bin/sh -c /rc.news >> /rc.news 2>&1 -To stop INN (throttling first): +To stop INN: - /ctlinnd throttle reason - su - news -s /bin/sh -c '/rc.news stop' + su news -s /bin/sh -c '/rc.news stop' =head1 BUGS @@ -91,10 +99,10 @@ user ID. This manual page written by Jeffrey S for InterNetNews. -$Id: rc.news.pod 9599 2014-02-08 13:56:54Z iulius $ +$Id: rc.news.pod 9727 2014-09-24 18:06:23Z iulius $ =head1 SEE ALSO -ctlinnd(8), cnfsstat(8), inn.conf(5), innwatch(8), ovdb(5). +ctlinnd(8), cnfsstat(8), expirerm(8), inn.conf(5), innwatch(8), ovdb(5). =cut diff -Nurp inn-2.5.4/doc/pod/readers.conf.pod inn-2.5.5/doc/pod/readers.conf.pod --- inn-2.5.4/doc/pod/readers.conf.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/readers.conf.pod 2015-05-23 06:24:41.000000000 -0700 @@ -624,17 +624,23 @@ elsewhere: auth example.com { hosts: "*.example.com, example.com" - default: + default: "" } access full { + users: "" newsgroups: * } -Note that the access realm has no users: key and therefore applies to any -user identity. The only available auth realm only matches hosts in the -"example.com" domain, though, so any connections from other hosts will be -rejected immediately. +Note that the above access realm could also be written without the +users: key, in which case it applies to any user identity (though in +this example, the user identity that will be assigned to all matching +connections is C<< >>). It is however recommended to keep +an explicit users: key so as to better view to whom the access block +applies. + +As the only available auth realm only matches hosts in the "example.com" +domain, any connections from other hosts will be rejected immediately. If you have some systems that should only have read-only access to the server, you can modify the example above slightly by adding an additional @@ -886,9 +892,9 @@ tunnel), use the localaddress: parameter =head1 HISTORY Written by Aidan Cully for InterNetNews. Substantially -expanded by Russ Allbery . +expanded by Russ Allbery . -$Id: readers.conf.pod 9636 2014-05-14 18:06:52Z iulius $ +$Id: readers.conf.pod 9799 2015-03-21 13:31:06Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/readme.pod inn-2.5.5/doc/pod/readme.pod --- inn-2.5.4/doc/pod/readme.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/readme.pod 2015-05-23 06:24:41.000000000 -0700 @@ -231,6 +231,9 @@ Cleanfeed was originally developed by Je until 1998. Then Marco d'Itri until 2002. Steve Crook has been maintaining it since 2007. +A Python-based variant of Cleanfeed, named PyClean, also exists and +can be found at L. + =item GUP (Group Update Program) URL: L @@ -306,6 +309,6 @@ L. Katsuhiro Kondou -$Id: readme.pod 9590 2013-12-19 17:48:22Z iulius $ +$Id: readme.pod 9742 2014-11-09 20:35:21Z iulius $ =cut diff -Nurp inn-2.5.4/doc/pod/rnews.pod inn-2.5.5/doc/pod/rnews.pod --- inn-2.5.4/doc/pod/rnews.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/rnews.pod 2015-05-23 06:24:41.000000000 -0700 @@ -131,9 +131,9 @@ them. (Neither can the rest of INN at p =head1 HISTORY Written by Rich $alz for InterNetNews. Rewritten in -POD by Russ Allbery . +POD by Russ Allbery . -$Id: rnews.pod 8537 2009-06-28 08:48:31Z iulius $ +$Id: rnews.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/sm.pod inn-2.5.5/doc/pod/sm.pod --- inn-2.5.4/doc/pod/sm.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/sm.pod 2015-05-23 06:24:41.000000000 -0700 @@ -105,9 +105,9 @@ succeeded, you should run B on one t =head1 HISTORY Written by Katsuhiro Kondou for InterNetNews. -Rewritten in POD by Russ Allbery . +Rewritten in POD by Russ Allbery . -$Id: sm.pod 8818 2009-11-17 18:58:24Z iulius $ +$Id: sm.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/tdx-util.pod inn-2.5.5/doc/pod/tdx-util.pod --- inn-2.5.4/doc/pod/tdx-util.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/tdx-util.pod 2015-05-23 06:24:41.000000000 -0700 @@ -227,9 +227,9 @@ using the tradspool article storage meth =head1 HISTORY -Written by Russ Allbery for InterNetNews. +Written by Russ Allbery for InterNetNews. -$Id: tdx-util.pod 8975 2010-02-08 22:01:33Z iulius $ +$Id: tdx-util.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/tinyleaf.pod inn-2.5.5/doc/pod/tinyleaf.pod --- inn-2.5.4/doc/pod/tinyleaf.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/tinyleaf.pod 2015-05-23 06:24:41.000000000 -0700 @@ -89,9 +89,9 @@ them to the processor when starting up w =head1 HISTORY -Written by Russ Allbery for InterNetNews. +Written by Russ Allbery for InterNetNews. -$Id: tinyleaf.pod 8794 2009-11-15 09:28:19Z iulius $ +$Id: tinyleaf.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/doc/pod/uwildmat.pod inn-2.5.5/doc/pod/uwildmat.pod --- inn-2.5.4/doc/pod/uwildmat.pod 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/doc/pod/uwildmat.pod 2015-05-23 06:24:41.000000000 -0700 @@ -155,7 +155,7 @@ comp.sources.misc in April, 1991. Robert Elz added minus sign and close bracket handling in June, 1991. -Russ Allbery added support for comma-separated patterns +Russ Allbery added support for comma-separated patterns and the C and C<@> metacharacters to the core wildmat routines in July, 2000. He also added support for UTF-8 characters, changed the default behavior to assume that both the text and the pattern are in UTF-8, and @@ -170,7 +170,7 @@ substantial differences, including the e characters, and has noticable functionality changes. Any bugs present in it aren't Rich's fault. -$Id: uwildmat.pod 9074 2010-05-31 19:01:32Z iulius $ +$Id: uwildmat.pod 9768 2014-12-07 21:22:57Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/expire/Makefile inn-2.5.5/expire/Makefile --- inn-2.5.4/expire/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/expire/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 8556 2009-08-05 21:01:48Z iulius $ +## $Id: Makefile 9781 2015-01-07 21:04:11Z iulius $ include ../Makefile.global @@ -97,17 +97,15 @@ expire.o: expire.c ../include/config.h . ../include/config.h ../include/inn/history.h ../include/inn/defines.h \ ../include/inn/innconf.h ../include/inn/messages.h \ ../include/inn/inndcomm.h ../include/inn/libinn.h \ - ../include/inn/newsuser.h ../include/config.h ../include/clibrary.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h + ../include/inn/newsuser.h ../include/inn/paths.h \ + ../include/inn/storage.h ../include/inn/options.h expireover.o: expireover.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/libinn.h ../include/inn/messages.h \ - ../include/inn/newsuser.h ../include/config.h ../include/clibrary.h \ - ../include/inn/ov.h ../include/inn/storage.h ../include/inn/options.h \ - ../include/inn/history.h ../include/inn/paths.h ../include/inn/qio.h \ - ../include/inn/storage.h + ../include/inn/newsuser.h ../include/inn/ov.h ../include/inn/storage.h \ + ../include/inn/options.h ../include/inn/history.h ../include/inn/paths.h \ + ../include/inn/qio.h ../include/inn/storage.h fastrm.o: fastrm.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ @@ -117,27 +115,24 @@ grephistory.o: grephistory.c ../include/ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/inn/history.h \ ../include/inn/defines.h ../include/inn/innconf.h \ - ../include/inn/messages.h ../include/inn/libinn.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h + ../include/inn/messages.h ../include/inn/libinn.h ../include/inn/paths.h \ + ../include/inn/storage.h ../include/inn/options.h makedbz.o: makedbz.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/dbz.h ../include/inn/libinn.h \ ../include/inn/defines.h ../include/inn/innconf.h \ - ../include/inn/libinn.h ../include/inn/messages.h \ - ../include/inn/newsuser.h ../include/config.h ../include/clibrary.h \ + ../include/inn/messages.h ../include/inn/newsuser.h \ ../include/inn/paths.h ../include/inn/qio.h ../include/inn/storage.h \ ../include/inn/options.h makehistory.o: makehistory.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/wait.h ../include/config.h \ - ../include/inn/buffer.h ../include/inn/defines.h \ - ../include/inn/history.h ../include/inn/innconf.h \ - ../include/inn/libinn.h ../include/inn/messages.h \ - ../include/inn/newsuser.h ../include/config.h ../include/clibrary.h \ - ../include/inn/ov.h ../include/inn/storage.h ../include/inn/options.h \ - ../include/inn/history.h ../include/inn/paths.h ../include/inn/qio.h \ - ../include/inn/storage.h ../include/inn/vector.h ../include/inn/wire.h + ../include/config.h ../include/portable/wait.h ../include/inn/buffer.h \ + ../include/inn/defines.h ../include/inn/history.h \ + ../include/inn/innconf.h ../include/inn/libinn.h \ + ../include/inn/messages.h ../include/inn/newsuser.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/options.h ../include/inn/paths.h \ + ../include/inn/qio.h ../include/inn/storage.h ../include/inn/vector.h \ + ../include/inn/wire.h prunehistory.o: prunehistory.c ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ diff -Nurp inn-2.5.4/expire/fastrm.c inn-2.5.5/expire/fastrm.c --- inn-2.5.4/expire/fastrm.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/expire/fastrm.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: fastrm.c 9024 2010-03-21 16:49:30Z iulius $ +/* $Id: fastrm.c 9845 2015-05-02 16:32:08Z iulius $ ** ** Delete a list of filenames or tokens from stdin. ** @@ -481,7 +481,7 @@ setup_dir(char *dir, int filecount) FIXME: It's too hard to figure out what this code does. It needs to be rewritten. */ - if (p != '\0' && relative_threshold > 0) { + if (*p != '\0' && relative_threshold > 0) { depth = slashcount(q); if (depth <= relative_threshold) { while (p > absolute && *--p != '/') diff -Nurp inn-2.5.4/frontends/Makefile inn-2.5.5/frontends/Makefile --- inn-2.5.4/frontends/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/frontends/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 9330 2011-08-09 17:24:23Z iulius $ +## $Id: Makefile 9781 2015-01-07 21:04:11Z iulius $ include ../Makefile.global @@ -85,7 +85,7 @@ ovdb_init: ovdb_init.o $(BOTH) ; $( ovdb_monitor: ovdb_monitor.o $(BOTH) ; $(LINK) ovdb_monitor.o $(STORELIBS) ovdb_server: ovdb_server.o $(BOTH) ; $(LINK) ovdb_server.o $(STORELIBS) ovdb_stat: ovdb_stat.o $(BOTH) ; $(LINK) ovdb_stat.o $(STORELIBS) -rnews: rnews.o $(LIBINN) ; $(LINK) rnews.o $(STORELIBS) +rnews: rnews.o $(BOTH) ; $(LINK) rnews.o $(STORELIBS) sm: sm.o $(BOTH) ; $(LINK) sm.o $(STORELIBS) ovdb_init.o: ovdb_init.c @@ -155,10 +155,9 @@ getlist.o: getlist.c ../include/config.h ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/paths.h inews.o: inews.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/time.h ../include/config.h \ - ../include/inn/innconf.h ../include/inn/defines.h \ - ../include/inn/libinn.h ../include/inn/messages.h \ - ../include/inn/newsuser.h ../include/config.h ../include/clibrary.h \ + ../include/config.h ../include/portable/time.h ../include/inn/innconf.h \ + ../include/inn/defines.h ../include/inn/libinn.h \ + ../include/inn/messages.h ../include/inn/newsuser.h \ ../include/inn/nntp.h ../include/inn/paths.h innconfval.o: innconfval.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ @@ -175,38 +174,35 @@ ovdb_init.o: ovdb_init.c ../include/conf ovdb_monitor.o: ovdb_monitor.c ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ - ../include/portable/setproctitle.h ../include/config.h \ - ../include/portable/wait.h ../include/inn/innconf.h \ - ../include/inn/defines.h ../include/inn/messages.h \ - ../include/inn/libinn.h ../include/inn/ov.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/history.h \ - ../storage/ovdb/ovdb.h ../storage/ovdb/ovdb-private.h + ../include/portable/setproctitle.h ../include/portable/wait.h \ + ../include/inn/innconf.h ../include/inn/defines.h \ + ../include/inn/messages.h ../include/inn/libinn.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/history.h ../storage/ovdb/ovdb.h \ + ../storage/ovdb/ovdb-private.h ovdb_server.o: ovdb_server.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/mmap.h ../include/config.h \ + ../include/config.h ../include/portable/mmap.h \ ../include/portable/time.h ../include/portable/setproctitle.h \ ../include/portable/socket.h ../include/portable/getaddrinfo.h \ ../include/portable/getnameinfo.h ../include/portable/wait.h \ ../include/inn/innconf.h ../include/inn/defines.h \ - ../include/inn/messages.h ../include/inn/libinn.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/ov.h ../include/inn/storage.h \ - ../include/inn/history.h ../storage/ovdb/ovdb.h \ + ../include/inn/messages.h ../include/inn/libinn.h ../include/inn/paths.h \ + ../include/inn/storage.h ../include/inn/options.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/history.h ../storage/ovdb/ovdb.h \ ../storage/ovdb/ovdb-private.h ovdb_stat.o: ovdb_stat.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/messages.h ../include/inn/libinn.h ../include/inn/ov.h \ ../include/inn/storage.h ../include/inn/options.h \ - ../include/inn/history.h ../include/inn/paths.h \ - ../include/inn/storage.h ../storage/ovdb/ovdb.h \ - ../storage/ovdb/ovdb-private.h + ../include/inn/history.h ../include/inn/paths.h ../include/inn/storage.h \ + ../storage/ovdb/ovdb.h ../storage/ovdb/ovdb-private.h rnews.o: rnews.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/wait.h ../include/config.h \ - ../include/inn/innconf.h ../include/inn/defines.h \ - ../include/inn/libinn.h ../include/inn/messages.h \ - ../include/inn/newsuser.h ../include/config.h ../include/clibrary.h \ + ../include/config.h ../include/portable/wait.h ../include/inn/innconf.h \ + ../include/inn/defines.h ../include/inn/libinn.h \ + ../include/inn/messages.h ../include/inn/newsuser.h \ ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ ../include/inn/options.h ../include/inn/wire.h sm.o: sm.c ../include/config.h ../include/inn/defines.h \ diff -Nurp inn-2.5.4/frontends/cnfsstat.in inn-2.5.5/frontends/cnfsstat.in --- inn-2.5.4/frontends/cnfsstat.in 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/frontends/cnfsstat.in 2015-05-23 06:24:41.000000000 -0700 @@ -1,7 +1,7 @@ #! /usr/bin/perl -w # fixscript will replace this line with code to load INN::Config -# $Id: cnfsstat.in 9342 2011-08-16 14:00:13Z iulius $ +# $Id: cnfsstat.in 9725 2014-09-24 18:01:11Z iulius $ # # Copyright Andreas Lamrecht 1998 # @@ -29,12 +29,13 @@ sub usage { Summary tool for CNFS Usage: - $0 [-ahpPsv] [-c class] [-l [seconds]] [-m buffer] + $0 [-ahpPsv] [-c class] [-i seconds] [-l [seconds]] [-m buffer] If called without args, does a one-time status of all CNFS buffers -a: print the age of the oldest article in the cycbuff -c class: print out status of CNFS buffers in that class -h: this information + -i seconds: initial sleep of that many seconds at startup -l [seconds]: loop like vmstat, default seconds = 600 -m buffer: print out information suitable for MRTG -p: print out an MRTG config file @@ -54,7 +55,7 @@ my ($oclass, $obuffer); my %opt = (c=>\$oclass, m=>\$obuffer); Getopt::Long::config('no_ignore_case'); GetOptions(\%opt, - "-a", "-c=s", "-h", "-l:i", "-m=s", + "-a", "-c=s", "-h", "-i=i", "-l:i", "-m=s", "-p", "-P", "-s", "-v"); usage() if $opt{'h'}; @@ -96,6 +97,14 @@ unless (read_storageconf()) { mrtg($obuffer) if $obuffer; mrtg_config() if $opt{'p'}; +# Initial sleep, before starting the work. +if(defined($opt{'i'}) && $opt{'i'} > 0) { + sleep($opt{'i'}); + if (!$use_syslog) { + print STDOUT "$opt{'i'} seconds later:\n"; + } +} + START: diff -Nurp inn-2.5.4/frontends/mailpost.in inn-2.5.5/frontends/mailpost.in --- inn-2.5.4/frontends/mailpost.in 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/frontends/mailpost.in 2015-05-23 06:24:41.000000000 -0700 @@ -2,8 +2,8 @@ # fixscript will replace this line with code to load INN::Config # mailpost - Yet another mail-to-news filter -# -# $Id: mailpost.in 9409 2012-05-28 18:43:20Z iulius $ +# +# $Id: mailpost.in 9831 2015-04-23 19:07:39Z iulius $ # # 21feb00 [added "lc" to duplicate header fixer stmt to make it case-insensitive] # doka 11may99 [fixed duplicate headers problem] @@ -18,6 +18,7 @@ use Getopt::Std; use IPC::Open3; use IO::Select; use POSIX qw(setsid); +use Sys::Hostname; use INN::Utils::Shlock; use strict; @@ -51,12 +52,12 @@ if ($use_syslog) { openlog($prog, 'pid', $INN::Config::syslog_facility); } -$usage .= "[ -r addr ][ -f addr ][ -a approved ][ -d distribution ]" . - " [ -m mailing-list ][ -b database ][ -o output-path ] [ -c wait-time ]" . - " [ -x header[:header...] ] [ -p port ] newsgroups" ; +$usage .= "[ -h ][ -n ][ -r addr ][ -f addr ][ -a approved ][ -d distribution ]" . + "[ -m mailing-list ][ -b database ][ -o output-path ][ -c wait-time ]" . + "[ -x header[:header...] ][ -p port ][ -t tempdir ] newsgroups" ; -use vars qw($opt_r $opt_f $opt_a $opt_d $opt_m $opt_b $opt_n $opt_o $opt_h $opt_c $opt_x $opt_p) ; -getopts("hr:f:a:d:m:b:no:c:x:p:") || die "usage: $usage\n" ; +use vars qw($opt_r $opt_f $opt_a $opt_d $opt_m $opt_b $opt_n $opt_o $opt_h $opt_c $opt_x $opt_p $opt_t) ; +getopts("hr:f:a:d:m:b:no:c:x:p:t:") || die "usage: $usage\n" ; die "usage: $usage\n" if $opt_h ; # @@ -66,22 +67,25 @@ die "usage: $usage\n" if $opt_h ; my $Sendmail = $INN::Config::mta ; my $Submit = $INN::Config::inews . " -S -h" . ($opt_p ? " -p $opt_p" : ''); -my $Database = ($opt_b || $INN::Config::pathtmp) . "/mailpost-msgid" ; -my $Maintainer = $INN::Config::newsmaster || "usenet" ; +my $Maintainer = $INN::Config::newsmaster || "usenet" ; my $WhereTo = $opt_o || $Submit ; -my $Mailname = $INN::Config::fromhost ; +my $Mailname = $INN::Config::fromhost || hostname ; -# Can't use $INN::Config::pathtmp as we're usually not running as news. -my $Tmpdir = "/var/tmp" ; +my $Databasedir = $opt_b || $INN::Config::pathtmp; +die "Database path $Databasedir is not a directory\n" unless -d $Databasedir; +die "Database directory $Databasedir is not writable\n" unless -w $Databasedir; +my $Database = $Databasedir . "/mailpost-msgid" ; + +# Can't always use $INN::Config::pathtmp as we're usually not running as news. +my $Tmpdir = $opt_t || (-w $INN::Config::pathtmp ? $INN::Config::pathtmp : "/var/tmp"); +die "Path $Tmpdir is not a directory\n" unless -d $Tmpdir; +die "Directory $Tmpdir is not writable\n" unless -w $Tmpdir; if ($debugging || $opt_n) { $Sendmail = "cat" ; $WhereTo = "cat" ; } -chop ($Mailname = `/bin/hostname`) if ! $Mailname ; - - # # Our command-line argument(s) are the list of newsgroups to post to. # @@ -189,7 +193,7 @@ for (;;) { syslog("err", $msg) unless -t STDERR; } die "$msg\n" ; - } + } $line .= "\n" . $_ ; next ; @@ -315,7 +319,7 @@ my %headers = (); $real_news_hdrs =~ s/((.*?:) .*?($|\n)([ \t]+.*?($|\n))*)/$headers{lc$2}++?"":"$1"/ges; # inews writes error messages to stdout. We want to capture those and mail -# them back to the newsmaster. Trying to write and read from a subprocess is +# them back to the newsmaster. Trying to write and read from a subprocess is # ugly and prone to deadlock, so we use a temp file. $tmpfile = sprintf "%s/mailpost.%d.%d", $Tmpdir, time, $$ ; @@ -335,7 +339,7 @@ Subject: mailpost failure ($newsgroups): EOF } - + print TMPFILE <<"EOF"; Path: ${path} From: ${fromHdr} @@ -343,7 +347,7 @@ Newsgroups: ${newsgroups} ${real_news_hdrs}Date: ${dateHdr} ${weird_mail_hdrs} EOF - + my $rest = ''; $rest .= $_ while (); $rest =~ s/\n*$/\n/g; # Remove trailing \n except very last. @@ -359,13 +363,13 @@ if ( ! $tmpfile ) { ## -## We've got the article in a temp file and now we validate some of the +## We've got the article in a temp file and now we validate some of the ## data we found and update our Message-ID database. ## mailArtAndDie ("no From: found") unless $from; mailArtAndDie ("no Message-ID: found") unless $message_id; -mailArtAndDie ("Malformed Message-ID ($message_id)") +mailArtAndDie ("Malformed Message-ID ($message_id)") if ($message_id !~ /\<(\S+)\@(\S+)\>/); @@ -521,7 +525,7 @@ Subject: mailpost failure ($newsgroups) $msg EOF - + if ($tmpfile && -f $tmpfile) { print SENDMAIL "\n-------- Article Contents\n\n" ; open(FILE, "<$tmpfile") || die "open($tmpfile): $!\n" ; @@ -611,7 +615,7 @@ mailpost - Feed an e-mail message into a B [B<-hn>] [B<-a> I] [B<-b> I] [B<-c> I] [B<-d> I] [B<-f> I] [B<-m> I] -[B<-o> I] [B<-p> I] [B<-r> I] +[B<-o> I] [B<-p> I] [B<-r> I] [B<-t> I] [B<-x> I
[B<:>I
...]] I =head1 DESCRIPTION @@ -634,7 +638,14 @@ newsmaster (selected at configure time a Normally, B is run by sendmail(8) via an alias entry: local-mail-wreck-bikes: "|/mailpost - -b /var/tmp -d local local.mail.rec.bicycles.racing" + -b /var/tmp -t /var/tmp -d local local.mail.rec.bicycles.racing" + +The B<-b> and B<-t> flags are useful to change the directories used by +B by default. As a matter of fact, though it is recommended to +run B 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 B runs as the +directories where to put the database and the temporary files. Instead of F, the mail spool directory can be specified, or any other directory where the B process has write access. @@ -645,16 +656,17 @@ or any other directory where the B I -If the B<-a> flag is used, the value given is added to the article -as an Approved: header. +If the B<-a> flag is used, the value given is added to the article as +an Approved: header. =item B<-b> I -If the B<-b> flag is used, then it defines the location of the 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 B process does not have write access to the news -temporary directory. The default value is I as set in F. +If the B<-b> 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 B +process does not have write access to the news temporary directory. +The default value is I as set in F. =item B<-c> I @@ -681,8 +693,8 @@ Print usage information and exit. =item B<-m> I -If the B<-m> flag is used, the value given is added to the article in a -Mailing-List: header, if such a header doesn't already exist. +If the B<-m> flag is used, the value given is added to the article in +a Mailing-List: header, if such a header doesn't already exist. =item B<-n> @@ -705,6 +717,15 @@ If given, B<-p> is passed along to B flag indicates what to use if no other value can be determined. +=item B<-t> I + +If the B<-t> 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 B process does not have +write access to. Two paths are tried by default: I as set +in F, and then F if I is not writable. + =item B<-x> I
[B<:>I
...] A colon-separated list of additional headers which should be treated as @@ -744,10 +765,10 @@ The default database files which record =head1 HISTORY -Written by Paul Vixie long ago and then hacked up by James Brister for INN -integration. +Written by Paul Vixie long ago and then hacked up by James Brister for +INN integration. -$Id: mailpost.in 9409 2012-05-28 18:43:20Z iulius $ +$Id: mailpost.in 9831 2015-04-23 19:07:39Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.5.4/frontends/pullnews.in inn-2.5.5/frontends/pullnews.in --- inn-2.5.4/frontends/pullnews.in 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/frontends/pullnews.in 2015-05-23 06:24:41.000000000 -0700 @@ -6,9 +6,17 @@ # Start Date: Sat, 10 Oct 1998 21:40:11 +0200 # Project: INN # File: pullnews.pl -# RCSId: $Id: pullnews.in 9505 2013-07-08 19:30:33Z iulius $ +# RCSId: $Id: pullnews.in 9797 2015-03-18 20:47:11Z iulius $ # # History: +# Full changelog can be found in the Subversion repository of the +# INN project. Major changes are: +# +# January 2010: Geraint A. Edwards added header-only feeding (-B); +# added ability to hashfeed (-a) - uses MD5 - Diablo-compatible; +# enabled -m to remove headers matching (or not) a given regexp; +# minor bug fix to rnews when -O; improved rnews reporting. +# # December 2008: Matija Nalis added -O (optimized mode, checking # whether the downstream server already has the article to download). # Bug fixes too. @@ -53,7 +61,7 @@ require 5.004; $0 =~ s!.*/!!; my $rcsID =<<'EOM'; -$Id: pullnews.in 9505 2013-07-08 19:30:33Z iulius $ +$Id: pullnews.in 9797 2015-03-18 20:47:11Z iulius $ EOM $SIG{INT} = \&outtaHere; @@ -107,19 +115,29 @@ END { } $usage =~ s!.*/!!; -$usage .= " [ -hnqRx -b fraction -c config -C width -d level +$usage .= " [ -BhnOqRx -a hashfeed -b fraction -c config -C width -d level -f fraction -F fakehop -g groups -G newsgroups -H headers - -k checkpt -l logfile -m header_pats -M num -N num -O + -k checkpt -l logfile -m header_pats -M num -N num -p port -P hop_limit -Q level -r file -s host[:port] -S num -t retries -T seconds -w num -z num -Z num ] [ upstream_host ... ] + -a hashfeed only feed article if the MD5 hash of the Message-ID + matches hashfeed (where hashfeed is of the form value/mod, + value/mod:offset, start-end/mod, or start-end/mod:offset). + The algorithm used is compatible with the one used by Diablo; + see the pullnews man page for more details. + -b fraction backtrack on server numbering reset. The proportion (0.0 to 1.0) of a group's articles to pull when the server's article number is less than our high for that group. When fraction is 1.0, pull all the articles on the server. The default is to do nothing. + -B feed is header-only (headers plus one blank line). + Add the Bytes: header field if needed. Keep body if + control article. + -c config specify the configuration file instead of the default of ~/.pullnews (in the running user's home directory). @@ -151,10 +169,13 @@ $usage .= " [ -hnqRx -b fraction -c conf -l logfile log progress/stats to logfile (default is stdout). - -m 'Hdr1:regexp1 !Hdr2:regexp2 ...' + -m 'Hdr1:regexp1 !Hdr2:regexp2 #Hdr3:regexp3 !#Hdr4:regexp4 ...' feed article only if: - the Hdr1: header matches regexp1 - and the Hdr2: header does not match regexp2. + the Hdr1: header matches regexp1; + and the Hdr2: header does not match regexp2; + also, process the message thus: + if the Hdr3: header matches regexp3, remove that header; + if the Hdr4: header does not match regexp4, remove it. -M num maximum number of articles (per group) to process before bailing out. @@ -208,11 +229,11 @@ $usage .= " [ -hnqRx -b fraction -c conf "; -use vars qw($opt_b $opt_c $opt_C $opt_d $opt_f $opt_F $opt_g $opt_G - $opt_h $opt_H $opt_k $opt_l $opt_m $opt_M $opt_n +use vars qw($opt_a $opt_b $opt_B $opt_c $opt_C $opt_d $opt_f $opt_F + $opt_g $opt_G $opt_h $opt_H $opt_k $opt_l $opt_m $opt_M $opt_n $opt_N $opt_O $opt_p $opt_P $opt_q $opt_Q $opt_r $opt_R $opt_s $opt_S $opt_t $opt_T $opt_w $opt_x $opt_z $opt_Z); -getopts("b:c:C:d:f:F:g:G:hH:k:l:m:M:nN:Op:P:qQ:r:Rs:S:t:T:w:xz:Z:") || die $usage; +getopts("a:b:Bc:C:d:f:F:g:G:hH:k:l:m:M:nN:Op:P:qQ:r:Rs:S:t:T:w:xz:Z:") || die $usage; die $usage if $opt_h; @@ -223,6 +244,8 @@ my $groupFile = $opt_c || $def my $localServer = $opt_s || $defaultHost; my $localPort = $opt_p || $defaultPort; my $quiet = $opt_q; +my $hashfeed = $opt_a || ''; +my $header_only = $opt_B; my $watermark = $opt_w; my $retries = $opt_t || $defaultRetries; my $retryTime = $opt_T || $defaultRetryTime; @@ -233,14 +256,19 @@ my $maxArts = $opt_M || $def my $no_op = $opt_n || 0; my $reader = $opt_R || 0; my $quietness = $opt_Q || 0; -my $skip_headers = defined $opt_H ? lc($opt_H) : ''; +my $skip_headers = lc($opt_H || ''); my $logFile = '>&STDOUT'; $logFile = ">>$opt_l" if $opt_l; my @hdr_to_match = split(/\s+/, $opt_m) if defined $opt_m; my $pathSteps = $opt_P if defined $opt_P; my $path_limit; -$localPort = $1 if not defined $opt_p and $localServer =~ s/:(\d+)$//; +# Find a possible port at the end of the news server name. +# Count the number of ":" to check that it is not an IPv6 address. +if (not defined $opt_p) { + my @colons = split(/:/, $localServer); + $localPort = $1 if ((scalar(@colons) == 2) and ($localServer =~ s/:(\d+)$//)); +} die "can\'t have both ``-s'' and ``-r''\n" if $opt_s && $opt_r; @@ -264,6 +292,26 @@ die "``-w'' value not an integer: $opt_w die "``-z'' value not an integer: $opt_z\n" if defined $opt_z and $opt_z !~ /^\d+$/; die "``-Z'' value not an integer: $opt_Z\n" if defined $opt_Z and $opt_Z !~ /^\d+$/; +if ($hashfeed ne '') { + my $a_err = "``-a'' value not in format ``start[-end]/mod[:offset]'': $opt_a\n"; + die $a_err if $opt_a !~ m!^(\d+)(?:-(\d+))?/(\d+)(?:[:_](\d+))?$!; + $hashfeed = { + 'low' => $1, + 'high' => $2 || $1, + 'modulus' => $3, + 'offset' => $4 || 0, + }; + die $a_err if $hashfeed->{'low'} > $hashfeed->{'high'} + or $hashfeed->{'modulus'} == 0 + or $hashfeed->{'offset'} > 12; + if ($hashfeed->{'low'} == 1 and $hashfeed->{'high'} == $hashfeed->{'modulus'}) { + $hashfeed = ''; + } else { + require Digest::MD5; + Digest::MD5->import(qw/md5/); + } +} + $quiet = 1 if $quietness > 1; my %NNTP_Args = (); $NNTP_Args{'Timeout'} = $opt_N if defined $opt_N; @@ -294,6 +342,8 @@ if ($rnews) { open(RNEWS, ">$rnews") || die "can't open rnews-format output: $rnews: $!\n"; } + $info{'rnews'}->{bytes} = 0; + $info{'rnews'}->{fed} = 0; } open(LOG, $logFile) || die "can't open logfile ($logFile)!: $!\n"; @@ -383,7 +433,7 @@ if ( not $quiet and not $quietness ) { print LOG " ``+'' is an article the downstream server accepted\n"; print LOG " ``x'' is an article the upstream server couldn't "; print LOG "give out\n"; - print LOG " ``m'' is an article skipped due to headers (-m or -P)\n"; + print LOG " ``m'' is an article skipped due to headers (-a, -m or -P)\n"; print LOG "\n"; print LOG "Writing to rnews-format output: $rnews\n\n" if $rnews; } @@ -437,11 +487,11 @@ foreach my $server (@servers) { }} if (!$upstream) { - print LOG "failed.\n" unless $quiet; + print LOG " failed.\n" unless $quiet; warn "can't connect to upstream server $server: $!\n"; next; } else { - print LOG "done.\n" unless $quiet; + print LOG " done.\n" unless $quiet; } if ($username && !$upstream->authinfo($username, $passwd)) { @@ -503,6 +553,9 @@ sub stats { if ($quiet) { printf LOG localtime() . " [$$] %d article%s to $localServer\n", $sum, ($sum != 1 ? "s" : ""); + } elsif ($rnews) { + printf LOG "\n%d article%s written to $rnews\n", + $sum, ($sum != 1 ? "s were" : " was"); } else { printf LOG "\n%d article%s offered to server on $localServer\n", $sum, ($sum != 1 ? "s were" : " was"); @@ -512,7 +565,7 @@ sub stats { if ($quiet) { print LOG localtime() . " [$$] $ltotal ok, $reftotal ref, $rejtotal rej\n"; - } else { + } elsif (not $rnews) { printf LOG "%d article%s accepted\n", $ltotal, ($ltotal != 1 ? "s were" : " was") if ($ltotal != 0); @@ -607,15 +660,16 @@ sub crossFeedGroup { if (!defined($narticles)) { # Group command failed. warn sprintf ("Group command failed for $group: %s %s\n", - $fromServer->code(), $fromServer->message()); + $fromServer->code() || 'NO_CODE', $fromServer->message()); return undef; } if (not $quiet) { printf LOG "\n%s:\n", $name; - printf LOG "\tlast checked: %s\n", scalar(localtime($prevDate)); - printf LOG "\t%d articles available. First %d Last %d\n", - $narticles, $first, $last; + printf LOG "\tLast checked: %s\n", + $prevDate ? scalar(localtime($prevDate)) : "never"; + printf LOG "\t%d article%s available (first %d, last %d)\n", + $narticles, $narticles != 1 ? "s" : "", $first, $last; } if (defined $watermark) { printf LOG "\tOur previous highest: %d\n", $prevHigh if not $quiet; @@ -629,6 +683,8 @@ sub crossFeedGroup { return 0 if ! $name; if ($narticles == 0) { print LOG " (nothing to get)\n" unless $quiet; + # Just update the time; keep the last known high watermark. + $shash->{$group} = [ time, $high ]; return 1; } @@ -667,7 +723,7 @@ sub crossFeedGroup { my $org_code = $fromServer->code(); # Continue if the article exists on the upstream server. - if ($org_code == 223) { + if ($org_code == 223 and not $rnews) { my $new_msgid = $toServer->nntpstat($org_msgid); my $new_code = $toServer->code(); print LOG "\tDEBUGGING $i\t$org_msgid ($org_code) => $new_code\n" if $debug >= 3; @@ -679,22 +735,43 @@ sub crossFeedGroup { } } - my $article = $skip_article ? '' : $fromServer->article($i); + my $add_bytes_header = 0; + my $is_control_art = 0; + my $article; + if (not $skip_article and $header_only) { + $article = $fromServer->head($i); + if ($fromServer->code() == 221) { + my $has_bytes_header = 0; + for my $hdr (@$article) { + if (lc(substr($hdr, 0, 6)) eq 'bytes:') { + $has_bytes_header = 1; + } elsif (lc(substr($hdr, 0, 8)) eq 'control:') { + $is_control_art = 1; + last; + } + } + $add_bytes_header = 1 if not $has_bytes_header; + push @{$article}, "\n" if not $is_control_art; + } + } + if (not $skip_article and (not $header_only or $is_control_art or $add_bytes_header)) { + $article = $fromServer->article($i); + } if ($article) { my $msgid; my $xref = 0; my $headers = 1; - my $idx; my $line_len = 0; - my $tx_len = 0; # Transmitted article length (bytes) (for rnews). + my $idx_blank_pre_body; # Index of the blank line between headers/body. + my $tx_len = 0; # Transmitted article length (bytes) (for rnews, Bytes:). my @header_nums_to_go = (); my $match_all_hdrs = 1; # Assume no headers to match. - my $skip_due_to_hdrs = 0; + my $skip_due_to_hdrs = 0; # Set to 1 if triggered by -P, 2 if by -m, 3 if by -a. my %m_found_hdrs = (); my $curr_hdr = ''; - for ($idx = 0 ; $idx < @{$article} ; $idx++) { + for (my $idx = 0 ; $idx < @{$article} ; $idx++) { $line_len = length($article->[$idx]); $len += $line_len; $tx_len += $line_len; @@ -702,9 +779,13 @@ sub crossFeedGroup { $info{bytes} += $line_len; next if not $headers; + $idx_blank_pre_body = $idx; $curr_hdr = lc($1) if $article->[$idx] =~ /^([^:[:blank:]]+):/; - $curr_hdr = ' ' if $article->[$idx] eq "\n"; + if ($article->[$idx] eq "\n") { + $headers = 0; + next; + } if ($match_all_hdrs and @hdr_to_match and $article->[$idx] =~ /^[^[:blank:]]/) { # Check header matches -m flag if new header. @@ -721,22 +802,33 @@ sub crossFeedGroup { my ($hdr_un, $val_un) = split(':', $unfolded_art_hdr, 2); $val_un = '' if not defined $val_un; $val_un =~ s/^\s*//; + my $remove_hdr = 0; for my $tuple_match (@hdr_to_match) { my ($hdr_m, $val_m) = split(':', $tuple_match, 2); my $negate_h = ($hdr_m =~ s/^!//); + my $remove_h = ($hdr_m =~ s/^#//); next if lc($hdr_un) ne lc($hdr_m); - $m_found_hdrs{lc($hdr_m)} = 1; + $m_found_hdrs{lc($hdr_m)} = 1 if not $remove_h; if ($negate_h) { if ($val_un =~ /$val_m/i) { print LOG "\tDEBUGGING $i\t-- $hdr_un [$val_un]\n" if $debug >= 2; - $match_all_hdrs = 0; + if (not $remove_h) { + $match_all_hdrs = 0; + } + } elsif ($remove_h) { + $remove_hdr = 1; } } elsif (not $val_un =~ /$val_m/i) { print LOG "\tDEBUGGING $i\t++ $hdr_un [$val_un]\n" if $debug >= 2; - $match_all_hdrs = 0; + if (not $remove_h) { + $match_all_hdrs = 0; + } + } elsif ($remove_h) { + $remove_hdr = 1; } last if not $match_all_hdrs; } + push @header_nums_to_go, $idx if $remove_hdr; } if (grep { $curr_hdr eq $_ } split(':', $skip_headers)) { @@ -769,22 +861,22 @@ sub crossFeedGroup { if ($opt_x && $article->[$idx] =~ m!^xref:!i) { $xref = 1; } - - $headers = 0 if $article->[$idx] eq "\n"; } - if (@hdr_to_match and (not $match_all_hdrs or @hdr_to_match != scalar(keys %m_found_hdrs))) { - print LOG "\tDEBUGGING $i\thdr_skip_art $i\n" if $debug >= 2; - $skip_due_to_hdrs = 1; + if (@hdr_to_match and (not $match_all_hdrs + or scalar(grep { ! /^!?#/ } @hdr_to_match) != keys %m_found_hdrs)) { + $skip_due_to_hdrs = 2; } while (@header_nums_to_go) { - my $idx = pop @header_nums_to_go; # Start from last. + my $idx = pop @header_nums_to_go; # Start from last, so numbers are not affected. my $cut = join("\n\t", splice(@{$article}, $idx, 1)); $tx_len -= length($cut); + $idx_blank_pre_body--; print LOG "\tDEBUGGING $i\tcut1 $cut" if $debug >= 2; while ($article->[$idx] =~ /^[[:space:]](.+)/) { # Folded lines. my $cut = join("\n\t", splice(@{$article}, $idx, 1)); $tx_len -= length($cut); + $idx_blank_pre_body--; print LOG "\tDEBUGGING $i\tcut_ $cut" if $debug >= 2; } } @@ -801,22 +893,58 @@ sub crossFeedGroup { if ($opt_x && !$xref) { warn "No Xref: header found in article, adding\n"; my $xref_h = "Xref: $server $group: $i\n"; - splice(@{$article}, $idx, 0, $xref_h); + splice(@{$article}, $idx_blank_pre_body, 0, $xref_h); $tx_len += length($xref_h); + $idx_blank_pre_body++; + } + + if ($add_bytes_header) { + # Compute the number of bytes the same way the :bytes + # metadata item would do. The additional Bytes: header + # field is not counted, as well as headers removed by + # pullnews. + my $bytes_real_count = $tx_len + scalar(@{$article}); + my $bytes_h = "Bytes: $bytes_real_count\n"; + splice(@{$article}, $idx_blank_pre_body, 0, $bytes_h); + $tx_len += length($bytes_h); + $idx_blank_pre_body++; + } + + if ($header_only and not $is_control_art and @{$article} > $idx_blank_pre_body+1) { + splice(@{$article}, $idx_blank_pre_body+1); + $tx_len = 0; + for my $line (@{$article}) { + $tx_len += length($line); + } + } + + if (not $skip_due_to_hdrs and ref $hashfeed) { + my $hash_val = unpack('N', substr(md5($msgid), 12-$hashfeed->{'offset'}, 4)) % $hashfeed->{'modulus'} + 1; + $skip_due_to_hdrs = 3 if $hash_val < $hashfeed->{'low'} or $hash_val > $hashfeed->{'high'}; } $pulled->{$server}->{$group}++; if ($skip_due_to_hdrs) { + if ($debug >= 2) { + print LOG "\tDEBUGGING $i\tskip_art: " . + ($skip_due_to_hdrs == 1 ? 'hopsPath' + : ($skip_due_to_hdrs == 2 ? 'hdr' + : ($skip_due_to_hdrs == 3 ? 'hashfeed' + : 'unknown'))) . + "\n"; + } print LOG "m" unless $quiet; } elsif ($rnews) { printf RNEWS "#! rnews %d\n", $tx_len; map { print RNEWS $_ } @{$article}; print LOG "+" unless $quiet; + $fed{$group}++; + $info{'rnews'}->{fed}++; + $info{fed}++; } else { if ($no_op) { print "Would offer $msgid\n"; - } elsif ($reader and not $toServer->post($article)) { # 240 article posted ok # 340 send article to be posted. End with . diff -Nurp inn-2.5.4/frontends/rnews.c inn-2.5.5/frontends/rnews.c --- inn-2.5.4/frontends/rnews.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/frontends/rnews.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: rnews.c 9024 2010-03-21 16:49:30Z iulius $ +/* $Id: rnews.c 9855 2015-05-14 13:13:11Z iulius $ ** ** A front-end for InterNetNews. ** @@ -855,10 +855,7 @@ int main(int ac, char *av[]) other setups where rnews might be setuid news or be run by other processes in the news group. */ if (getuid() == 0 || geteuid() == 0) { - uid_t uid; - - get_news_uid_gid(&uid, false, true); - setuid(uid); + ensure_news_user(true); } if (!innconf_read(NULL)) diff -Nurp inn-2.5.4/history/Makefile inn-2.5.5/history/Makefile --- inn-2.5.4/history/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/history/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 8556 2009-08-05 21:01:48Z iulius $ +## $Id: Makefile 9781 2015-01-07 21:04:11Z iulius $ include ../Makefile.global @@ -95,19 +95,18 @@ depend: $(SOURCES) $(EXTRA_SOURCES) # DO NOT DELETE THIS LINE -- make depend depends on it. his.o: his.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/time.h ../include/config.h \ - ../include/inn/history.h ../include/inn/defines.h \ - ../include/inn/messages.h ../include/inn/timer.h \ - ../include/inn/libinn.h ../include/inn/storage.h \ + ../include/config.h ../include/portable/time.h ../include/inn/history.h \ + ../include/inn/defines.h ../include/inn/messages.h \ + ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/storage.h \ ../include/inn/options.h hisinterface.h hismethods.h hismethods.o: hismethods.c hisinterface.h ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h hismethods.h hisv6/hisv6.h hisv6/hisv6.o: hisv6/hisv6.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h hisinterface.h ../include/config.h hisv6/hisv6.h \ - hisv6/hisv6-private.h ../include/inn/history.h ../include/inn/defines.h \ + ../include/config.h hisinterface.h hisv6/hisv6.h hisv6/hisv6-private.h \ + ../include/inn/history.h ../include/inn/defines.h \ ../include/inn/storage.h ../include/inn/options.h \ - ../include/inn/libinn.h ../include/inn/dbz.h ../include/inn/libinn.h \ - ../include/inn/innconf.h ../include/inn/timer.h ../include/inn/qio.h \ - ../include/inn/sequence.h ../include/inn/inndcomm.h + ../include/inn/libinn.h ../include/inn/dbz.h ../include/inn/innconf.h \ + ../include/inn/timer.h ../include/inn/qio.h ../include/inn/sequence.h \ + ../include/inn/inndcomm.h diff -Nurp inn-2.5.4/include/conffile.h inn-2.5.5/include/conffile.h --- inn-2.5.4/include/conffile.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/conffile.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,11 +1,11 @@ -/* $Revision: 6796 $ +/* $Id: conffile.h 9780 2015-01-07 21:03:00Z iulius $ ** ** Data structures, functions and cetera used for config file parsing. */ -#ifdef __cplusplus -extern "C" { -#endif +#include + +BEGIN_DECLS typedef struct { FILE *f; @@ -30,6 +30,4 @@ extern void CONFfclose(CONFFILE *); extern CONFTOKEN *CONFgettoken(CONFTOKEN *, CONFFILE *); -#ifdef __cplusplus -} -#endif +END_DECLS diff -Nurp inn-2.5.4/include/inn/dbz.h inn-2.5.5/include/inn/dbz.h --- inn-2.5.4/include/inn/dbz.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/inn/dbz.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,5 +1,5 @@ -#ifndef __DBZ_H__ -#define __DBZ_H__ +#ifndef INN_DBZ_H +#define INN_DBZ_H 1 /* Need the definition of HASH. */ #include "inn/libinn.h" @@ -73,4 +73,4 @@ extern void dbzgetoptions(dbzoptions *op END_DECLS -#endif /* __DBZ_H__ */ +#endif /* INN_DBZ_H */ diff -Nurp inn-2.5.4/include/inn/dispatch.h inn-2.5.5/include/inn/dispatch.h --- inn-2.5.4/include/inn/dispatch.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/inn/dispatch.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: dispatch.h 6376 2003-06-01 23:24:34Z rra $ +/* $Id: dispatch.h 9780 2015-01-07 21:03:00Z iulius $ ** ** Dispatch cvectors of commands to functions. ** @@ -10,6 +10,8 @@ #ifndef INN_DISPATCH_H #define INN_DISPATCH_H 1 +#include + /* Forward declarations. */ struct cvector; diff -Nurp inn-2.5.4/include/inn/hashtab.h inn-2.5.5/include/inn/hashtab.h --- inn-2.5.4/include/inn/hashtab.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/inn/hashtab.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: hashtab.h 5944 2002-12-08 02:33:08Z rra $ +/* $Id: hashtab.h 9768 2014-12-07 21:22:57Z iulius $ ** ** Generic hash table interface. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** A hash table takes a hash function that acts on keys, a function to diff -Nurp inn-2.5.4/include/inn/innconf.h inn-2.5.5/include/inn/innconf.h --- inn-2.5.4/include/inn/innconf.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/inn/innconf.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: innconf.h 9162 2011-01-23 10:24:23Z iulius $ +/* $Id: innconf.h 9753 2014-12-01 20:26:38Z iulius $ ** ** inn.conf parser interface. ** @@ -127,6 +127,11 @@ struct innconf { char *tlscapath; /* Path to a directory of CA certificates */ char *tlscertfile; /* Path to the SSL certificate to use */ char *tlskeyfile; /* Path to the key for the certificate */ + char *tlsciphers; /* OpenSSL-style cipher string */ + bool tlscompression; /* Turn TLS compression on/off */ + char *tlseccurve; /* ECDH curve name */ + bool tlspreferserverciphers; /* Make server select the cipher */ + struct vector *tlsprotocols; /* List of supported TLS versions */ #endif /* HAVE_SSL */ /* Monitoring */ diff -Nurp inn-2.5.4/include/inn/inndcomm.h inn-2.5.5/include/inn/inndcomm.h --- inn-2.5.4/include/inn/inndcomm.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/inn/inndcomm.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Revision: 7587 $ +/* $Id: inndcomm.h 9780 2015-01-07 21:03:00Z iulius $ ** ** Here be values used for communicating with the server once it is ** running. @@ -7,9 +7,9 @@ #ifndef INN_INNDCOMM_H #define INN_INNDCOMM_H 1 -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +#include + +BEGIN_DECLS /* The header for the ICC protocol is a one-byte protocol version followed by a 2 byte messages length*/ @@ -22,8 +22,6 @@ typedef char ICC_PROTOCOLTYPE ; /* Values for the protocol version field of the message. 8 bits wide. */ #define ICC_PROTOCOL_1 'a' - - #define SC_SEP '\001' #define SC_MAXFIELDS 6 @@ -89,7 +87,6 @@ extern const char *ICCfailure; # define RECVorREAD(fd, p, s) read((fd), (p), (s)) #endif -#ifdef __cplusplus -} -#endif /* __cplusplus */ -#endif /* !INN_INNDCOMM_H */ +END_DECLS + +#endif /* INN_INNDCOMM_H */ diff -Nurp inn-2.5.4/include/inn/libinn.h inn-2.5.5/include/inn/libinn.h --- inn-2.5.4/include/inn/libinn.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/inn/libinn.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,10 +1,10 @@ -/* $Id: libinn.h 8962 2010-02-08 20:54:57Z iulius $ +/* $Id: libinn.h 9780 2015-01-07 21:03:00Z iulius $ ** ** Here be declarations of functions in the InterNetNews library. */ -#ifndef LIBINN_H -#define LIBINN_H 1 +#ifndef INN_LIBINN_H +#define INN_LIBINN_H 1 #include @@ -238,4 +238,4 @@ END_DECLS /* 's isspace includes \n, which is not what we want. */ #define ISWHITE(c) ((c) == ' ' || (c) == '\t') -#endif /* LIBINN_H */ +#endif /* INN_LIBINN_H */ diff -Nurp inn-2.5.4/include/inn/newsuser.h inn-2.5.5/include/inn/newsuser.h --- inn-2.5.4/include/inn/newsuser.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/inn/newsuser.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,17 +1,17 @@ -/* $Id: newsuser.h 7703 2008-01-12 09:22:18Z iulius $ - * - * Declarations of functions to ensure running as "news" user/group. - * - * By Ivan Shmakov, 2007. - * This code is in the public domain. - * - */ +/* $Id: newsuser.h 9780 2015-01-07 21:03:00Z iulius $ +** +** Declarations of functions to ensure running as "news" user/group. +** +** By Ivan Shmakov, 2007. +** This code is in the public domain. +*/ -#ifndef RUNASUSER_H -#define RUNASUSER_H 1 +#ifndef INN_NEWSUSER_H +#define INN_NEWSUSER_H 1 -#include "config.h" -#include "clibrary.h" +#include + +BEGIN_DECLS int get_news_uid_gid(uid_t *uid, gid_t *gid, bool may_die); @@ -20,5 +20,6 @@ void ensure_news_user(bool may_setuid); void ensure_news_grp(bool may_setgid); void ensure_news_user_grp(bool may_setuid, bool may_setgid); -#endif +END_DECLS +#endif /* INN_NEWSUSER_H */ diff -Nurp inn-2.5.4/include/inn/ov.h inn-2.5.5/include/inn/ov.h --- inn-2.5.4/include/inn/ov.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/inn/ov.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,12 +1,14 @@ +/* $Id: ov.h 9780 2015-01-07 21:03:00Z iulius $ +*/ + #ifndef INN_OV_H #define INN_OV_H 1 +#include #include "storage.h" #include "inn/history.h" -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +BEGIN_DECLS #define OV_READ 1 #define OV_WRITE 2 @@ -75,8 +77,6 @@ enum { }; #endif -#ifdef __cplusplus -} -#endif /* __cplusplus */ +END_DECLS -#endif /* !INN_OV_H */ +#endif /* INN_OV_H */ diff -Nurp inn-2.5.4/include/inn/overview.h inn-2.5.5/include/inn/overview.h --- inn-2.5.4/include/inn/overview.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/inn/overview.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: overview.h 8519 2009-06-20 12:20:03Z iulius $ +/* $Id: overview.h 9780 2015-01-07 21:03:00Z iulius $ ** ** Overview API for storing and retrieving overview information. ** @@ -11,6 +11,7 @@ #ifndef INN_OVERVIEW_H #define INN_OVERVIEW_H 1 +#include #include /* FILE */ #include "inn/storage.h" diff -Nurp inn-2.5.4/include/inn/timer.h inn-2.5.5/include/inn/timer.h --- inn-2.5.4/include/inn/timer.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/inn/timer.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: timer.h 6129 2003-01-19 00:39:49Z rra $ +/* $Id: timer.h 9780 2015-01-07 21:03:00Z iulius $ ** ** Timer library interface. ** @@ -9,7 +9,7 @@ */ #ifndef INN_TIMER_H -#define INN_TIMER_H +#define INN_TIMER_H 1 #include diff -Nurp inn-2.5.4/include/inn/vector.h inn-2.5.5/include/inn/vector.h --- inn-2.5.4/include/inn/vector.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/inn/vector.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: vector.h 7188 2005-04-11 06:46:34Z rra $ +/* $Id: vector.h 9768 2014-12-07 21:22:57Z iulius $ ** ** Vector handling (counted lists of char *'s). ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** A vector is a simple array of char *'s combined with a count. It's a diff -Nurp inn-2.5.4/include/portable/alloca.h inn-2.5.5/include/portable/alloca.h --- inn-2.5.4/include/portable/alloca.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/portable/alloca.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: alloca.h 7187 2005-04-11 02:19:11Z rra $ +/* $Id: alloca.h 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement implementation of alloca. ** -** Written by Russ Allbery +** Written by Russ Allbery ** Taken largely from the methods in the Autoconf documentation. ** ** This is the magic required to get alloca to work properly on various diff -Nurp inn-2.5.4/include/portable/getaddrinfo.h inn-2.5.5/include/portable/getaddrinfo.h --- inn-2.5.4/include/portable/getaddrinfo.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/portable/getaddrinfo.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: getaddrinfo.h 9105 2010-09-10 18:00:05Z iulius $ +/* $Id: getaddrinfo.h 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement implementation of getaddrinfo. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** This is an implementation of the getaddrinfo family of functions for diff -Nurp inn-2.5.4/include/portable/getnameinfo.h inn-2.5.5/include/portable/getnameinfo.h --- inn-2.5.4/include/portable/getnameinfo.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/portable/getnameinfo.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: getnameinfo.h 9105 2010-09-10 18:00:05Z iulius $ +/* $Id: getnameinfo.h 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement implementation of getnameinfo. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** This is an implementation of the getnameinfo function for systems that diff -Nurp inn-2.5.4/include/portable/mmap.h inn-2.5.5/include/portable/mmap.h --- inn-2.5.4/include/portable/mmap.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/include/portable/mmap.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: mmap.h 6622 2004-01-12 06:11:46Z rra $ +/* $Id: mmap.h 9719 2014-09-22 19:19:40Z iulius $ ** ** Portability wrapper around . ** @@ -23,8 +23,8 @@ (actually a caddr_t, which is a typedef for a char *) instead of void * as is required by the standard. These macros add casts that silences compiler warnings on Solaris 8 without adversely affecting other platforms. (ISO C - allows macro definitions of this sort; this macro is not recursive.) */ -#define mmap(s, l, p, f, d, o) (void *) mmap((s), (l), (p), (f), (d), (o)) + allows macro definitions of this sort; this macro is not recursive.) + Do not redefine mmap because at least AIX 7.1 redefines it to mmap64. */ #define munmap(p, l) munmap((void *)(p), (l)) /* On some platforms, msync only takes two arguments. (ANSI C allows macro diff -Nurp inn-2.5.4/innd/Makefile inn-2.5.5/innd/Makefile --- inn-2.5.4/innd/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/innd/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 8921 2010-01-22 23:33:08Z iulius $ +## $Id: Makefile 9781 2015-01-07 21:04:11Z iulius $ include ../Makefile.global @@ -81,195 +81,176 @@ art.o: art.c ../include/config.h ../incl ../include/inn/md5.h ../include/inn/ov.h ../include/inn/storage.h \ ../include/inn/options.h ../include/inn/history.h \ ../include/inn/storage.h ../include/inn/vector.h ../include/inn/wire.h \ - innd.h ../include/portable/time.h ../include/config.h \ - ../include/portable/socket.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h ../include/inn/buffer.h \ - ../include/inn/history.h ../include/inn/messages.h \ - ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h + innd.h ../include/portable/time.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/inn/buffer.h ../include/inn/messages.h ../include/inn/timer.h \ + ../include/inn/libinn.h ../include/inn/nntp.h ../include/inn/paths.h cc.o: cc.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/qio.h innd.h ../include/portable/time.h \ - ../include/config.h ../include/portable/socket.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/inn/buffer.h ../include/inn/history.h \ - ../include/inn/messages.h ../include/inn/timer.h \ - ../include/inn/libinn.h ../include/inn/nntp.h ../include/inn/paths.h \ - ../include/inn/storage.h ../include/inn/options.h \ + ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/inn/buffer.h \ + ../include/inn/history.h ../include/inn/messages.h \ + ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ ../include/inn/inndcomm.h ../include/innperl.h chan.o: chan.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/network.h innd.h ../include/portable/time.h \ - ../include/config.h ../include/portable/socket.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/inn/buffer.h ../include/inn/history.h \ - ../include/inn/messages.h ../include/inn/timer.h \ - ../include/inn/libinn.h ../include/inn/nntp.h ../include/inn/paths.h \ - ../include/inn/storage.h ../include/inn/options.h + ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/inn/buffer.h \ + ../include/inn/history.h ../include/inn/messages.h \ + ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h icd.o: icd.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/mmap.h ../include/config.h \ - ../include/inn/innconf.h ../include/inn/defines.h ../include/inn/mmap.h \ - innd.h ../include/portable/time.h ../include/portable/socket.h \ + ../include/config.h ../include/portable/mmap.h ../include/inn/innconf.h \ + ../include/inn/defines.h ../include/inn/mmap.h innd.h \ + ../include/portable/time.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/inn/buffer.h ../include/inn/history.h \ - ../include/inn/messages.h ../include/inn/timer.h \ - ../include/inn/libinn.h ../include/inn/nntp.h ../include/inn/paths.h \ - ../include/inn/storage.h ../include/inn/options.h ../include/inn/ov.h \ - ../include/inn/storage.h ../include/inn/history.h + ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \ + ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ + ../include/inn/options.h ../include/inn/ov.h ../include/inn/storage.h innd.o: innd.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - ../include/inn/messages.h ../include/inn/newsuser.h ../include/config.h \ - ../include/clibrary.h ../include/innperl.h innd.h \ - ../include/portable/time.h ../include/config.h \ - ../include/portable/socket.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h ../include/inn/buffer.h \ - ../include/inn/history.h ../include/inn/timer.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/ov.h ../include/inn/storage.h \ - ../include/inn/history.h + ../include/inn/messages.h ../include/inn/newsuser.h ../include/innperl.h \ + innd.h ../include/portable/time.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/inn/buffer.h ../include/inn/history.h ../include/inn/timer.h \ + ../include/inn/libinn.h ../include/inn/nntp.h ../include/inn/paths.h \ + ../include/inn/storage.h ../include/inn/options.h ../include/inn/ov.h \ + ../include/inn/storage.h keywords.o: keywords.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/libinn.h ../include/inn/defines.h \ ../include/inn/innconf.h innd.h ../include/portable/time.h \ - ../include/config.h ../include/portable/socket.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/inn/buffer.h ../include/inn/history.h \ - ../include/inn/messages.h ../include/inn/timer.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h -lc.o: lc.c ../include/config.h ../include/inn/defines.h \ - ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - innd.h ../include/portable/time.h ../include/config.h \ ../include/portable/socket.h ../include/portable/getaddrinfo.h \ ../include/portable/getnameinfo.h ../include/inn/buffer.h \ ../include/inn/history.h ../include/inn/messages.h \ - ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ + ../include/inn/timer.h ../include/inn/nntp.h ../include/inn/paths.h \ + ../include/inn/storage.h ../include/inn/options.h +lc.o: lc.c ../include/config.h ../include/inn/defines.h \ + ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ + ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ + innd.h ../include/portable/time.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/inn/buffer.h ../include/inn/history.h \ + ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \ + ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ ../include/inn/options.h nc.o: nc.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/qio.h ../include/inn/version.h innd.h \ - ../include/portable/time.h ../include/config.h \ - ../include/portable/socket.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h ../include/inn/buffer.h \ - ../include/inn/history.h ../include/inn/messages.h \ - ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ + ../include/portable/time.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/inn/buffer.h ../include/inn/history.h \ + ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \ + ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ ../include/inn/options.h newsfeeds.o: newsfeeds.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - innd.h ../include/portable/time.h ../include/config.h \ - ../include/portable/socket.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h ../include/inn/buffer.h \ - ../include/inn/history.h ../include/inn/messages.h \ - ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ + innd.h ../include/portable/time.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/inn/buffer.h ../include/inn/history.h \ + ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \ + ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ ../include/inn/options.h ng.o: ng.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - innd.h ../include/portable/time.h ../include/config.h \ - ../include/portable/socket.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h ../include/inn/buffer.h \ - ../include/inn/history.h ../include/inn/messages.h \ - ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/ov.h ../include/inn/storage.h \ - ../include/inn/history.h + innd.h ../include/portable/time.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/inn/buffer.h ../include/inn/history.h \ + ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \ + ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ + ../include/inn/options.h ../include/inn/ov.h ../include/inn/storage.h perl.o: perl.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/wire.h ../include/inn/defines.h \ - innd.h ../include/portable/time.h ../include/config.h \ - ../include/portable/socket.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h ../include/inn/buffer.h \ - ../include/inn/history.h ../include/inn/messages.h \ - ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ + innd.h ../include/portable/time.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/inn/buffer.h ../include/inn/history.h \ + ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \ + ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ ../include/inn/options.h \ - ../include/ppport.h ../include/innperl.h + ../include/ppport.h \ + ../include/innperl.h proc.o: proc.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/wait.h ../include/config.h \ - innd.h ../include/portable/time.h ../include/portable/socket.h \ + ../include/config.h ../include/portable/wait.h innd.h \ + ../include/portable/time.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/inn/buffer.h ../include/inn/defines.h \ ../include/inn/history.h ../include/inn/messages.h \ ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h python.o: python.c ../include/config.h ../include/inn/defines.h \ - ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - ../include/inn/wire.h innd.h ../include/portable/time.h \ - ../include/config.h ../include/portable/socket.h \ + ../include/inn/system.h ../include/inn/options.h \ + ../include/clibrary.h ../include/config.h ../include/inn/innconf.h \ + ../include/inn/defines.h ../include/inn/wire.h innd.h \ + ../include/portable/time.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/inn/buffer.h ../include/inn/history.h \ - ../include/inn/messages.h ../include/inn/timer.h \ - ../include/inn/libinn.h ../include/inn/nntp.h ../include/inn/paths.h \ - ../include/inn/storage.h ../include/inn/options.h + ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \ + ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ + ../include/inn/options.h rc.o: rc.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/network.h ../include/inn/vector.h innd.h \ ../include/portable/time.h ../include/inn/buffer.h \ ../include/inn/history.h ../include/inn/messages.h \ ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h site.o: site.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - innd.h ../include/portable/time.h ../include/config.h \ - ../include/portable/socket.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h ../include/inn/buffer.h \ - ../include/inn/history.h ../include/inn/messages.h \ - ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ + innd.h ../include/portable/time.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/inn/buffer.h ../include/inn/history.h \ + ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \ + ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ ../include/inn/options.h status.o: status.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/inn/network.h ../include/inn/defines.h \ ../include/inn/innconf.h ../include/inn/version.h innd.h \ ../include/portable/time.h ../include/inn/buffer.h \ ../include/inn/history.h ../include/inn/messages.h \ ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/innperl.h + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/innperl.h util.o: util.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/libinn.h innd.h ../include/portable/time.h \ - ../include/config.h ../include/portable/socket.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/inn/buffer.h ../include/inn/history.h \ - ../include/inn/messages.h ../include/inn/timer.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h -wip.o: wip.c ../include/config.h ../include/inn/defines.h \ - ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - innd.h ../include/portable/time.h ../include/config.h \ ../include/portable/socket.h ../include/portable/getaddrinfo.h \ ../include/portable/getnameinfo.h ../include/inn/buffer.h \ ../include/inn/history.h ../include/inn/messages.h \ - ../include/inn/timer.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ + ../include/inn/timer.h ../include/inn/nntp.h ../include/inn/paths.h \ + ../include/inn/storage.h ../include/inn/options.h +wip.o: wip.c ../include/config.h ../include/inn/defines.h \ + ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ + ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ + innd.h ../include/portable/time.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/inn/buffer.h ../include/inn/history.h \ + ../include/inn/messages.h ../include/inn/timer.h ../include/inn/libinn.h \ + ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ ../include/inn/options.h tinyleaf.o: tinyleaf.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/wait.h ../include/config.h \ - ../include/inn/dispatch.h ../include/inn/messages.h \ - ../include/inn/defines.h ../include/inn/md5.h ../include/inn/nntp.h \ - ../include/inn/utility.h ../include/inn/vector.h \ + ../include/config.h ../include/portable/wait.h ../include/inn/dispatch.h \ + ../include/inn/defines.h ../include/inn/messages.h ../include/inn/md5.h \ + ../include/inn/nntp.h ../include/inn/utility.h ../include/inn/vector.h \ ../include/inn/version.h ../include/inn/libinn.h diff -Nurp inn-2.5.4/innd/art.c inn-2.5.5/innd/art.c --- inn-2.5.4/innd/art.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/innd/art.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: art.c 9521 2013-07-31 17:27:33Z iulius $ +/* $Id: art.c 9836 2015-05-02 11:57:40Z iulius $ ** ** Article-processing. */ @@ -1688,7 +1688,7 @@ ARTpropagate(ARTDATA *data, const char * } else if (HDR_FOUND(HDR__INJECTION_INFO)) { begin = (char *) skip_cfws(HDR(HDR__INJECTION_INFO)); - if (begin == '\0') + if (*begin == '\0') continue; /* The path identity ends with ';' or CFWS. */ diff -Nurp inn-2.5.4/innd/chan.c inn-2.5.5/innd/chan.c --- inn-2.5.4/innd/chan.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/innd/chan.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: chan.c 9470 2013-05-20 16:34:54Z iulius $ +/* $Id: chan.c 9801 2015-03-21 13:37:54Z iulius $ ** ** I/O channel (and buffer) processing. ** @@ -571,6 +571,21 @@ CHANresetlast(int fd) /* +** When removing a channel from the sleep mask, we want to lower the last +** file descriptor if we removed the highest one. Called from SCHANremove. +*/ +static void +CHANresetlastsleeping(int fd) +{ + if (fd == channels.max_sleep_fd) { + while ( !FD_ISSET(channels.max_sleep_fd, &channels.sleep_set) + && channels.max_sleep_fd > 1) + channels.max_sleep_fd--; + } +} + + +/* ** Mark a channel as an active reader. */ void @@ -629,8 +644,6 @@ SCHANadd(CHANNEL *cp, time_t wake, void void SCHANremove(CHANNEL *cp) { - int fd; - if (!CHANsleeping(cp)) return; FD_CLR(cp->fd, &channels.sleep_set); @@ -638,12 +651,7 @@ SCHANremove(CHANNEL *cp) cp->Waketime = 0; /* If this was the highest descriptor, get a new highest. */ - if (cp->fd == channels.max_sleep_fd) { - fd = channels.max_sleep_fd; - while (!FD_ISSET(fd, &channels.sleep_set) && fd > 1) - fd--; - channels.max_sleep_fd = fd; - } + CHANresetlastsleeping(cp->fd); } @@ -1276,12 +1284,21 @@ CHANreadloop(void) if (cp->Type == CTfree) { warn("%s %d free but was in SMASK", CHANname(cp), fd); FD_CLR(fd, &channels.sleep_set); + channels.sleep_count--; + CHANresetlastsleeping(fd); close(fd); cp->fd = -1; } else { cp->LastActive = Now.tv_sec; SCHANremove(cp); - (*cp->Waker)(cp); + if (cp->Waker != NULL) { + (*cp->Waker)(cp); + } else { + name = CHANname(cp); + warn("%s %d sleeping without Waker", name, fd); + SITEchanclose(cp); + CHANclose(cp, name); + } } } diff -Nurp inn-2.5.4/innd/tinyleaf.c inn-2.5.5/innd/tinyleaf.c --- inn-2.5.4/innd/tinyleaf.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/innd/tinyleaf.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: tinyleaf.c 8838 2009-12-03 21:11:00Z iulius $ +/* $Id: tinyleaf.c 9768 2014-12-07 21:22:57Z iulius $ ** ** An extremely lightweight receive-only NNTP server. ** -** Copyright 2003, 2004 Russ Allbery +** Copyright 2003, 2004 Russ Allbery ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and associated documentation files (the "Software"), diff -Nurp inn-2.5.4/innfeed/Makefile inn-2.5.5/innfeed/Makefile --- inn-2.5.4/innfeed/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/innfeed/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 9454 2012-12-30 18:01:39Z eagle $ +## $Id: Makefile 9781 2015-01-07 21:04:11Z iulius $ include ../Makefile.global @@ -103,19 +103,18 @@ depend: Makefile $(SOURCES) article.o: article.c innfeed.h ../include/inn/timer.h \ ../include/inn/defines.h ../include/inn/system.h ../include/config.h \ ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/mmap.h ../include/config.h \ - ../include/inn/messages.h ../include/inn/libinn.h \ - ../include/inn/storage.h ../include/inn/options.h article.h misc.h \ - buffer.h endpoint.h + ../include/config.h ../include/portable/mmap.h ../include/inn/messages.h \ + ../include/inn/libinn.h ../include/inn/storage.h \ + ../include/inn/options.h article.h misc.h buffer.h endpoint.h buffer.o: buffer.c innfeed.h ../include/inn/timer.h \ ../include/inn/defines.h ../include/inn/system.h ../include/config.h \ ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/messages.h ../include/inn/libinn.h \ buffer.h misc.h config_l.o: config_l.c innfeed.h ../include/inn/timer.h \ - ../include/inn/defines.h ../include/inn/system.h \ - ../include/inn/libinn.h configfile.h config_y.h misc.h \ - ../include/config.h ../include/inn/defines.h ../include/inn/options.h + ../include/inn/defines.h ../include/inn/system.h ../include/inn/libinn.h \ + configfile.h config_y.h misc.h ../include/config.h \ + ../include/inn/defines.h ../include/inn/options.h config_y.o: config_y.c innfeed.h ../include/inn/timer.h \ ../include/inn/defines.h ../include/inn/system.h ../include/config.h \ ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \ @@ -124,7 +123,7 @@ config_y.o: config_y.c innfeed.h ../incl connection.o: connection.c innfeed.h ../include/inn/timer.h \ ../include/inn/defines.h ../include/inn/system.h ../include/config.h \ ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/portable/time.h ../include/inn/innconf.h \ ../include/inn/messages.h ../include/inn/network.h \ @@ -133,7 +132,7 @@ connection.o: connection.c innfeed.h ../ endpoint.o: endpoint.c innfeed.h ../include/inn/timer.h \ ../include/inn/defines.h ../include/inn/system.h ../include/config.h \ ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/portable/time.h ../include/inn/innconf.h \ ../include/inn/messages.h ../include/inn/libinn.h buffer.h misc.h \ @@ -141,20 +140,20 @@ endpoint.o: endpoint.c innfeed.h ../incl host.o: host.c innfeed.h ../include/inn/timer.h ../include/inn/defines.h \ ../include/inn/system.h ../include/config.h ../include/inn/defines.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ - ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/inn/innconf.h ../include/inn/messages.h \ - ../include/inn/network.h ../include/inn/version.h \ - ../include/inn/libinn.h article.h misc.h buffer.h configfile.h \ - connection.h endpoint.h host.h innlistener.h tape.h + ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/inn/innconf.h \ + ../include/inn/messages.h ../include/inn/network.h \ + ../include/inn/version.h ../include/inn/libinn.h article.h misc.h \ + buffer.h configfile.h connection.h endpoint.h host.h innlistener.h \ + tape.h imap_connection.o: imap_connection.c ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ - ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/inn/messages.h ../include/inn/defines.h \ - ../include/inn/libinn.h buffer.h misc.h connection.h endpoint.h host.h \ - innfeed.h ../include/inn/timer.h article.h configfile.h + ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/inn/messages.h \ + ../include/inn/defines.h ../include/inn/libinn.h buffer.h misc.h \ + connection.h endpoint.h host.h innfeed.h ../include/inn/timer.h \ + article.h configfile.h innlistener.o: innlistener.c innfeed.h ../include/inn/timer.h \ ../include/inn/defines.h ../include/inn/system.h ../include/config.h \ ../include/inn/defines.h ../include/inn/options.h ../include/clibrary.h \ @@ -164,13 +163,13 @@ innlistener.o: innlistener.c innfeed.h . main.o: main.c innfeed.h ../include/inn/timer.h ../include/inn/defines.h \ ../include/inn/system.h ../include/config.h ../include/inn/defines.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ - ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/portable/time.h ../include/inn/innconf.h \ - ../include/inn/messages.h ../include/inn/version.h \ - ../include/inn/libinn.h ../include/inn/storage.h \ - ../include/inn/options.h article.h misc.h buffer.h configfile.h \ - connection.h endpoint.h host.h innlistener.h tape.h + ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/portable/time.h \ + ../include/inn/innconf.h ../include/inn/messages.h \ + ../include/inn/version.h ../include/inn/libinn.h \ + ../include/inn/storage.h ../include/inn/options.h article.h misc.h \ + buffer.h configfile.h connection.h endpoint.h host.h innlistener.h \ + tape.h misc.o: misc.c innfeed.h ../include/inn/timer.h ../include/inn/defines.h \ ../include/inn/system.h ../include/config.h ../include/inn/defines.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ diff -Nurp inn-2.5.4/innfeed/connection.c inn-2.5.5/innfeed/connection.c --- inn-2.5.4/innfeed/connection.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/innfeed/connection.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: connection.c 9275 2011-07-17 19:09:26Z iulius $ +/* $Id: connection.c 9863 2015-05-14 13:39:24Z iulius $ ** ** The implementation of the innfeed Connection class. ** @@ -1307,12 +1307,15 @@ static void connectionDone (EndPoint e, */ static void connectionIfIpv6DeleteIpv4Addr (Connection cxn) { - struct sockaddr_storage ss; - socklen_t len = sizeof(ss); + union { + struct sockaddr sa; + struct sockaddr_storage ss; + } u; + socklen_t len = sizeof(u); - if (getpeername (endPointFd (cxn->myEp), (struct sockaddr *)&ss, &len) < 0) + if (getpeername (endPointFd (cxn->myEp), &u.sa, &len) < 0) return; - if (ss.ss_family == AF_INET) + if (u.sa.sa_family == AF_INET) return; hostDeleteIpv4Addr (cxn->myHost); diff -Nurp inn-2.5.4/innfeed/imap_connection.c inn-2.5.5/innfeed/imap_connection.c --- inn-2.5.4/innfeed/imap_connection.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/innfeed/imap_connection.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: imap_connection.c 9495 2013-06-25 17:27:44Z iulius $ +/* $Id: imap_connection.c 9838 2015-05-02 15:33:04Z iulius $ ** ** Feed articles to an IMAP server via LMTP and IMAP. ** @@ -49,8 +49,8 @@ # include # include # include -/* For Cyrus SASL versions < 2.1.24. */ -# ifndef sasl_callback_ft +/* For Cyrus SASL versions < 2.1.25 (in hexadecimal notation below). */ +# if !defined (SASL_VERSION_FULL) || SASL_VERSION_FULL < 0x020119 typedef int (*sasl_callback_ft)(void); # endif #endif diff -Nurp inn-2.5.4/lib/Makefile inn-2.5.5/lib/Makefile --- inn-2.5.4/lib/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 9278 2011-07-17 19:23:27Z iulius $ +## $Id: Makefile 9781 2015-01-07 21:04:11Z iulius $ include ../Makefile.global @@ -112,12 +112,12 @@ commands.o: commands.c ../include/config ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/libinn.h ../include/inn/defines.h concat.o: concat.c ../include/config.h ../include/inn/defines.h \ - ../include/inn/system.h ../include/inn/options.h \ - ../include/inn/libinn.h ../include/inn/defines.h + ../include/inn/system.h ../include/inn/options.h ../include/inn/libinn.h \ + ../include/inn/defines.h conffile.o: conffile.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/conffile.h ../include/inn/libinn.h \ - ../include/inn/defines.h + ../include/config.h ../include/conffile.h ../include/inn/defines.h \ + ../include/inn/libinn.h confparse.o: confparse.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/confparse.h ../include/inn/defines.h \ @@ -132,18 +132,17 @@ date.o: date.c ../include/config.h ../in ../include/config.h ../include/inn/libinn.h ../include/inn/defines.h dbz.o: dbz.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/mmap.h ../include/config.h \ - ../include/inn/dbz.h ../include/inn/libinn.h ../include/inn/defines.h \ - ../include/inn/messages.h ../include/inn/innconf.h \ - ../include/inn/mmap.h ../include/inn/libinn.h + ../include/config.h ../include/portable/mmap.h ../include/inn/dbz.h \ + ../include/inn/libinn.h ../include/inn/defines.h \ + ../include/inn/messages.h ../include/inn/innconf.h ../include/inn/mmap.h defdist.o: defdist.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/libinn.h ../include/inn/paths.h dispatch.o: dispatch.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/inn/dispatch.h ../include/inn/vector.h \ - ../include/inn/defines.h + ../include/config.h ../include/inn/dispatch.h ../include/inn/defines.h \ + ../include/inn/vector.h fdflags.o: fdflags.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/libinn.h ../include/inn/defines.h @@ -179,7 +178,7 @@ innconf.o: innconf.c ../include/config.h ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/paths.h inndcomm.o: inndcomm.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/time.h ../include/config.h \ + ../include/config.h ../include/portable/time.h \ ../include/portable/socket.h ../include/portable/getaddrinfo.h \ ../include/portable/getnameinfo.h ../include/inn/innconf.h \ ../include/inn/defines.h ../include/inn/inndcomm.h \ @@ -210,12 +209,11 @@ messages.o: messages.c ../include/config ../include/inn/libinn.h mmap.o: mmap.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/mmap.h ../include/config.h \ - ../include/inn/messages.h ../include/inn/defines.h \ - ../include/inn/mmap.h + ../include/config.h ../include/portable/mmap.h ../include/inn/messages.h \ + ../include/inn/defines.h ../include/inn/mmap.h network.o: network.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/portable/time.h ../include/portable/wait.h \ ../include/inn/innconf.h ../include/inn/defines.h \ @@ -224,11 +222,10 @@ network.o: network.c ../include/config.h newsuser.o: newsuser.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - ../include/inn/messages.h ../include/inn/newsuser.h ../include/config.h \ - ../include/clibrary.h + ../include/inn/messages.h ../include/inn/newsuser.h nntp.o: nntp.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/portable/time.h ../include/inn/buffer.h \ ../include/inn/defines.h ../include/inn/innconf.h \ @@ -249,7 +246,7 @@ readin.o: readin.c ../include/config.h . ../include/config.h ../include/inn/libinn.h ../include/inn/defines.h remopen.o: remopen.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/libinn.h ../include/inn/network.h ../include/inn/nntp.h @@ -272,9 +269,8 @@ sequence.o: sequence.c ../include/config ../include/config.h ../include/inn/sequence.h ../include/inn/defines.h timer.o: timer.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/time.h ../include/config.h \ - ../include/inn/messages.h ../include/inn/defines.h \ - ../include/inn/timer.h ../include/inn/libinn.h + ../include/config.h ../include/portable/time.h ../include/inn/messages.h \ + ../include/inn/defines.h ../include/inn/timer.h ../include/inn/libinn.h tst.o: tst.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/tst.h ../include/inn/defines.h \ @@ -298,8 +294,8 @@ xmalloc.o: xmalloc.c ../include/config.h ../include/config.h ../include/inn/messages.h ../include/inn/defines.h \ ../include/inn/libinn.h xsignal.o: xsignal.c ../include/config.h ../include/inn/defines.h \ - ../include/inn/system.h ../include/inn/options.h \ - ../include/inn/libinn.h ../include/inn/defines.h + ../include/inn/system.h ../include/inn/options.h ../include/inn/libinn.h \ + ../include/inn/defines.h xwrite.o: xwrite.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/libinn.h ../include/inn/defines.h @@ -316,11 +312,11 @@ ftello.o: ftello.c ../include/config.h . ../include/config.h getaddrinfo.o: getaddrinfo.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h getnameinfo.o: getnameinfo.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h getpagesize.o: getpagesize.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h @@ -335,12 +331,13 @@ inet_ntoa.o: inet_ntoa.c ../include/conf ../include/config.h inet_ntop.o: inet_ntop.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h + ../include/config.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h memcmp.o: memcmp.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h mkstemp.o: mkstemp.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/time.h ../include/config.h + ../include/config.h ../include/portable/time.h pread.o: pread.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h @@ -356,8 +353,8 @@ seteuid.o: seteuid.c ../include/config.h setproctitle.o: setproctitle.c ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ - ../include/portable/setproctitle.h ../include/config.h \ - ../include/inn/messages.h ../include/inn/defines.h + ../include/portable/setproctitle.h ../include/inn/messages.h \ + ../include/inn/defines.h snprintf.o: snprintf.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h strcasecmp.o: strcasecmp.c ../include/config.h ../include/inn/defines.h \ @@ -380,5 +377,4 @@ symlink.o: symlink.c ../include/config.h perl.o: perl.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/libinn.h ../include/inn/defines.h \ - ../include/ppport.h \ - ../include/innperl.h + ../include/ppport.h ../include/innperl.h diff -Nurp inn-2.5.4/lib/asprintf.c inn-2.5.5/lib/asprintf.c --- inn-2.5.4/lib/asprintf.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/asprintf.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: asprintf.c 9554 2013-11-03 19:18:12Z iulius $ +/* $Id: asprintf.c 9768 2014-12-07 21:22:57Z iulius $ * * Replacement for a missing asprintf and vasprintf. * @@ -8,7 +8,7 @@ * The canonical version of this file is maintained in the rra-c-util package, * which can be found at . * - * Written by Russ Allbery + * Written by Russ Allbery * * The authors hereby relinquish any claim to any copyright that they may have * in this work, whether granted under contract or by operation of law or diff -Nurp inn-2.5.4/lib/concat.c inn-2.5.5/lib/concat.c --- inn-2.5.4/lib/concat.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/concat.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: concat.c 9024 2010-03-21 16:49:30Z iulius $ +/* $Id: concat.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Concatenate strings with dynamic memory allocation. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Usage: diff -Nurp inn-2.5.4/lib/getaddrinfo.c inn-2.5.5/lib/getaddrinfo.c --- inn-2.5.4/lib/getaddrinfo.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/getaddrinfo.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: getaddrinfo.c 9380 2011-09-19 21:05:01Z eagle $ +/* $Id: getaddrinfo.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing getaddrinfo. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** This is an implementation of getaddrinfo for systems that don't have one diff -Nurp inn-2.5.4/lib/getnameinfo.c inn-2.5.5/lib/getnameinfo.c --- inn-2.5.4/lib/getnameinfo.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/getnameinfo.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: getnameinfo.c 9565 2013-11-10 18:30:25Z iulius $ +/* $Id: getnameinfo.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing getnameinfo. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** This is an implementation of getaddrinfo for systems that don't have one diff -Nurp inn-2.5.4/lib/hashtab.c inn-2.5.5/lib/hashtab.c --- inn-2.5.4/lib/hashtab.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/hashtab.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: hashtab.c 7585 2006-11-21 09:37:51Z eagle $ +/* $Id: hashtab.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Generic hash table implementation. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** This is a generic hash table implementation with linear probing. It diff -Nurp inn-2.5.4/lib/hstrerror.c inn-2.5.5/lib/hstrerror.c --- inn-2.5.4/lib/hstrerror.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/hstrerror.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: hstrerror.c 5556 2002-08-11 22:23:14Z rra $ +/* $Id: hstrerror.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing hstrerror. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Provides hstrerror (strerror, but for h_errno from the resolver diff -Nurp inn-2.5.4/lib/inet_aton.c inn-2.5.5/lib/inet_aton.c --- inn-2.5.4/lib/inet_aton.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/inet_aton.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: inet_aton.c 5049 2001-12-12 09:06:00Z rra $ +/* $Id: inet_aton.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing inet_aton. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Provides the same functionality as the standard library routine diff -Nurp inn-2.5.4/lib/inet_ntoa.c inn-2.5.5/lib/inet_ntoa.c --- inn-2.5.4/lib/inet_ntoa.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/inet_ntoa.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: inet_ntoa.c 5049 2001-12-12 09:06:00Z rra $ +/* $Id: inet_ntoa.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing or broken inet_ntoa. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Provides the same functionality as the standard library routine diff -Nurp inn-2.5.4/lib/inet_ntop.c inn-2.5.5/lib/inet_ntop.c --- inn-2.5.4/lib/inet_ntop.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/inet_ntop.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: inet_ntop.c 9557 2013-11-05 20:11:17Z iulius $ +/* $Id: inet_ntop.c 9768 2014-12-07 21:22:57Z iulius $ * * Replacement for a missing inet_ntop. * @@ -11,7 +11,7 @@ * The canonical version of this file is maintained in the rra-c-util package, * which can be found at . * - * Written by Russ Allbery + * Written by Russ Allbery * * The authors hereby relinquish any claim to any copyright that they may have * in this work, whether granted under contract or by operation of law or diff -Nurp inn-2.5.4/lib/innconf.c inn-2.5.5/lib/innconf.c --- inn-2.5.4/lib/innconf.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/innconf.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: innconf.c 9366 2011-08-22 08:51:14Z iulius $ +/* $Id: innconf.c 9753 2014-12-01 20:26:38Z iulius $ ** ** Manage the global innconf struct. ** @@ -231,6 +231,11 @@ const struct config config_table[] = { { K(tlscapath), STRING (NULL) }, { K(tlscertfile), STRING (NULL) }, { K(tlskeyfile), STRING (NULL) }, + { K(tlsciphers), STRING (NULL) }, + { K(tlscompression), BOOL (true) }, + { K(tlseccurve), STRING (NULL) }, + { K(tlspreferserverciphers), BOOL (false) }, + { K(tlsprotocols), LIST (NULL) }, #endif /* HAVE_SSL */ /* The following settings are used by nnrpd and rnews. */ diff -Nurp inn-2.5.4/lib/memcmp.c inn-2.5.5/lib/memcmp.c --- inn-2.5.4/lib/memcmp.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/memcmp.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: memcmp.c 5049 2001-12-12 09:06:00Z rra $ +/* $Id: memcmp.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing or broken memcmp. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Provides the same functionality as the standard library routine memcmp diff -Nurp inn-2.5.4/lib/mkstemp.c inn-2.5.5/lib/mkstemp.c --- inn-2.5.4/lib/mkstemp.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/mkstemp.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: mkstemp.c 9352 2011-08-19 15:16:19Z iulius $ +/* $Id: mkstemp.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing mkstemp. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Provides the same functionality as the library function mkstemp for those diff -Nurp inn-2.5.4/lib/newsuser.c inn-2.5.5/lib/newsuser.c --- inn-2.5.4/lib/newsuser.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/newsuser.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: newsuser.c 7705 2008-01-14 16:24:16Z iulius $ +/* $Id: newsuser.c 9855 2015-05-14 13:13:11Z iulius $ * * Ensure running as "news" user/group. * @@ -71,7 +71,9 @@ ensure_news_user(bool may_setuid) /* NB: mustn't be run as root, unless "may_setuid" is true. */ die("must be run as %s, not as root", innconf->runasuser); } - setuid(uid); + if (setuid(uid) < 0) { + sysdie("failed to setuid"); + } } if (geteuid() != uid || getuid() != uid) { die("must be run as %s", innconf->runasuser); @@ -88,7 +90,9 @@ ensure_news_grp(bool may_setgid) get_news_uid_gid(false, &gid, true); if (may_setgid && geteuid() == 0) { - setgid(gid); + if (setgid(gid) < 0) { + sysdie("failed to setgid"); + } } if (getegid() != gid || getgid() != gid) { die ("must be run as %s group", innconf->runasgroup); diff -Nurp inn-2.5.4/lib/pread.c inn-2.5.5/lib/pread.c --- inn-2.5.4/lib/pread.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/pread.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: pread.c 5049 2001-12-12 09:06:00Z rra $ +/* $Id: pread.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing pread. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Provides the same functionality as the standard library routine pread diff -Nurp inn-2.5.4/lib/pwrite.c inn-2.5.5/lib/pwrite.c --- inn-2.5.4/lib/pwrite.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/pwrite.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: pwrite.c 5049 2001-12-12 09:06:00Z rra $ +/* $Id: pwrite.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing pwrite. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Provides the same functionality as the standard library routine pwrite diff -Nurp inn-2.5.4/lib/setenv.c inn-2.5.5/lib/setenv.c --- inn-2.5.4/lib/setenv.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/setenv.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: setenv.c 6693 2004-03-08 20:41:13Z rra $ +/* $Id: setenv.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing setenv. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Provides the same functionality as the standard library routine setenv diff -Nurp inn-2.5.4/lib/seteuid.c inn-2.5.5/lib/seteuid.c --- inn-2.5.4/lib/seteuid.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/seteuid.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: seteuid.c 3839 2000-08-29 04:50:18Z rra $ +/* $Id: seteuid.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing seteuid. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Some systems don't have seteuid but do have setreuid. setreuid with diff -Nurp inn-2.5.4/lib/snprintf.c inn-2.5.5/lib/snprintf.c --- inn-2.5.4/lib/snprintf.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/snprintf.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: snprintf.c 9352 2011-08-19 15:16:19Z iulius $ +/* $Id: snprintf.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing snprintf or vsnprintf. ** @@ -69,7 +69,7 @@ * fixed handling of %.0f * added test for HAVE_LONG_DOUBLE * - * Russ Allbery 2000-08-26 + * Russ Allbery 2000-08-26 * fixed return value to comply with C99 * fixed handling of snprintf(NULL, ...) * diff -Nurp inn-2.5.4/lib/strlcat.c inn-2.5.5/lib/strlcat.c --- inn-2.5.4/lib/strlcat.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/strlcat.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: strlcat.c 5681 2002-08-29 04:07:50Z rra $ +/* $Id: strlcat.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing strlcat. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Provides the same functionality as the *BSD function strlcat, originally diff -Nurp inn-2.5.4/lib/strlcpy.c inn-2.5.5/lib/strlcpy.c --- inn-2.5.4/lib/strlcpy.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/strlcpy.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: strlcpy.c 5681 2002-08-29 04:07:50Z rra $ +/* $Id: strlcpy.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Replacement for a missing strlcpy. ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** Provides the same functionality as the *BSD function strlcpy, originally diff -Nurp inn-2.5.4/lib/timer.c inn-2.5.5/lib/timer.c --- inn-2.5.4/lib/timer.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/timer.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: timer.c 7585 2006-11-21 09:37:51Z eagle $ +/* $Id: timer.c 9790 2015-01-21 18:49:11Z iulius $ ** ** Timer functions, to gather profiling data. ** @@ -366,7 +366,7 @@ TMRsummary(const char *prefix, const cha off = 0; else off = snprintf(buf, len, "%s ", prefix); - off += snprintf(buf + off, len - off, "time %ld ", TMRgettime(true)); + off += snprintf(buf + off, len - off, "time %lu ", TMRgettime(true)); for (i = 0; i < timer_count; i++) if (timers[i] != NULL) off += TMRsumone(labels, timers[i], buf + off, len - off); diff -Nurp inn-2.5.4/lib/uwildmat.c inn-2.5.5/lib/uwildmat.c --- inn-2.5.4/lib/uwildmat.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/uwildmat.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: uwildmat.c 8918 2010-01-22 23:28:28Z iulius $ +/* $Id: uwildmat.c 9768 2014-12-07 21:22:57Z iulius $ ** ** wildmat pattern matching with Unicode UTF-8 extensions. ** @@ -44,7 +44,7 @@ ** June, 1991: Robert Elz added minus and close bracket ** handling for character sets. ** -** July, 2000: Largely rewritten by Russ Allbery to add +** July, 2000: Largely rewritten by Russ Allbery to add ** support for ',', '!', and optionally '@' to the core wildmat routine. ** Broke the character class matching into a separate function for clarity ** since it's infrequently used in practice, and added some simple lookahead diff -Nurp inn-2.5.4/lib/vector.c inn-2.5.5/lib/vector.c --- inn-2.5.4/lib/vector.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/lib/vector.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ -/* $Id: vector.c 8962 2010-02-08 20:54:57Z iulius $ +/* $Id: vector.c 9768 2014-12-07 21:22:57Z iulius $ ** ** Vector handling (counted lists of char *'s). ** -** Written by Russ Allbery +** Written by Russ Allbery ** This work is hereby placed in the public domain by its author. ** ** A vector is a table for handling a list of strings with less overhead than diff -Nurp inn-2.5.4/m4/sendmail.m4 inn-2.5.5/m4/sendmail.m4 --- inn-2.5.4/m4/sendmail.m4 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/m4/sendmail.m4 2015-05-23 06:24:41.000000000 -0700 @@ -1,5 +1,5 @@ dnl sendmail.m4 -- Checks for the path to sendmail. -dnl $Id: sendmail.m4 8499 2009-06-06 19:39:47Z iulius $ +dnl $Id: sendmail.m4 9750 2014-11-23 21:46:27Z iulius $ dnl dnl We have a custom probe for sendmail since we want to look in non-standard dnl locations for it, and another custom macro to allow users to override the @@ -19,8 +19,8 @@ AC_DEFUN([INN_PATH_SENDMAIL], AC_MSG_CHECKING([for sendmail]) AC_MSG_RESULT([$SENDMAIL]) else - AC_PATH_PROG([SENDMAIL], [sendmail], , [/usr/sbin:/usr/lib]) + AC_PATH_PROG([SENDMAIL], [sendmail], [], [/usr/sbin:/usr/lib]) if test -z "$SENDMAIL" ; then - AC_MSG_ERROR(sendmail not found, re-run with --with-sendmail) + AC_MSG_ERROR([sendmail not found, re-run with --with-sendmail]) fi fi]) diff -Nurp inn-2.5.4/m4/snprintf.m4 inn-2.5.5/m4/snprintf.m4 --- inn-2.5.4/m4/snprintf.m4 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/m4/snprintf.m4 2015-05-23 06:24:41.000000000 -0700 @@ -1,5 +1,5 @@ dnl snprintf.m4 -- Test for a working C99 snprintf. -dnl $Id: snprintf.m4 8503 2009-06-06 19:55:17Z iulius $ +dnl $Id: snprintf.m4 9768 2014-12-07 21:22:57Z iulius $ dnl dnl Check for a working snprintf. Some systems have an snprintf that doesn't dnl nul-terminate if the buffer isn't large enough. Others return -1 if the @@ -10,7 +10,7 @@ dnl dnl Provides INN_FUNC_SNPRINTF, which adds snprintf.o to LIBOBJS unless a dnl fully working snprintf is found. dnl -dnl Written by Russ Allbery +dnl Written by Russ Allbery dnl Copyright 2006, 2008, 2009 dnl Board of Trustees, Leland Stanford Jr. University dnl diff -Nurp inn-2.5.4/m4/socket.m4 inn-2.5.5/m4/socket.m4 --- inn-2.5.4/m4/socket.m4 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/m4/socket.m4 2015-05-23 06:24:41.000000000 -0700 @@ -1,5 +1,5 @@ dnl socket.m4 -- Various checks for socket support and macros. -dnl $Id: socket.m4 9315 2011-08-06 20:22:35Z iulius $ +dnl $Id: socket.m4 9676 2014-09-05 18:47:24Z iulius $ dnl dnl This is a collection of various Autoconf macros for checking networking dnl and socket properties. The macros provided are: @@ -52,8 +52,8 @@ AC_DEFUN([INN_FUNC_GETADDRINFO_ADDRCONFI [AC_DEFINE([HAVE_GETADDRINFO_ADDRCONFIG], 1, [Define if the AI_ADDRCONFIG flag works with getaddrinfo.])])]) -dnl Source used by INN_IN6_EQ_BROKEN. Test borrowed from a bug report by -dnl tmoestl@gmx.net for glibc. +dnl Source used by INN_MACRO_IN6_ARE_ADDR_EQUAL. Test borrowed from a bug +dnl report by tmoestl@gmx.net for glibc. AC_DEFUN([_INN_MACRO_IN6_ARE_ADDR_EQUAL_SOURCE], [[ #include #include diff -Nurp inn-2.5.4/m4/vamacros.m4 inn-2.5.5/m4/vamacros.m4 --- inn-2.5.4/m4/vamacros.m4 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/m4/vamacros.m4 2015-05-23 06:24:41.000000000 -0700 @@ -1,5 +1,5 @@ dnl vamacros.m4 -- Check for support for variadic macros. -dnl $Id: vamacros.m4 8503 2009-06-06 19:55:17Z iulius $ +dnl $Id: vamacros.m4 9768 2014-12-07 21:22:57Z iulius $ dnl dnl This file defines two macros for probing for compiler support for variadic dnl macros. Provided are INN_C_C99_VAMACROS, which checks for support for the @@ -14,7 +14,7 @@ dnl #define macro(args...) fprintf(st dnl dnl They set HAVE_C99_VAMACROS or HAVE_GNU_VAMACROS as appropriate. dnl -dnl Written by Russ Allbery +dnl Written by Russ Allbery dnl Copyright 2006, 2008, 2009 dnl Board of Trustees, Leland Stanford Jr. University dnl diff -Nurp inn-2.5.4/nnrpd/Makefile inn-2.5.5/nnrpd/Makefile --- inn-2.5.4/nnrpd/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/nnrpd/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 8921 2010-01-22 23:33:08Z iulius $ +## $Id: Makefile 9781 2015-01-07 21:04:11Z iulius $ include ../Makefile.global @@ -79,22 +79,20 @@ article.o: article.c ../include/config.h ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/messages.h ../include/inn/wire.h nnrpd.h \ - ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/portable/time.h ../include/inn/qio.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \ - ../include/inn/ov.h ../include/inn/storage.h ../include/inn/history.h \ - tls.h cache.h -auth-ext.o: auth-ext.c ../include/config.h ../include/inn/defines.h \ - ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/wait.h ../include/config.h \ - ../include/inn/buffer.h ../include/inn/defines.h \ - ../include/inn/messages.h ../include/inn/vector.h nnrpd.h \ ../include/portable/socket.h ../include/portable/getaddrinfo.h \ ../include/portable/getnameinfo.h ../include/portable/time.h \ ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/history.h tls.h cache.h +auth-ext.o: auth-ext.c ../include/config.h ../include/inn/defines.h \ + ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ + ../include/config.h ../include/portable/wait.h ../include/inn/buffer.h \ + ../include/inn/defines.h ../include/inn/messages.h \ + ../include/inn/vector.h nnrpd.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/portable/time.h ../include/inn/qio.h ../include/inn/libinn.h \ + ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ ../include/inn/options.h ../include/inn/timer.h cache.o: cache.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ @@ -104,16 +102,16 @@ cache.o: cache.c ../include/config.h ../ group.o: group.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - nnrpd.h ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/portable/time.h ../include/inn/qio.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \ - ../include/inn/ov.h ../include/inn/storage.h ../include/inn/history.h + nnrpd.h ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/portable/time.h \ + ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/nntp.h \ + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/history.h commands.o: commands.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/wait.h ../include/config.h \ - nnrpd.h ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/config.h ../include/portable/wait.h nnrpd.h \ + ../include/portable/socket.h ../include/portable/getaddrinfo.h \ ../include/portable/getnameinfo.h ../include/portable/time.h \ ../include/inn/qio.h ../include/inn/defines.h ../include/inn/libinn.h \ ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ @@ -124,53 +122,49 @@ commands.o: commands.c ../include/config line.o: line.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/messages.h ../include/inn/defines.h \ - nnrpd.h ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/portable/time.h ../include/inn/qio.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \ - tls.h + nnrpd.h ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/portable/time.h \ + ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/nntp.h \ + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h tls.h list.o: list.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h nnrpd.h ../include/portable/socket.h \ - ../include/config.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h ../include/portable/time.h \ - ../include/inn/qio.h ../include/inn/defines.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \ - ../include/inn/ov.h ../include/inn/storage.h ../include/inn/history.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/portable/time.h ../include/inn/qio.h ../include/inn/defines.h \ + ../include/inn/libinn.h ../include/inn/nntp.h ../include/inn/paths.h \ + ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/history.h \ ../include/inn/innconf.h ../include/inn/messages.h misc.o: misc.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - nnrpd.h ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/portable/time.h ../include/inn/qio.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \ - tls.h ../include/inn/ov.h ../include/inn/storage.h \ - ../include/inn/history.h + nnrpd.h ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/portable/time.h \ + ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/nntp.h \ + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h tls.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/history.h newnews.o: newnews.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/messages.h ../include/inn/wire.h nnrpd.h \ - ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/portable/time.h ../include/inn/qio.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \ - ../include/inn/ov.h ../include/inn/storage.h ../include/inn/history.h \ - cache.h + ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/portable/time.h \ + ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/nntp.h \ + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/history.h cache.h nnrpd.o: nnrpd.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h \ - ../include/portable/alloca.h ../include/config.h ../include/clibrary.h \ - ../include/config.h ../include/portable/setproctitle.h \ - ../include/portable/socket.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h ../include/portable/wait.h \ - ../include/inn/innconf.h ../include/inn/defines.h \ - ../include/inn/libinn.h ../include/inn/messages.h \ - ../include/inn/network.h ../include/inn/newsuser.h ../include/config.h \ - ../include/clibrary.h ../include/inn/ov.h ../include/inn/storage.h \ + ../include/portable/alloca.h ../include/clibrary.h ../include/config.h \ + ../include/portable/setproctitle.h ../include/portable/socket.h \ + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/portable/wait.h ../include/inn/innconf.h \ + ../include/inn/defines.h ../include/inn/libinn.h \ + ../include/inn/messages.h ../include/inn/network.h \ + ../include/inn/newsuser.h ../include/inn/ov.h ../include/inn/storage.h \ ../include/inn/options.h ../include/inn/history.h \ ../include/inn/version.h nnrpd.h ../include/portable/time.h \ ../include/inn/qio.h ../include/inn/nntp.h ../include/inn/paths.h \ @@ -179,38 +173,35 @@ nnrpd.o: nnrpd.c ../include/config.h ../ perl.o: perl.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - nnrpd.h ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/portable/time.h ../include/inn/qio.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \ - post.h \ - ../include/ppport.h \ - ../include/innperl.h + nnrpd.h ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/portable/time.h \ + ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/nntp.h \ + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h post.h \ + ../include/ppport.h ../include/innperl.h perm.o: perm.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/wait.h ../include/config.h \ - ../include/conffile.h ../include/inn/network.h ../include/inn/defines.h \ + ../include/config.h ../include/portable/wait.h ../include/conffile.h \ + ../include/inn/defines.h ../include/inn/network.h \ ../include/inn/innconf.h ../include/innperl.h nnrpd.h \ ../include/portable/socket.h ../include/portable/getaddrinfo.h \ ../include/portable/getnameinfo.h ../include/portable/time.h \ ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/nntp.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h post.o: post.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - nnrpd.h ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/portable/time.h ../include/inn/qio.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \ - ../include/inn/ov.h ../include/inn/storage.h ../include/inn/history.h \ - post.h + nnrpd.h ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/portable/time.h \ + ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/nntp.h \ + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/history.h post.h python.o: python.c ../include/config.h ../include/inn/defines.h \ - ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - nnrpd.h ../include/portable/socket.h ../include/config.h \ + ../include/inn/system.h ../include/inn/options.h \ + ../include/clibrary.h ../include/config.h ../include/inn/innconf.h \ + ../include/inn/defines.h nnrpd.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/portable/time.h ../include/inn/qio.h ../include/inn/libinn.h \ ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ @@ -219,26 +210,26 @@ python.o: python.c ../include/config.h . sasl.o: sasl.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/messages.h ../include/inn/defines.h \ - nnrpd.h ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/portable/time.h ../include/inn/qio.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \ - ../include/inn/ov.h ../include/inn/storage.h ../include/inn/history.h + nnrpd.h ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/portable/time.h \ + ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/nntp.h \ + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/history.h tls.o: tls.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h nnrpd.h ../include/portable/socket.h \ - ../include/config.h ../include/portable/getaddrinfo.h \ - ../include/portable/getnameinfo.h ../include/portable/time.h \ - ../include/inn/qio.h ../include/inn/defines.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h \ - ../include/inn/innconf.h tls.h + ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ + ../include/portable/time.h ../include/inn/qio.h ../include/inn/defines.h \ + ../include/inn/libinn.h ../include/inn/nntp.h ../include/inn/paths.h \ + ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h ../include/inn/innconf.h \ + tls.h track.o: track.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ - nnrpd.h ../include/portable/socket.h ../include/config.h \ - ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ - ../include/portable/time.h ../include/inn/qio.h ../include/inn/libinn.h \ - ../include/inn/nntp.h ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/vector.h ../include/inn/timer.h + nnrpd.h ../include/portable/socket.h ../include/portable/getaddrinfo.h \ + ../include/portable/getnameinfo.h ../include/portable/time.h \ + ../include/inn/qio.h ../include/inn/libinn.h ../include/inn/nntp.h \ + ../include/inn/paths.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/vector.h ../include/inn/timer.h diff -Nurp inn-2.5.4/nnrpd/article.c inn-2.5.5/nnrpd/article.c --- inn-2.5.4/nnrpd/article.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/nnrpd/article.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: article.c 9248 2011-07-17 18:04:50Z iulius $ +/* $Id: article.c 9860 2015-05-14 13:32:30Z iulius $ ** ** Article-related routines. */ @@ -62,6 +62,8 @@ PushIOvHelper(struct iovec* vec, int* co { int result = 0; + TMRstart(TMR_NNTPWRITE); + #ifdef HAVE_SASL if (sasl_conn && sasl_ssf) { int i; @@ -72,8 +74,6 @@ PushIOvHelper(struct iovec* vec, int* co } else { #endif /* HAVE_SASL */ - TMRstart(TMR_NNTPWRITE); - #ifdef HAVE_SSL if (tls_conn) { Again: @@ -97,12 +97,12 @@ Again: #endif /* HAVE_SSL */ result = xwritev(STDOUT_FILENO, vec, *countp); - TMRstop(TMR_NNTPWRITE); - #ifdef HAVE_SASL } #endif + TMRstop(TMR_NNTPWRITE); + if (result == -1) { /* We can't recover, since we can't resynchronise with our * peer. */ @@ -241,7 +241,8 @@ ARTinstorebytoken(TOKEN token) if (PERMaccessconf->nnrpdoverstats) { gettimeofday(&stv, NULL); } - art = SMretrieve(token, RETR_STAT); /* XXX This isn't really overstats, is it? */ + art = SMretrieve(token, RETR_STAT); + /* XXX This isn't really overstats, is it? */ if (PERMaccessconf->nnrpdoverstats) { gettimeofday(&etv, NULL); OVERartcheck+=(etv.tv_sec - stv.tv_sec) * 1000; @@ -872,14 +873,14 @@ vhost_xref(char *p) space = strchr(p, ' '); if (space == NULL) { - warn("malformed Xref: `%s'", field); - goto fail; + warn("malformed Xref: `%s'", p); + goto fail; } offset = space - p; space = strchr(p + offset, ' '); if (space == NULL) { - warn("malformed Xref: `%s'", field); - goto fail; + warn("malformed Xref: `%s'", p); + goto fail; } field = concat(PERMaccessconf->domain, space, NULL); fail: diff -Nurp inn-2.5.4/nnrpd/commands.c inn-2.5.5/nnrpd/commands.c --- inn-2.5.4/nnrpd/commands.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/nnrpd/commands.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: commands.c 8923 2010-01-22 23:35:12Z iulius $ +/* $Id: commands.c 9864 2015-05-14 13:41:41Z iulius $ ** ** Miscellaneous commands. */ @@ -87,8 +87,8 @@ makeGroupInvalid(void) { /* Returns: ** -1 for problem (such as no such authenticator, etc.). -** 0 for authentication succeeded. -** 1 for authentication failed. +** 1 for authentication succeeded. +** 0 for authentication failed. */ static char *PERMauthstring; @@ -96,6 +96,7 @@ static int PERMgeneric(char *av[], char *accesslist, size_t size) { char path[BIG_BUFFER], *fields[6], *p; + size_t j; int i, pan[2], status; pid_t pid; struct stat stb; @@ -201,7 +202,7 @@ PERMgeneric(char *av[], char *accesslist waitpid(pid, &status, 0); if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) - return 1; + return 0; if ((p = strchr(path, '\n')) != NULL) *p = '\0'; @@ -213,12 +214,25 @@ PERMgeneric(char *av[], char *accesslist //syslog(L_NOTICE, "%s (%ld) returned: %d %s %d\n", av[0], (long) pid, i, path, status); /* Split "host:permissions:user:pass:groups" into fields. */ - for (fields[0] = path, i = 0, p = path; *p; p++) - if (*p == ':') { - *p = '\0'; - fields[++i] = p + 1; + for (fields[0] = path, j = 0, p = path; *p; p++) + if (*p == ':') { + *p = '\0'; + ++j; + if (j < ARRAY_SIZE(fields)) { + fields[j] = p + 1; + } else { + Reply("%d Program error occurred\r\n", NNTP_FAIL_ACTION); + syslog(L_FATAL, "over-long response from %s", av[0]); + return -1; + } } + if (j < 4) { + Reply("%d Program error occurred\r\n", NNTP_FAIL_ACTION); + syslog(L_FATAL, "short response from %s", av[0]); + return -1; + } + PERMcanread = strchr(fields[1], 'R') != NULL; PERMcanpost = strchr(fields[1], 'P') != NULL; PERMaccessconf->allowapproved = strchr(fields[1], 'A') != NULL; @@ -232,7 +246,7 @@ PERMgeneric(char *av[], char *accesslist //for (i = 0; fields[i] && i < 5; i++) // syslog(L_NOTICE, "fields[%d] = %s\n", i, fields[i]); - return 0; + return 1; } diff -Nurp inn-2.5.4/nnrpd/perm.c inn-2.5.5/nnrpd/perm.c --- inn-2.5.4/nnrpd/perm.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/nnrpd/perm.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: perm.c 9603 2014-02-17 13:18:21Z iulius $ +/* $Id: perm.c 9861 2015-05-14 13:33:02Z iulius $ ** ** How to figure out where a user comes from, and what that user can do once ** we know who sie is. @@ -1878,6 +1878,7 @@ strip_accessgroups(void) } } else { syslog(L_TRACE, "No access realms to check!"); + return; } /* If there are auth realms to check... */ diff -Nurp inn-2.5.4/nnrpd/sasl.c inn-2.5.5/nnrpd/sasl.c --- inn-2.5.4/nnrpd/sasl.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/nnrpd/sasl.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,7 +1,7 @@ /* ** AUTHINFO SASL functionality. ** -** $Id: sasl.c 9259 2011-07-17 18:22:50Z iulius $ +** $Id: sasl.c 9871 2015-05-17 17:23:43Z iulius $ */ #include "config.h" @@ -117,6 +117,7 @@ SASLauth(int ac, char *av[]) const char *mech; const char *clientin = NULL; unsigned int clientinlen = 0; + size_t tclientinlen = 0; const char *serverout = NULL; unsigned int serveroutlen; char base64[BASE64_BUF_SIZE+1]; @@ -211,7 +212,8 @@ SASLauth(int ac, char *av[]) /* Get the response from the client. */ r1 = line_read(&NNTPline, PERMaccessconf->clienttimeout, - &clientin, (size_t *) &clientinlen, NULL); + &clientin, &tclientinlen, NULL); + clientinlen = tclientinlen; switch (r1) { case RTok: diff -Nurp inn-2.5.4/nnrpd/tls.c inn-2.5.5/nnrpd/tls.c --- inn-2.5.4/nnrpd/tls.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/nnrpd/tls.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: tls.c 9261 2011-07-17 18:23:31Z iulius $ +/* $Id: tls.c 9785 2015-01-10 14:25:18Z iulius $ ** ** tls.c -- TLSv1 functions. ** Copyright (C) 2000 Kenichi Okada . @@ -413,6 +413,52 @@ set_cert_stuff(SSL_CTX * ctx, char *cert } +#ifdef HAVE_OPENSSL_ECC +/* +** Provide an ECKEY from a curve name. +** Accepts a NULL pointer as the name. +** +** Returns the key, or NULL on error. +*/ +static EC_KEY * +eckey_from_name(char *name) +{ + EC_KEY *eckey; + size_t ncurves, nitems, i; + EC_builtin_curve *builtin_curves; + const char *sname; + + if (name == NULL) { + return (NULL); + } + + /* See EC_GROUP_new(3) for the details of this expressive dance. */ + ncurves = EC_get_builtin_curves(NULL, 0); /* Number of curves. */ + + builtin_curves = xmalloc(ncurves * sizeof(EC_builtin_curve)); + nitems = EC_get_builtin_curves(builtin_curves, ncurves); + if (nitems != ncurves) { + syslog(L_ERROR, "got %lu curves from EC_get_builtin_curves, " + "expected %lu", (unsigned long) nitems, (unsigned long) ncurves); + } + for (i = 0; i < nitems; i++) { + sname = OBJ_nid2sn(builtin_curves[i].nid); + if (strcmp(sname, name) == 0) { + break; + } + } + if (i == nitems) { + syslog(L_ERROR, "tlseccurve '%s' not found", name); + free(builtin_curves); + return (NULL); + } + + eckey = EC_KEY_new_by_curve_name(builtin_curves[i].nid); + free(builtin_curves); + return (eckey); +} +#endif /* HAVE_OPENSSL_ECC */ + /* ** This is the setup routine for the SSL server. As nnrpd might be called ** more than once, we only want to do the initialization one time. @@ -425,7 +471,9 @@ set_cert_stuff(SSL_CTX * ctx, char *cert int tls_init_serverengine(int verifydepth, int askcert, int requirecert, char *tls_CAfile, char *tls_CApath, char *tls_cert_file, - char *tls_key_file) + char *tls_key_file, bool prefer_server_ciphers, + bool tls_compression, struct vector *tls_proto_vect, + char *tls_ciphers, char *tls_ec_curve UNUSED) { int off = 0; int verify_flags = SSL_VERIFY_NONE; @@ -434,6 +482,11 @@ tls_init_serverengine(int verifydepth, i char *s_cert_file; char *s_key_file; struct stat buf; + size_t tls_protos = 0; + size_t i; +#ifdef HAVE_OPENSSL_ECC + EC_KEY *eckey; +#endif if (tls_serverengine) return (0); /* Already running. */ @@ -493,6 +546,93 @@ tls_init_serverengine(int verifydepth, i SSL_CTX_set_tmp_dh_callback(CTX, tmp_dh_cb); SSL_CTX_set_options(CTX, SSL_OP_SINGLE_DH_USE); +#ifdef HAVE_OPENSSL_ECC + SSL_CTX_set_options(CTX, SSL_OP_SINGLE_ECDH_USE); + + /* We set a curve here by name if provided + * or we use OpenSSL (>= 1.0.2) auto-selection + * or we default to NIST P-256. */ + eckey = eckey_from_name(tls_ec_curve); + if (eckey != NULL) { + SSL_CTX_set_tmp_ecdh(CTX, eckey); + } else { +# ifdef SSL_CTX_set_ecdh_auto + SSL_CTX_set_ecdh_auto(CTX, 1); +# else + SSL_CTX_set_tmp_ecdh(CTX, + EC_KEY_new_by_curve_name(NID_X9_62_prime256v1)); +# endif /* SSL_CTX_set_ecdh_auto */ + } +#endif /* HAVE_OPENSSL_ECC */ + + if (prefer_server_ciphers) { +#ifdef SSL_OP_CIPHER_SERVER_PREFERENCE + SSL_CTX_set_options(CTX, SSL_OP_CIPHER_SERVER_PREFERENCE); +#endif + } + + if ((tls_proto_vect != NULL) && (tls_proto_vect->count > 0)) { + for (i = 0; i < tls_proto_vect->count; i++) { + if (tls_proto_vect->strings[i] != NULL) { + if (strcmp(tls_proto_vect->strings[i], "SSLv2") == 0) { + tls_protos |= INN_TLS_SSLv2; + } else if (strcmp(tls_proto_vect->strings[i], "SSLv3") == 0) { + tls_protos |= INN_TLS_SSLv3; + } else if (strcmp(tls_proto_vect->strings[i], "TLSv1") == 0) { + tls_protos |= INN_TLS_TLSv1; + } else if (strcmp(tls_proto_vect->strings[i], "TLSv1.1") == 0) { + tls_protos |= INN_TLS_TLSv1_1; + } else if (strcmp(tls_proto_vect->strings[i], "TLSv1.2") == 0) { + tls_protos |= INN_TLS_TLSv1_2; + } else { + syslog(L_ERROR, "TLS engine: unknown protocol '%s' in tlsprotocols", + tls_proto_vect->strings[i]); + } + } + } + } else { + /* Default value: allow all protocols. */ + tls_protos = (INN_TLS_SSLv2 | INN_TLS_SSLv3 | INN_TLS_TLSv1 + | INN_TLS_TLSv1_1 | INN_TLS_TLSv1_2); + } + + if ((tls_protos & INN_TLS_SSLv2) == 0) { + SSL_CTX_set_options(CTX, SSL_OP_NO_SSLv2); + } + + if ((tls_protos & INN_TLS_SSLv3) == 0) { + SSL_CTX_set_options(CTX, SSL_OP_NO_SSLv3); + } + + if ((tls_protos & INN_TLS_TLSv1) == 0) { + SSL_CTX_set_options(CTX, SSL_OP_NO_TLSv1); + } + + if ((tls_protos & INN_TLS_TLSv1_1) == 0) { +#ifdef SSL_OP_NO_TLSv1_1 + SSL_CTX_set_options(CTX, SSL_OP_NO_TLSv1_1); +#endif + } + + if ((tls_protos & INN_TLS_TLSv1_2) == 0) { +#ifdef SSL_OP_NO_TLSv1_2 + SSL_CTX_set_options(CTX, SSL_OP_NO_TLSv1_2); +#endif + } + + if (tls_ciphers != NULL) { + if (SSL_CTX_set_cipher_list(CTX, tls_ciphers) == 0) { + syslog(L_ERROR, "TLS engine: cannot set cipher list"); + return (-1); + } + } + + if (!tls_compression) { +#ifdef SSL_OP_NO_COMPRESSION + SSL_CTX_set_options(CTX, SSL_OP_NO_COMPRESSION); +#endif + } + verify_depth = verifydepth; if (askcert!=0) verify_flags |= SSL_VERIFY_PEER | SSL_VERIFY_CLIENT_ONCE; @@ -510,7 +650,7 @@ tls_init_serverengine(int verifydepth, i /* ** The function called by nnrpd to initialize the TLS support. Calls -** tls_init_server_engine and checks the result. On any sort of failure, +** tls_init_serverengine and checks the result. On any sort of failure, ** nnrpd will exit. ** ** Returns -1 on error. @@ -529,7 +669,13 @@ tls_init(void) innconf->tlscafile, innconf->tlscapath, innconf->tlscertfile, - innconf->tlskeyfile); + innconf->tlskeyfile, + innconf->tlspreferserverciphers, + innconf->tlscompression, + innconf->tlsprotocols, + innconf->tlsciphers, + innconf->tlseccurve); + if (ssl_result == -1) { Reply("%d Error initializing TLS\r\n", initialSSL ? NNTP_FAIL_TERMINATING : NNTP_ERR_STARTTLS); diff -Nurp inn-2.5.4/nnrpd/tls.h inn-2.5.5/nnrpd/tls.h --- inn-2.5.4/nnrpd/tls.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/nnrpd/tls.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: tls.h 8037 2008-09-20 15:12:35Z iulius $ +/* $Id: tls.h 9753 2014-12-01 20:26:38Z iulius $ ** ** tls.h -- TLSv1 functions. ** Copyright (C) 2000 Kenichi Okada . @@ -27,6 +27,19 @@ #include #include +#if !defined(OPENSSL_NO_EC) && defined(TLSEXT_ECPOINTFORMAT_uncompressed) +# include +# include +# define HAVE_OPENSSL_ECC +#endif + +/* Protocol support. */ +#define INN_TLS_SSLv2 1 +#define INN_TLS_SSLv3 2 +#define INN_TLS_TLSv1 4 +#define INN_TLS_TLSv1_1 8 +#define INN_TLS_TLSv1_2 16 + /* Init TLS engine. */ int tls_init_serverengine(int verifydepth, /* Depth to verify. */ int askcert, /* 1 = Verify client. */ @@ -34,7 +47,12 @@ int tls_init_serverengine(int verifydept char *tls_CAfile, char *tls_CApath, char *tls_cert_file, - char *tls_key_file); + char *tls_key_file, + bool prefer_server_ciphers, + bool tls_compression, + struct vector *tls_protocols, + char *tls_ciphers, + char *tls_ec_curve); /* Init TLS. */ int tls_init(void); diff -Nurp inn-2.5.4/samples/control.ctl inn-2.5.5/samples/control.ctl --- inn-2.5.4/samples/control.ctl 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/samples/control.ctl 2015-05-23 06:24:41.000000000 -0700 @@ -1,5 +1,5 @@ ## control.ctl - Access control for control messages. -## Last modified: 2014-04-06 +## Last modified: 2014-06-17 ## ## Based on rone's unified control.ctl file. ## @@ -2634,10 +2634,10 @@ newgroup:*:worldonline.*:mail rmgroup:*:worldonline.*:doit ## WPG (Winnipeg, Manitoba, Canada) -# Contact: Gary Mills -checkgroups:mills@cc.umanitoba.ca:wpg.*:doit -newgroup:mills@cc.umanitoba.ca:wpg.*:doit -rmgroup:mills@cc.umanitoba.ca:wpg.*:doit +# +# This hierarchy is still in use, but it has no active maintainer. +# Control messages for this hierarchy should not be honored without +# confirming that the sender is the new hierarchy maintainer. ## WPI (*LOCAL* -- Worcester Polytechnic Institute, Worcester, MA) # For local use only. diff -Nurp inn-2.5.4/samples/inn.conf.in inn-2.5.5/samples/inn.conf.in --- inn-2.5.4/samples/inn.conf.in 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/samples/inn.conf.in 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: inn.conf.in 9162 2011-01-23 10:24:23Z iulius $ +## $Id: inn.conf.in 9753 2014-12-01 20:26:38Z iulius $ ## ## inn.conf -- INN configuration data ## @@ -137,6 +137,11 @@ backofftrigger: 10000 #tlscapath: @sysconfdir@ #tlscertfile: @sysconfdir@/cert.pem #tlskeyfile: @sysconfdir@/key.pem +#tlsciphers: +#tlscompression: true +#tlseccurve: +#tlspreferserverciphers: false +#tlsprotocols: [ SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 ] # Monitoring diff -Nurp inn-2.5.4/scripts/innwatch.in inn-2.5.5/scripts/innwatch.in --- inn-2.5.4/scripts/innwatch.in 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/scripts/innwatch.in 2015-05-23 06:24:41.000000000 -0700 @@ -1,7 +1,7 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -## $Id: innwatch.in 7823 2008-05-06 13:04:27Z iulius $ +## $Id: innwatch.in 9730 2014-10-03 16:28:00Z iulius $ ## Watch the state of the system relative to the news subsystem. ## As controlled by the control file, when space or inodes are almost ## exhausted, innd is throttled or paused, similarly if the load is @@ -17,6 +17,9 @@ PROGNAME=innwatch LOCK=${LOCKS}/LOCK.${PROGNAME} DAILY=${LOCKS}/LOCK.news.daily +INNWATCHINITIALSLEEPTIME=1 +CHILDPID= + ## Where to put the timestamp file (directory and filename). TIMESTAMP=${LOCKS}/${PROGNAME}.time @@ -37,18 +40,25 @@ LOGFILE=${MOST_LOGS}/news.crit while [ $# -gt 0 ] ; do case X"$1" in X-f) - FILE=$2 + CTLWATCH=$2 shift ;; X-f*) - FILE=`expr "$1" : '-s\(.*\)'` + CTLWATCH=`expr "$1" : '-f\(.*\)'` ;; + X-i) + INNWATCHINITIALSLEEPTIME=$2 + shift + ;; + X-i*) + INNWATCHINITIALSLEEPTIME=`expr "$1" : '-i\(.*\)'` + ;; X-l) LOGFILE=$2 shift ;; X-l*) - LOGFILE=`expr "$1" : '-s\(.*\)'` + LOGFILE=`expr "$1" : '-l\(.*\)'` ;; X-t) INNWATCHSLEEPTIME=$2 @@ -74,7 +84,13 @@ done ## Process arguments. if [ $# -ne 0 ] ; then - echo "Usage: ${PROGNAME} [flags]" 1>&2 + echo "Usage: ${PROGNAME} [-f ctlfile] [-i seconds] [-l logfile] [-t seconds]" 1>&2 + exit 1 +fi + +## Check the existence of the control file. +if [ ! -f "${CTLWATCH}" ] ; then + echo "Control file ${CTLWATCH} not found!" 1>&2 exit 1 fi @@ -86,7 +102,7 @@ shlock -p $$ -f ${LOCK} || { exit 0 } -trap 'rm -f ${LOCK} ${WATCHPID} ; exit 1' 1 3 15 +trap 'rm -f ${LOCK} ${WATCHPID} ; test -n "${CHILDPID}" && kill ${CHILDPID} ; exit 1' 1 3 15 echo "$$" > ${WATCHPID} ## The reason why we turned innd off, and its, and our current state. @@ -102,7 +118,9 @@ trap '( ## We need to remember the process ID of innd, in case one exits. ## But we need to wait for innd to start before we can do that. while PID=`cat ${SERVERPID} 2>/dev/null`; test -z "${PID}"; do - sleep ${INNWATCHSLEEPTIME} + sleep ${INNWATCHINITIALSLEEPTIME} & CHILDPID=$! + wait + CHILDPID= done trap '( @@ -126,7 +144,10 @@ cd ${SPOOL} NEXTSLEEP=1 HASEXITED=false -while { sleep ${NEXTSLEEP} & wait; } ; : ; do +while { sleep ${NEXTSLEEP} & CHILDPID=$! ; } +do + wait + CHILDPID= NEXTSLEEP=${INNWATCHSLEEPTIME} ## If news.daily is running, idle: we don't want to change the diff -Nurp inn-2.5.4/scripts/rc.news.in inn-2.5.5/scripts/rc.news.in --- inn-2.5.4/scripts/rc.news.in 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/scripts/rc.news.in 2015-05-23 06:24:41.000000000 -0700 @@ -1,7 +1,7 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -## $Revision: 9599 $ +## $Revision: 9727 $ ## News boot script. Runs as "news" user. Run from rc.whatever as: ## su news -s /bin/sh -c /path/to/rc.news >/dev/console ## @@ -32,13 +32,13 @@ Xstop) # Stop innwatch (if running) if [ -f $WATCHPID ]; then kill `cat $WATCHPID` - rm -f $WATCHPID + rm -f $WATCHPID ${LOCKS}/LOCK.innwatch fi printf "Stopping innd: " ${PATHBIN}/ctlinnd shutdown 'rc.news stop' - # wait for innd to exit (up to 60 sec) + # Wait for innd to exit (up to 60 sec) pid=`cat ${SERVERPID} 2>/dev/null` if [ "$pid" != "" ]; then waitforpid $pid @@ -163,12 +163,12 @@ eval ${WHAT} ${RFLAG} ${INNFLAGS} # Gee, looks like lisp, doesn't it? ${DOINNWATCH} && { echo "Scheduled start of ${INNWATCH}." - ( sleep 60 ; ${INNWATCH} ) > /dev/null & + ${INNWATCH} -i 60 > /dev/null & } ${DOCNFSSTAT} && { echo "Scheduled start of cnfsstat." - ( sleep 60 ; ${PATHBIN}/cnfsstat -s -l -P ) > /dev/null & + ${PATHBIN}/cnfsstat -i 60 -s -l -P > /dev/null & } RMFILE=${MOST_LOGS}/expire.rm diff -Nurp inn-2.5.4/scripts/scanlogs.in inn-2.5.5/scripts/scanlogs.in --- inn-2.5.4/scripts/scanlogs.in 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/scripts/scanlogs.in 2015-05-23 06:24:41.000000000 -0700 @@ -1,7 +1,7 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -## $Id: scanlogs.in 9479 2013-06-03 18:12:39Z iulius $ +## $Id: scanlogs.in 9805 2015-03-21 14:53:14Z iulius $ ## ## Summarize INN log files and rotate them. ## Used by news.daily. @@ -19,6 +19,9 @@ LOG=${MOST_LOGS}/news ## If you want to archive the active file, enable this line. ACTIVEFILE=${ACTIVE} +## Maximum number of lines to show from error log files. +MAXERRLINES=50 + ## Where these programs, if used, write their logs. ## We also have to find innfeed's log file. CONTROLBATCH=${MOST_LOGS}/controlbatch.log @@ -262,7 +265,7 @@ BASE=`basename ${SYSLOG_CRIT}` OLD_SYSLOG=${OLD}/${BASE}.0 if [ -s ${OLD_SYSLOG} ] ; then echo Syslog critical messages: - cat ${OLD_SYSLOG} + cat ${OLD_SYSLOG} | head -n ${MAXERRLINES} echo --------- echo '' fi @@ -273,7 +276,7 @@ BASE=`basename ${ERRLOG}` OLD_ERRLOG=${OLD}/${BASE}.0 if [ -s ${OLD_ERRLOG} ] ; then echo Error log: - cat ${OLD_ERRLOG} + cat ${OLD_ERRLOG} | head -n ${MAXERRLINES} echo --------- echo '' fi diff -Nurp inn-2.5.4/storage/Makefile inn-2.5.5/storage/Makefile --- inn-2.5.4/storage/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/storage/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 9318 2011-08-06 20:25:00Z iulius $ +## $Id: Makefile 9781 2015-01-07 21:04:11Z iulius $ include ../Makefile.global @@ -104,38 +104,33 @@ expire.o: expire.c ../include/config.h . ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/libinn.h ../include/inn/ov.h ../include/inn/storage.h \ ../include/inn/options.h ../include/inn/history.h ovinterface.h \ - ../include/inn/history.h ../include/inn/storage.h \ - ../include/inn/paths.h ../include/inn/vector.h + ../include/inn/storage.h ../include/inn/paths.h ../include/inn/vector.h interface.o: interface.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/conffile.h ../include/inn/innconf.h \ - ../include/inn/defines.h ../include/inn/messages.h \ - ../include/inn/wire.h interface.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/libinn.h methods.h \ - ../include/inn/paths.h + ../include/config.h ../include/conffile.h ../include/inn/defines.h \ + ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/wire.h \ + interface.h ../include/inn/storage.h ../include/inn/options.h \ + ../include/inn/libinn.h methods.h ../include/inn/paths.h methods.o: methods.c interface.h ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/inn/storage.h \ ../include/inn/defines.h ../include/inn/options.h methods.h cnfs/cnfs.h \ - timecaf/timecaf.h ../include/config.h interface.h timehash/timehash.h \ - ../include/config.h interface.h tradspool/tradspool.h \ - ../include/config.h interface.h trash/trash.h ../include/config.h \ - interface.h + timecaf/timecaf.h interface.h timehash/timehash.h tradspool/tradspool.h \ + trash/trash.h ov.o: ov.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/messages.h ../include/inn/wire.h ../include/inn/vector.h \ ../include/inn/libinn.h ../include/inn/ov.h ../include/inn/storage.h \ ../include/inn/options.h ../include/inn/history.h ovinterface.h \ - ../include/inn/history.h ../include/inn/storage.h ovmethods.h + ../include/inn/storage.h ovmethods.h overdata.o: overdata.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/buffer.h ../include/inn/defines.h \ - ../include/inn/innconf.h ../include/inn/messages.h \ - ../include/inn/wire.h ../include/inn/vector.h ../include/inn/libinn.h \ - ovinterface.h ../include/inn/history.h ../include/inn/ov.h \ - ../include/inn/storage.h ../include/inn/options.h \ - ../include/inn/history.h ../include/inn/storage.h + ../include/inn/innconf.h ../include/inn/messages.h ../include/inn/wire.h \ + ../include/inn/vector.h ../include/inn/libinn.h ovinterface.h \ + ../include/inn/history.h ../include/inn/ov.h ../include/inn/storage.h \ + ../include/inn/options.h ../include/inn/storage.h overview.o: overview.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/buffer.h ../include/inn/defines.h \ @@ -143,51 +138,44 @@ overview.o: overview.c ../include/config ../include/inn/overview.h ../include/inn/storage.h \ ../include/inn/options.h ../include/inn/wire.h ../include/inn/vector.h \ ../include/inn/libinn.h ../include/inn/ov.h ../include/inn/storage.h \ - ../include/inn/history.h ovinterface.h ../include/inn/history.h \ - ../include/inn/storage.h ovmethods.h + ../include/inn/history.h ovinterface.h ovmethods.h ovmethods.o: ovmethods.c ovinterface.h ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/inn/history.h \ ../include/inn/defines.h ../include/inn/ov.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/history.h \ - ../include/inn/storage.h buffindexed/buffindexed.h ovdb/ovdb.h \ - tradindexed/tradindexed.h ../include/config.h ../include/inn/ov.h \ - ../include/inn/storage.h + ../include/inn/options.h ../include/inn/storage.h \ + buffindexed/buffindexed.h ovdb/ovdb.h tradindexed/tradindexed.h buffindexed/buffindexed.o: buffindexed/buffindexed.c ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ - ../include/portable/mmap.h ../include/config.h ../include/inn/innconf.h \ + ../include/portable/mmap.h ../include/inn/innconf.h \ ../include/inn/defines.h ../include/inn/messages.h \ ../include/inn/libinn.h ../include/inn/ov.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/history.h \ - ../include/inn/paths.h ovinterface.h ../include/config.h \ - ../include/inn/history.h ../include/inn/ov.h ../include/inn/storage.h \ - ../include/inn/storage.h buffindexed/shmem.h buffindexed/buffindexed.h + ../include/inn/options.h ../include/inn/history.h ../include/inn/paths.h \ + ovinterface.h ../include/inn/storage.h buffindexed/shmem.h \ + buffindexed/buffindexed.h buffindexed/shmem.o: buffindexed/shmem.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/messages.h ../include/inn/defines.h \ ../include/inn/libinn.h buffindexed/shmem.h cnfs/cnfs.o: cnfs/cnfs.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/mmap.h ../include/config.h \ + ../include/config.h ../include/portable/mmap.h \ ../include/portable/time.h ../include/inn/innconf.h \ - ../include/inn/defines.h ../include/inn/messages.h \ - ../include/inn/mmap.h ../include/inn/wire.h interface.h \ - ../include/config.h ../include/inn/storage.h ../include/inn/options.h \ - ../include/inn/libinn.h methods.h interface.h ../include/inn/paths.h \ - cnfs/cnfs.h cnfs/cnfs-private.h + ../include/inn/defines.h ../include/inn/messages.h ../include/inn/mmap.h \ + ../include/inn/wire.h interface.h ../include/inn/storage.h \ + ../include/inn/options.h ../include/inn/libinn.h methods.h interface.h \ + ../include/inn/paths.h cnfs/cnfs.h cnfs/cnfs-private.h ovdb/ovdb.o: ovdb/ovdb.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/socket.h ../include/config.h \ + ../include/config.h ../include/portable/socket.h \ ../include/portable/getaddrinfo.h ../include/portable/getnameinfo.h \ ../include/portable/time.h ../include/conffile.h \ - ../include/inn/innconf.h ../include/inn/defines.h \ + ../include/inn/defines.h ../include/inn/innconf.h \ ../include/inn/libinn.h ../include/inn/messages.h \ - ../include/inn/newsuser.h ../include/config.h ../include/clibrary.h \ - ../include/inn/paths.h ../include/inn/storage.h \ - ../include/inn/options.h ../include/inn/ov.h ../include/inn/storage.h \ - ../include/inn/history.h ovinterface.h ../include/config.h \ - ../include/inn/history.h ../include/inn/ov.h ../include/inn/storage.h \ + ../include/inn/newsuser.h ../include/inn/paths.h \ + ../include/inn/storage.h ../include/inn/options.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/history.h ovinterface.h \ ovdb/ovdb.h ovdb/ovdb-private.h timecaf/caf.o: timecaf/caf.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ @@ -195,20 +183,19 @@ timecaf/caf.o: timecaf/caf.c ../include/ ../include/inn/libinn.h timecaf/caf.h timecaf/timecaf.o: timecaf/timecaf.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ - ../include/config.h ../include/portable/mmap.h ../include/config.h \ - timecaf/caf.h ../include/inn/innconf.h ../include/inn/defines.h \ + ../include/config.h ../include/portable/mmap.h timecaf/caf.h \ + ../include/inn/innconf.h ../include/inn/defines.h \ ../include/inn/messages.h ../include/inn/wire.h ../include/inn/libinn.h \ - methods.h interface.h ../include/config.h ../include/inn/storage.h \ - ../include/inn/options.h timecaf/timecaf.h interface.h \ - ../include/inn/paths.h + methods.h interface.h ../include/inn/storage.h ../include/inn/options.h \ + timecaf/timecaf.h interface.h ../include/inn/paths.h timehash/timehash.o: timehash/timehash.c ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ - ../include/portable/mmap.h ../include/config.h ../include/inn/innconf.h \ - ../include/inn/defines.h ../include/inn/messages.h \ - ../include/inn/wire.h ../include/inn/libinn.h methods.h interface.h \ - ../include/config.h ../include/inn/storage.h ../include/inn/options.h \ - ../include/inn/paths.h timehash/timehash.h interface.h + ../include/portable/mmap.h ../include/inn/innconf.h \ + ../include/inn/defines.h ../include/inn/messages.h ../include/inn/wire.h \ + ../include/inn/libinn.h methods.h interface.h ../include/inn/storage.h \ + ../include/inn/options.h ../include/inn/paths.h timehash/timehash.h \ + interface.h tradindexed/tdx-cache.o: tradindexed/tdx-cache.c ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ @@ -219,18 +206,16 @@ tradindexed/tdx-cache.o: tradindexed/tdx tradindexed/tdx-data.o: tradindexed/tdx-data.c ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ - ../include/portable/mmap.h ../include/config.h ../include/inn/history.h \ + ../include/portable/mmap.h ../include/inn/history.h \ ../include/inn/defines.h ../include/inn/innconf.h \ ../include/inn/messages.h ../include/inn/mmap.h ../include/inn/libinn.h \ ../include/inn/ov.h ../include/inn/storage.h ../include/inn/options.h \ - ../include/inn/history.h ovinterface.h ../include/config.h \ - ../include/inn/history.h ../include/inn/ov.h ../include/inn/storage.h \ - ../include/inn/storage.h tradindexed/tdx-private.h \ + ovinterface.h ../include/inn/storage.h tradindexed/tdx-private.h \ tradindexed/tdx-structure.h tradindexed/tdx-group.o: tradindexed/tdx-group.c ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ - ../include/portable/mmap.h ../include/config.h ../include/inn/hashtab.h \ + ../include/portable/mmap.h ../include/inn/hashtab.h \ ../include/inn/defines.h ../include/inn/innconf.h \ ../include/inn/messages.h ../include/inn/mmap.h ../include/inn/qio.h \ ../include/inn/vector.h ../include/inn/libinn.h ../include/inn/paths.h \ @@ -248,26 +233,23 @@ tradindexed/tradindexed.o: tradindexed/t tradspool/tradspool.o: tradspool/tradspool.c ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ - ../include/portable/mmap.h ../include/config.h ../include/inn/innconf.h \ + ../include/portable/mmap.h ../include/inn/innconf.h \ ../include/inn/defines.h ../include/inn/messages.h ../include/inn/qio.h \ ../include/inn/wire.h ../include/inn/libinn.h ../include/inn/paths.h \ - methods.h interface.h ../include/config.h ../include/inn/storage.h \ - ../include/inn/options.h tradspool/tradspool.h interface.h + methods.h interface.h ../include/inn/storage.h ../include/inn/options.h \ + tradspool/tradspool.h interface.h trash/trash.o: trash/trash.c ../include/config.h ../include/inn/defines.h \ ../include/inn/system.h ../include/inn/options.h ../include/clibrary.h \ ../include/config.h ../include/inn/libinn.h ../include/inn/defines.h \ - methods.h interface.h ../include/config.h ../include/inn/storage.h \ - ../include/inn/options.h trash/trash.h interface.h + methods.h interface.h ../include/inn/storage.h ../include/inn/options.h \ + trash/trash.h interface.h tradindexed/tdx-util.o: tradindexed/tdx-util.c ../include/config.h \ ../include/inn/defines.h ../include/inn/system.h \ ../include/inn/options.h ../include/clibrary.h ../include/config.h \ - ../include/inn/buffer.h ../include/inn/defines.h \ - ../include/inn/libinn.h ../include/inn/history.h \ - ../include/inn/innconf.h ../include/inn/messages.h \ - ../include/inn/newsuser.h ../include/config.h ../include/clibrary.h \ - ../include/inn/ov.h ../include/inn/storage.h ../include/inn/options.h \ - ../include/inn/history.h ../include/inn/paths.h ../include/inn/vector.h \ - ../include/inn/wire.h ovinterface.h ../include/config.h \ - ../include/inn/history.h ../include/inn/ov.h ../include/inn/storage.h \ - tradindexed/tdx-private.h ../include/inn/storage.h \ + ../include/inn/buffer.h ../include/inn/defines.h ../include/inn/libinn.h \ + ../include/inn/history.h ../include/inn/innconf.h \ + ../include/inn/messages.h ../include/inn/newsuser.h ../include/inn/ov.h \ + ../include/inn/storage.h ../include/inn/options.h ../include/inn/paths.h \ + ../include/inn/vector.h ../include/inn/wire.h ovinterface.h \ + ../include/inn/storage.h tradindexed/tdx-private.h \ tradindexed/tdx-structure.h diff -Nurp inn-2.5.4/storage/buffindexed/buffindexed.h inn-2.5.5/storage/buffindexed/buffindexed.h --- inn-2.5.4/storage/buffindexed/buffindexed.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/storage/buffindexed/buffindexed.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,9 +1,12 @@ +/* $Id: buffindexed.h 9780 2015-01-07 21:03:00Z iulius $ +*/ + #ifndef _BUFFINDEXED_H_ #define _BUFFINDEXED_H_ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +#include "config.h" + +BEGIN_DECLS bool buffindexed_open(int mode); bool buffindexed_groupstats(const char *group, int *lo, int *hi, int *count, @@ -23,8 +26,6 @@ bool buffindexed_expiregroup(const char bool buffindexed_ctl(OVCTLTYPE type, void *val); void buffindexed_close(void); -#ifdef __cplusplus -} -#endif /* __cplusplus */ +END_DECLS #endif /* _BUFFINDEXED_H_ */ diff -Nurp inn-2.5.4/storage/cnfs/cnfs.c inn-2.5.5/storage/cnfs/cnfs.c --- inn-2.5.4/storage/cnfs/cnfs.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/storage/cnfs/cnfs.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: cnfs.c 9320 2011-08-06 20:43:03Z iulius $ +/* $Id: cnfs.c 9874 2015-05-23 11:36:25Z iulius $ ** ** Storage manager module for Cyclic News File System method. */ @@ -123,9 +123,13 @@ static bool CNFSBreakToken(TOKEN token, uint32_t uint32; if (cycbuffname == NULL || blk == NULL || cycnum == NULL) { - warn("CNFS: BreakToken: invalid argument: %s", cycbuffname); - SMseterror(SMERR_INTERNAL, "BreakToken: invalid argument"); - return false; + if (cycbuffname == NULL) { + warn("CNFS: BreakToken: invalid argument"); + } else { + warn("CNFS: BreakToken: invalid argument: %s", cycbuffname); + } + SMseterror(SMERR_INTERNAL, "BreakToken: invalid argument"); + return false; } memcpy(cycbuffname, token.token, CNFSMAXCYCBUFFNAME); *(cycbuffname + CNFSMAXCYCBUFFNAME) = '\0'; /* Just to be paranoid */ @@ -921,15 +925,15 @@ cnfs_mapcntl(void *p, size_t length, int /* Don't thrash the system with msync()s - keep the last value * and check each time, only if the pages which we should - * flush change actually flush the previous ones. Calling + * flush change actually flush the previous ones. Calling * cnfs_mapcntl(NULL, 0, MS_ASYNC) then flushes the final - * piece */ + * piece. */ if (start != sstart || end != send) { if (sstart != NULL && send != NULL) { msync(sstart, send - sstart, flags); } sstart = start; - send = send; + send = end; } } } diff -Nurp inn-2.5.4/storage/ovdb/ovdb.h inn-2.5.5/storage/ovdb/ovdb.h --- inn-2.5.4/storage/ovdb/ovdb.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/storage/ovdb/ovdb.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,9 +1,12 @@ +/* $Id: ovdb.h 9780 2015-01-07 21:03:00Z iulius $ +*/ + #ifndef _OVDB_H_ #define _OVDB_H_ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +#include "config.h" + +BEGIN_DECLS bool ovdb_open(int mode); bool ovdb_groupstats(const char *group, int *lo, int *hi, int *count, @@ -22,8 +25,6 @@ bool ovdb_expiregroup(const char *group, bool ovdb_ctl(OVCTLTYPE type, void *val); void ovdb_close(void); -#ifdef __cplusplus -} -#endif /* __cplusplus */ +END_DECLS #endif /* _OVDB_H_ */ diff -Nurp inn-2.5.4/storage/timecaf/timecaf.c inn-2.5.5/storage/timecaf/timecaf.c --- inn-2.5.4/storage/timecaf/timecaf.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/storage/timecaf/timecaf.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: timecaf.c 9024 2010-03-21 16:49:30Z iulius $ +/* $Id: timecaf.c 9871 2015-05-17 17:23:43Z iulius $ ** ** Like the timehash storage method (and heavily inspired by it), but uses ** the CAF library to store multiple articles in a single file. @@ -185,15 +185,16 @@ static char *MakePath(time_t now, const static TOKEN *PathNumToToken(char *path, ARTNUM artnum) { int n; - unsigned int t1, t2; + unsigned int tclass, t1, t2; STORAGECLASS class; time_t timestamp; static TOKEN token; - n = sscanf(path, "timecaf-%02x/%02x/%04x.CF", (unsigned int *)&class, &t1, &t2); + n = sscanf(path, "timecaf-%02x/%02x/%04x.CF", &tclass, &t1, &t2); if (n != 3) return (TOKEN *)NULL; timestamp = ((t1 << 8) & 0xff00) | ((t2 << 8) & 0xff0000) | ((t2 << 0) & 0xff); + class = tclass; token = MakeToken(timestamp, artnum, class, (TOKEN *)NULL); return &token; } diff -Nurp inn-2.5.4/storage/timehash/timehash.c inn-2.5.5/storage/timehash/timehash.c --- inn-2.5.4/storage/timehash/timehash.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/storage/timehash/timehash.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: timehash.c 9024 2010-03-21 16:49:30Z iulius $ +/* $Id: timehash.c 9871 2015-05-17 17:23:43Z iulius $ ** ** Storage manager module for timehash method. */ @@ -114,16 +114,17 @@ static char *MakePath(time_t now, int se static TOKEN *PathToToken(char *path) { int n; - unsigned int t1, t2, t3, seqnum; + unsigned int tclass, t1, t2, t3, seqnum; STORAGECLASS class; time_t now; static TOKEN token; n = sscanf(path, "time-%02x/%02x/%02x/%04x-%04x", - (unsigned int *)&class, &t1, &t2, &seqnum, &t3); + &tclass, &t1, &t2, &seqnum, &t3); if (n != 5) return (TOKEN *)NULL; now = ((t1 << 16) & 0xff0000) | ((t2 << 8) & 0xff00) | ((t3 << 16) & 0xff000000) | (t3 & 0xff); + class = tclass; token = MakeToken(now, seqnum, class, (TOKEN *)NULL); return &token; } diff -Nurp inn-2.5.4/storage/tradindexed/tdx-group.c inn-2.5.5/storage/tradindexed/tdx-group.c --- inn-2.5.4/storage/tradindexed/tdx-group.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/storage/tradindexed/tdx-group.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: tdx-group.c 8476 2009-05-18 03:59:10Z eagle $ +/* $Id: tdx-group.c 9867 2015-05-14 13:44:14Z iulius $ ** ** Group index handling for the tradindexed overview method. ** @@ -278,7 +278,8 @@ file_open_group_index(struct group_index /* ** Given a group location, remap the index file if our existing mapping isn't ** large enough to include that group. (This can be the case when another -** writer is appending entries to the group index.) +** writer is appending entries to the group index.) Returns true on success +** (which includes "did not need to remap") and false on failure. */ static bool index_maybe_remap(struct group_index *index, long loc) @@ -357,7 +358,7 @@ index_expand(struct group_index *index) their next entry is entry 0. We don't want to leave things in this state (particularly if this was the first expansion of the index file, in which case entry 0 points to entry 0 and our walking functions may - go into infinite loops. Undo the file expansion. */ + go into infinite loops). Undo the file expansion. */ if (!index_map(index)) { index->count -= 1024; if (ftruncate(index->fd, index_file_size(index->count)) < 0) { @@ -502,11 +503,18 @@ index_find(struct group_index *index, co return -1; loc = index->header->hash[index_bucket(hash)].recno; - while (loc >= 0 && loc < index->count) { + while (loc >= 0) { struct group_entry *entry; - if (loc > index->count && !index_maybe_remap(index, loc)) - return -1; + if (loc >= index->count) { + if (!index_maybe_remap(index, loc)) { + return -1; + } + if (loc >= index->count) { + syswarn("tradindexed: entry %ld out of range", loc); + return -1; + } + } entry = index->entries + loc; if (entry->deleted == 0) if (memcmp(&hash, &entry->hash, sizeof(hash)) == 0) @@ -549,11 +557,20 @@ index_unlink_hash(struct group_index *in parent = &index->header->hash[index_bucket(hash)].recno; current = *parent; - while (current >= 0 && current < index->count) { + while (current >= 0) { struct group_entry *entry; - if (current > index->count && !index_maybe_remap(index, current)) - return -1; + if (current >= index->count) { + if (!index_maybe_remap(index, current)) { + return -1; + } + parent = &index->header->hash[index_bucket(hash)].recno; + current = *parent; + if (current < 0 || current >= index->count) { + syswarn("tradindexed: entry %ld out of range", current); + return -1; + } + } entry = &index->entries[current]; if (entry->deleted == 0) if (memcmp(&hash, &entry->hash, sizeof(hash)) == 0) { diff -Nurp inn-2.5.4/support/config.guess inn-2.5.5/support/config.guess --- inn-2.5.4/support/config.guess 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/support/config.guess 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2014-03-23' +timestamp='2015-03-04' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -24,12 +24,12 @@ timestamp='2014-03-23' # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # -# Originally written by Per Bothner. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -168,20 +168,27 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) + arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ @@ -197,6 +204,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -213,7 +227,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -579,8 +593,9 @@ EOF else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi @@ -932,6 +947,9 @@ EOF crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; diff -Nurp inn-2.5.4/support/config.sub inn-2.5.5/support/config.sub --- inn-2.5.4/support/config.sub 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/support/config.sub 2015-05-23 06:24:41.000000000 -0700 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2014-05-01' +timestamp='2015-03-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ timestamp='2014-05-01' # of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -68,7 +68,7 @@ Report bugs and patches to > .makefile.tmp ;; *) gcc -MM $flags "$source" \ | sed -e 's%\(^\| *\)/[^ ]*%\1%g' -e '/^ *\\$/d' \ - -e 's/ *\( \| \\\)/\1/g' \ + -e 's/ *\( \| \\\)/\1/g' -e 's/^ \([^ ]\)/ \1/g' \ | sed -e '/ \\$/N; s/ \\\n *$//g; P; D' \ >> .makefile.tmp ;; diff -Nurp inn-2.5.4/support/mkmanifest inn-2.5.5/support/mkmanifest --- inn-2.5.4/support/mkmanifest 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/support/mkmanifest 2015-05-23 06:24:41.000000000 -0700 @@ -1,6 +1,6 @@ #! /usr/bin/perl -w -## $Id: mkmanifest 9478 2013-05-24 16:28:27Z iulius $ +## $Id: mkmanifest 9814 2015-03-24 18:50:31Z iulius $ ## ## Generate a filename-only manifest from an INN tree. ## @@ -112,14 +112,17 @@ backends/sendxbatches backends/shlock backends/shrinkfile contrib/archivegz +contrib/auth_pass contrib/backlogstat contrib/cleannewsgroups contrib/delayer +contrib/expirectl contrib/findreadgroups contrib/makeexpctl contrib/makestorconf contrib/mlockfile contrib/newsresp +contrib/nnrp.access2readers.conf contrib/pullart contrib/reset-cnfs contrib/respool diff -Nurp inn-2.5.4/support/mksystem inn-2.5.5/support/mksystem --- inn-2.5.4/support/mksystem 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/support/mksystem 2015-05-23 06:24:41.000000000 -0700 @@ -1,6 +1,6 @@ #! /bin/sh -## $Id: mksystem 6619 2004-01-12 06:09:27Z rra $ +## $Id: mksystem 9676 2014-09-05 18:47:24Z iulius $ ## ## Create include/inn/system.h from include/config.h. ## @@ -39,7 +39,7 @@ $1 ' /^#define HAVE_INTTYPES_H/ { print $1 " INN_" $2 " " $3 } /^#define HAVE_MSYNC_3_ARG/ { print $1 " INN_" $2 " " $3 } /^#define HAVE_STDBOOL_H/ { print $1 " INN_" $2 " " $3 } -/^#define HAVE_SYS_BITTYPES_H/ { print $1 " INN_" $2 " " $3 } +/^#define HAVE_SYS_BITYPES_H/ { print $1 " INN_" $2 " " $3 } /^#define HAVE__BOOL/ { print $1 " INN_" $2 " " $3 } ' $2 diff -Nurp inn-2.5.4/tests/Makefile inn-2.5.5/tests/Makefile --- inn-2.5.4/tests/Makefile 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/tests/Makefile 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -## $Id: Makefile 9458 2013-01-16 21:57:16Z iulius $ +## $Id: Makefile 9687 2014-09-07 14:14:36Z iulius $ include ../Makefile.global @@ -240,7 +240,7 @@ lib/xwrite.o: ../lib/xwrite.c lib/xwrite.t: lib/xwrite-t.o lib/xwrite.o lib/fakewrite.o libtest.o $(LIBINN) $(LINK) lib/xwrite-t.o lib/xwrite.o lib/fakewrite.o libtest.o $(LIBINN) -nnrpd/auth-ext.t: nnrpd/auth-ext-t.o ../nnrpd/auth-ext.o $(LIBINN) +nnrpd/auth-ext.t: nnrpd/auth-ext-t.o ../nnrpd/auth-ext.o libtest.o $(LIBINN) $(LINK) nnrpd/auth-ext-t.o ../nnrpd/auth-ext.o libtest.o $(LIBINN) overview/api.t: overview/api-t.o libtest.o $(STORAGEDEPS) diff -Nurp inn-2.5.4/tests/lib/md5-t.c inn-2.5.5/tests/lib/md5-t.c --- inn-2.5.4/tests/lib/md5-t.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/tests/lib/md5-t.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: md5-t.c 7585 2006-11-21 09:37:51Z eagle $ */ +/* $Id: md5-t.c 9828 2015-04-23 14:51:16Z iulius $ */ /* MD5 hashing test suite. */ #include "config.h" @@ -7,8 +7,9 @@ #include "inn/libinn.h" #include "libtest.h" -/* Used to initialize strings of unsigned characters. */ -#define U (const unsigned char *) +/* Used for strings of unsigned characters (called SUC instead of U + because it otherwise conflicts with Unicode strings). */ +#define SUC (const unsigned char *) /* An unsigned char version of strlen. */ #define ustrlen(s) strlen((const char *) s) @@ -21,25 +22,25 @@ static const char hex[] = "0123456789abc checked separately. */ static const unsigned char * const testdata[] = { /* First five tests of the MD5 test suite from RFC 1321. */ - U"", - U"a", - U"abc", - U"message digest", - U"abcdefghijklmnopqrstuvwxyz", + SUC"", + SUC"a", + SUC"abc", + SUC"message digest", + SUC"abcdefghijklmnopqrstuvwxyz", /* Three real message IDs to ensure compatibility with old INN versions; the corresponding MD5 hashes were taken directly out of the history file of a server running INN 2.3. */ - U"", - U"", - U"", + SUC"", + SUC"", + SUC"", /* Other random stuff, including high-bit characters. */ - U"example.test", - U"||", - U"|||", - U"\375\277\277\277\277\276", - U"\377\277\277\277\277\277" + SUC"example.test", + SUC"||", + SUC"|||", + SUC"\375\277\277\277\277\276", + SUC"\377\277\277\277\277\277" }; /* The hashes corresonding to the above data. */ @@ -95,8 +96,8 @@ main(void) test_init(12 + ARRAY_SIZE(testdata)); - test_md5(1, "93b885adfe0da089cdf634904fd59f71", U"\0", 1); - test_md5(2, "e94a053c3fbfcfb22b4debaa11af7718", U"\0ab\n", 4); + test_md5(1, "93b885adfe0da089cdf634904fd59f71", SUC"\0", 1); + test_md5(2, "e94a053c3fbfcfb22b4debaa11af7718", SUC"\0ab\n", 4); data = xmalloc(64 * 1024); memset(data, 0, 64 * 1024); diff -Nurp inn-2.5.4/tests/lib/tst-t.c inn-2.5.5/tests/lib/tst-t.c --- inn-2.5.4/tests/lib/tst-t.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/tests/lib/tst-t.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: tst-t.c 9280 2011-07-17 19:36:24Z iulius $ */ +/* $Id: tst-t.c 9828 2015-04-23 14:51:16Z iulius $ */ /* Test suite for ternary search tries. */ #include "config.h" @@ -9,8 +9,9 @@ #include "inn/libinn.h" #include "libtest.h" -/* Used for strings of unsigned characters. */ -#define U (const unsigned char *) +/* Used for strings of unsigned characters (called SUC instead of U + because it otherwise conflicts with Unicode strings). */ +#define SUC (const unsigned char *) /* An unsigned char version of strlen. */ #define ustrlen(s) strlen((const char *) s) @@ -36,38 +37,38 @@ main(void) tst = tst_init(2); ok(1, tst != NULL); - ok(2, tst_insert(tst, U"test", test, 0, NULL) == TST_OK); - ok_string(3, "test", tst_search(tst, U"test")); - ok(4, tst_insert(tst, U"test", foo, 0, &existing) == TST_DUPLICATE_KEY); + ok(2, tst_insert(tst, SUC"test", test, 0, NULL) == TST_OK); + ok_string(3, "test", tst_search(tst, SUC"test")); + ok(4, tst_insert(tst, SUC"test", foo, 0, &existing) == TST_DUPLICATE_KEY); ok_string(5, "test", existing); - ok(6, tst_insert(tst, U"test", foo, TST_REPLACE, &existing) == TST_OK); + ok(6, tst_insert(tst, SUC"test", foo, TST_REPLACE, &existing) == TST_OK); ok_string(7, "test", existing); - ok_string(8, "foo", tst_search(tst, U"test")); - ok(9, tst_insert(tst, U"testing", testing, 0, NULL) == TST_OK); - ok(10, tst_insert(tst, U"t", t, 0, NULL) == TST_OK); - ok(11, tst_insert(tst, U"Strange", Strange, 0, NULL) == TST_OK); - ok(12, tst_insert(tst, U"çhange", change, 0, NULL) == TST_OK); - ok(13, tst_insert(tst, U"", foo, 0, NULL) == TST_NULL_KEY); + ok_string(8, "foo", tst_search(tst, SUC"test")); + ok(9, tst_insert(tst, SUC"testing", testing, 0, NULL) == TST_OK); + ok(10, tst_insert(tst, SUC"t", t, 0, NULL) == TST_OK); + ok(11, tst_insert(tst, SUC"Strange", Strange, 0, NULL) == TST_OK); + ok(12, tst_insert(tst, SUC"çhange", change, 0, NULL) == TST_OK); + ok(13, tst_insert(tst, SUC"", foo, 0, NULL) == TST_NULL_KEY); ok(14, tst_insert(tst, NULL, foo, 0, NULL) == TST_NULL_KEY); - ok_string(15, "testing", tst_search(tst, U"testing")); - ok_string(16, "t", tst_search(tst, U"t")); - ok_string(17, "Strange", tst_search(tst, U"Strange")); - ok_string(18, "çhange", tst_search(tst, U"çhange")); - ok_string(19, "foo", tst_search(tst, U"test")); - ok(20, tst_search(tst, U"") == NULL); - ok(21, tst_search(tst, U"Peter") == NULL); - ok(22, tst_search(tst, U"foo") == NULL); - ok(23, tst_search(tst, U"te") == NULL); - ok_string(24, "Strange", tst_delete(tst, U"Strange")); - ok(25, tst_search(tst, U"Strange") == NULL); - ok_string(26, "t", tst_delete(tst, U"t")); - ok(27, tst_search(tst, U"t") == NULL); - ok_string(28, "testing", tst_search(tst, U"testing")); - ok_string(29, "foo", tst_search(tst, U"test")); - ok_string(30, "testing", tst_delete(tst, U"testing")); - ok_string(31, "foo", tst_search(tst, U"test")); - ok_string(32, "çhange", tst_delete(tst, U"çhange")); - ok_string(33, "foo", tst_delete(tst, U"test")); + ok_string(15, "testing", tst_search(tst, SUC"testing")); + ok_string(16, "t", tst_search(tst, SUC"t")); + ok_string(17, "Strange", tst_search(tst, SUC"Strange")); + ok_string(18, "çhange", tst_search(tst, SUC"çhange")); + ok_string(19, "foo", tst_search(tst, SUC"test")); + ok(20, tst_search(tst, SUC"") == NULL); + ok(21, tst_search(tst, SUC"Peter") == NULL); + ok(22, tst_search(tst, SUC"foo") == NULL); + ok(23, tst_search(tst, SUC"te") == NULL); + ok_string(24, "Strange", tst_delete(tst, SUC"Strange")); + ok(25, tst_search(tst, SUC"Strange") == NULL); + ok_string(26, "t", tst_delete(tst, SUC"t")); + ok(27, tst_search(tst, SUC"t") == NULL); + ok_string(28, "testing", tst_search(tst, SUC"testing")); + ok_string(29, "foo", tst_search(tst, SUC"test")); + ok_string(30, "testing", tst_delete(tst, SUC"testing")); + ok_string(31, "foo", tst_search(tst, SUC"test")); + ok_string(32, "çhange", tst_delete(tst, SUC"çhange")); + ok_string(33, "foo", tst_delete(tst, SUC"test")); ok(34, tst_search(tst, NULL) == NULL); ok(35, tst_delete(tst, NULL) == NULL); tst_cleanup(tst); diff -Nurp inn-2.5.4/tests/libtest.c inn-2.5.5/tests/libtest.c --- inn-2.5.4/tests/libtest.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/tests/libtest.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: libtest.c 9351 2011-08-19 15:09:48Z iulius $ +/* $Id: libtest.c 9768 2014-12-07 21:22:57Z iulius $ * * Some utility routines for writing tests. * @@ -13,7 +13,7 @@ * This file is part of C TAP Harness. The current version plus supporting * documentation is at . * - * Copyright 2009, 2010 Russ Allbery + * Copyright 2009, 2010 Russ Allbery * Copyright 2001, 2002, 2004, 2005, 2006, 2007, 2008 * The Board of Trustees of the Leland Stanford Junior University * diff -Nurp inn-2.5.4/tests/libtest.h inn-2.5.5/tests/libtest.h --- inn-2.5.4/tests/libtest.h 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/tests/libtest.h 2015-05-23 06:24:41.000000000 -0700 @@ -1,11 +1,11 @@ -/* $Id: libtest.h 9351 2011-08-19 15:09:48Z iulius $ +/* $Id: libtest.h 9768 2014-12-07 21:22:57Z iulius $ * * Basic utility routines for the TAP protocol. * * This file is part of C TAP Harness. The current version plus supporting * documentation is at . * - * Copyright 2009, 2010 Russ Allbery + * Copyright 2009, 2010 Russ Allbery * Copyright 2001, 2002, 2004, 2005, 2006, 2007, 2008 * The Board of Trustees of the Leland Stanford Junior University * diff -Nurp inn-2.5.4/tests/libtest.sh inn-2.5.5/tests/libtest.sh --- inn-2.5.4/tests/libtest.sh 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/tests/libtest.sh 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -# $Id: libtest.sh 9280 2011-07-17 19:36:24Z iulius $ +# $Id: libtest.sh 9768 2014-12-07 21:22:57Z iulius $ # # Shell function library for test cases. # @@ -6,8 +6,8 @@ # writing test cases. It is part of C TAP Harness, which can be found at # . # -# Written by Russ Allbery -# Copyright 2009, 2010 Russ Allbery +# Written by Russ Allbery +# Copyright 2009, 2010 Russ Allbery # Copyright 2006, 2007, 2008 # The Board of Trustees of the Leland Stanford Junior University # diff -Nurp inn-2.5.4/tests/runtests.c inn-2.5.5/tests/runtests.c --- inn-2.5.4/tests/runtests.c 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/tests/runtests.c 2015-05-23 06:24:41.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: runtests.c 9280 2011-07-17 19:36:24Z iulius $ +/* $Id: runtests.c 9768 2014-12-07 21:22:57Z iulius $ * * Run a set of tests, reporting results. * @@ -63,7 +63,7 @@ * Harness . * * Copyright 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010, 2011 - * Russ Allbery + * Russ Allbery * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), diff -Nurp inn-2.5.4/tests/util/innupgrade.t inn-2.5.5/tests/util/innupgrade.t --- inn-2.5.4/tests/util/innupgrade.t 2014-05-17 01:24:49.000000000 -0700 +++ inn-2.5.5/tests/util/innupgrade.t 2015-05-23 06:24:41.000000000 -0700 @@ -1,5 +1,5 @@ #! /bin/sh -# $Id: innupgrade.t 8415 2009-04-12 20:19:35Z iulius $ +# $Id: innupgrade.t 9689 2014-09-11 11:28:49Z iulius $ # # Test suite for innupgrade. @@ -13,7 +13,7 @@ printcount () { # Run innupgrade with the given arguments and expect it to succeed. run () { - $innupgrade "$@" + perl -Tw ${innupgrade} "$@" if [ $? = 0 ] ; then printcount "ok" else