diff -Nurp inn-2.4.5/ChangeLog inn-2.4.6/ChangeLog --- inn-2.4.5/ChangeLog 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/ChangeLog 2009-03-01 09:49:22.000000000 -0800 @@ -1,238 +1,370 @@ -2008-06-29 iulius +2009-02-27 iulius - * lib/perl.c: Use snprintf instead of asprintf. + * NEWS, doc/pod/news.pod: Mention a fix for Perl 5.8.9 in the INN + 2.4.6 changelog. - * doc/hook-python, doc/pod/hook-python.pod: Use initial capital - letters for head titles. + * frontends/mailpost.in: When an article contained CRLF, parsing + was broken. - * NEWS, doc/pod/news.pod, lib/perl.c: Fixed a hang in Perl hooks on - (at least) HP/PA since Perl 5.10. On such architectures, - pthread_mutex_lock() hangs inside perl_parse() if - PERL_SYS_INIT3() hasn't been called. + * doc/man/simpleftp.1, doc/pod/simpleftp.pod, scripts/simpleftp.in: + Remove my email from documentation. + +2009-02-25 iulius + + * NEWS, doc/pod/news.pod: Updated changelog for INN 2.4.6. + + * NEWS, doc/pod/news.pod: Old changelog fixes. + + * scripts/inncheck.in: * Allow a range of permissions to be + checked, instead of a forced one. Therefore, we can have + different configurations, depending on the security the user + wants to enforce. + + * rnews can be owned by the group uucp if --enable-uucp-rnews is + given to configure. - Also rewrite "do" and "eval" calls to use perl_eval_pv(). + * Add a comment for unknown files in the rnews directory (they + may be backups ending with ".OLD"). -2008-06-25 iulius +2009-02-21 iulius - * samples/innreport.conf.in: For two sections in innreport.conf - there is a mismatch between sort function and sorted hash. + * doc/man/makehistory.8, doc/pod/makehistory.pod: Mention that + makehistory also generates dbz indices, contrary to what the man + page stated. Also fix a few typos and wrong command-line + commands, as well as a better POD syntax. - Thanks to Alexander Bartolich for this patch. + (Backport from CURRENT except for the -S flag which does not + exist in STABLE and the -e flag which exists only in STABLE.) -2008-06-24 iulius +2009-02-20 iulius - * NEWS, doc/pod/news.pod, scripts/innreport_inn.pm: Fix another - long-standing bug in innreport which prevented it from correctly - reporting innfeed log messages. + * NEWS, doc/pod/news.pod: Changelog for INN 2.4.6 :-) - * scripts/innreport_inn.pm: Suppress a few other nnrpd and - controlchan notices in innreport. + * INSTALL, doc/man/ovdb.5, doc/pod/install.pod, doc/pod/ovdb.pod: + Mention that Berkeley DB 4.7 is recommended, as well as Perl + 5.8.0 and Python 2.5.0. -2008-06-23 iulius +2009-02-19 iulius - * NEWS, doc/pod/news.pod: Add changelog for innreport. + * LICENSE: Add new copyright year. - * NEWS, doc/pod/news.pod: Changelog for INN 2.4.5 :-) + * doc/hook-perl, doc/hook-python: Update documentation on Perl and + Python hooks (new headers). - * doc/hook-python: Update the auto-generated documentation for INN - 2.4.5. + * doc/man/active.5, doc/man/active.times.5, doc/man/auth_krb5.8, + doc/man/auth_smb.8, doc/man/ckpasswd.8, doc/man/control.ctl.5, + doc/man/convdate.1, doc/man/cycbuff.conf.5, + doc/man/distrib.pats.5, doc/man/domain.8, doc/man/expire.ctl.5, + doc/man/expireover.8, doc/man/fastrm.1, doc/man/grephistory.1, + doc/man/ident.8, doc/man/inews.1, doc/man/inn.conf.5, + doc/man/innconfval.1, doc/man/innd.8, doc/man/inndf.8, + doc/man/inndstart.8, doc/man/innmail.1, doc/man/innupgrade.8, + doc/man/libauth.3, doc/man/libinnhist.3, doc/man/list.3, + doc/man/mailpost.8, doc/man/makehistory.8, doc/man/motd.news.5, + doc/man/newsfeeds.5, doc/man/ninpaths.8, doc/man/nnrpd.8, + doc/man/ovdb.5, doc/man/ovdb_init.8, doc/man/ovdb_monitor.8, + doc/man/ovdb_server.8, doc/man/ovdb_stat.8, + doc/man/passwd.nntp.5, doc/man/pullnews.1, doc/man/qio.3, + doc/man/radius.8, doc/man/radius.conf.5, doc/man/rc.news.8, + doc/man/readers.conf.5, doc/man/sasl.conf.5, + doc/man/sendinpaths.8, doc/man/simpleftp.1, doc/man/sm.1, + doc/man/subscriptions.5, doc/man/tdx-util.8, doc/man/tst.3, + doc/man/uwildmat.3: Update man pages to INN 2.4.6. - * scripts/innreport_inn.pm: Fix a long-standing bug in innreport - which prevented it from correctly reporting nnrpd log messages. + * doc/man/storage.conf.5: Typo reported in Debian bug #511735 by + Jens Kubieziel. - * scripts/innreport_inn.pm: Suppress a few warnings in innreport - (especially from Python hooks and nnrpd). Also backport some - other improvements made in TRUNK. + * samples/control.ctl: Update to new upstream version: add the + grisbi.* hierarchy. - * site, site/.cvsignore, site/Makefile: Install nnrpd.py which - previously was not. + * support/config.guess, support/config.sub: Update support files + for autoconf to their last stable version: * config.guess + (i*86:AROS:*:*): Detect AROS. * config.guess (NCR*:*:4.2:*, + MPRAS*:*:4.2:*): Add detection for NCR MPRAS. * config.sub (aros, + aros-*): Handle these. * config.sub: Handle -kopensolaris*. * + config.sub (sh[24]aeb): Handle big endian variants. * config.sub + (lm32): New. - * MANIFEST, samples/nnrpd_access.py, samples/nnrpd_auth.py, - samples/nnrpd_dynamic.py, site, site/.cvsignore, site/Makefile: - Update the Python nnrpd filter. New samples for access and - dynamic hooks. +2009-02-18 iulius -2008-06-22 iulius + * control/docheckgroups.in: Backport commits 7670, 8317 et 8319 + from CURRENT: + + [7670] First step towards a better handling of checkgroups: an + improved version of docheckgroups. Hopefully it is backward + compatible. + + * The -u flag permits to update the newsgroups file (with the + proper number of tabulations and an alphabetical sort), removing + obsolete descriptions and adding new ones. + + * A second argument on command-line permits to specify which + newsgroups should not be checked (it is pretty useful and will be + used to handle drops in control.ctl as for checkgroups + processing). + + * Detabify the script, use innshellvars' "${SORT}" instead of + "sort" and add more comments inside the script. + + * The output is displayed better (more spaces and rewording) and + mentions the possibility to use the -u flag and mod-active. + + * Fix a bug for moderated groups (" (Moderated)" should be + searched, and not "(Moderated)"). + + [8317] Be more consistent in wording. + + [8319] The pattern "a\+" is not recognized by a few sed + implementations. Therefore, we use "aa*" instead. - * samples/filter_innd.py: Update the Python innd filter. +2009-01-30 iulius - * doc/pod/hook-python.pod: Typo (canceled -> cancelled). + * support/install-sh: Add "-f" to the move command during "make + update". - * samples/nnrpd_access_wrapper.py, samples/nnrpd_auth_wrapper.py, - samples/nnrpd_dynamic_wrapper.py: Update old Python wrappers. +2009-01-18 iulius - * samples/INN.py, samples/nnrpd.py: Update stub Python scripts. Fix - a compilation problem with INN.py (undefined variable) and add - missing methods. + * scripts/innmail.in: Fix a check for the definition of $opt_s (if + it was "0", innmail sent the warning that there was no subject). - * doc/hook-python, doc/man/readers.conf.5, doc/pod/hook-python.pod, - doc/pod/readers.conf.pod: Update POD documentation for Python - hooks. It is a complete proof-reading. + * innfeed/host.c: Fix an assertion failure in innfeed. connections + is a NULL-terminated array; cxn can then be NULL if + maxConnections connections are not open. + + Thanks to William Kronert for the bug report. - * nnrpd/python.c: No need to check the existence of methods not - used by the hooked script. +2009-01-11 iulius - * innd/python.c, nnrpd/python.c: Fix an issue with Python exception - handling. + * control/modules/ihave.pl, control/modules/sendsys.pl: * ihave + control messages did not work (Perl error because of the use of + an unsupported syntax). * sendsys control messages send the + newsfeeds file (and not the newsgroups file). - * nnrpd/python.c: Fix typos. +2009-01-08 iulius - * nnrpd/python.c: Fix a segfault when one closes and then reopens - Python in the same process. files and dynamic_file are still - pointing to the old freed memory and INN blithely tries to write - to it. Thanks to Russ Allbery for the patch. + * innfeed/host.c: Fix an assertion failure in innfeed. We have + cases where all the connections to a host are inactive and + sleeping. Therefore, cxn is still NULL and passed to + cxnCheckstate(). + + Thanks to William Kronert for the bug report. -2008-06-21 iulius +2008-12-27 eagle - * innd/python.c: Better be more careful when decrementing the - reference count for these objects. + * doc/pod/hook-perl.pod: A more accurate update to the Perl + authentication hook documentation about return codes. -2008-06-16 iulius +2008-12-26 eagle - * doc/external-auth, doc/hook-perl, doc/hook-python, - doc/man/active.5, doc/man/active.times.5, doc/man/auth_krb5.8, - doc/man/auth_smb.8, doc/man/ckpasswd.8, doc/man/control.ctl.5, - doc/man/convdate.1, doc/man/cycbuff.conf.5, - doc/man/distrib.pats.5, doc/man/domain.8, doc/man/expire.ctl.5, - doc/man/expireover.8, doc/man/fastrm.1, doc/man/grephistory.1, - doc/man/ident.8, doc/man/inews.1, doc/man/inn.conf.5, - doc/man/innconfval.1, doc/man/innd.8, doc/man/inndf.8, - doc/man/inndstart.8, doc/man/innmail.1, doc/man/innupgrade.8, - doc/man/libauth.3, doc/man/libinnhist.3, doc/man/list.3, - doc/man/mailpost.8, doc/man/makehistory.8, doc/man/motd.news.5, - doc/man/newsfeeds.5, doc/man/ninpaths.8, doc/man/nnrpd.8, - doc/man/ovdb.5, doc/man/ovdb_init.8, doc/man/ovdb_monitor.8, - doc/man/ovdb_server.8, doc/man/ovdb_stat.8, - doc/man/passwd.nntp.5, doc/man/qio.3, doc/man/radius.8, - doc/man/radius.conf.5, doc/man/rc.news.8, doc/man/readers.conf.5, - doc/man/sasl.conf.5, doc/man/sendinpaths.8, doc/man/simpleftp.1, - doc/man/sm.1, doc/man/subscriptions.5, doc/man/tdx-util.8, - doc/man/tst.3, doc/man/uwildmat.3: Update version number for INN - 2.4.5 documentation. + * doc/pod/hook-perl.pod: Correct the suggested response codes for + Perl authentication hooks to match RFC 4643. + +2008-12-23 iulius + + * doc/pod/hook-python.pod, samples/filter_innd.py: Fix a wrong + syntax to have access to a dictionary key. + +2008-12-17 iulius + + * authprogs/radius.c: Fix the segfault of radius authenticator when + none of the radius servers respond. + + Thanks to Matija Nalis for the patch. + +2008-12-14 iulius + + * scripts/innshellvars.in: Fix exports. -2008-06-11 iulius + * scripts/innshellvars.tcl.in: Fix a bad path. + + * frontends/sys2nf.c: Fix a compilation issue. + +2008-12-06 iulius * support/config.guess, support/config.sub: Update support files - for autoconf to their last stable version. + for autoconf to their last stable version. * config.sub (z80, + z80-*): Handle. * config.sub (cegcc, -cegcc*): New. * + config.guess: Add support for detecting x86_64 Solaris. * + config.guess (*:Interix*:[3456]*): Handle "genuineintel". * + config.guess (padre:Linux:*:*): New. * config.guess + (i86pc:SunOS:5.*:*, i86xen:SunOS:5.*:*): No need to invoke echo + as /usr/bin/echo. -2008-06-10 iulius + * samples/moderators: Add aioe.*, perl.* and si.* information for + moderated newsgroups. - * innd/python.c: Fix the name of a variable used in Python filters. + * samples/control.ctl: Update to new upstream version: * Add + demon.*, hacktic.* and news4us.*. * Change information for us.* + (now PGP-managed) and xs4all.*. * Mark easynet.*, efn.*, eug.*, + humanityquest.* and un.* as historic. * Mark info.* and uiuc.* as + defunct. -2008-06-09 iulius +2008-12-02 iulius - * innd/python.c: Fix a bug when reloading Python filters. They - might not be correctly reloaded. They must be reimported before - being reloaded. + * storage/buffindexed/buffindexed.c: Fixes lost initialization + resolves a potential segfault. Patch from Kirill Berezin. - * nnrpd/python.c: Fix a segfault when generating access groups with - embedded Python filters for nnrpd. Thanks to David Hlacik for the - bug report. + * innd/icd.c: Prevent control.cancel from being removed. Thanks to + D. Stussy for having pointed that issue out. -2008-06-08 iulius + * scripts/innreport.in: Check whether the config file is a real + file. Patch from Alexander Bartolich. - * frontends/pullnews.in: Two minor issues resolved with this patch - by Geraint Edwards: * an off-by-one error on the limit to the - amount of articles to get; * when an article is not available, we - may have redundantly retried that article. + * backends/mod-active.in: Fix a bug in mod-active for aliased + newsgroups. Only "=" was written to the active file. + + Thanks to D. Stussy for the patch. -2008-06-07 iulius +2008-11-29 eagle - * doc/pod/cycbuff.conf.pod, doc/pod/hook-perl.pod, - doc/pod/hook-python.pod, innd/python.c, samples/filter_innd.pl: - Fix the use of "ctlinnd reload something 'reason'" in - documentation. + * doc/pod/inn.conf.pod: Typo for the name of buffindexed.conf. + Reported by Jens Kubieziel. -2008-06-05 iulius +2008-11-15 iulius - * doc/hook-perl, doc/hook-python, doc/pod/hook-perl.pod, - doc/pod/hook-python.pod, innd/innd.c, innd/innd.h, - samples/filter_innd.py: Add access to several new headers within - Perl and Python hooks for innd. Thanks to Matija Nalis for the - patch. + * doc/pod/hook-perl.pod, doc/pod/hook-python.pod, innd/innd.c, + innd/innd.h, samples/filter_innd.py: Add access to five new + headers within Perl and Python hooks for innd: * X-User-ID * + X-Auth-Sender * Original-NNTP-Posting-Host * Original-Sender * + NNTP-Posting-Path Also update the POD documentation and the Python sample. - * doc/man/pullnews.1, doc/pod/pullnews.pod, frontends/pullnews.in: - A new improved version of pullnews. Great thanks to Geraint A. - Edwards for all his work. He added no more than 16 flags, fixed - some bugs and integrated the backupfeed contrib script by Kai - Henningsen, adding again 6 other flags. - - A long-standing but very minor bug in the -g option was - especially fixed and items from the to-do list implemented. - - From TODO: - - + reset highwater mark to match server (-w) + reset highwater - mark to zero (also -w) + add group to config (-G) + drop articles - with headers matching (or not matching) regexp (-m) - - From backupfeed: - - + pull only a proportion (factor) of articles (-f) + sleeps - between articles/groups (-z/-Z) + Path: fake hop insert (-F) + - NNTP connection timeout (-N) + overall session timeout (-S) - - Other new flags/features: - - -l logfile log to logfile (rather than /dev/null when rnews'ing!) - -s host:port add local port option (can use -p already) -t - retries attempt connect to upstream retries times -T retry_pause - wait between retries -k checkpt checkpoint the config file every - checkpt arts -C width when writing the progress bar - use width - columns -d debug_level self-explanatory -M max_arts only process - max_arts articles per run -H headers remove these headers from - articles -Q quietness set how quiet we are -R be a reader -n - no-op -P paths feed articles depending on number of hops in Path: - -2008-05-25 iulius - - * control/modules/newgroup.pl: Fix a Perl warning. - -2008-05-24 iulius - - * nnrpd/tls.c: When an article of a size greater than remaining - stack is retrieved via SSL, a segmentation fault will occur due - to the use of alloca(). The below patch uses heap based realloc() - instead of stack based alloca(), with a static buffer growing as - needed. It uses realloc() instead of malloc() for performance - reasons since this function is called frequently. The caveat is - that the memory is never free()'ed, so if more correct code is - desired, it should be adjusted. - - Thanks to Chris Caputo for this patch. - -2008-05-19 iulius - - * innd/Makefile, nnrpd/line.c: Implementation of the "alarm signal" - around SSL_read so that to prevent dead connections from leading - nnrpd processes to wait forever in SSL_read(). "clienttimeout" - now also works on SSL connections. + * frontends/pullnews.in: Two issues (and some minor tidy-ups) + resolved in pullnews: - Thanks to Matija Nalis for the patch. + - when an article is foreshortened, pullnews warned of an out of + bounds subscript; - when an article number is not in group (423), + pullnews redundantly retried that article. + + Thanks to Geraint A. Edwards for the patch. + +2008-11-10 iulius + + * doc/pod/news.pod: Backport revision 8153: Drop the L<> markup for + a link to the old active.Z file on ftp.isc.org. Do not change + this to .gz (the current name) since that would be changing + history, but making this a link produces a broken link that shows + up each time Russ runs a broken link check on the HTML + documentation. This seems the best compromise. + +2008-11-01 iulius - * nnrpd/tls.c: Implementation on systems that support it of - SO_KEEPALIVE in SSL TCP connections, allowing system detection - and closing the dead TCP SSL connections automatically after - system-specified time (usually at least 2 hours as recommended by - RFC (on Linux, see /proc/sys/net/ipv4/tcp_keepalive_*). + * scripts/inncheck.in: Fix an undefined variable. + +2008-10-25 iulius + + * nnrpd/nnrpd.c: Fix two bugs when "nnrpd -D" is used: * + ListenAddress was not initialized (to ::0 or 0.0.0.0) when the -b + flag was not used; * an incorrect size was given to bind() when + IPv6 was enabled and the binding done using IPv4. - Thanks to Matija Nalis for the patch. + Thanks to Johan van Selst for having identified the problem and + Kai Gallasch for having provided a FreeBSD server to test my + patch. + +2008-10-07 iulius + + * scripts/innreport.in: Test for the existence of 'img_dir' instead + of 'html_dir'. Thanks to Wim Lewis for the patch. + +2008-09-26 iulius + + * nnrpd/tls.c: Bug-fix for TLS: return 1 when length is right. + + * nnrpd/misc.c: Do not send 580 when negotiation fails (382 has + already been sent). + + * nnrpd/python.c: Fix a bug since commit 6208 which made Python + dynamic hooks not work. + +2008-09-07 iulius -2008-05-18 iulius + * nnrpd/commands.c: Missing an answer for AUTHINFO GENERIC: the + server did not send a response when the pipe failed. - * innfeed/host.c: Fix a problem of undefined constant. +2008-09-06 iulius -2008-05-14 iulius + * nnrpd/commands.c: In the backoff code, only return codes for POST + were used. It now also returns the right codes for IHAVE. - * innfeed/host.c: Fix a bug in ipAddrs which contained thrice the - same IPs. Rotating the peer IP addresses was a bit slower than it - could be. + * nnrpd/article.c: * XHDR and XPAT were not checking the + permissions the user has to read articles when using a + message-ID. Now fixed. * Also fix calls to ARTclose(). + +2008-09-04 iulius + + * nnrpd/article.c: Fix a bug in the replies of XOVER/XHDR/XPAT when + the group is empty. Two initial replies were sent: + + GROUP fr.rec.humour.selection 211 0 0 0 fr.rec.humour.selection + XOVER 420 No current article 224 162 fields follow . + +2008-08-28 iulius + + * storage/overdata.c: Fix a bug for correct printable characters. + +2008-08-23 iulius + + * nnrpd/group.c, nnrpd/list.c, nnrpd/nnrpd.c: * LIST EXTENSIONS now + returns the right code 215 and not 202. * LISTGROUP now returns + the right code 412 and not 481. * Specify in HELP that: - + "newsgroup" in LISTGROUP is an optional value; - active, + active.times and newsgroups in LIST have an optional third value. + * NEWGROUPS do not expect a fifth element. + +2008-08-05 iulius + + * include/ppport.h, innd/perl.c: Fix the correct handling of bodies + (Perl regexps were sometimes not properly working on SV * + bodies). We now use a shared string. For Perl < 5.7.1, fall back + to a copy of such bodies. At least, that method is reliable, even + though it were 17% slower. + + Add support for PERL_REVISION (default to 5 because if it is not + defined, it must be 5 -- Perl 6 defines it). + +2008-08-03 iulius + + * innd/status.c: Fix a bug in the IP address displayed for + localhost in innd's status file. It was not correctly initialized + (it is a local connection which does not use any IP address). + + * samples/innreport.conf.in, scripts/innreport_inn.pm: Bug-fixes: * + Trailing comma after %innfeed_spooled with "Outgoing feeds + (innfeed) by Articles"; * Column "Total" of "Outgoing feeds + (innfeed) by Volume" tries to add two hashes which evaluates to a + constant 0; * Gracefully handle undefined hash elements in "NNRP + readership statistics (by domain)". + + Also added two error messages generated by perl-nocem. + + Thanks again, Alexander Bartolich, for this patch. + + * doc/man/news.daily.8, scripts/news.daily.in: Add a keyword to + news.daily in order to supply another mail address than the one + set at configure time for Usenet daily reports. + + Thanks to James Ralston for having added this nomail option. - Thanks, D. Stussy, for having seen that. Miquel van Smoorenburg - provided the patch. + Also fixed an inconsistency in available keywords (expirectl is + in fact expctl). + +2008-07-20 iulius + + * lib/perl.c: Fix a compilation warning with Perl 5.10. + + * lib/perl.c: Use PERL_EXIT_DESTRUCT_END as specified in the + perlembed man page. Indeed, it has otherwise been causing + problems for applications that never call perl_run since perl + 5.7.2. This flag enables the running of END blocks if the + perl_parse fails; perl_destruct will return the exit value. + + * innd/art.c: Fix a bug which causes innd not to honour the Ad flag + in newsfeeds. Thanks to Andreas Mattheiss for his bug report. + +2008-07-05 iulius - * Makefile.global.in: Bump the revision number to 2.4.5 (in case it + * Makefile.global.in: Bump the revision number to 2.4.6 (in case it is released one day). diff -Nurp inn-2.4.5/INSTALL inn-2.4.6/INSTALL --- inn-2.4.5/INSTALL 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/INSTALL 2009-03-01 09:49:22.000000000 -0800 @@ -135,9 +135,9 @@ Before You Begin table of configure options enabling optional features and the software and versions you'll need: - --with-perl Perl 5.004_03 or higher, 5.6.1+ recommended - --with-python Python 1.5.2 or higher - --with-berkeleydb BerkeleyDB 2.0 or higher, 4.2+ recommended + --with-perl Perl 5.004_03 or higher, 5.8.0+ recommended + --with-python Python 1.5.2 or higher, 2.5.0+ recommended + --with-berkeleydb Berkeley DB 2.0 or higher, 4.7+ recommended --with-openssl OpenSSL 0.9.6 or higher --with-sasl SASL 2.x or higher --with-kerberos MIT Kerberos v5 1.2.x or higher diff -Nurp inn-2.4.5/LICENSE inn-2.4.6/LICENSE --- inn-2.4.5/LICENSE 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/LICENSE 2009-03-01 09:49:22.000000000 -0800 @@ -2,7 +2,7 @@ INN as a whole and all code contained in different licenses and/or copyrights is covered by the following copyright and license: - Copyright (c) 2004, 2005, 2006, 2007, 2008 + Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009 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.4.5/Makefile.global.in inn-2.4.6/Makefile.global.in --- inn-2.4.5/Makefile.global.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/Makefile.global.in 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -## $Id: Makefile.global.in 7830 2008-05-14 18:57:39Z iulius $ +## $Id: Makefile.global.in 7933 2008-07-05 13:57:55Z 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 @@ -14,7 +14,7 @@ ## put your own version information in $VERSION_EXTRA. If it's set to ## "CVS prerelease", the build time will be automatically included. -VERSION = 2.4.5 +VERSION = 2.4.6 VERSION_EXTRA = ## If you want to install INN relative to a root directory other than /, diff -Nurp inn-2.4.5/NEWS inn-2.4.6/NEWS --- inn-2.4.5/NEWS 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/NEWS 2009-03-01 09:49:22.000000000 -0800 @@ -1,3 +1,76 @@ +Changes in 2.4.6 + + * Fixed the segfault of the radius authenticator when none of the radius + servers respond. Thanks to Matija Nalis for this patch. + + * Fixed a lost initialization in buffindexed, which resolves a potential + segfault, thanks to a patch by Kirill Berezin. + + * INN now properly supports Perl 5.10.0 (and also 5.8.9); Perl filters + were causing innd to segfault on a few systems like FreeBSD. + + * Fixed a long-standing bug which affected Perl hooks for innd: the + variable containing the body of an article was not properly created, + which caused regular expressions matching new lines to fail. It + especially affected filters like Cleanfeed which sometimes failed to + detect unwanted articles. + + To fix that issue, Julien Elie added the use of a shared string, + available since Perl 5.7.2, with a fall back to a slower but reliable + copy of such bodies in case the function is not available. Using a + Perl version superior to 5.7.2 is therefore recommended. + + * Fixed two bugs which could prevent nnrpd from being run as a daemon in + FreeBSD. Thanks to Johan van Selst for having identified the problem + and to Kai Gallasch for having provided a testing FreeBSD server. The + listening address was not initialized to "::0" or 0.0.0.0 when the -b + flag was not used and an incorrect size was given when IPv6 was + enabled and the binding done using IPv4. + + * Some annoying assertion failures occurring in innfeed have been fixed + by Russ Allbery and Julien Elie. + + * Fixed a bug in mod-active for aliased newsgroups. Only "=" was + written to the active file. Thanks to D. Stussy for this patch. + + * Fixed a bug which caused innd not to honour the Ad flag in newsfeeds. + + * Fixed a bug in the IP address displayed for "localhost" in innd's + status file. It was not correctly initialized. + + * Fixed a permission issue: XHDR and XPAT were not checking the rights + the user had to read articles when accessing them by their message-ID. + + * Fixed a bug in the replies of XHDR, XOVER and XPAT when the newsgroup + is empty. Two initial replies were sent instead of one: the right + 420 code followed by a wrong 224 code. + + * When no newsgroup is selected, LISTGROUP now returns the right 412 + code (instead of 481). + + * inncheck now uses a range of permissions to see whether the file modes + are correctly set. Therefore, different configurations depending on + the security the user wants to enforce on his sytem are possible. + + * A new improved version of docheckgroups is shipped with INN. The -u + flag permits to automatically update the newsgroups file (with a + proper number of tabulations and an alphabetical sort), removing + obsolete descriptions and adding new ones. A second argument on + command-line permits to specify which newsgroups should not be + checked, so as not to treat them. + + * An *email=* keyword has been added by James Ralston to news.daily in + order to supply another mail address than the one set at configure + time for Usenet daily reports. + + * An updated moderators file with information about the aioe.*, perl.* + and si.* hierarchies is provided; control.ctl is also up to date. + + * INN supports Berkeley DB 4.7, which is the recommended version to use + owing to various bugs affecting previous versions of Berkeley DB. + + * Other minor bugs have also been fixed. + Changes in 2.4.5 * Fixed the "alarm signal" around "SSL_read" in nnrpd: it allows a @@ -344,16 +417,16 @@ Upgrading from 2.3 to 2.4 ovdb is known to have some locking and timing issues related to how nnrpd shuts down (or fails to shut down) the overview databases. If you - have stability problems with ovdb, try setting *readserver* to "true" in + have stability problems with ovdb, try setting *readserver* to true in ovdb.conf. This will funnel all ovdb reads through a single process with a cleaner interface to the underlying Berkeley DB database. If you use Perl authentication for nnrpd (if *nnrpdperlauth* in inn.conf - is "true"), there have been major changes. See "Changes to Perl + is true), there have been major changes. See "Changes to Perl Authentication Support for nnrpd" in doc/hook-perl for details. Similarly, if you use Python authentication for nnrpd (if - *nnrpdpythonauth* in inn.conf is "true"), there have been major changes. + *nnrpdpythonauth* in inn.conf is true), there have been major changes. See "Changes to Python Authentication and Access Control Support for nnrpd" in doc/hook-python for details. @@ -417,7 +490,7 @@ Changes in 2.4.0 caught before anyone starts to rely on it. * innfeed supports a new peer parameter, *backlog-feed-first*, that if - set to "true" feeds any backlog to a peer before new articles, see + set to true feeds any backlog to a peer before new articles, see innfeed.conf(5). When used in combination with *max-connections* set to 1, this can be used to enforce in-order delivery of messages to a peer that is doing Xref slaving, avoiding cases where a @@ -472,15 +545,15 @@ Changes in 2.4.0 * Two new options, *nfsreader* and *nfswriter*, have been added to inn.conf to aid in building NFS based shared reader/writer platforms. - On the writer server configure *nfswriter* to "true" and on all of the - readers configure *nfsreader* to "true"; these options add calls to + On the writer server configure *nfswriter* to true and on all of the + readers configure *nfsreader* to true; these options add calls to force data out to the NFS server and force it to be read directly from the NFS server at the appropriate moments. Note that it has only been tested on Solaris 8, using CNFS as the storage mechanism and tradindexed as the overview method. * A new option, *tradindexedmmap*, has been added to inn.conf. If set - to "true" (the default), then the tradindexed overview method will use + to true (the default), then the tradindexed overview method will use mmap() to access its overview data (in 2.3 you couldn't control this; it always used mmap). @@ -504,8 +577,13 @@ Changes in 2.4.0 additional authenticators resolvers. See libauth(3) for details, and any of the existing programs in authprogs/ for examples. - * Most (if not all) of the temporary file creation in INN now uses - functions that create temporary files properly and safely. + * INN now checks to ensure that the configured temporary directory is + not world-writeable. Additionally, most (if not all) of the temporary + file creation in INN now uses functions that create temporary files + properly and safely. + + * All of the applicable bug fixes from the INN 2.3 STABLE series are + also included in INN 2.4. Changes in 2.3.5 @@ -615,6 +693,8 @@ Changes in 2.3.2 * Added a sample subscriptions file and documentation for it and innmail. + * Various other bug fixes and documentation updates. + Changes in 2.3.1 * inews no longer downloads the active file, no longer tries to send @@ -631,9 +711,9 @@ Changes in 2.3.1 * The annoying compilation problem with embedded Perl filtering on Linux systems without libgdbm installed should be fixed. - * INN now complains loudly at "configure" time if the configured path - for temporary files is world-writeable, since this configuration can - be a security hole. + * INN now complains loudly at configure time if the configured path for + temporary files is world-writeable, since this configuration can be a + security hole. * Many other varied bug fixes and documentation fixes of all sorts. @@ -720,7 +800,7 @@ Upgrading from 2.2 to 2.3 better failure mode under high loads. Writing overview data directly is the default, so in a normal upgrade from 2.2 to 2.3 you'll want to comment out or remove your overchan entry in newsfeeds and set - *useoverchan* to "false" in inn.conf. + *useoverchan* to false in inn.conf. crosspost is no longer installed, and no longer works (even with traditional spool). If you have an entry for crosspost in newsfeeds, @@ -800,21 +880,27 @@ Changes in 2.3.0 libtool build support (including shared library support) should be better than previous releases. + * All of the applicable bug fixes from the INN 2.2 STABLE series are + also included in INN 2.3. + Changes in 2.2.3 - * inews is not installed setgid news and rnews is not installed setuid - root by default any more. If you need the old permissions, you have - to give a flag to configure. See INSTALL for more details. + * INN no longer installs inews setgid news or rnews setuid root by + default. If you need the old behavior, --enable-uucp-rnews and/or + --enable-setgid-inews must be given to "configure". See INSTALL for + more information. - * Fixed a security hole when *verifycancels* was enabled in inn.conf - (not the default). + * A security hole when *verifycancels* is turned on in inn.conf (not the + default) was fixed. * Message-IDs are now limited to 250 octets to prevent interoperability problems with other servers. - * Embedded Perl filters now work with Perl 5.6.0. + * Various other security paranoia fixes have been made. + + * Embedded Perl filters fixed to work with Perl 5.6.0. - * Lots of bug fixes and changes for security paranoia. + * Lots of bug fixes. Changes in 2.2.2 @@ -858,3 +944,5 @@ Changes in 2.2.0 * The innshellvars.csh.in script is obsolete (and lives in the obsolete directory, for now). + $Id: NEWS 8361 2009-02-27 19:44:58Z iulius $ + diff -Nurp inn-2.4.5/authprogs/radius.c inn-2.4.6/authprogs/radius.c --- inn-2.4.5/authprogs/radius.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/authprogs/radius.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: radius.c 7745 2008-04-06 10:18:54Z iulius $ +/* $Id: radius.c 8241 2008-12-17 18:26:44Z iulius $ ** ** Authenticate a user against a remote radius server. */ @@ -444,6 +444,8 @@ static int rad_auth(rad_config_t *radcon now = time(0); tmout.tv_sec = end - now + 1; tmout.tv_usec = 0; + warn("timeout talking to remote radius server %s:%d", + inet_ntoa(sreq->sinr.sin_addr), ntohs(sreq->sinr.sin_port)); continue; } slen = sizeof(sinl); @@ -484,8 +486,7 @@ static int rad_auth(rad_config_t *radcon } } if (authtries == 0) - warn("cannot talk to remote radius server %s:%d", - inet_ntoa(sreq->sinr.sin_addr), ntohs(sreq->sinr.sin_port)); + warn("cannot talk to any remote radius servers"); return(-2); } diff -Nurp inn-2.4.5/backends/mod-active.in inn-2.4.6/backends/mod-active.in --- inn-2.4.5/backends/mod-active.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/backends/mod-active.in 2009-03-01 09:49:22.000000000 -0800 @@ -44,11 +44,11 @@ $eval = "while () {\n"; $eval .= " \$group = (split)[0];\n"; while (<>) { - if (/^\s*\S*ctlinnd newgroup (\S+) (\S)/) { + if (/^\s*\S*ctlinnd newgroup (\S+) (\S+)/) { $toadd{$1} = $2; } elsif (/^\s*\S*ctlinnd rmgroup (\S+)/) { $eval .= " next if \$group eq '$1';\n"; - } elsif (/^\s*\S*ctlinnd changegroup (\S+) (\S)/) { + } elsif (/^\s*\S*ctlinnd changegroup (\S+) (\S+)/) { $eval .= " s/ \\S+\$/ $2/ if \$group eq '$1';\n"; } } diff -Nurp inn-2.4.5/control/docheckgroups.in inn-2.4.6/control/docheckgroups.in --- inn-2.4.5/control/docheckgroups.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/control/docheckgroups.in 2009-03-01 09:49:22.000000000 -0800 @@ -1,36 +1,53 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -## $Revision: 7743 $ +## $Id: docheckgroups.in 8322 2009-02-18 21:38:47Z iulius $ ## Script to execute checkgroups text; results to stdout. +## +## Usage: docheckgroups [-u] [include-pattern [exclude-pattern]] < message +## +## If the -u flag is given, the newsgroups descriptions are automatically +## updated. T=${TMPDIR} +UPDATEDESC=false cat /dev/null >${T}/$$out -## Copy the article without headers, append local newsgroups. -cat >${T}/$$msg -test -f ${LOCALGROUPS} && cat ${LOCALGROUPS} >>${T}/$$msg +## Parse arguments. +if [ $# -gt 0 ]; then + case $1 in + -u) shift; + UPDATEDESC=true;; + esac +fi + +## Copy the message without excluded newsgroups and append local newsgroups. +cat | ${EGREP} -v "${2:-^#}" >${T}/$$msg +test -f ${LOCALGROUPS} && cat ${LOCALGROUPS} | ${EGREP} -v "^#" >>${T}/$$msg ## Get the top-level newsgroup names from the message and turn it into ## an egrep pattern. PATS=`${SED} <${T}/$$msg \ - -e 's/[ ].*//' -e 's/\..*//' \ - -e 's/^!//' -e '/^$/d' \ - -e 's/^/^/' -e 's/$/[. ]/' \ - | sort -u \ + -e 's/[ ].*//' -e 's/\..*//' \ + -e 's/^!//' -e '/^$/d' \ + -e 's/^/^/' -e 's/$/[. ]/' \ + | ${SORT} -u \ | (tr '\012' '|' ; echo '' )\ | ${SED} -e 's/|$//'` -${EGREP} "${PATS}" ${ACTIVE} | ${EGREP} "${1:-.}" | ${SED} 's/ .*//' | sort >${T}/$$active -${EGREP} "${PATS}" ${T}/$$msg | ${EGREP} "${1:-.}" | ${SED} 's/[ ].*//' | sort >${T}/$$newsgrps +## Check for missing and obsolete newsgroups in active. +${EGREP} "${PATS}" ${ACTIVE} | ${EGREP} "${1:-.}" | ${SED} 's/ .*//' | ${SORT} >${T}/$$active +${EGREP} "${PATS}" ${T}/$$msg | ${EGREP} "${1:-.}" | ${SED} 's/[ ].*//' | ${SORT} >${T}/$$newsgrps comm -13 ${T}/$$active ${T}/$$newsgrps >${T}/$$missing comm -23 ${T}/$$active ${T}/$$newsgrps >${T}/$$remove -${EGREP} "${PATS}" ${ACTIVE} | ${EGREP} "${1:-.}" | ${SED} -n '/ m$/s/ .*//p' | sort >${T}/$$amod.all -${EGREP} "${PATS}" ${T}/$$msg | ${EGREP} "${1:-.}" | ${SED} 's/\r\?$//' | -${SED} -n '/(Moderated)$/s/[ ].*//p' | sort >${T}/$$ng.mod +## Check for proper moderation flags in active (we need to be careful +## when dealing with wire-formatted articles manually fed from the spool). +${EGREP} "${PATS}" ${ACTIVE} | ${EGREP} "${1:-.}" | ${SED} -n '/ m$/s/ .*//p' | ${SORT} >${T}/$$amod.all +${EGREP} "${PATS}" ${T}/$$msg | ${EGREP} "${1:-.}" | ${SED} 's/\r\?$//' \ + | ${SED} -n '/ (Moderated)$/s/[ ].*//p' | ${SORT} >${T}/$$ng.mod comm -12 ${T}/$$missing ${T}/$$ng.mod >${T}/$$add.mod comm -23 ${T}/$$missing ${T}/$$ng.mod >${T}/$$add.unmod @@ -41,109 +58,133 @@ comm -13 ${T}/$$ng.mod ${T}/$$amod >${T} comm -23 ${T}/$$ng.mod ${T}/$$amod >${T}/$$nm.all comm -23 ${T}/$$nm.all ${T}/$$add >${T}/$$notmod -${EGREP} "${PATS}" ${NEWSGROUPS} | ${EGREP} "${1:-.}" | ${SED} 's/[ ]\+/ /' | sort >${T}/$$localdesc -${EGREP} "${PATS}" ${T}/$$msg | ${EGREP} "${1:-.}" | ${SED} 's/\r\?$//' | -${SED} 's/[ ]\+/ /' | sort >${T}/$$newdesc - -if ! (head -1 ${T}/$$newdesc | egrep " [[:digit:]]+ [[:digit:]]+ " > /dev/null) ; then - comm -13 ${T}/$$localdesc ${T}/$$newdesc >${T}/$$missingdesc - comm -23 ${T}/$$localdesc ${T}/$$newdesc >${T}/$$removedesc +## Check for missing and obsolete newsgroups descriptions (possibly +## in wire format). A few sed implementations do not recognize +## "[ ]\+", so we use " [ ]*" instead. +${EGREP} "${PATS}" ${NEWSGROUPS} | ${EGREP} "${1:-.}" | ${SED} 's/ [ ]*/ /' | ${SORT} >${T}/$$localdesc +${EGREP} "${PATS}" ${T}/$$msg | ${EGREP} "${1:-.}" | ${SED} 's/\r\?$//' \ + | ${SED} 's/ [ ]*/ /' | ${SORT} >${T}/$$newdesc + +comm -13 ${T}/$$localdesc ${T}/$$newdesc >${T}/$$missingdesc +comm -23 ${T}/$$localdesc ${T}/$$newdesc >${T}/$$removedesc + +## If the -u flag is given, update the newsgroups descriptions. +if [ "${UPDATEDESC}" = "true" ] ; then + ${EGREP} -v "${PATS}" ${NEWSGROUPS} >${T}/$$updatednewsgroups + ${EGREP} "${PATS}" ${NEWSGROUPS} | ${EGREP} -v "${1:-.}" >>${T}/$$updatednewsgroups + cat ${T}/$$newdesc >>${T}/$$updatednewsgroups + mv -f ${NEWSGROUPS} ${NEWSGROUPS}.old + ${SORT} ${T}/$$updatednewsgroups | ${SED} 's/ [ ]*/ /' \ + | ${AWK} -F'\t' '{if (length($1) < 8) {print $1"\t\t\t"$2} \ + else {if (length($1) < 16) {print $1"\t\t"$2} \ + else {print $1"\t"$2}}}' >${NEWSGROUPS} + chmod 0664 ${NEWSGROUPS} ${NEWSGROUPS}.old fi +## Display information on newsgroups which need to be removed/added/changed. if [ -s ${T}/$$remove ] ; then ( - echo "# The following newsgroups are non-standard." - ${SED} "s/^/# /" ${T}/$$remove - echo "# You can remove them by executing the commands:" - for i in `cat ${T}/$$remove` ; do - echo " ${PATHBIN}/ctlinnd rmgroup $i" - ${EGREP} "^$i " ${NEWSGROUPS} >>${T}/$$ngdel - done - echo '' + echo "# The following newsgroups are non-standard and should be removed:" + echo "#" + ${SED} "s/^/# /" ${T}/$$remove + echo "#" + echo "# You can remove them by executing the command(s):" + echo "" + for i in `cat ${T}/$$remove` ; do + echo " ${PATHBIN}/ctlinnd rmgroup $i" + done + echo "" ) >>${T}/$$out fi if [ -s ${T}/$$add ] ; then ( - echo "# The following newsgroups were missing and should be added." - ${SED} "s/^/# /" ${T}/$$add - echo "# You can do this by executing the command(s):" - for i in `cat ${T}/$$add.unmod` ; do - echo " ${PATHBIN}/ctlinnd newgroup $i y ${FROM}" - ${EGREP} "^$i " ${T}/$$msg >>${T}/$$ngadd - done - for i in `cat ${T}/$$add.mod` ; do - echo " ${PATHBIN}/ctlinnd newgroup $i m ${FROM}" - ${EGREP} "^$i " ${T}/$$msg >>${T}/$$ngadd - done - echo '' + echo "# The following newsgroups are missing and should be added:" + echo "#" + ${SED} "s/^/# /" ${T}/$$add + echo "#" + echo "# You can add them by executing the command(s):" + echo "" + for i in `cat ${T}/$$add.unmod` ; do + echo " ${PATHBIN}/ctlinnd newgroup $i y ${FROM}" + done + for i in `cat ${T}/$$add.mod` ; do + echo " ${PATHBIN}/ctlinnd newgroup $i m ${FROM}" + done + echo "" ) >>${T}/$$out fi if [ -s ${T}/$$ismod ] ; then ( - echo "# The following groups are incorrectly marked as moderated:" - ${SED} "s/^/# /" ${T}/$$ismod - echo "# You can correct this by executing the following:" - for i in `cat ${T}/$$ismod` ; do - echo " ${PATHBIN}/ctlinnd changegroup $i y" - ${EGREP} "^$i " ${T}/$$msg >>${T}/$$ngchng - done - echo '' + echo "# The following newsgroups are incorrectly marked as moderated" + echo "# and should have their status changed:" + echo "#" + ${SED} "s/^/# /" ${T}/$$ismod + echo "#" + echo "# You can correct this by executing the command(s):" + echo "" + for i in `cat ${T}/$$ismod` ; do + echo " ${PATHBIN}/ctlinnd changegroup $i y" + done + echo "" ) >>${T}/$$out fi if [ -s ${T}/$$notmod ] ; then ( - echo "# The following groups are incorrectly marked as unmoderated:" - ${SED} "s/^/# /" ${T}/$$notmod - echo "# You can correct this by executing the following:" - for i in `cat ${T}/$$notmod` ;do - echo " ${PATHBIN}/ctlinnd changegroup $i m" - ${EGREP} "^$i " ${T}/$$msg >>${T}/$$ngchng - done - echo '' + echo "# The following newsgroups are incorrectly marked as unmoderated" + echo "# and should have their status changed:" + echo "#" + ${SED} "s/^/# /" ${T}/$$notmod + echo "#" + echo "# You can correct this by executing the command(s):" + echo "" + for i in `cat ${T}/$$notmod` ; do + echo " ${PATHBIN}/ctlinnd changegroup $i m" + done + echo "" ) >>${T}/$$out fi +## Display information on descriptions which need to be removed/added. if [ -s ${T}/$$removedesc ] ; then ( - echo "# The following newsgroups descriptions are obsolete." + echo "# The following newsgroups descriptions are obsolete and should be removed:" + echo "#" ${SED} "s/^/# /" ${T}/$$removedesc - echo "# You can remove them by editing ${NEWSGROUPS}." - echo '' + echo "#" + if [ "${UPDATEDESC}" = "true" ] ; then + echo "# The file ${NEWSGROUPS} has just been updated accordingly." + else + echo "# You can remove them by editing ${NEWSGROUPS}" + echo "# or by using the -u flag with docheckgroups." + fi + echo "" ) >>${T}/$$out fi if [ -s ${T}/$$missingdesc ] ; then ( - echo "# The following newsgroups descriptions were missing and should be added." + echo "# The following newsgroups descriptions are missing and should be added:" + echo "#" ${SED} "s/^/# /" ${T}/$$missingdesc - echo "# You can add them by editing ${NEWSGROUPS}." - echo '' + echo "#" + if [ "${UPDATEDESC}" = "true" ] ; then + echo "# The file ${NEWSGROUPS} has just been updated accordingly." + else + echo "# You can add them by editing ${NEWSGROUPS}" + echo "# or by using the -u flag with docheckgroups." + fi + echo "" ) >>${T}/$$out fi - +## We're done. test -s ${T}/$$out && { cat ${T}/$$out - echo 'exit # so you can feed this message into the shell' - echo "# And remember to update ${NEWSGROUPS}." - test -s ${T}/$$ngdel && { - echo "# Remove these lines:" - ${SED} "s/^/# /" ${T}/$$ngdel - echo '' - } - test -s ${T}/$$ngadd && { - echo "# Add these lines:" - ${SED} "s/^/# /" ${T}/$$ngadd - echo '' - } - test -s ${T}/$$ngchng && { - echo "# Change these lines:" - ${SED} "s/^/# /" ${T}/$$ngchng - echo '' - } + echo "exit # so you can feed this message into the shell (as well as mod-active)." + echo "" } rm -f ${T}/$$* diff -Nurp inn-2.4.5/control/modules/ihave.pl inn-2.4.6/control/modules/ihave.pl --- inn-2.4.5/control/modules/ihave.pl 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/control/modules/ihave.pl 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -## $Id: ihave.pl 4932 2001-07-19 00:32:56Z rra $ +## $Id: ihave.pl 8286 2009-01-11 12:07:11Z iulius $ ## ## ihave control message handler. ## @@ -41,14 +41,14 @@ sub control_ihave { close GREPHIST; if (-s $tempfile) { - my $inews = open("$inn::inews -h") + open(INEWS, "| $inn::inews -h") or logdie('Cannot run inews: ' . $!); - print $inews "Newsgroups: to.$site\n" + print INEWS "Newsgroups: to.$site\n" . "Subject: cmsg sendme $inn::pathhost\n" . "Control: sendme $inn::pathhost\n\n"; open(TEMPFILE, $tempfile) or logdie("Cannot open $tempfile: $!"); - print $inews $_ while ; - close $inews or die $!; + print INEWS $_ while ; + close INEWS or die $!; close TEMPFILE; } unlink $tempfile; diff -Nurp inn-2.4.5/control/modules/sendsys.pl inn-2.4.6/control/modules/sendsys.pl --- inn-2.4.5/control/modules/sendsys.pl 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/control/modules/sendsys.pl 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -## $Id: sendsys.pl 4932 2001-07-19 00:32:56Z rra $ +## $Id: sendsys.pl 8286 2009-01-11 12:07:11Z iulius $ ## ## sendsys control message handler. ## @@ -26,7 +26,7 @@ sub control_sendsys { my $mail = sendmail("sendsys $sender"); print $mail < for InterNetNews. Converted to \&\s-1POD\s0 by Russ Allbery . .PP -$Id: active.5 7880 2008-06-16 20:37:13Z iulius $ +$Id: active.5 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive.times\fR\|(5), \fIcontrolchan\fR\|(8), \fIctlinnd\fR\|(8), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), diff -Nurp inn-2.4.5/doc/man/active.times.5 inn-2.4.6/doc/man/active.times.5 --- inn-2.4.5/doc/man/active.times.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/active.times.5 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "ACTIVE.TIMES 5" -.TH ACTIVE.TIMES 5 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH ACTIVE.TIMES 5 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" active.times \- List of local creation times of newsgroups .SH "DESCRIPTION" @@ -157,7 +157,7 @@ given to \fBctlinnd\fR. Written by Rich \f(CW$alz\fR for InterNetNews. Converted to \&\s-1POD\s0 by Russ Allbery .PP -$Id: active.times.5 7880 2008-06-16 20:37:13Z iulius $ +$Id: active.times.5 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive\fR\|(5), \fIctlinnd\fR\|(8), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), \fInnrpd\fR\|(8) diff -Nurp inn-2.4.5/doc/man/auth_krb5.8 inn-2.4.6/doc/man/auth_krb5.8 --- inn-2.4.5/doc/man/auth_krb5.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/auth_krb5.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "AUTH_KRB5 8" -.TH AUTH_KRB5 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH AUTH_KRB5 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" auth_krb5 \- nnrpd Kerberos v5 authenticator .SH "SYNOPSIS" @@ -200,7 +200,7 @@ Originally written by Christopher P. Lin written by Russ Allbery based on Christopher's original \&\s-1README\s0 file. .PP -$Id: auth_krb5.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: auth_krb5.8 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fInnrpd\fR\|(8), \fIreaders.conf\fR\|(5) diff -Nurp inn-2.4.5/doc/man/auth_smb.8 inn-2.4.6/doc/man/auth_smb.8 --- inn-2.4.5/doc/man/auth_smb.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/auth_smb.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "AUTH_SMB 8" -.TH AUTH_SMB 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH AUTH_SMB 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" auth_smb \- nnrpd Samba authenticator .SH "SYNOPSIS" @@ -176,7 +176,7 @@ Originally written October 2000 by Krisc based heavily on pam_smb v1.1.6 by David Airlie . This documentation was written by Jeffrey M. Vinocur . .PP -$Id: auth_smb.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: auth_smb.8 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fInnrpd\fR\|(8), \fIreaders.conf\fR\|(5) diff -Nurp inn-2.4.5/doc/man/ckpasswd.8 inn-2.4.6/doc/man/ckpasswd.8 --- inn-2.4.5/doc/man/ckpasswd.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/ckpasswd.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "CKPASSWD 8" -.TH CKPASSWD 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH CKPASSWD 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" ckpasswd \- nnrpd password authenticator .SH "SYNOPSIS" @@ -301,7 +301,7 @@ it will print some sort of error message .IX Header "HISTORY" Written by Russ Allbery for InterNetNews. .PP -$Id: ckpasswd.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: ckpasswd.8 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIreaders.conf\fR\|(5), \fInnrpd\fR\|(8) diff -Nurp inn-2.4.5/doc/man/control.ctl.5 inn-2.4.6/doc/man/control.ctl.5 --- inn-2.4.5/doc/man/control.ctl.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/control.ctl.5 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "CONTROL.CTL 5" -.TH CONTROL.CTL 5 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH CONTROL.CTL 5 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" control.ctl \- Specify handling of Usenet control messages .SH "DESCRIPTION" @@ -310,7 +310,7 @@ probably intended to do (yet). Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten in \&\s-1POD\s0 by Russ Allbery . .PP -$Id: control.ctl.5 7880 2008-06-16 20:37:13Z iulius $ +$Id: control.ctl.5 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcontrolchan\fR\|(8), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), \fInewsfeeds\fR\|(5), \fIpgpverify\fR\|(8), \fIsh\fR\|(1). diff -Nurp inn-2.4.5/doc/man/convdate.1 inn-2.4.6/doc/man/convdate.1 --- inn-2.4.5/doc/man/convdate.1 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/convdate.1 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "CONVDATE 1" -.TH CONVDATE 1 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH CONVDATE 1 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" convdate \- Convert time/date strings and numbers .SH "SYNOPSIS" @@ -230,7 +230,7 @@ determine (or at least override) the loc Written by Rich \f(CW$alz\fR , rewritten and updated by Russ Allbery for the \fB\-d\fR and \fB\-l\fR flags. .PP -$Id: convdate.1 7880 2008-06-16 20:37:13Z iulius $ +$Id: convdate.1 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIparsedate\fR\|(3). diff -Nurp inn-2.4.5/doc/man/cycbuff.conf.5 inn-2.4.6/doc/man/cycbuff.conf.5 --- inn-2.4.5/doc/man/cycbuff.conf.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/cycbuff.conf.5 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "CYCBUFF.CONF 5" -.TH CYCBUFF.CONF 5 "2008-06-07" "INN 2.4.5" "InterNetNews Documentation" +.TH CYCBUFF.CONF 5 "2008-06-07" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" cycbuff.conf \- Configuration file for INN CNFS storage method .SH "DESCRIPTION" @@ -314,7 +314,7 @@ where \s-1ONE\s0 will be whatever you ca Written by Katsuhiro Kondou for InterNetNews. Rewritten into \s-1POD\s0 by Russ Allbery . .PP -$Id: cycbuff.conf.5 7880 2008-06-16 20:37:13Z iulius $ +$Id: cycbuff.conf.5 8330 2009-02-19 20:41:04Z 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.4.5/doc/man/distrib.pats.5 inn-2.4.6/doc/man/distrib.pats.5 --- inn-2.4.5/doc/man/distrib.pats.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/distrib.pats.5 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "DISTRIB.PATS 5" -.TH DISTRIB.PATS 5 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH DISTRIB.PATS 5 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" distrib.pats \- Default values for the Distribution header .SH "DESCRIPTION" @@ -168,7 +168,7 @@ header will be added. Written by Rich \f(CW$alz\fR for InterNetNews. Converted to \&\s-1POD\s0 by Russ Allbery . .PP -$Id: distrib.pats.5 7880 2008-06-16 20:37:13Z iulius $ +$Id: distrib.pats.5 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinn.conf\fR\|(5), \fInnrpd\fR\|(8), \fIuwildmat\fR\|(3) diff -Nurp inn-2.4.5/doc/man/domain.8 inn-2.4.6/doc/man/domain.8 --- inn-2.4.5/doc/man/domain.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/domain.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "DOMAIN 8" -.TH DOMAIN 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH DOMAIN 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" domain \- nnrpd domain resolver .SH "SYNOPSIS" @@ -181,7 +181,7 @@ If so, the example above should reflect .IX Header "HISTORY" This documentation was written by Jeffrey M. Vinocur . .PP -$Id: domain.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: domain.8 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fInnrpd\fR\|(8), \fIreaders.conf\fR\|(5) diff -Nurp inn-2.4.5/doc/man/expire.ctl.5 inn-2.4.6/doc/man/expire.ctl.5 --- inn-2.4.5/doc/man/expire.ctl.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/expire.ctl.5 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "EXPIRE.CTL 5" -.TH EXPIRE.CTL 5 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH EXPIRE.CTL 5 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" expire.ctl \- Configuration file for article expiration .SH "DESCRIPTION" @@ -312,7 +312,7 @@ When \fIgroupbaseexpiry\fR is false, for Written by Rich \f(CW$alz\fR for InterNetNews. Converted to \&\s-1POD\s0 by Russ Allbery . .PP -$Id: expire.ctl.5 7880 2008-06-16 20:37:13Z iulius $ +$Id: expire.ctl.5 8330 2009-02-19 20:41:04Z 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.4.5/doc/man/expireover.8 inn-2.4.6/doc/man/expireover.8 --- inn-2.4.5/doc/man/expireover.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/expireover.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "EXPIREOVER 8" -.TH EXPIREOVER 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH EXPIREOVER 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" expireover \- Expire entries from the news overview database .SH "SYNOPSIS" @@ -260,7 +260,7 @@ Written by Rob Robertson (with help from Dave Lawrence ) for InterNetNews. .PP -$Id: expireover.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: expireover.8 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive\fR\|(5), \fIctlinnd\fR\|(8), \fIexpire\fR\|(8), \fIexpire.ctl\fR\|(5), \fIinn.conf\fR\|(5), diff -Nurp inn-2.4.5/doc/man/fastrm.1 inn-2.4.6/doc/man/fastrm.1 --- inn-2.4.5/doc/man/fastrm.1 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/fastrm.1 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "FASTRM 1" -.TH FASTRM 1 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH FASTRM 1 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" fastrm \- Quickly remove a list of files .SH "SYNOPSIS" @@ -302,7 +302,7 @@ general fast file removal program. \&\fBfastrm\fR was originally written by kre@munnari.oz.au. This manual page rewritten in \s-1POD\s0 by Russ Allbery for InterNetNews. .PP -$Id: fastrm.1 7880 2008-06-16 20:37:13Z iulius $ +$Id: fastrm.1 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIexpirerm\fR\|(8) diff -Nurp inn-2.4.5/doc/man/grephistory.1 inn-2.4.6/doc/man/grephistory.1 --- inn-2.4.5/doc/man/grephistory.1 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/grephistory.1 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "GREPHISTORY 1" -.TH GREPHISTORY 1 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH GREPHISTORY 1 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" grephistory \- Query the INN history database .SH "SYNOPSIS" @@ -194,7 +194,7 @@ any other requested information. This f Written by Rich \f(CW$alz\fR for InterNetNews. Rewritten in \&\s-1POD\s0 by Russ Allbery . .Sp -$Id: grephistory.1 7880 2008-06-16 20:37:13Z iulius $ +$Id: grephistory.1 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIhistory\fR\|(5), \fIinn.conf\fR\|(5) diff -Nurp inn-2.4.5/doc/man/ident.8 inn-2.4.6/doc/man/ident.8 --- inn-2.4.5/doc/man/ident.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/ident.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "IDENT 8" -.TH IDENT 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH IDENT 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" ident \- nnrpd ident resolver .SH "SYNOPSIS" @@ -186,7 +186,7 @@ network whose machines respond to ident .IX Header "HISTORY" This documentation was written by Jeffrey M. Vinocur . .PP -$Id: ident.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: ident.8 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fInnrpd\fR\|(8), \fIreaders.conf\fR\|(5) diff -Nurp inn-2.4.5/doc/man/inews.1 inn-2.4.6/doc/man/inews.1 --- inn-2.4.5/doc/man/inews.1 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/inews.1 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "INEWS 1" -.TH INEWS 1 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH INEWS 1 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" inews \- Post a Usenet article to the local news server .SH "SYNOPSIS" diff -Nurp inn-2.4.5/doc/man/inn.conf.5 inn-2.4.6/doc/man/inn.conf.5 --- inn-2.4.5/doc/man/inn.conf.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/inn.conf.5 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "INN.CONF 5" -.TH INN.CONF 5 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH INN.CONF 5 "2008-11-30" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" inn.conf \- Configuration data for InterNetNews programs .SH "DESCRIPTION" @@ -480,7 +480,7 @@ this parameter must be set if \fIenableo .el .IP "\f(CWbuffindexed\fR" 4 .IX Item "buffindexed" Stores overview data and index information into buffers, which are -preconfigured files defined in \fIbuffinedexed.conf\fR. \f(CW\*(C`buffindexed\*(C'\fR never +preconfigured files defined in \fIbuffindexed.conf\fR. \f(CW\*(C`buffindexed\*(C'\fR never consumes additional disk space beyond that allocated to these buffers. .ie n .IP """tradindexed""" 4 .el .IP "\f(CWtradindexed\fR" 4 @@ -1211,7 +1211,7 @@ values for reference. Written by Rich \f(CW$alz\fR for InterNetNews and since modified, updated, and reorganized by innumerable other people. .PP -$Id: inn.conf.5 7880 2008-06-16 20:37:13Z iulius $ +$Id: inn.conf.5 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinews\fR\|(1), \fIinnd\fR\|(8), \fIinnwatch\fR\|(8), \fInnrpd\fR\|(8), \fIrnews\fR\|(1). diff -Nurp inn-2.4.5/doc/man/innconfval.1 inn-2.4.6/doc/man/innconfval.1 --- inn-2.4.5/doc/man/innconfval.1 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/innconfval.1 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "INNCONFVAL 1" -.TH INNCONFVAL 1 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH INNCONFVAL 1 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" innconfval \- Get configuration parameters from inn.conf .SH "SYNOPSIS" @@ -192,7 +192,7 @@ Print \s-1INN\s0's version. This is equ .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. .PP -$Id: innconfval.1 7880 2008-06-16 20:37:13Z iulius $ +$Id: innconfval.1 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinn.conf\fR\|(5) diff -Nurp inn-2.4.5/doc/man/innd.8 inn-2.4.6/doc/man/innd.8 --- inn-2.4.5/doc/man/innd.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/innd.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "INND 8" -.TH INND 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH INND 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" innd \- InterNetNews daemon .SH "SYNOPSIS" @@ -593,7 +593,7 @@ disables source routing. .IX Header "HISTORY" Written by Rich \f(CW$alz\fR for InterNetNews. .PP -$Id: innd.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: innd.8 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactive\fR\|(5), \fIctlinnd\fR\|(8), \fIdbz\fR\|(3), \fIhistory\fR\|(5), \fIincoming.conf\fR\|(5), \fIinn.conf\fR\|(5), diff -Nurp inn-2.4.5/doc/man/inndf.8 inn-2.4.6/doc/man/inndf.8 --- inn-2.4.5/doc/man/inndf.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/inndf.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "INNDF 8" -.TH INNDF 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH INNDF 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" inndf \- Report free disk, inodes, and overview information .SH "SYNOPSIS" diff -Nurp inn-2.4.5/doc/man/inndstart.8 inn-2.4.6/doc/man/inndstart.8 --- inn-2.4.5/doc/man/inndstart.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/inndstart.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "INNDSTART 8" -.TH INNDSTART 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH INNDSTART 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" inndstart \- Start innd .SH "SYNOPSIS" @@ -388,7 +388,7 @@ The binary that is executed as \fBinnd\f .IX Header "HISTORY" Written by Russ Allbery for InterNetNews. .PP -$Id: inndstart.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: inndstart.8 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinn.conf\fR\|(5), \fIinnd\fR\|(8) diff -Nurp inn-2.4.5/doc/man/innmail.1 inn-2.4.6/doc/man/innmail.1 --- inn-2.4.5/doc/man/innmail.1 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/innmail.1 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "INNMAIL 1" -.TH INNMAIL 1 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH INNMAIL 1 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" innmail \- Simple mail\-sending program .SH "SYNOPSIS" diff -Nurp inn-2.4.5/doc/man/innupgrade.8 inn-2.4.6/doc/man/innupgrade.8 --- inn-2.4.5/doc/man/innupgrade.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/innupgrade.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "INNUPGRADE 8" -.TH INNUPGRADE 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH INNUPGRADE 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" innupgrade \- Upgrade INN configuration files .SH "SYNOPSIS" @@ -201,4 +201,4 @@ alternate file. .IX Header "HISTORY" Written by Russ Allbery for InterNetNews. .PP -$Id: innupgrade.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: innupgrade.8 8330 2009-02-19 20:41:04Z iulius $ diff -Nurp inn-2.4.5/doc/man/libauth.3 inn-2.4.6/doc/man/libauth.3 --- inn-2.4.5/doc/man/libauth.3 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/libauth.3 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "libauth 3" -.TH libauth 3 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH libauth 3 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" libauth \- routines for writing nnrpd resolvers and authenticators .SH "SYNOPSIS" @@ -201,7 +201,7 @@ respectively? .IX Header "HISTORY" Written by Jeffrey M. Vinocur for InterNetNews. .PP -$Id: libauth.3 7880 2008-06-16 20:37:13Z iulius $ +$Id: libauth.3 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fInnrpd\fR\|(8), \fIreaders.conf\fR\|(5), \fIdoc/external\-auth\fR diff -Nurp inn-2.4.5/doc/man/libinnhist.3 inn-2.4.6/doc/man/libinnhist.3 --- inn-2.4.5/doc/man/libinnhist.3 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/libinnhist.3 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "libinnhist 3" -.TH libinnhist 3 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH libinnhist 3 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" his \- routines for managing INN history .SH "SYNOPSIS" @@ -418,4 +418,4 @@ type \fBtime_t\fR and will not be modifi .IX Header "HISTORY" Written by Alex Kiernan for InterNetNews 2.4.0. .Sp -$Id: libinnhist.3 7880 2008-06-16 20:37:13Z iulius $ +$Id: libinnhist.3 8330 2009-02-19 20:41:04Z iulius $ diff -Nurp inn-2.4.5/doc/man/list.3 inn-2.4.6/doc/man/list.3 --- inn-2.4.5/doc/man/list.3 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/list.3 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "list 3" -.TH list 3 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH list 3 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" list \- list routines .SH "SYNOPSIS" @@ -208,4 +208,4 @@ to the caller. .IX Header "HISTORY" Written by Alex Kiernan for InterNetNews 2.4.0. .PP -$Id: list.3 7880 2008-06-16 20:37:13Z iulius $ +$Id: list.3 8330 2009-02-19 20:41:04Z iulius $ diff -Nurp inn-2.4.5/doc/man/mailpost.8 inn-2.4.6/doc/man/mailpost.8 --- inn-2.4.5/doc/man/mailpost.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/mailpost.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "MAILPOST 8" -.TH MAILPOST 8 "2008-04-26" "INN 2.4.5" "InterNetNews Documentation" +.TH MAILPOST 8 "2008-04-26" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" mailpost \- Feed an e\-mail message into a newsgroup .SH "SYNOPSIS" @@ -252,7 +252,7 @@ The default database files which record Written by Paul Vixie long ago and then hacked up by James Brister for \s-1INN\s0 integration. .PP -$Id: mailpost.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: mailpost.8 8330 2009-02-19 20:41:04Z 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.4.5/doc/man/makehistory.8 inn-2.4.6/doc/man/makehistory.8 --- inn-2.4.5/doc/man/makehistory.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/makehistory.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,29 +129,31 @@ .\" ======================================================================== .\" .IX Title "MAKEHISTORY 8" -.TH MAKEHISTORY 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH MAKEHISTORY 8 "2009-02-21" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" makehistory \- Initialize or rebuild INN history database .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBmakehistory\fR [\fB\-abeFIOx\fR] [\fB\-f\fR \fIfilename\fR] [\fB\-l\fR \fIcount\fR] -[\fB\-T\fR \fItmpdir\fR] [\fB\-s\fR \fIsize\fR] +[\fB\-s\fR \fIsize\fR] [\fB\-T\fR \fItmpdir\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBmakehistory\fR rebuilds the \fIhistory\fR\|(5) text file, which contains a list of -Message-IDs of articles already seen by the server. It can also be used -to rebuild the overview database. Note that the \fIdbz\fR\|(3) indexes for the -history file are rebuilt by \fImakedbz\fR\|(8), not by \fBmakehistory\fR as in -earlier versions of \s-1INN\s0. +message-IDs of articles already seen by the server. It can also be used +to rebuild the overview database. Note that even though the \fIdbz\fR\|(3) indices +for the \fIhistory\fR file are also rebuilt by \fBmakehistory\fR, it is useful +to run \fImakedbz\fR\|(8) after \fImakehistory\fR\|(8) in order to improve the efficiency +of the indices (\fBmakehistory\fR does not know how large to make the hash +table at first run, unless the size is given by the \fB\-s\fR flag). .PP -The default location of the history text file is \fIpathdb\fR/history; to +The default location of the \fIhistory\fR text file is \fIpathdb\fR/history; to specify an alternate location, use the \fB\-f\fR flag. .PP By default, \fBmakehistory\fR will scan the entire spool, using the storage manager, and write a history line for every article. To also generate overview information, use the \fB\-O\fR flag. .PP -\&\s-1WARNING:\s0 If you're trying to rebuild the overview database, be sure to +\&\s-1WARNING:\s0 If you're trying to rebuild the overview database, be sure to stop \fIinnd\fR\|(8) and delete or zero out the existing database before you start for the best results. An overview rebuild should not be done while the server is running. Unless the existing overview is deleted, you may end @@ -167,21 +169,17 @@ details. .IX Header "OPTIONS" .IP "\fB\-a\fR" 4 .IX Item "-a" -Append to the history file rather than generating a new one. If you -append to the main history file, make sure \fIinnd\fR\|(8) is throttled or not +Append to the \fIhistory\fR file rather than generating a new one. If you +append to the main \fIhistory\fR file, make sure \fIinnd\fR\|(8) is throttled or not running, or you can corrupt the history. .IP "\fB\-b\fR" 4 .IX Item "-b" -Delete any messages found in the spool that do not have valid Message-ID +Delete any messages found in the spool that do not have valid Message\-ID: headers in them. .IP "\fB\-e\fR" 4 .IX Item "-e" Compute Bytes headers which is used for overview data. This option is valid only if \fB\-O\fR flag is specified and \fIoverview.fmt\fR includes \f(CW\*(C`Bytes:\*(C'\fR. -.IP "\fB\-f\fR \fIfilename\fR" 4 -.IX Item "-f filename" -Rather than writing directly to \fIpathdb\fR/history, instead write to -\&\fIfilename\fR. .IP "\fB\-F\fR" 4 .IX Item "-F" Fork a separate process to flush overview data to disk rather than doing @@ -190,7 +188,11 @@ continue to collect more data from the s is being written to the overview database. The disadvantage is that up to twice as much temporary disk space will be used for the generated overview data. This option only makes sense in combination with \fB\-O\fR. With -\&\f(CW\*(C`buffindexed\*(C'\fR, the \f(CW\*(C`overchan\*(C'\fR program is invoked to write overview. +buffindexed, the \fBoverchan\fR program is invoked to write overview. +.IP "\fB\-f\fR \fIfilename\fR" 4 +.IX Item "-f filename" +Rather than writing directly to \fIpathdb\fR/history, instead write to +\&\fIfilename\fR, also in \fIpathdb\fR. .IP "\fB\-I\fR" 4 .IX Item "-I" Don't store overview data for articles numbered lower than the lowest @@ -209,21 +211,21 @@ the overview batches. At a rough estima of temporary space will be required (not counting temp files created by \fIsort\fR\|(1)). See the description of the \fB\-T\fR option for how to specify the temporary storage location. This option has no effect -with \f(CW\*(C`buffindexed\*(C'\fR, because \f(CW\*(C`buffindexed\*(C'\fR does not need sorted +with buffindexed, because buffindexed does not need sorted overview and no batching is done. +.IP "\fB\-O\fR" 4 +.IX Item "-O" +Create the overview database as well as the \fIhistory\fR file. Overview +information is only required if the server supports readers; it is not +needed for a transit-only server (see \fIenableoverview\fR in \fIinn.conf\fR\|(5)). +If you are using the buffindexed overview storage method, erase all of +your overview buffers before running \fBmakehistory\fR with \fB\-O\fR. .IP "\fB\-s\fR \fIsize\fR" 4 .IX Item "-s size" Size the history database for approximately \fIsize\fR pairs. Accurately specifying the size is an optimization that will create a more efficient database. (The size should be the estimated eventual size of the \fIhistory\fR file, typically the size of the old file, in lines.) -.IP "\fB\-O\fR" 4 -.IX Item "-O" -Create the overview database as well as the history file. Overview -information is only required if the server supports readers; it is not -needed for a transit-only server (see \fIenableoverview\fR in \fIinn.conf\fR\|(5)). -If you are using the \f(CW\*(C`buffindexed\*(C'\fR overview storage method, erase all of -your overview buffers before running \fBmakehistory\fR with \fB\-O\fR. .IP "\fB\-T\fR \fItmpdir\fR" 4 .IX Item "-T tmpdir" If \fB\-O\fR is given, \fBmakehistory\fR needs a location to write temporary @@ -231,45 +233,45 @@ overview data. By default, it uses \fIp this option is given, the provided \fItmpdir\fR is used instead. This is also used for temporary files created by \fIsort\fR\|(1) (which is invoked in the process of writing overview information since sorted overview information -writes faster). By default, sort usually uses your system temporary +writes faster). By default, \fBsort\fR usually uses your system temporary directory; see the \fIsort\fR\|(1) man page on your system to be sure. .IP "\fB\-x\fR" 4 .IX Item "-x" -If this option is given, \fBmakehistory\fR won't write out history file +If this option is given, \fBmakehistory\fR won't write out \fIhistory\fR file entries. This is useful mostly for building overview without generating -a new history file. +a new \fIhistory\fR file. .SH "EXAMPLES" .IX Header "EXAMPLES" Here's a typical example of rebuilding the entire history and overview database, removing broken articles in the news spool. This uses the -default temporary file locations and should be done while innd isn't +default temporary file locations and should be done while \fBinnd\fR isn't running (or is throttled). .PP .Vb 1 \& makehistory \-b \-f history.n \-O \-l 30000 \-I .Ve .PP -This will rebuild the overview (if using \f(CW\*(C`buffindexed\*(C'\fR, erase the +This will rebuild the overview (if using buffindexed, erase the existing overview buffers before running this command) and leave a new -history file as \f(CW\*(C`history.n\*(C'\fR in \fIpathdb\fR. To preserve all of the history -entries from the old history file that correspond to rejected articles or +\&\fIhistory\fR file as \f(CW\*(C`history.n\*(C'\fR in \fIpathdb\fR. To preserve all of the history +entries from the old \fIhistory\fR file that correspond to rejected articles or expired articles, follow the above command with: .PP .Vb 2 -\& cd /usr/local/news/db +\& cd \& awk 'NF == 2 { print }' < history >> history.n .Ve .PP (replacing the path with your \fIpathdb\fR, if it isn't the default). Then -look over the new history file for problems and run: +look over the new \fIhistory\fR file for problems and run: .PP .Vb 1 -\& makedbz \-s `wc \-l < history` \-f history.n +\& makedbz \-s `wc \-l < history.n` \-f history.n .Ve .PP Then rename all of the files matching \f(CW\*(C`history.n.*\*(C'\fR to \f(CW\*(C`history.*\*(C'\fR, -replacing the current history database and indexes. After that, it's safe -to unthrottle innd. +replacing the current history database and indices. After that, it's safe +to unthrottle \fBinnd\fR. .PP For a simpler example: .PP @@ -287,9 +289,6 @@ To just rebuild overview: .Ve .SH "FILES" .IX Header "FILES" -.IP "inn.conf" 4 -.IX Item "inn.conf" -Read for \fIpathdb\fR, \fIpathtmp\fR, and other settings. .IP "\fIpathdb\fR/history" 4 .IX Item "pathdb/history" This is the default output file for \fBmakehistory\fR. @@ -301,8 +300,8 @@ Where temporary files are written unless Originally written by Rich \f(CW$alz\fR for InterNetNews and updated by various other people since. .PP -$Id: makehistory.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: makehistory.8 8341 2009-02-21 22:58:54Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fIdbz\fR\|(3), \fIactive\fR\|(5), \fIhistory\fR\|(5), \fIinn.conf\fR\|(5), \fIctlinnd\fR\|(8), \fIinnd\fR\|(8), -\&\fImakedbz\fR\|(8), \fIovdb_init\fR\|(8), \fIoverview.fmt\fR\|(5). +\&\fIactive\fR\|(5), \fIctlinnd\fR\|(8), \fIdbz\fR\|(3), \fIhistory\fR\|(5), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), +\&\fImakedbz\fR\|(8), \fIovdb_init\fR\|(8), \fIoverchan\fR\|(8), \fIoverview.fmt\fR\|(5). diff -Nurp inn-2.4.5/doc/man/motd.news.5 inn-2.4.6/doc/man/motd.news.5 --- inn-2.4.5/doc/man/motd.news.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/motd.news.5 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "MOTD.NEWS 5" -.TH MOTD.NEWS 5 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH MOTD.NEWS 5 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" motd.news \- Message of the day information for readers .SH "DESCRIPTION" @@ -148,7 +148,7 @@ the client an empty response. .IX Header "HISTORY" Rewritten in \s-1POD\s0 by Russ Allbery for InterNetNews. .PP -$Id: motd.news.5 7880 2008-06-16 20:37:13Z iulius $ +$Id: motd.news.5 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinn.conf\fR\|(5) diff -Nurp inn-2.4.5/doc/man/news.daily.8 inn-2.4.6/doc/man/news.daily.8 --- inn-2.4.5/doc/man/news.daily.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/news.daily.8 2009-03-01 09:49:22.000000000 -0800 @@ -163,6 +163,17 @@ Normally, all utilities invoked by the s redirected into a file. If the file is empty, no message is sent. .TP +.IR mailto= address +By default, +.I news.daily +mails the report to the newsmaster address specified at +configure time. The +.I mailto +keyword can specify a different address to which to mail the +report. (This option has no effect if the +.I nomail +keyword is also specified.) +.TP .I expireover The .I expireover @@ -215,7 +226,7 @@ Rich $alz . .de R$ This is revision \\$3, dated \\$4. .. -.R$ $Id: news.daily.8 6398 2003-07-12 19:15:50Z rra $ +.R$ $Id: news.daily.8 7944 2008-08-03 07:30:03Z iulius $ .SH "SEE ALSO" active(5), ctlinnd(8), diff -Nurp inn-2.4.5/doc/man/newsfeeds.5 inn-2.4.6/doc/man/newsfeeds.5 --- inn-2.4.5/doc/man/newsfeeds.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/newsfeeds.5 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "NEWSFEEDS 5" -.TH NEWSFEEDS 5 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH NEWSFEEDS 5 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" newsfeeds \- Determine where Usenet articles are sent .SH "DESCRIPTION" @@ -904,7 +904,7 @@ the standard newsfeeds entries used by m Written by Rich \f(CW$alz\fR for InterNetNews. Reformatted and rewritten in \s-1POD\s0 by Russ Allbery . .PP -$Id: newsfeeds.5 7880 2008-06-16 20:37:13Z iulius $ +$Id: newsfeeds.5 8330 2009-02-19 20:41:04Z 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.4.5/doc/man/ninpaths.8 inn-2.4.6/doc/man/ninpaths.8 --- inn-2.4.5/doc/man/ninpaths.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/ninpaths.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "NINPATHS 8" -.TH NINPATHS 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH NINPATHS 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" ninpaths \- Report Usenet Path statistics (new inpaths) .SH "SYNOPSIS" diff -Nurp inn-2.4.5/doc/man/nnrpd.8 inn-2.4.6/doc/man/nnrpd.8 --- inn-2.4.5/doc/man/nnrpd.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/nnrpd.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "NNRPD 8" -.TH NNRPD 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH NNRPD 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" nnrpd \- NNTP server for reader clients .SH "SYNOPSIS" @@ -376,7 +376,7 @@ support added by Rob Robertston for InterNetNews. This is revision \f(CW$Revision:\fR 5089 $, dated \f(CW$Date:\fR 2002\-02\-03 20:03:41 +0100 (dim, 03 fév 2002) $. .PP -$Id: passwd.nntp.5 7880 2008-06-16 20:37:13Z iulius $ +$Id: passwd.nntp.5 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinn.conf\fR\|(5), \fIinnd\fR\|(8), \fIlibinn\fR\|(3). diff -Nurp inn-2.4.5/doc/man/pullnews.1 inn-2.4.6/doc/man/pullnews.1 --- inn-2.4.5/doc/man/pullnews.1 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/pullnews.1 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "PULLNEWS 1" -.TH PULLNEWS 1 "2008-06-05" "INN 2.4.5" "InterNetNews Documentation" +.TH PULLNEWS 1 "2008-06-05" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" pullnews \- Pull news from multiple news servers and feed it to another .SH "SYNOPSIS" diff -Nurp inn-2.4.5/doc/man/qio.3 inn-2.4.6/doc/man/qio.3 --- inn-2.4.5/doc/man/qio.3 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/qio.3 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "qio 3" -.TH qio 3 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH qio 3 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" qio \- Quick I/O routines for reading files .SH "SYNOPSIS" @@ -239,4 +239,4 @@ printing out each line preceeded by its Written by Rich \f(CW$alz\fR for InterNetNews. Updated by Russ Allbery . .PP -$Id: qio.3 7880 2008-06-16 20:37:13Z iulius $ +$Id: qio.3 8330 2009-02-19 20:41:04Z iulius $ diff -Nurp inn-2.4.5/doc/man/radius.8 inn-2.4.6/doc/man/radius.8 --- inn-2.4.5/doc/man/radius.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/radius.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "RADIUS 8" -.TH RADIUS 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH RADIUS 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" radius \- nnrpd RADIUS password authenticator .SH "SYNOPSIS" @@ -188,7 +188,7 @@ implement it correctly. The \s-1RADIUS\s0 authenticator was originally written by Aidan Cully. This documentation was written by Russ Allbery . .PP -$Id: radius.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: radius.8 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fInnrpd\fR\|(8), \fIradius.conf\fR\|(5), \fIreaders.conf\fR\|(5) diff -Nurp inn-2.4.5/doc/man/radius.conf.5 inn-2.4.6/doc/man/radius.conf.5 --- inn-2.4.5/doc/man/radius.conf.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/radius.conf.5 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "RADIUS.CONF 5" -.TH RADIUS.CONF 5 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH RADIUS.CONF 5 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" radius.conf \- Configuration for nnrpd RADIUS authenticator .SH "DESCRIPTION" @@ -220,7 +220,7 @@ The shared secret with the \s-1RADIUS\s0 This documentation was written by Russ Allbery based on the comments in the sample radius.conf file by Yury B. Razbegin. .PP -$Id: radius.conf.5 7880 2008-06-16 20:37:13Z iulius $ +$Id: radius.conf.5 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIradius\fR\|(1) diff -Nurp inn-2.4.5/doc/man/rc.news.8 inn-2.4.6/doc/man/rc.news.8 --- inn-2.4.5/doc/man/rc.news.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/rc.news.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "RC.NEWS 8" -.TH RC.NEWS 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH RC.NEWS 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" rc.news \- Start or stop INN daemons .SH "SYNOPSIS" @@ -205,7 +205,7 @@ user \s-1ID\s0. This manual page written by Jeffrey M. Vinocur for InterNetNews. .PP -$Id: rc.news.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: rc.news.8 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIctlinnd\fR\|(8), diff -Nurp inn-2.4.5/doc/man/readers.conf.5 inn-2.4.6/doc/man/readers.conf.5 --- inn-2.4.5/doc/man/readers.conf.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/readers.conf.5 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "READERS.CONF 5" -.TH READERS.CONF 5 "2008-06-22" "INN 2.4.5" "InterNetNews Documentation" +.TH READERS.CONF 5 "2008-06-22" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" readers.conf \- Access control and configuration for nnrpd .SH "DESCRIPTION" @@ -925,7 +925,7 @@ tunnel), use the localaddress: parameter Written by Aidan Cully for InterNetNews. Substantially expanded by Russ Allbery . .PP -$Id: readers.conf.5 7895 2008-06-22 17:54:10Z iulius $ +$Id: readers.conf.5 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIauth_krb5\fR\|(8), \fIauth_smb\fR\|(8), \fIckpasswd\fR\|(8), \fIinn.conf\fR\|(5), \fIinnd\fR\|(8), \fInewsfeeds\fR\|(5), diff -Nurp inn-2.4.5/doc/man/sasl.conf.5 inn-2.4.6/doc/man/sasl.conf.5 --- inn-2.4.5/doc/man/sasl.conf.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/sasl.conf.5 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "SASL.CONF 5" -.TH SASL.CONF 5 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH SASL.CONF 5 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" sasl.conf \- SASL Configuration file for nnrpd. .SH "DESCRIPTION" diff -Nurp inn-2.4.5/doc/man/sendinpaths.8 inn-2.4.6/doc/man/sendinpaths.8 --- inn-2.4.5/doc/man/sendinpaths.8 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/sendinpaths.8 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "SENDINPATHS 8" -.TH SENDINPATHS 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH SENDINPATHS 8 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" sendinpaths \- Send Usenet Path statistics via e\-mail .SH "SYNOPSIS" diff -Nurp inn-2.4.5/doc/man/simpleftp.1 inn-2.4.6/doc/man/simpleftp.1 --- inn-2.4.5/doc/man/simpleftp.1 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/simpleftp.1 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "SIMPLEFTP 1" -.TH SIMPLEFTP 1 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH SIMPLEFTP 1 "2009-02-27" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" simpleftp \- Rudimentary FTP client .SH "SYNOPSIS" @@ -164,9 +164,9 @@ with the same name in the local director .SH "HISTORY" .IX Header "HISTORY" Tossed off by David C Lawrence for InterNetNews. -Rewritten to use Net::FTP by Julien Elie . +Rewritten to use Net::FTP by Julien Elie. .PP -$Id: simpleftp.1 7880 2008-06-16 20:37:13Z iulius $ +$Id: simpleftp.1 8356 2009-02-27 17:49:29Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIactsync\fR\|(8). diff -Nurp inn-2.4.5/doc/man/sm.1 inn-2.4.6/doc/man/sm.1 --- inn-2.4.5/doc/man/sm.1 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/sm.1 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "SM 1" -.TH SM 1 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH SM 1 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" sm \- Command\-line interface to the INN storage manager .SH "SYNOPSIS" @@ -205,7 +205,7 @@ succeeded, you should run sm on one toke Written by Katsuhiro Kondou for InterNetNews. Rewritten in \s-1POD\s0 by Russ Allbery . .PP -$Id: sm.1 7880 2008-06-16 20:37:13Z iulius $ +$Id: sm.1 8330 2009-02-19 20:41:04Z 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.4.5/doc/man/storage.conf.5 inn-2.4.6/doc/man/storage.conf.5 --- inn-2.4.5/doc/man/storage.conf.5 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/storage.conf.5 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -.\" $Revision: 6124 $ +.\" $Revision: 8329 $ .TH STORAGE.CONF 5 .SH NAME storage.conf \- configuration file for storage manager @@ -167,7 +167,7 @@ to wrap around, which depends on how qui \&``EXPENSIVESTAT'' is ``false'' for this method. CNFS has its own configuration file, .IR cycbuff.conf , -which describes some subtlties to the basic description given above. +which describes some subtleties to the basic description given above. Storage method entries for the ``cnfs'' storage method must have an \&``options'' field specifying the metacycbuff into which articles matching that entry should be stored; see @@ -272,7 +272,7 @@ Written by Katsuhiro Kondou for InterNetNews. .PP -$Id: tdx-util.8 7880 2008-06-16 20:37:13Z iulius $ +$Id: tdx-util.8 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fImakehistory\fR\|(8) diff -Nurp inn-2.4.5/doc/man/tst.3 inn-2.4.6/doc/man/tst.3 --- inn-2.4.5/doc/man/tst.3 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/tst.3 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "tst 3" -.TH tst 3 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH tst 3 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" tst \- ternary search trie functions .SH "SYNOPSIS" @@ -201,4 +201,4 @@ Converted to \s-1POD\s0 from Peter A. Fr documentation by Alex Kiernan for InterNetNews 2.4.0. .PP -$Id: tst.3 7880 2008-06-16 20:37:13Z iulius $ +$Id: tst.3 8330 2009-02-19 20:41:04Z iulius $ diff -Nurp inn-2.4.5/doc/man/uwildmat.3 inn-2.4.6/doc/man/uwildmat.3 --- inn-2.4.5/doc/man/uwildmat.3 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/man/uwildmat.3 2009-03-01 09:49:22.000000000 -0800 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "uwildmat 3" -.TH uwildmat 3 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" +.TH uwildmat 3 "2008-04-06" "INN 2.4.6" "InterNetNews Documentation" .SH "NAME" uwildmat, uwildmat_simple, uwildmat_poison \- Perform wildmat matching .SH "SYNOPSIS" @@ -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 -$Id: uwildmat.3 7880 2008-06-16 20:37:13Z iulius $ +$Id: uwildmat.3 8330 2009-02-19 20:41:04Z iulius $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgrep\fR\|(1), \fIfnmatch\fR\|(3), \fIregex\fR\|(3), \fIregexp\fR\|(3). diff -Nurp inn-2.4.5/doc/pod/hook-perl.pod inn-2.4.6/doc/pod/hook-perl.pod --- inn-2.4.5/doc/pod/hook-perl.pod 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/pod/hook-perl.pod 2009-03-01 09:49:22.000000000 -0800 @@ -1,6 +1,6 @@ =head1 INN Perl Filtering and Authentication Support -This is $Revision: 7860 $ dated $Date: 2008-06-07 05:46:49 -0700 (Sat, 07 Jun 2008) $. +This is $Revision: 8263 $ dated $Date: 2008-12-26 17:20:59 -0800 (Fri, 26 Dec 2008) $. This file documents INN's built-in support for Perl filtering and reader authentication. The code is based very heavily on work by Christophe @@ -88,15 +88,16 @@ standard headers are: Content-Type, Control, Date, Date-Received, Distribution, Expires, Face, Followup-To, From, In-Reply-To, Injection-Date, Injection-Info, Keywords, Lines, List-ID, Message-ID, MIME-Version, Newsgroups, - NNTP-Posting-Date, NNTP-Posting-Host, Organization, Originator, + NNTP-Posting-Date, NNTP-Posting-Host, NNTP-Posting-Path, + Organization, Original-Sender, Originator, Path, Posted, Posting-Version, Received, References, Relay-Version, Reply-To, Sender, Subject, Supersedes, User-Agent, - X-Auth, X-Canceled-By, X-Cancelled-By, X-Complaints-To, X-Face, - X-HTTP-UserAgent, X-HTTP-Via, X-Mailer, X-Modbot, X-Modtrace, + X-Auth, X-Auth-Sender, X-Canceled-By, X-Cancelled-By, X-Complaints-To, + X-Face, X-HTTP-UserAgent, X-HTTP-Via, X-Mailer, X-Modbot, X-Modtrace, X-Newsposter, X-Newsreader, X-No-Archive, X-Original-Message-ID, - X-Original-Trace, X-Originating-IP, X-PGP-Key, X-PGP-Sig, - X-Poster-Trace, X-Postfilter, X-Proxy-User, X-Submissions-To, - X-Trace, X-Usenet-Provider, Xref. + X-Original-NNTP-Posting-Host, X-Original-Trace, X-Originating-IP, + X-PGP-Key, X-PGP-Sig, X-Poster-Trace, X-Postfilter, X-Proxy-User, + X-Submissions-To, X-Trace, X-Usenet-Provider, X-User-ID, Xref. Note that all the above headers are as they arrived, not modified by your INN (especially, the Xref: header, if present, is the one of @@ -454,10 +455,11 @@ the username logged. If this element is by the client during authentication will be used for matching and logging. -The NNTP response code should probably be either 281 (authentication -successful) or 502 (authentication unsuccessful). If the code -returned is anything other than 281, nnrpd will print an -authentication error message and drop the connection and exit. +The NNTP response code should probably be 281 (authentication successful), +481 (authentication unsuccessful), or 403 (internal error). If the code +returned is anything other than 281, nnrpd will return an authentication +failure message to the client. Currently, the distinction between 481 +and 403 is not preserved, but it will be in a future version of INN. If authenticate() dies (either due to a Perl error or due to calling die), or if it returns anything other than the two or three element array diff -Nurp inn-2.4.5/doc/pod/hook-python.pod inn-2.4.6/doc/pod/hook-python.pod --- inn-2.4.5/doc/pod/hook-python.pod 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/pod/hook-python.pod 2009-03-01 09:49:22.000000000 -0800 @@ -75,15 +75,17 @@ defined: Content-Type, Control, Date, Date-Received, Distribution, Expires, Face, Followup-To, From, In-Reply-To, Injection-Date, Injection-Info, Keywords, Lines, List-ID, Message-ID, MIME-Version, Newsgroups, - NNTP-Posting-Date, NNTP-Posting-Host, Organization, Originator, + NNTP-Posting-Date, NNTP-Posting-Host, NNTP-Posting-Path, + Organization, Original-Sender, Originator, Path, Posted, Posting-Version, Received, References, Relay-Version, Reply-To, Sender, Subject, Supersedes, User-Agent, - X-Auth, X-Canceled-By, X-Cancelled-By, X-Complaints-To, X-Face, - X-HTTP-UserAgent, X-HTTP-Via, X-Mailer, X-Modbot, X-Modtrace, + X-Auth, X-Auth-Sender, X-Canceled-By, X-Cancelled-By, X-Complaints-To, + X-Face, X-HTTP-UserAgent, X-HTTP-Via, X-Mailer, X-Modbot, X-Modtrace, X-Newsposter, X-Newsreader, X-No-Archive, X-Original-Message-ID, - X-Original-Trace, X-Originating-IP, X-PGP-Key, X-PGP-Sig, - X-Poster-Trace, X-Postfilter, X-Proxy-User, X-Submissions-To, - X-Trace, X-Usenet-Provider, Xref, __BODY__, __LINES__. + X-Original-NNTP-Posting-Host, X-Original-Trace, X-Originating-IP, + X-PGP-Key, X-PGP-Sig, X-Poster-Trace, X-Postfilter, X-Proxy-User, + X-Submissions-To, X-Trace, X-Usenet-Provider, X-User-ID, Xref, + __BODY__, __LINES__. Note that all the above values are as they arrived, not modified by your INN (especially, the Xref: header, if present, is the one @@ -93,8 +95,8 @@ These values will be buffer objects hold same named article headers, except for the special C<__BODY__> and C<__LINES__> items. Items not present in the article will contain C. -C is a buffer object containing the article's entire body, and -C is an int holding B's reckoning of the number of lines +C is a buffer object containing the article's entire body, and +C is an int holding B's reckoning of the number of lines in the article. All the other elements will be buffers with the contents of the same-named article headers. @@ -652,6 +654,6 @@ like C, seen above. =back -$Id: hook-python.pod 7926 2008-06-29 08:27:41Z iulius $ +$Id: hook-python.pod 8253 2008-12-23 12:31:01Z iulius $ =cut diff -Nurp inn-2.4.5/doc/pod/inn.conf.pod inn-2.4.6/doc/pod/inn.conf.pod --- inn-2.4.5/doc/pod/inn.conf.pod 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/pod/inn.conf.pod 2009-03-01 09:49:22.000000000 -0800 @@ -397,7 +397,7 @@ this parameter must be set if I Stores overview data and index information into buffers, which are -preconfigured files defined in F. C never +preconfigured files defined in F. C never consumes additional disk space beyond that allocated to these buffers. =item C @@ -1263,7 +1263,7 @@ values for reference. Written by Rich $alz for InterNetNews and since modified, updated, and reorganized by innumerable other people. -$Id: inn.conf.pod 7751 2008-04-06 14:35:40Z iulius $ +$Id: inn.conf.pod 8197 2008-11-29 20:07:27Z eagle $ =head1 SEE ALSO diff -Nurp inn-2.4.5/doc/pod/install.pod inn-2.4.6/doc/pod/install.pod --- inn-2.4.5/doc/pod/install.pod 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/pod/install.pod 2009-03-01 09:49:22.000000000 -0800 @@ -148,9 +148,9 @@ features, you will need to install those of configure options enabling optional features and the software and versions you'll need: - --with-perl Perl 5.004_03 or higher, 5.6.1+ recommended - --with-python Python 1.5.2 or higher - --with-berkeleydb BerkeleyDB 2.0 or higher, 4.2+ recommended + --with-perl Perl 5.004_03 or higher, 5.8.0+ recommended + --with-python Python 1.5.2 or higher, 2.5.0+ recommended + --with-berkeleydb Berkeley DB 2.0 or higher, 4.7+ recommended --with-openssl OpenSSL 0.9.6 or higher --with-sasl SASL 2.x or higher --with-kerberos MIT Kerberos v5 1.2.x or higher diff -Nurp inn-2.4.5/doc/pod/makehistory.pod inn-2.4.6/doc/pod/makehistory.pod --- inn-2.4.5/doc/pod/makehistory.pod 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/pod/makehistory.pod 2009-03-01 09:49:22.000000000 -0800 @@ -5,24 +5,26 @@ makehistory - Initialize or rebuild INN =head1 SYNOPSIS B [B<-abeFIOx>] [B<-f> I] [B<-l> I] -[B<-T> I] [B<-s> I] +[B<-s> I] [B<-T> I] =head1 DESCRIPTION B rebuilds the history(5) text file, which contains a list of -Message-IDs of articles already seen by the server. It can also be used -to rebuild the overview database. Note that the dbz(3) indexes for the -history file are rebuilt by makedbz(8), not by B as in -earlier versions of INN. +message-IDs of articles already seen by the server. It can also be used +to rebuild the overview database. Note that even though the dbz(3) indices +for the F file are also rebuilt by B, it is useful +to run makedbz(8) after makehistory(8) in order to improve the efficiency +of the indices (B does not know how large to make the hash +table at first run, unless the size is given by the B<-s> flag). -The default location of the history text file is I/history; to +The default location of the F text file is I/history; to specify an alternate location, use the B<-f> flag. By default, B will scan the entire spool, using the storage manager, and write a history line for every article. To also generate overview information, use the B<-O> flag. -WARNING: If you're trying to rebuild the overview database, be sure to +WARNING: If you're trying to rebuild the overview database, be sure to stop innd(8) and delete or zero out the existing database before you start for the best results. An overview rebuild should not be done while the server is running. Unless the existing overview is deleted, you may end @@ -41,13 +43,13 @@ details. =item B<-a> -Append to the history file rather than generating a new one. If you -append to the main history file, make sure innd(8) is throttled or not +Append to the F file rather than generating a new one. If you +append to the main F file, make sure innd(8) is throttled or not running, or you can corrupt the history. =item B<-b> -Delete any messages found in the spool that do not have valid Message-ID +Delete any messages found in the spool that do not have valid Message-ID: headers in them. =item B<-e> @@ -55,11 +57,6 @@ headers in them. Compute Bytes headers which is used for overview data. This option is valid only if B<-O> flag is specified and F includes C. -=item B<-f> I - -Rather than writing directly to I/history, instead write to -I. - =item B<-F> Fork a separate process to flush overview data to disk rather than doing @@ -68,7 +65,12 @@ continue to collect more data from the s is being written to the overview database. The disadvantage is that up to twice as much temporary disk space will be used for the generated overview data. This option only makes sense in combination with B<-O>. With -C, the C program is invoked to write overview. +buffindexed, the B program is invoked to write overview. + +=item B<-f> I + +Rather than writing directly to I/history, instead write to +I, also in I. =item B<-I> @@ -89,9 +91,17 @@ the overview batches. At a rough estima of temporary space will be required (not counting temp files created by sort(1)). See the description of the B<-T> option for how to specify the temporary storage location. This option has no effect -with C, because C does not need sorted +with buffindexed, because buffindexed does not need sorted overview and no batching is done. +=item B<-O> + +Create the overview database as well as the F file. Overview +information is only required if the server supports readers; it is not +needed for a transit-only server (see I in inn.conf(5)). +If you are using the buffindexed overview storage method, erase all of +your overview buffers before running B with B<-O>. + =item B<-s> I Size the history database for approximately I pairs. Accurately @@ -99,14 +109,6 @@ specifying the size is an optimization t efficient database. (The size should be the estimated eventual size of the F file, typically the size of the old file, in lines.) -=item B<-O> - -Create the overview database as well as the history file. Overview -information is only required if the server supports readers; it is not -needed for a transit-only server (see I in inn.conf(5)). -If you are using the C overview storage method, erase all of -your overview buffers before running B with B<-O>. - =item B<-T> I If B<-O> is given, B needs a location to write temporary @@ -114,14 +116,14 @@ overview data. By default, it uses I is used instead. This is also used for temporary files created by sort(1) (which is invoked in the process of writing overview information since sorted overview information -writes faster). By default, sort usually uses your system temporary +writes faster). By default, B usually uses your system temporary directory; see the sort(1) man page on your system to be sure. =item B<-x> -If this option is given, B won't write out history file +If this option is given, B won't write out F file entries. This is useful mostly for building overview without generating -a new history file. +a new F file. =back @@ -129,28 +131,28 @@ a new history file. Here's a typical example of rebuilding the entire history and overview database, removing broken articles in the news spool. This uses the -default temporary file locations and should be done while innd isn't +default temporary file locations and should be done while B isn't running (or is throttled). makehistory -b -f history.n -O -l 30000 -I -This will rebuild the overview (if using C, erase the +This will rebuild the overview (if using buffindexed, erase the existing overview buffers before running this command) and leave a new -history file as C in I. To preserve all of the history -entries from the old history file that correspond to rejected articles or +F file as C in I. To preserve all of the history +entries from the old F file that correspond to rejected articles or expired articles, follow the above command with: - cd /usr/local/news/db + cd awk 'NF == 2 { print }' < history >> history.n (replacing the path with your I, if it isn't the default). Then -look over the new history file for problems and run: +look over the new F file for problems and run: - makedbz -s `wc -l < history` -f history.n + makedbz -s `wc -l < history.n` -f history.n Then rename all of the files matching C to C, -replacing the current history database and indexes. After that, it's safe -to unthrottle innd. +replacing the current history database and indices. After that, it's safe +to unthrottle B. For a simpler example: @@ -167,10 +169,6 @@ To just rebuild overview: =over 4 -=item inn.conf - -Read for I, I, and other settings. - =item I/history This is the default output file for B. @@ -186,11 +184,11 @@ Where temporary files are written unless Originally written by Rich $alz for InterNetNews and updated by various other people since. -$Id: makehistory.pod 6400 2003-07-12 19:26:58Z rra $ +$Id: makehistory.pod 8341 2009-02-21 22:58:54Z iulius $ =head1 SEE ALSO -dbz(3), active(5), history(5), inn.conf(5), ctlinnd(8), innd(8), -makedbz(8), ovdb_init(8), overview.fmt(5). +active(5), ctlinnd(8), dbz(3), history(5), inn.conf(5), innd(8), +makedbz(8), ovdb_init(8), overchan(8), overview.fmt(5). =cut diff -Nurp inn-2.4.5/doc/pod/news.pod inn-2.4.6/doc/pod/news.pod --- inn-2.4.5/doc/pod/news.pod 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/pod/news.pod 2009-03-01 09:49:22.000000000 -0800 @@ -1,3 +1,115 @@ +=head1 Changes in 2.4.6 + +=over 2 + +=item * + +Fixed the segfault of the radius authenticator when none of the radius +servers respond. Thanks to Matija Nalis for this patch. + +=item * + +Fixed a lost initialization in buffindexed, which resolves a potential +segfault, thanks to a patch by Kirill Berezin. + +=item * + +INN now properly supports S (and also 5.8.9); Perl filters +were causing B to segfault on a few systems like FreeBSD. + +=item * + +Fixed a long-standing bug which affected Perl hooks for B: +the variable containing the body of an article was not properly +created, which caused regular expressions matching new lines to fail. +It especially affected filters like Cleanfeed which sometimes +failed to detect unwanted articles. + +To fix that issue, Julien Elie added the use of a shared string, +available since S, with a fall back to a slower but +reliable copy of such bodies in case the function is not available. +Using a Perl version superior to 5.7.2 is therefore recommended. + +=item * + +Fixed two bugs which could prevent B from being run as a daemon +in FreeBSD. Thanks to Johan van Selst for having identified the +problem and to Kai Gallasch for having provided a testing FreeBSD server. +The listening address was not initialized to C<::0> or C<0.0.0.0> when +the B<-b> flag was not used and an incorrect size was given when IPv6 +was enabled and the binding done using IPv4. + +=item * + +Some annoying assertion failures occurring in B have been fixed +by Russ Allbery and Julien Elie. + +=item * + +Fixed a bug in B for aliased newsgroups. Only C<=> was written +to the F file. Thanks to S for this patch. + +=item * + +Fixed a bug which caused B not to honour the B flag in F. + +=item * + +Fixed a bug in the IP address displayed for C in B's +status file. It was not correctly initialized. + +=item * + +Fixed a permission issue: XHDR and XPAT were not checking the rights +the user had to read articles when accessing them by their message-ID. + +=item * + +Fixed a bug in the replies of XHDR, XOVER and XPAT when the newsgroup +is empty. Two initial replies were sent instead of one: the right C<420> +code followed by a wrong C<224> code. + +=item * + +When no newsgroup is selected, LISTGROUP now returns the right C<412> code +(instead of C<481>). + +=item * + +B now uses a range of permissions to see whether the file modes +are correctly set. Therefore, different configurations depending on the +security the user wants to enforce on his sytem are possible. + +=item * + +A new improved version of B is shipped with INN. The B<-u> +flag permits to automatically update the F file (with a proper +number of tabulations and an alphabetical sort), removing obsolete +descriptions and adding new ones. A second argument on command-line permits +to specify which newsgroups should not be checked, so as not to treat them. + +=item * + +An I keyword has been added by James Ralston to B +in order to supply another mail address than the one set at configure time +for Usenet daily reports. + +=item * + +An updated F file with information about the aioe.*, perl.* +and si.* hierarchies is provided; F is also up to date. + +=item * + +INN supports S, which is the recommended version +to use owing to various bugs affecting previous versions of S. + +=item * + +Other minor bugs have also been fixed. + +=back + =head1 Changes in 2.4.5 =over 2 @@ -499,16 +611,16 @@ versions. B should take car ovdb is known to have some locking and timing issues related to how B shuts down (or fails to shut down) the overview databases. If you have -stability problems with ovdb, try setting I to C in +stability problems with ovdb, try setting I to true in F. This will funnel all ovdb reads through a single process with a cleaner interface to the underlying S database. If you use Perl authentication for B (if I in -F is C), there have been major changes. See "Changes to +F is true), there have been major changes. See "Changes to Perl Authentication Support for nnrpd" in F for details. Similarly, if you use Python authentication for B (if -I in F is C), there have been major changes. +I in F is true), there have been major changes. See "Changes to Python Authentication and Access Control Support for nnrpd" in F for details. @@ -587,7 +699,7 @@ starts to rely on it. =item * B supports a new peer parameter, I, that if set -to C feeds any backlog to a peer before new articles, see +to true feeds any backlog to a peer before new articles, see innfeed.conf(5). When used in combination with I set to C<1>, this can be used to enforce in-order delivery of messages to a peer that is doing Xref slaving, avoiding cases where a higher-numbered message is @@ -656,8 +768,8 @@ See "CANCEL FEEDS" in innd(8) for detail Two new options, I and I, have been added to F to aid in building NFS based shared reader/writer platforms. -On the writer server configure I to C and on all of the readers -configure I to C; these options add calls to force data out to +On the writer server configure I to true and on all of the readers +configure I to true; these options add calls to force data out to the NFS server and force it to be read directly from the NFS server at the appropriate moments. Note that it has only been tested on S, using CNFS as the storage mechanism and tradindexed as the overview @@ -666,7 +778,7 @@ method. =item * A new option, I, has been added to F. If set -to C (the default), then the tradindexed overview method will use +to true (the default), then the tradindexed overview method will use mmap() to access its overview data (in 2.3 you couldn't control this; it always used mmap). @@ -699,8 +811,15 @@ of the existing programs in F STABLE series are +also included in S. =back @@ -871,6 +990,10 @@ expiration times. Added a sample F file and documentation for it and B. +=item * + +Various other bug fixes and documentation updates. + =back =head1 Changes in 2.3.1 @@ -901,7 +1024,7 @@ systems without libgdbm installed should =item * -INN now complains loudly at C time if the configured path for +INN now complains loudly at configure time if the configured path for temporary files is world-writeable, since this configuration can be a security hole. @@ -994,7 +1117,7 @@ results in somewhat slower performance, better failure mode under high loads. Writing overview data directly is the default, so in a normal upgrade from 2.2 to 2.3 you'll want to comment out or remove your B entry in F and set I to -C in F. +false in F. B is no longer installed, and no longer works (even with traditional spool). If you have an entry for B in F, @@ -1090,6 +1213,11 @@ C recursion, and far more of the s handled directly by C. libtool build support (including shared library support) should be better than previous releases. +=item * + +All of the applicable bug fixes from the S STABLE series are +also included in S. + =back =head1 Changes in 2.2.3 @@ -1098,14 +1226,15 @@ library support) should be better than p =item * -B is not installed setgid news and B is not installed setuid root -by default any more. If you need the old permissions, you have to give a -flag to configure. See F for more details. +INN no longer installs B setgid news or B setuid root +by default. If you need the old behavior, B<--enable-uucp-rnews> +and/or B<--enable-setgid-inews> must be given to C. See +F for more information. =item * -Fixed a security hole when I was enabled in F (not the -default). +A security hole when I is turned on in F (not +the default) was fixed. =item * @@ -1114,11 +1243,15 @@ problems with other servers. =item * -Embedded Perl filters now work with S. +Various other security paranoia fixes have been made. =item * -Lots of bug fixes and changes for security paranoia. +Embedded Perl filters fixed to work with S. + +=item * + +Lots of bug fixes. =back @@ -1162,7 +1295,7 @@ storms. =item * Support for B to fetch F file with B; configured by default -to use L if you run B. +to use if you run B. Be sure to read the manual page for B to configure an F file for your site, and test B if you do not C with B or B. Also see L. @@ -1197,4 +1330,6 @@ directory, for now). =back +$Id: news.pod 8361 2009-02-27 19:44:58Z iulius $ + =cut diff -Nurp inn-2.4.5/doc/pod/ovdb.pod inn-2.4.6/doc/pod/ovdb.pod --- inn-2.4.5/doc/pod/ovdb.pod 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/pod/ovdb.pod 2009-03-01 09:49:22.000000000 -0800 @@ -4,9 +4,10 @@ ovdb - Overview storage method for INN =head1 DESCRIPTION -Ovdb is a storage method that uses the BerkeleyDB library to store -overview data. It requires version 2.6.x or later of the BerkeleyDB -library, but has mostly been tested with version 3 and 4. +Ovdb is a storage method that uses the S library to store +overview data. It requires version 2.6.x or later of the S +library, but has mostly been tested with version 3 and 4 (4.7+ is +recommended because older versions suffer from various +issues). Ovdb makes use of the full transaction/logging/locking functionality of the BerkeleyDB environment. BerkeleyDB may be downloaded from diff -Nurp inn-2.4.5/doc/pod/simpleftp.pod inn-2.4.6/doc/pod/simpleftp.pod --- inn-2.4.5/doc/pod/simpleftp.pod 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/doc/pod/simpleftp.pod 2009-03-01 09:49:22.000000000 -0800 @@ -35,9 +35,9 @@ with the same name in the local director =head1 HISTORY Tossed off by David C Lawrence for InterNetNews. -Rewritten to use Net::FTP by Julien Elie . +Rewritten to use Net::FTP by Julien Elie. -$Id: simpleftp.pod 7739 2008-04-06 09:38:31Z iulius $ +$Id: simpleftp.pod 8356 2009-02-27 17:49:29Z iulius $ =head1 SEE ALSO diff -Nurp inn-2.4.5/frontends/mailpost.in inn-2.4.6/frontends/mailpost.in --- inn-2.4.5/frontends/mailpost.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/frontends/mailpost.in 2009-03-01 09:49:22.000000000 -0800 @@ -3,7 +3,7 @@ # mailpost - Yet another mail-to-news filter # -# $Id: mailpost.in 7795 2008-04-26 08:28:08Z iulius $ +# $Id: mailpost.in 8360 2009-02-27 18:56:16Z iulius $ # # 21feb00 [added "lc" to duplicate header fixer stmt to make it case-insensitive] # doka 11may99 [fixed duplicate headers problem] @@ -147,7 +147,8 @@ if (!$_) { } } -chomp $_; +# Remove (CR)LF at the end of each line. +s/\r?\n$//; my $line = undef; if (/^From\s+([^\s]+)\s+/) { @@ -167,7 +168,8 @@ for (;;) { $_ = ; last unless defined $_ ; - chomp ; + # Remove (CR)LF at the end of each line. + s/\r?\n$//; # Gather up a single header with possible continuation lines into $line. if (/^\s+/) { @@ -428,7 +430,8 @@ if ($opt_c) { } for (;;) { $_ = ; - chomp ; + # Remove (CR)LF at the end of each line. + s/\r?\n$//; last if defined($_) && /^$/ ; if (/^Newsgroups:\s*/sio) { diff -Nurp inn-2.4.5/frontends/pullnews.in inn-2.4.6/frontends/pullnews.in --- inn-2.4.5/frontends/pullnews.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/frontends/pullnews.in 2009-03-01 09:49:22.000000000 -0800 @@ -4,7 +4,7 @@ # Start Date: Sat, 10 Oct 1998 21:40:11 +0200 # Project: INN # File: pullnews.pl -# RCSId: $Id: pullnews.in 7862 2008-06-08 09:15:41Z iulius $ +# RCSId: $Id: pullnews.in 8158 2008-11-15 15:01:19Z iulius $ # # History: May 2008: Geraint A. Edwards greatly improved pullnews, adding # -b, -C, -d, -G, -H, -k, -l, -m, -M, -n, -P, -Q, -R, -t, -T, -w and @@ -46,7 +46,7 @@ require 5.004; $0 =~ s!.*/!!; my $rcsID =<<'EOM'; -$Id: pullnews.in 7862 2008-06-08 09:15:41Z iulius $ +$Id: pullnews.in 8158 2008-11-15 15:01:19Z iulius $ EOM $SIG{INT} = \&outtaHere; @@ -537,7 +537,7 @@ sub crossFeedGroup { my ($prevRefused, $prevRejected) = ($info{refused}, $info{rejected}); if (!defined($narticles)) { # Group command failed. - warn sprintf ("Group command failed: %s %s\n", + warn sprintf ("Group command failed for $group: %s %s\n", $fromServer->code(), $fromServer->message()); return undef; } @@ -613,7 +613,7 @@ sub crossFeedGroup { # Unfold this header (with following lines). my $unfolded_art_hdr = $article->[$idx]; - for (my $idx_step = $idx+1; $article->[$idx_step] =~ /^[[:space:]](.+)/; $idx_step++) { + for (my $idx_step = $idx+1; $idx_step < @$article and $article->[$idx_step] =~ /^[[:space:]](.+)/; $idx_step++) { # While next line is continuation... my $more_line = $1; chomp $unfolded_art_hdr; @@ -630,11 +630,11 @@ sub crossFeedGroup { $m_found_hdrs{lc($hdr_m)} = 1; if ($negate_h) { if ($val_un =~ /$val_m/i) { - print LOG "\tDEBUGGING $i\t-- $hdr_un [$1]\n" if $debug >= 2; + print LOG "\tDEBUGGING $i\t-- $hdr_un [$val_un]\n" if $debug >= 2; $match_all_hdrs = 0; } } elsif (not $val_un =~ /$val_m/i) { - print LOG "\tDEBUGGING $i\t++ $hdr_un [$1]\n" if $debug >= 2; + print LOG "\tDEBUGGING $i\t++ $hdr_un [$val_un]\n" if $debug >= 2; $match_all_hdrs = 0; } last if not $match_all_hdrs; @@ -793,7 +793,8 @@ sub crossFeedGroup { $shash->{$group} = [ time, $high = $i ]; } else { - $shash->{$group} = [ time, $high = $i ] if $fromServer->code() == 430; # no such article, do not retry + $shash->{$group} = [ time, $high = $i ] if $fromServer->code() == 430 # no such article, do not retry + or $fromServer->code() == 423; print LOG "x" unless $quiet; printf LOG ("\nDEBUGGING $i %s %s\n", $fromServer->code(), $fromServer->message()) if $debug >= 2; diff -Nurp inn-2.4.5/frontends/sys2nf.c inn-2.4.6/frontends/sys2nf.c --- inn-2.4.5/frontends/sys2nf.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/frontends/sys2nf.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: sys2nf.c 7741 2008-04-06 09:51:47Z iulius $ +/* $Id: sys2nf.c 8230 2008-12-14 16:49:28Z iulius $ ** ** Read a C news "sys" file and split it up into a set of INN ** newsfeeds entries. Also works with B news. @@ -174,7 +174,7 @@ DoSub(F, p) "ba", "ca", "dc", "ne", "ny", "tx", "info", "mail", "opinions", "uunet" - } + }; if ((s = strtok(p, ",")) == NULL) return; diff -Nurp inn-2.4.5/include/ppport.h inn-2.4.6/include/ppport.h --- inn-2.4.5/include/ppport.h 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/include/ppport.h 2009-03-01 09:49:22.000000000 -0800 @@ -150,6 +150,7 @@ __DATA__ # endif #endif #ifndef PERL_VERSION +# define PERL_REVISION (5) # ifdef PERL_PATCHLEVEL # define PERL_VERSION PERL_PATCHLEVEL # else @@ -162,7 +163,7 @@ __DATA__ # define ERRSV perl_get_sv("@",false) #endif -#if (PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 4)) +#if (PERL_REVISION == 5) && ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 4))) # define PL_sv_undef sv_undef # define PL_sv_yes sv_yes # define PL_sv_no sv_no @@ -174,7 +175,7 @@ __DATA__ # define PL_copline copline #endif -#if (PERL_VERSION < 5) +#if (PERL_REVISION == 5) && (PERL_VERSION < 5) # undef dTHR # ifdef WIN32 # define dTHR extern int Perl___notused diff -Nurp inn-2.4.5/innd/art.c inn-2.4.6/innd/art.c --- inn-2.4.5/innd/art.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/innd/art.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: art.c 7748 2008-04-06 13:49:56Z iulius $ +/* $Id: art.c 7936 2008-07-20 10:20:41Z iulius $ ** ** Article-processing. */ @@ -1725,7 +1725,7 @@ ARTpropagate(ARTDATA *data, const char * !DISTwantany(sp->Distributions, list)) /* Not in the site's desired list of distributions. */ continue; - if (sp->DistRequired && list == NULL) + if (sp->DistRequired && (list == NULL || *list == NULL)) /* Site requires Distribution header and there isn't one. */ continue; diff -Nurp inn-2.4.5/innd/icd.c inn-2.4.6/innd/icd.c --- inn-2.4.5/innd/icd.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/innd/icd.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: icd.c 6156 2003-01-19 20:58:05Z rra $ +/* $Id: icd.c 8206 2008-12-02 17:33:26Z iulius $ ** ** Routines to read and write the active file. */ @@ -377,7 +377,8 @@ ICDrmgroup(NEWSGROUP *ngp) char *Name; /* Don't let anyone remove newsgroups that INN requires exist. */ - if (strcmp(ngp->Name, "junk") == 0 || strcmp(ngp->Name, "control") == 0) + if (strcmp(ngp->Name, "junk") == 0 || strcmp(ngp->Name, "control") == 0 + || strcmp(ngp->Name, "control.cancel") == 0) return false; if (innconf->mergetogroups && strcmp(ngp->Name, "to") == 0) return false; diff -Nurp inn-2.4.5/innd/innd.c inn-2.4.6/innd/innd.c --- inn-2.4.5/innd/innd.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/innd/innd.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: innd.c 7858 2008-06-05 18:51:20Z iulius $ +/* $Id: innd.c 8160 2008-11-15 15:35:23Z iulius $ ** ** Variable definitions, miscellany, and main(). */ @@ -192,11 +192,21 @@ const ARTHEADER ARTheaders[] = { /* #define HDR__IN_REPLY_TO 63 */ ARTHEADERINIT("Injection-Date", HTstd), /* #define HDR__INJECTION_DATE 64 */ - ARTHEADERINIT("NNTP-Posting-Date", HTstd) -/* #define HDR__NNTP_POSTING_DATE 65 */ + ARTHEADERINIT("NNTP-Posting-Date", HTstd), +/* #define HDR__NNTP_POSTING_DATE 65 */ + ARTHEADERINIT("X-User-ID", HTstd), +/* #define HDR__X_USER_ID 66 */ + ARTHEADERINIT("X-Auth-Sender", HTstd), +/* #define HDR__X_AUTH_SENDER 67 */ + ARTHEADERINIT("X-Original-NNTP-Posting-Host", HTstd), +/* #define HDR__X_ORIGINAL_NNTP_POSTING_HOST 68 */ + ARTHEADERINIT("Original-Sender", HTstd), +/* #define HDR__ORIGINAL_SENDER 69 */ + ARTHEADERINIT("NNTP-Posting-Path", HTstd) +/* #define HDR__NNTP_POSTING_PATH 70 */ }; -/* #define MAX_ARTHEADER 66 */ - +/* #define MAX_ARTHEADER 71 */ + /* ** Signal handler to catch SIGTERM and similar signals and queue a clean diff -Nurp inn-2.4.5/innd/innd.h inn-2.4.6/innd/innd.h --- inn-2.4.5/innd/innd.h 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/innd/innd.h 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: innd.h 7858 2008-06-05 18:51:20Z iulius $ +/* $Id: innd.h 8160 2008-11-15 15:35:23Z iulius $ ** ** Many of the data types used here have abbreviations, such as CT ** for CHANNELTYPE. Here are a list of the conventions and meanings: @@ -205,8 +205,13 @@ typedef struct _HDRCONTENT { #define HDR__IN_REPLY_TO 63 #define HDR__INJECTION_DATE 64 #define HDR__NNTP_POSTING_DATE 65 +#define HDR__X_USER_ID 66 +#define HDR__X_AUTH_SENDER 67 +#define HDR__X_ORIGINAL_NNTP_POSTING_HOST 68 +#define HDR__ORIGINAL_SENDER 69 +#define HDR__NNTP_POSTING_PATH 70 -#define MAX_ARTHEADER 66 +#define MAX_ARTHEADER 71 /* ** Miscellaneous data we want to keep on an article. All the fields diff -Nurp inn-2.4.5/innd/perl.c inn-2.4.6/innd/perl.c --- inn-2.4.5/innd/perl.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/innd/perl.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: perl.c 7815 2008-05-05 08:43:58Z iulius $ +/* $Id: perl.c 7951 2008-08-05 19:41:17Z iulius $ ** ** Perl filtering support for innd. ** @@ -69,7 +69,6 @@ PLartfilter(const ARTDATA *data, char *a CV * filter; int i, rc; char * p; - static SV * body = NULL; static char buf[256]; if (!PerlFilterActive) return NULL; @@ -87,23 +86,19 @@ PLartfilter(const ARTDATA *data, char *a } /* Store the article body. We don't want to make another copy of it, - since it could potentially be quite large. Instead, stash the - pointer in the static SV * body. We set LEN to 0 and inc the - refcount to tell Perl not to free it (either one should be enough). - Requires 5.004. In testing, this produced a 17% speed improvement - over making a copy of the article body for a fairly heavy filter. */ + * since it could potentially be quite large. In testing, this produced + * a 17% speed improvement over making a copy of the article body + * for a fairly heavy filter. + * Available since Perl 5.7.1, newSVpvn_share allows to avoid such + * a copy (getting round its use for older versions of Perl leads + * to unreliable SV * bodies as for regexps). And for Perl not to + * compute a hash for artBody, we give it "42". */ if (artBody) { - if (!body) { - body = newSV(0); - (void) SvUPGRADE(body, SVt_PV); - } - SvPVX(body) = artBody; - SvCUR_set(body, artLen); - SvLEN_set(body, 0); - SvPOK_on(body); - (void) SvREADONLY_on(body); - (void) SvREFCNT_inc(body); - hv_store(hdr, "__BODY__", 8, body, 0); +#if (PERL_REVISION == 5) && ((PERL_VERSION < 7) || ((PERL_VERSION == 7) && (PERL_SUBVERSION < 1))) + hv_store(hdr, "__BODY__", 8, newSVpv(artBody, artLen), 0); +#else + hv_store(hdr, "__BODY__", 8, newSVpvn_share(artBody, artLen, 42), 0); +#endif /* Perl < 5.7.1 */ } hv_store(hdr, "__LINES__", 9, newSViv(lines), 0); diff -Nurp inn-2.4.5/innd/status.c inn-2.4.6/innd/status.c --- inn-2.4.5/innd/status.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/innd/status.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: status.c 7547 2006-08-26 06:18:14Z eagle $ +/* $Id: status.c 7947 2008-08-03 07:55:20Z iulius $ ** ** Periodic status reporting. */ @@ -153,9 +153,14 @@ STATUSsummary(void) status = xmalloc(sizeof(STATUS)); peers++; /* a new peer */ strlcpy(status->name, TempString, sizeof(status->name)); - strlcpy(status->ip_addr, - sprint_sockaddr((struct sockaddr *)&cp->Address), - sizeof(status->ip_addr)); + if (cp->Address.ss_family == 0) { + /* Connections from lc.c do not have an IP address. */ + memset(&status->ip_addr, 0, sizeof(status->ip_addr)); + } else { + strlcpy(status->ip_addr, + sprint_sockaddr((struct sockaddr *)&cp->Address), + sizeof(status->ip_addr)); + } status->can_stream = cp->Streaming; status->seconds = status->Size = status->DuplicateSize = 0; status->Ihave = status->Ihave_Duplicate = diff -Nurp inn-2.4.5/innfeed/host.c inn-2.4.6/innfeed/host.c --- inn-2.4.5/innfeed/host.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/innfeed/host.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: host.c 7833 2008-05-18 20:04:35Z iulius $ +/* $Id: host.c 8294 2009-01-18 14:03:54Z iulius $ ** ** The implementation of the innfeed Host class. ** @@ -1793,7 +1793,7 @@ void hostSendArticle (Host host, Article unsigned int x_queue = host->params->maxChecks + 1 ; for (idx = 0 ; x_queue > 0 && idx < host->maxConnections ; idx++) - if ((cxn = host->connections[idx]) != host->notThisCxn) { + if ((cxn = host->connections[idx]) != host->notThisCxn && cxn != NULL) { if (!host->cxnActive [idx]) { if (!host->cxnSleeping [idx]) { if (cxnTakeArticle (cxn, extraRef)) { @@ -1828,7 +1828,7 @@ void hostSendArticle (Host host, Article { if (host->cxnActive [idx] && (cxn = host->connections[idx]) != host->notThisCxn && - cxnTakeArticle (cxn, extraRef)) { + cxn != NULL && cxnTakeArticle (cxn, extraRef)) { unsigned int queue = host->params->maxChecks - cxnQueueSpace (cxn) - 1; if (queue == 0) host->gNoQueue++ ; else host->gCxnQueue += queue ; @@ -1839,7 +1839,7 @@ void hostSendArticle (Host host, Article /* Wasn't taken so try to give it to one of the waiting connections. */ for (idx = 0 ; idx < host->maxConnections ; idx++) if (!host->cxnActive [idx] && !host->cxnSleeping [idx] && - (cxn = host->connections[idx]) != host->notThisCxn) + (cxn = host->connections[idx]) != host->notThisCxn && cxn != NULL) { if (cxnTakeArticle (cxn, extraRef)) { unsigned int queue = host->params->maxChecks - cxnQueueSpace (cxn) - 1; @@ -1859,7 +1859,7 @@ void hostSendArticle (Host host, Article delArticle (extraRef) ; remArticle (article,&host->processed,&host->processedTail) ; - if (!cxnCheckstate (cxn)) + if (cxn == NULL || !cxnCheckstate (cxn)) { host->artsToTape++ ; host->gArtsToTape++ ; diff -Nurp inn-2.4.5/lib/perl.c inn-2.4.6/lib/perl.c --- inn-2.4.5/lib/perl.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/lib/perl.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: perl.c 7929 2008-06-29 17:55:04Z iulius $ +/* $Id: perl.c 7940 2008-07-20 10:51:39Z iulius $ ** ** Embedded Perl support for INN. ** @@ -110,14 +110,18 @@ void PERLsetup (char *startupfile, char if (PerlCode == NULL) { /* Perl waits on standard input if not called with '-e'. */ int argc = 3; - const char *argv[] = { "innd", "-e", "0", NULL }; - char *env[] = { NULL }; + const char *argv_innd[] = { "innd", "-e", "0", NULL }; + char **argv = (char **)argv_innd; /* Cast required by Perl 5.10. */ + char **env = { NULL }; #ifdef PERL_SYS_INIT3 PERL_SYS_INIT3(&argc, &argv, &env); #endif PerlCode = perl_alloc(); perl_construct(PerlCode); - perl_parse(PerlCode, xs_init, argc, (char **)argv, env) ; +#ifdef PERL_EXIT_DESTRUCT_END + PL_exit_flags |= PERL_EXIT_DESTRUCT_END; +#endif + perl_parse(PerlCode, xs_init, argc, argv, env) ; } if (startupfile != NULL && filterfile != NULL) { diff -Nurp inn-2.4.5/nnrpd/article.c inn-2.4.6/nnrpd/article.c --- inn-2.4.5/nnrpd/article.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/nnrpd/article.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: article.c 7538 2006-08-26 05:44:06Z eagle $ +/* $Id: article.c 8004 2008-09-06 08:49:55Z iulius $ ** ** Article-related routines. */ @@ -688,6 +688,7 @@ void CMDfetch(int ac, char *av[]) if (ac > 1) ARTnumber = tart; if ((msgid = GetHeader("Message-ID")) == NULL) { + ARTclose(); Reply("%s\r\n", ARTnoartingroup); return; } @@ -745,9 +746,9 @@ void CMDnextlast(int ac UNUSED, char *av if (!ARTopen(ARTnumber)) continue; msgid = GetHeader("Message-ID"); + ARTclose(); } while (msgid == NULL); - ARTclose(); Reply("%d %d %s Article retrieved; request text separately.\r\n", NNTP_NOTHING_FOLLOWS_VAL, ARTnumber, msgid); } @@ -854,9 +855,7 @@ void CMDxover(int ac, char *av[]) /* Parse range. */ if (!CMDgetrange(ac, av, &range, &DidReply)) { - if (!DidReply) { - Reply("%d data follows\r\n", NNTP_OVERVIEW_FOLLOWS_VAL); - Printf(".\r\n"); + if (DidReply) { return; } } @@ -1010,6 +1009,12 @@ void CMDpat(int ac, char *av[]) Printf("%d No such article.\r\n", NNTP_DONTHAVEIT_VAL); break; } + if (!PERMartok()) { + ARTclose(); + Printf("%s\r\n", NOACCESS); + break; + } + Printf("%d %s matches follow (ID)\r\n", NNTP_HEAD_FOLLOWS_VAL, header); if ((text = GetHeader(header)) != NULL @@ -1028,10 +1033,7 @@ void CMDpat(int ac, char *av[]) /* Range specified. */ if (!CMDgetrange(ac - 1, av + 1, &range, &DidReply)) { - if (!DidReply) { - Reply("%d %s no matches follow (range)\r\n", - NNTP_HEAD_FOLLOWS_VAL, header ? header : "\"\""); - Printf(".\r\n"); + if (DidReply) { break; } } @@ -1052,8 +1054,8 @@ void CMDpat(int ac, char *av[]) SendIOb(buff, strlen(buff)); SendIOb(p, strlen(p)); SendIOb("\r\n", 2); - ARTclose(); } + ARTclose(); } SendIOb(".\r\n", 3); PushIOb(); diff -Nurp inn-2.4.5/nnrpd/commands.c inn-2.4.6/nnrpd/commands.c --- inn-2.4.5/nnrpd/commands.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/nnrpd/commands.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: commands.c 7542 2006-08-26 05:57:11Z eagle $ +/* $Id: commands.c 8012 2008-09-07 10:31:33Z iulius $ ** ** Miscellaneous commands. */ @@ -81,6 +81,8 @@ PERMgeneric(char *av[], char *accesslist /* Create a pipe. */ if (pipe(pan) < 0) { + Reply("%d Can't pipe %s\r\n", NNTP_TEMPERR_VAL, + strerror(errno)); syslog(L_FATAL, "cant pipe for %s %m", av[0]); return -1; } @@ -476,20 +478,20 @@ CMDpost(int ac UNUSED, char *av[] UNUSED * invoke the spaghetti factor). */ if ((path = (char *) PostRecFilename(ClientIpString,PERMuser)) == NULL) { - Reply("%s\r\n", NNTP_CANTPOST); + Reply("%s\r\n", ihave ? NNTP_RESENDIT_LATER : NNTP_CANTPOST); return; } if (LockPostRec(path) == 0) { syslog(L_ERROR, "%s Error write locking '%s'", ClientHost, path); - Reply("%s\r\n", NNTP_CANTPOST); + Reply("%s\r\n", ihave ? NNTP_RESENDIT_LATER : NNTP_CANTPOST); return; } if (!RateLimit(&sleeptime,path)) { syslog(L_ERROR, "%s can't check rate limit info", ClientHost); - Reply("%s\r\n", NNTP_CANTPOST); + Reply("%s\r\n", ihave ? NNTP_RESENDIT_LATER : NNTP_CANTPOST); UnlockPostRec(path); return; } else if (sleeptime != 0L) { diff -Nurp inn-2.4.5/nnrpd/group.c inn-2.4.6/nnrpd/group.c --- inn-2.4.5/nnrpd/group.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/nnrpd/group.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: group.c 7538 2006-08-26 05:44:06Z eagle $ +/* $Id: group.c 7953 2008-08-23 13:45:02Z iulius $ ** ** Newsgroups and the active file. */ @@ -41,7 +41,7 @@ void CMDgroup(int ac, char *av[]) /* Parse arguments. */ if (ac == 1) { if (GRPcur == NULL) { - Printf("%d No group specified\r\n", NNTP_XGTITLE_BAD); + Printf("%d No group specified\r\n", NNTP_NOTINGROUP_VAL); return; } else { group = xstrdup(GRPcur); diff -Nurp inn-2.4.5/nnrpd/list.c inn-2.4.6/nnrpd/list.c --- inn-2.4.5/nnrpd/list.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/nnrpd/list.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: list.c 7731 2008-04-06 08:40:29Z iulius $ +/* $Id: list.c 7953 2008-08-23 13:45:02Z iulius $ ** ** List commands. */ @@ -105,7 +105,7 @@ cmd_list_schema(LISTINFO *lp) static void cmd_list_extensions(LISTINFO *lp) { - Reply("%d %s.\r\n", NNTP_SLAVEOK_VAL, lp->Format); + Reply("%d %s.\r\n", NNTP_LIST_FOLLOWS_VAL, lp->Format); if (PERMauthorized != true) Printf("AUTHINFO USER\r\n"); Printf("LISTGROUP\r\n"); diff -Nurp inn-2.4.5/nnrpd/misc.c inn-2.4.6/nnrpd/misc.c --- inn-2.4.5/nnrpd/misc.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/nnrpd/misc.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: misc.c 6535 2003-12-10 09:02:22Z rra $ +/* $Id: misc.c 8057 2008-09-26 23:11:47Z iulius $ ** ** Miscellaneous support routines. */ @@ -544,7 +544,7 @@ CMDstarttls(ac, av) result=tls_start_servertls(0, /* read */ 1); /* write */ if (result==-1) { - Reply("%d Starttls failed\r\n", NNTP_STARTTLS_BAD_VAL); + /* No reply because we have already sent NNTP_STARTTLS_NEXT_VAL. */ return; } nnrpd_starttls_done = 1; diff -Nurp inn-2.4.5/nnrpd/nnrpd.c inn-2.4.6/nnrpd/nnrpd.c --- inn-2.4.5/nnrpd/nnrpd.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/nnrpd/nnrpd.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: nnrpd.c 7731 2008-04-06 08:40:29Z iulius $ +/* $Id: nnrpd.c 8144 2008-10-25 17:06:15Z iulius $ ** ** NNTP server for readers (NNRP) for InterNetNews. ** @@ -130,12 +130,12 @@ static CMDENT CMDtable[] = { { "last", CMDnextlast, true, 1, 1, NULL }, { "list", CMDlist, true, 1, 3, - "[active|active.times|distrib.pats|distributions|extensions|moderators|motd|newsgroups|overview.fmt|subscriptions]" }, + "[active [wildmat]|active.times [wildmat]|distrib.pats|distributions|extensions|moderators|motd|newsgroups [wildmat]|overview.fmt|subscriptions]" }, { "listgroup", CMDgroup, true, 1, 2, - "newsgroup" }, + "[newsgroup]" }, { "mode", CMDmode, false, 2, 2, "reader" }, - { "newgroups", CMDnewgroups, true, 3, 5, + { "newgroups", CMDnewgroups, true, 3, 4, "[YY]yymmdd hhmmss [\"GMT\"]" }, { "newnews", CMDnewnews, true, 4, 5, "newsgroups [YY]yymmdd hhmmss [\"GMT\"]" }, @@ -804,9 +804,9 @@ main(int argc, char *argv[]) struct timeval tv; unsigned short ListenPort = NNTP_PORT; #ifdef HAVE_INET6 - char ListenAddr[INET6_ADDRSTRLEN]; + char ListenAddr[INET6_ADDRSTRLEN] = "::0"; #else - char ListenAddr[16]; + char ListenAddr[16] = "0.0.0.0"; #endif int lfd, fd; socklen_t clen; @@ -948,11 +948,14 @@ main(int argc, char *argv[]) SPOOLlen = strlen(innconf->patharticles); if (DaemonMode) { + bool ipv4binding = true; + #ifdef HAVE_INET6 memset(&ssa, '\0', sizeof(struct sockaddr_in6)); ssa6->sin6_family = AF_INET6; ssa6->sin6_port = htons(ListenPort); if (inet_pton(AF_INET6, ListenAddr, ssa6->sin6_addr.s6_addr) > 0) { + ipv4binding = false; if ( (lfd = socket(AF_INET6, SOCK_STREAM, 0)) < 0) { syslog(L_FATAL, "can't open socket (%m)"); exit(1); @@ -979,7 +982,9 @@ main(int argc, char *argv[]) exit(1); } - if (bind(lfd, (struct sockaddr *) &ssa, sizeof(ssa)) < 0) { + if (bind(lfd, (struct sockaddr *) &ssa, + ipv4binding ? sizeof(struct sockaddr_in) + : sizeof(struct sockaddr_storage)) < 0) { fprintf(stderr, "%s: can't bind (%s)\n", argv[0], strerror(errno)); syslog(L_FATAL, "can't bind local address (%m)"); exit(1); diff -Nurp inn-2.4.5/nnrpd/python.c inn-2.4.6/nnrpd/python.c --- inn-2.4.5/nnrpd/python.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/nnrpd/python.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: python.c 7893 2008-06-22 10:24:42Z iulius $ +/* $Id: python.c 8056 2008-09-26 23:02:08Z iulius $ ** ** python.c: Embed Python in the style of nnrpd's TCL and Perl stuff ** (authentication and authorization hooks only at this point). @@ -693,7 +693,7 @@ PY_setup(int type, int method, char *fil PyObject *result; /* check to see if this file is in files */ - if (!(hash_lookup(files, file))) { + if ((fp = hash_lookup(files, file)) == NULL) { fp = xmalloc(sizeof(PyFile)); fp->file = xstrdup(file); @@ -723,9 +723,8 @@ PY_setup(int type, int method, char *fil } fp->loaded[type] = true; } - return fp->procs[type][method]; } - return NULL; + return fp->procs[type][method]; } /* diff -Nurp inn-2.4.5/nnrpd/tls.c inn-2.4.6/nnrpd/tls.c --- inn-2.4.5/nnrpd/tls.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/nnrpd/tls.c 2009-03-01 09:49:22.000000000 -0800 @@ -257,7 +257,7 @@ static int verify_callback(int ok, X509_ X509_verify_cert_error_string(err)); if (verify_depth >= depth) { - ok = 0; + ok = 1; verify_error = X509_V_OK; } else { ok = 0; diff -Nurp inn-2.4.5/samples/control.ctl inn-2.4.6/samples/control.ctl --- inn-2.4.5/samples/control.ctl 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/samples/control.ctl 2009-03-01 09:49:22.000000000 -0800 @@ -1,5 +1,5 @@ ## control.ctl - Access control for control messages. -## Last modified: 2008-03-05 +## Last modified: 2009-01-02 ## ## Based on rone's unified control.ctl file. ## @@ -9,8 +9,8 @@ ## ## ## Please copy usenet-config@isc.org on any updates to this file so that -## it can be updated in the INN CVS repository and on ftp.isc.org. For -## changes to a public hierarchy, please also post the changes to +## it can be updated in the INN Subversion repository and on ftp.isc.org. +## For changes to a public hierarchy, please also post the changes to ## news.admin.hierarchies. ## ## The canonical version of this file can be found in the latest INN @@ -78,7 +78,13 @@ ## contacted the listed contact address and arranged a feed. ## ## If you have permission to carry any of the hierarchies so listed in -## this file, you should change the entries for those hierarchies below. +## this file, you should change the entries for those hierarchies +## below. +## +## * Some hierarchies are marked as *HISTORIC*. These hierarchies +## aren't entirely defunct, but they are very low-traffic, not widely +## read or carried, and may not be worth carrying. If you don't intend +## to carry them, comment out their entries. ## ## The comments of this file aren't in any formal or well-defined syntax, ## but they are meant to use a consistent syntax to allow eventual parsing @@ -666,6 +672,17 @@ rmgroup:moderator@dana.de:de.*:verify-de newgroup:*:de.alt.*:doit rmgroup:moderator@dana.de:de.alt.*:verify-de.admin.news.announce +## DEMON (Demon Internet, UK) +# Contact: newsmaster@demon.net +# Admin group: demon.news +# Key URL: ftp://ftp.demon.co.uk/pub/news/doc/demon.news.txt +# *PGP* See comment at top of file. +newgroup:*:demon.*:drop +rmgroup:*:demon.*:drop +checkgroups:newsmaster@demon.net:demon.*:verify-demon.news +newgroup:newsmaster@demon.net:demon.*:verify-demon.news +rmgroup:newsmaster@demon.net:demon.*:verify-demon.news + ## DFW (Dallas/Fort Worth, Texas, USA) # URL: http://www.cirr.com/dfw/ # Admin group: dfw.usenet.config @@ -690,7 +707,11 @@ rmgroup:news@news.dknet.dk:dk.*:verify-n newgroup:*:duke.*:mail rmgroup:*:duke.*:doit -## EASYNET (Easynet PLC, UK) +## EASYNET (*HISTORIC* -- Easynet PLC, UK) +# +# This hierarchy is not entirely defunct, but it receives very little +# traffic and is included primarily for the sake of completeness. +# # Contact: Christiaan Keet # Admin group: easynet.support # *PGP* See comment at top of file. @@ -711,7 +732,11 @@ checkgroups:news@news.ut.ee:ee.*:verify- newgroup:news@news.ut.ee:ee.*:verify-ee.news rmgroup:news@news.ut.ee:ee.*:verify-ee.news -## EFN & EUG (Eugene Free Computer Network, Eugene/Springfield, Oregon, USA) +## EFN & EUG (*HISTORIC* -- Eugene Free Computer Network, Eugene/Springfield, Oregon, USA) +# +# This hierarchy is not entirely defunct, but it receives very little +# traffic and is included primarily for the sake of completeness. +# # Admin group: eug.config # *PGP* See comment at top of file. newgroup:*:efn.*|eug.*:drop @@ -911,7 +936,7 @@ rmgroup:news@picard.cs.osakafu-u.ac.jp:f newgroup:*:fur.*:mail rmgroup:*:fur.*:doit -## GER & HANNET & HANNOVER & HILDESHEIM & HISS (Hannover, Germany) +## GER & HANNOVER & HANNET & HILDESHEIM & HISS (Hannover, Germany) checkgroups:fifi@hiss.han.de:ger.*|hannover.*|hannet.*|hildesheim.*|hiss.*:doit newgroup:fifi@hiss.han.de:ger.*|hannover.*|hannet.*|hildesheim.*|hiss.*:doit rmgroup:fifi@hiss.han.de:ger.*|hannover.*|hannet.*|hildesheim.*|hiss.*:doit @@ -947,12 +972,37 @@ checkgroups:gov-usenet-announce-moderato newgroup:gov-usenet-announce-moderator@govnews.org:gov.*:verify-gov.usenet.announce rmgroup:gov-usenet-announce-moderator@govnews.org:gov.*:verify-gov.usenet.announce +## GRISBI (Grisbi Personal Finance Manager software) +# Contact: newsmaster@grisbi.org +# URL: http://news.grisbi.org/ +# Admin group: grisbi.admin +# Key URL: http://news.grisbi.org/public-key.asc +# Key fingerprint = EB35 0C03 0080 BD2A 7E0C A4C9 F2C6 2A3D C86C C6E1 +# *PGP* See comment at top of file. +newgroup:*:grisbi.*:drop +rmgroup:*:grisbi.*:drop +checkgroups:grisbi-control@grisbi.org:grisbi.*:verify-grisbi-control@grisbi.org +newgroup:grisbi-control@grisbi.org:grisbi.*:verify-grisbi-control@grisbi.org +rmgroup:grisbi-control@grisbi.org:grisbi.*:verify-grisbi-control@grisbi.org + ## GWU (George Washington University, Washington, DC) # Contact: Sweth Chandramouli checkgroups:news@nit.gwu.edu:gwu.*:doit newgroup:news@nit.gwu.edu:gwu.*:doit rmgroup:news@nit.gwu.edu:gwu.*:doit +## HACKTIC (*HISTORIC* -- XS4ALL, Netherlands) +# +# This hierarchy is not entirely defunct, but it receives very little +# traffic and is included primarily for the sake of completeness. +# +# *PGP* See comment at top of file. +newgroup:*:hacktic.*:drop +rmgroup:*:hacktic.*:drop +checkgroups:news@zhaum.xs4all.nl:hacktic.*:verify-news@zhaum.xs4all.nl +newgroup:news@zhaum.xs4all.nl:hacktic.*:verify-news@zhaum.xs4all.nl +rmgroup:news@zhaum.xs4all.nl:hacktic.*:verify-news@zhaum.xs4all.nl + ## HAMBURG (City of Hamburg, Germany) # Contact: hamburg@steering-group.net # URL: http://www.steering-group.net/hamburg/ @@ -1047,7 +1097,11 @@ checkgroups:newsmaster@carnet.hr:hr.*:ve newgroup:newsmaster@carnet.hr:hr.*:verify-newsmaster@carnet.hr rmgroup:newsmaster@carnet.hr:hr.*:verify-newsmaster@carnet.hr -## HUMANITYQUEST (Humanities discussion) +## HUMANITYQUEST (*HISTORIC* -- Humanities discussion) +# +# This hierarchy is not entirely defunct, but it receives very little +# traffic and is included primarily for the sake of completeness. +# # Contact: news-admin@humanityquest.com # URL: http://www.humanityquest.com/projects/newsgroups/ # Key URL: http://www.humanityquest.com/projects/newsgroups/PGP.htm @@ -1109,9 +1163,9 @@ rmgroup:control@usenet.ie:ie.*:verify-co newgroup:*:ieee.*:mail rmgroup:*:ieee.*:doit -## INFO (Gatewayed mailing lists) -checkgroups:rjoyner@uiuc.edu:info.*:doit -newgroup:rjoyner@uiuc.edu:info.*:doit +## INFO (*DEFUNCT* -- Gatewayed mailing lists) +# This hierarchy is defunct. Please remove it. +newgroup:rjoyner@uiuc.edu:info.*:mail rmgroup:rjoyner@uiuc.edu:info.*:doit ## IS (Iceland) @@ -1511,7 +1565,7 @@ rmgroup:*:ncu.*:doit # newgroup:*:nersc.*:mail # rmgroup:*:nersc.*:doit -## NET (Usenet 2) +## NET (*HISTORIC* -- Usenet 2) # # This was a failed experiment in a different newsgroup creation policy and # administrative policy which has now been almost entirely abandoned. The @@ -1543,7 +1597,6 @@ rmgroup:*:netins.*:doit # Contact: news@netscape.com # URL: http://www.mozilla.org/community.html # Admin group: netscape.public.admin -# Key URL: http://www.mozilla.org/newsfeeds.html # Key fingerprint = B7 80 55 12 1F 9C 17 0B 86 66 AD 3B DB 68 35 EC # *PGP* See comment at top of file. newgroup:*:netscape.*:drop @@ -1552,6 +1605,12 @@ checkgroups:news@netscape.com:netscape.* newgroup:news@netscape.com:netscape.*:verify-netscape.public.admin rmgroup:news@netscape.com:netscape.*:verify-netscape.public.admin +## NEWS4US (*LOCAL* -- NEWS4US dot NL, Netherlands) +# Contact: info@news4us.nl +# For local use only, contact the above address for information. +newgroup:*:news4us.*:mail +rmgroup:*:news4us.*:doit + ## NF (Newfoundland and Labrador, Canada) # Contact: randy@mun.ca checkgroups:randy@mun.ca:nf.*:doit @@ -2284,9 +2343,9 @@ checkgroups:news@mayn.de:ufra.*:verify-n newgroup:news@mayn.de:ufra.*:verify-news.mayn.de rmgroup:news@mayn.de:ufra.*:verify-news.mayn.de -## UIUC (*LOCAL* -- University of Illinois at Urbana-Champaign, USA) +## UIUC (*DEFUNCT* -- University of Illinois at Urbana-Champaign, USA) # Contact: news@ks.uiuc.edu -# For local use only, contact the above address for information. +# This hierarchy is defunct. Please remove it. newgroup:*:uiuc.*:mail rmgroup:*:uiuc.*:doit @@ -2322,7 +2381,11 @@ rmgroup:news@*.tc.umn.edu:umn.*:doit rmgroup:edh@*.tc.umn.edu:umn.*:doit rmgroup:Michael.E.Hedman-1@umn.edu:umn.*:doit -## UN (The United Nations) +## UN (*HISTORIC* -- The United Nations) +# +# This hierarchy is not entirely defunct, but it receives very little +# traffic and is included primarily for the sake of completeness. +# # Admin group: un.public.usenet.admin # *PGP* See comment at top of file. newgroup:*:un.*:drop @@ -2337,12 +2400,15 @@ newgroup:newsadmin@news.uoregon.edu:uo.* rmgroup:newsadmin@news.uoregon.edu:uo.*:doit ## US (United States of America) -# Contact: admin@usenetnews.us -# URL: http://www.usenetnews.us/ +# Contact: us-control@lists.killfile.org # Admin group: us.config -checkgroups:control@usenetnews.us:us.*:doit -newgroup:control@usenetnews.us:us.*:doit -rmgroup:control@usenetnews.us:us.*:doit +# Key fingerprint = BB96 EB2C CFD0 75C8 E9DE C2C2 1DA2 9D87 B73C AF1B +# *PGP* See comment at top of file. +newgroup:*:us.*:drop +rmgroup:*:us.*:drop +checkgroups:us-control@lists.killfile.org:us.*:verify-us-control@lists.killfile.org +newgroup:us-control@lists.killfile.org:us.*:verify-us-control@lists.killfile.org +rmgroup:us-control@lists.killfile.org:us.*:verify-us-control@lists.killfile.org ## UT (*LOCAL* -- University of Toronto, Canada) # URL: http://www.utoronto.ca/ns/utornews/ @@ -2456,7 +2522,6 @@ newgroup:graham@ee.washington.edu:wash.* rmgroup:graham@ee.washington.edu:wash.*:doit ## WEST-VIRGINIA (West Virginia, USA) -# Note: checkgroups only by bryan27, not mark. checkgroups:bryan27@hgo.net:west-virginia.*:doit newgroup:mark@bluefield.net:west-virginia.*:doit newgroup:bryan27@hgo.net:west-virginia.*:doit @@ -2499,10 +2564,10 @@ newgroup:dmitry@x-privat.org:x-privat.*: rmgroup:dmitry@x-privat.org:x-privat.*:verify-dmitry@x-privat.org ## XS4ALL (XS4ALL, Netherlands) -# Contact: Cor Bosman -checkgroups:news@*xs4all.nl:xs4all.*:doit -newgroup:news@*xs4all.nl:xs4all.*:doit -rmgroup:news@*xs4all.nl:xs4all.*:doit +# Contact: XS4ALL Newsmaster +checkgroups:news@xs4all.nl:xs4all.*:doit +newgroup:news@xs4all.nl:xs4all.*:doit +rmgroup:news@xs4all.nl:xs4all.*:doit ## YORK (*LOCAL* -- York University, Toronto, ON) # Contact: Peter Marques diff -Nurp inn-2.4.5/samples/filter_innd.py inn-2.4.6/samples/filter_innd.py --- inn-2.4.5/samples/filter_innd.py 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/samples/filter_innd.py 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -## $Id: filter_innd.py 7903 2008-06-22 20:41:59Z iulius $ +## $Id: filter_innd.py 8253 2008-12-23 12:31:01Z iulius $ ## ## This is a sample filter for the Python innd hook. ## @@ -50,7 +50,9 @@ MIME_Version = intern("MIME-Version") Newsgroups = intern("Newsgroups") NNTP_Posting_Date = intern("NNTP-Posting-Date") NNTP_Posting_Host = intern("NNTP-Posting-Host") +NNTP_Posting_Path = intern("NNTP-Posting-Path") Organization = intern("Organization") +Original_Sender = intern("Original-Sender") Originator = intern("Originator") Path = intern("Path") Posted = intern("Posted") @@ -64,6 +66,7 @@ Subject = intern("Subject") Supersedes = intern("Supersedes") User_Agent = intern("User-Agent") X_Auth = intern("X-Auth") +X_Auth_Sender = intern("X-Auth-Sender") X_Canceled_By = intern("X-Canceled-By") X_Cancelled_By = intern("X-Cancelled-By") X_Complaints_To = intern("X-Complaints-To") @@ -77,6 +80,7 @@ X_Newsposter = intern("X-Newsposter") X_Newsreader = intern("X-Newsreader") X_No_Archive = intern("X-No-Archive") X_Original_Message_ID = intern("X-Original-Message-ID") +X_Original_NNTP_Posting_Host = intern("X-Original-NNTP-Posting-Host") X_Original_Trace = intern("X-Original-Trace") X_Originating_IP = intern("X-Originating-IP") X_PGP_Key = intern("X-PGP-Key") @@ -87,6 +91,7 @@ X_Proxy_User = intern("X-Proxy-User") X_Submissions_To = intern("X-Submissions-To") X_Trace = intern("X-Trace") X_Usenet_Provider = intern("X-Usenet-Provider") +X_User_ID = intern("X-User-ID") Xref = intern("Xref") __BODY__ = intern("__BODY__") _LINES__ = intern("__LINES__") @@ -158,18 +163,19 @@ class InndFilter: Content-Type, Control, Date, Date-Received, Distribution, Expires, Face, Followup-To, From, In-Reply-To, Injection-Date, Injection-Info, Keywords, Lines, List-ID, Message-ID, MIME-Version, Newsgroups, - NNTP-Posting-Date, NNTP-Posting-Host, Organization, Originator, + NNTP-Posting-Date, NNTP-Posting-Host, NNTP-Posting-Path, + Organization, Original-Sender, Originator, Path, Posted, Posting-Version, Received, References, Relay-Version, Reply-To, Sender, Subject, Supersedes, User-Agent, - X-Auth, X-Canceled-By, X-Cancelled-By, X-Complaints-To, X-Face, - X-HTTP-UserAgent, X-HTTP-Via, X-Mailer, X-Modbot, X-Modtrace, + X-Auth, X-Auth-Sender, X-Canceled-By, X-Cancelled-By, X-Complaints-To, + X-Face, X-HTTP-UserAgent, X-HTTP-Via, X-Mailer, X-Modbot, X-Modtrace, X-Newsposter, X-Newsreader, X-No-Archive, X-Original-Message-ID, - X-Original-Trace, X-Originating-IP, X-PGP-Key, X-PGP-Sig, - X-Poster-Trace, X-Postfilter, X-Proxy-User, X-Submissions-To, - X-Trace, X-Usenet-Provider, Xref. + X-Original-NNTP-Posting-Host, X-Original-Trace, X-Originating-IP, + X-PGP-Key, X-PGP-Sig, X-Poster-Trace, X-Postfilter, X-Proxy-User, + X-Submissions-To, X-Trace, X-Usenet-Provider, X-User-ID, Xref. - The body is the buffer in art['__BODY__'] and the INN-reckoned - line count is held as an integer in art['__LINES__']. (The + The body is the buffer in art[__BODY__] and the INN-reckoned + line count is held as an integer in art[__LINES__]. (The Lines: header is often generated by the poster, and large differences can be a good indication of a corrupt article.) diff -Nurp inn-2.4.5/samples/innreport.conf.in inn-2.4.6/samples/innreport.conf.in --- inn-2.4.5/samples/innreport.conf.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/samples/innreport.conf.in 2009-03-01 09:49:22.000000000 -0800 @@ -1267,7 +1267,7 @@ section innfeed_connect { data { name "Spooled"; color "#AF00FF"; - value "%innfeed_spooled,"; + value "%innfeed_spooled"; }; }; }; @@ -1347,12 +1347,6 @@ section innfeed_volume { color "#FFAF00"; value "%innfeed_rejected_size"; }; - data { - name "Total"; - color "#00FF00"; - value "%innfeed_accepted_size + - %innfeed_rejected_size"; - }; }; }; @@ -2116,8 +2110,8 @@ section nnrpd_groups { name "Rej"; format_name "%4s"; format "%4d"; - value "$nnrpd_post_rej{$key} + - $nnrpd_post_error{$key}"; + value "($nnrpd_post_rej{$key}||0) + + ($nnrpd_post_error{$key}||0)"; total "total(%nnrpd_post_rej) + total(%nnrpd_post_error)"; }; @@ -2179,8 +2173,8 @@ section nnrpd_dom_groups { name "Rej"; format_name "%4s"; format "%4d"; - value "$nnrpd_dom_post_rej{$key} + - $nnrpd_dom_post_error{$key}"; + value "($nnrpd_dom_post_rej{$key}||0) + + ($nnrpd_dom_post_error{$key}||0)"; total "total(%nnrpd_dom_post_rej) + total(%nnrpd_dom_post_error)"; }; diff -Nurp inn-2.4.5/samples/moderators inn-2.4.6/samples/moderators --- inn-2.4.5/samples/moderators 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/samples/moderators 2009-03-01 09:49:22.000000000 -0800 @@ -1,33 +1,36 @@ -## $Id: moderators 7448 2005-12-11 22:21:06Z eagle $ +## $Id: moderators 8213 2008-12-06 12:58:28Z iulius $ ## ## moderators - Mailing addresses for moderators. ## ## Whenever possible, the master moderator database at moderators.isc.org ## should be used rather than adding specific entries to this file. The ## master database will list any publically propagated moderated group; -## changes should be sent to moderators-request@isc.org. +## changes should be sent to . ## ## Exceptions listed in this file are mostly hierarchies for which the ## master database isn't accurate or updated quickly enough. Local ## moderated newsgroups can also be added to this file. ## ## Format: -## : +## : ## -## Shell-style newsgroup pattern or specific newsgroup -## Mail address, "%s" becomes newgroup name with dots -## changed to dashes. +## Shell-style newsgroup pattern or specific newsgroup. +## Mail address, "%s" becomes newgroup name with dots +## changed to dashes. ## ## The first matching entry is used. -## Public hierarchies with exceptions. +## Public hierarchies with exceptions. +aioe.*:%s-newsgroup@aioe.org fido7.*:%s@fido7.ru ffm.*:%s@moderators.arcornews.de fj.*:%s@moderators.fj-news.org medlux.*:%s@news.medlux.ru nl.*:%s@nl.news-admin.org +perl.*:news-moderator-%s@perl.org relcom.*:%s@moderators.relcom.ru +si.*:%s@arnes.si ukr.*:%s@sita.kiev.ua -## Direct all other public hierarchies to the master moderator database. +## Direct all other public hierarchies to the master moderator database. *:%s@moderators.isc.org diff -Nurp inn-2.4.5/scripts/inncheck.in inn-2.4.6/scripts/inncheck.in --- inn-2.4.5/scripts/inncheck.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/scripts/inncheck.in 2009-03-01 09:49:22.000000000 -0800 @@ -1,5 +1,5 @@ #!@_PATH_PERL@ -- -## $Revision: 7748 $ +## $Revision: 8348 $ ## Sanity-check the configuration of an INN system ## by Brendan Kehoe and Rich $alz. @@ -65,18 +65,21 @@ $newsgroup = '@NEWSGRP@'; ); ## The modes of the config files we can check. +## Min and max values, by bit: between 0400 and 0640, +## 0600 is allowed, but not 0500 for instance (not executable). +## 0660 is used when the file can contain passwords. %modes = ( - 'active', @FILEMODE@, - 'control.ctl', 0644, - 'expire.ctl', 0644, - 'incoming.conf', 0640, - 'inn.conf', 0644, - 'moderators', 0644, - 'newsfeeds', 0644, - 'overview.fmt', 0644, - 'nntpsend.ctl', 0644, - 'passwd.nntp', 0640, - 'readers.conf', 0644 + 'active', [0600, @FILEMODE@], + 'control.ctl', [0400, 0664], + 'expire.ctl', [0400, 0664], + 'incoming.conf', [0400, 0660], + 'inn.conf', [0400, 0664], + 'moderators', [0400, 0664], + 'newsfeeds', [0400, 0664], + 'overview.fmt', [0400, 0664], + 'nntpsend.ctl', [0400, 0664], + 'passwd.nntp', [0400, 0660], + 'readers.conf', [0400, 0664] ); @@ -139,7 +142,7 @@ active unless defined $groups{$alias}; } foreach $key ( keys %aliases ) { - print "$file:$aliases{$group} aliased to unknown group `$key'.\n" + print "$file:$aliases{$key} aliased to unknown group `$key'.\n" unless defined $groups{$key}; } 1; @@ -654,8 +657,8 @@ readers_conf ## Routines to check permissions ## -## Given a file F, check its mode to be M, and its ownership to be by the -## user U in the group G. U and G have defaults. +## Given a file F, check its mode to be M (array of min and max file modes), +## and its ownership to be by the user U in the group G. U and G have defaults. sub checkperm { @@ -665,7 +668,7 @@ checkperm die "Internal error, undefined name in perm from ", (caller(0))[2], "\n" if !defined $f; die "Internal error, undefined mode in perm from ", (caller(0))[2], "\n" - if !defined $m; + if !defined @$m; if ( ! -e $f ) { print "$pfx$f:0: missing\n"; @@ -686,13 +689,16 @@ checkperm if $fix; } if ( $group ne $g ) { - print "$pfx$f:0: in group $group, should be $g\n"; - print "chgrp $g $f\n" - if $fix; - } - if ( $mode ne $m ) { - printf "$pfx$f:0: mode %o, should be %o\n", $mode, $m; - printf "chmod %o $f\n", $m + # rnews may be setuid news and owned by group uucp. + if ($f !~ /\/rnews$/ or $group ne 'uucp') { + print "$pfx$f:0: in group $group, should be $g\n"; + print "chgrp $g $f\n" + if $fix; + } + } + if ( (($mode & @$m[0]) ne @$m[0]) or (($mode | @$m[1]) ne @$m[1]) ) { + printf "$pfx$f:0: mode %o, should be between %o and %o\n", $mode, @$m[0], @$m[1]; + printf "chmod %o $f\n", @$m[1] if $fix; } } @@ -720,7 +726,7 @@ intersect $dummy{$_}++; } foreach ( grep ($dummy{$_} == 0, @in) ) { - print "$pfx$dir:0: ERROR: illegal file `$_' in directory\n"; + print "$pfx$dir:0: ERROR: illegal file `$_' in directory (it may be a valid backup if it ends with '.OLD')\n"; $i = 0; } } @@ -735,28 +741,26 @@ intersect 'c7unbatch', 'decode', 'encode', 'gunbatch' ); @newsbin_public = ( - 'archive', 'batcher', 'buffchan', 'convdate', 'cvtbatch', 'expire', + 'archive', 'batcher', 'buffchan', 'convdate', 'cvtbatch', 'filechan', 'getlist', 'grephistory', 'innconfval', 'innxmit', - 'makehistory', 'nntpget', 'overchan', 'prunehistory', 'shlock', - 'shrinkfile' + 'makehistory', 'nntpget', 'nntpsend', 'overchan', 'prunehistory', 'shlock', + 'shrinkfile', 'send-ihave', 'send-nntp', 'send-uucp' ); @newsbin_private = ( - 'ctlinnd', 'expirerm', 'inncheck', 'innstat', 'innwatch', - 'news.daily', 'nntpsend', 'scanlogs', 'sendbatch', - 'tally.control', 'writelog', - 'send-ihave', 'send-nntp', 'send-uucp' + 'ctlinnd', 'expire', 'expirerm', 'inncheck', 'innstat', 'innwatch', + 'news.daily', 'scanlogs', 'tally.control', 'writelog' ); #@newslib_private_read = ( # 'innlog.pl' #); -## The modes for the various programs. +## The modes (min and max) for the various programs. %prog_modes = ( - 'inews', @INEWSMODE@, - 'innd', 0550, - 'newsboot', 0550, - 'nnrpd', 0555, - 'rnews', @RNEWSMODE@, + 'inews', [0500, @INEWSMODE@], + 'innd', [0500, 0550], + 'newsboot', [0500, 0550], + 'nnrpd', [0500, 0555], + 'rnews', [0500, @RNEWSMODE@] ); ## Check the permissions of nearly every file in an INN installation. @@ -768,33 +772,33 @@ check_all_perms local ($newslib) = $paths{'newslib'}; foreach ( @directories ) { - &checkperm($paths{$_}, 0755); + &checkperm($paths{$_}, [0755, 0775]); } - &checkperm($paths{'innddir'}, 0750); + &checkperm($paths{'innddir'}, [0750, 0775]); foreach ( keys %prog_modes ) { &checkperm($paths{$_}, $prog_modes{$_}); } - &checkperm($paths{'inndstart'}, 04550, 'root', $newsgroup); + &checkperm($paths{'inndstart'}, [04500, 04550], 'root', $newsgroup); foreach ( keys %paths ) { &checkperm($paths{$_}, $modes{$_}) if defined $modes{$_}; } - &checkperm($paths{'history'}, 0644); + &checkperm($paths{'history'}, [0600, 0664]); # Commented out for now since it depends on the history type. - #&checkperm($paths{'history'} . ".dir", 0644); - #&checkperm($paths{'history'} . ".index", 0644); - #&checkperm($paths{'history'} . ".hash", 0644); + #&checkperm($paths{'history'} . ".dir", [0600, 0664]); + #&checkperm($paths{'history'} . ".index", [0600, 0664]); + #&checkperm($paths{'history'} . ".hash", [0600, 0664]); #foreach ( @newslib_private_read ) { - # &checkperm("$newslib/$_", 0440); + # &checkperm("$newslib/$_", [0400, 0440]); #} foreach ( @newsbin_private ) { - &checkperm("$newsbin/$_", 0550); + &checkperm("$newsbin/$_", [0500, 0550]); } foreach ( @newsbin_public ) { - &checkperm("$newsbin/$_", 0555); + &checkperm("$newsbin/$_", [0500, 0555]); } foreach ( @rnews_programs ) { - &checkperm("$rnewsprogs/$_", 0555); + &checkperm("$rnewsprogs/$_", [0500, 0555]); } ## Also make sure that @rnews_programs are the *only* programs in there; diff -Nurp inn-2.4.5/scripts/innmail.in inn-2.4.6/scripts/innmail.in --- inn-2.4.5/scripts/innmail.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/scripts/innmail.in 2009-03-01 09:49:22.000000000 -0800 @@ -5,7 +5,7 @@ # Start Date: Fri, 25 Apr 1997 14:11:23 +0200 # Project: INN # File: innmail.pl -# RCSId: $Id: innmail.in 2677 1999-11-15 06:33:13Z rra $ +# RCSId: $Id: innmail.in 8295 2009-01-18 14:05:48Z iulius $ # Description: A simple replacement for UCB Mail to avoid nasty security # problems. # @@ -29,7 +29,7 @@ $usage = "usage: $0 -s subject addresses die $usage if $opt_h ; -if ( !$opt_s ) { +if ( !defined($opt_s) ) { warn "No subject given. Hope that's ok\n" ; $opt_s = "NO SUBJECT" ; } else { diff -Nurp inn-2.4.5/scripts/innreport.in inn-2.4.6/scripts/innreport.in --- inn-2.4.5/scripts/innreport.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/scripts/innreport.in 2009-03-01 09:49:22.000000000 -0800 @@ -212,7 +212,7 @@ $IMG_pth = $ref{'w'} if defined $ref{'w' $IMG_pth = $ref{'webpath'} if defined $ref{'webpath'}; $IMG_dir = $HTML_dir . "/" . $IMG_pth - if (defined $output{'default'}{'html_dir'} || + if (defined $output{'default'}{'img_dir'} || defined $ref{'w'} || defined $ref{'webpath'}) && (defined $output{'default'}{'html_dir'} || @@ -2440,6 +2440,7 @@ sub Decode_Config_File { print "};\n\n" if $DEBUG; } close FILE; + die "Configuration file $file is empty." if ($linenum < 1); $output{'_order_'} = \@list; } diff -Nurp inn-2.4.5/scripts/innreport_inn.pm inn-2.4.6/scripts/innreport_inn.pm --- inn-2.4.5/scripts/innreport_inn.pm 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/scripts/innreport_inn.pm 2009-03-01 09:49:22.000000000 -0800 @@ -440,8 +440,8 @@ sub collect { # The exact timers change from various versions of INN, so try to deal # with this in a general fashion. if ($left =~ m/^\S+\s+ # ME - time\ (\d+)\s+ # time - ((?:\S+\ \d+\(\d+\)\s*)+) # timer values + time\s(\d+)\s+ # time + ((?:\S+\s\d+\(\d+\)\s*)+) # timer values $/ox) { $innd_time_times += $1; my $timers = $2; @@ -719,8 +719,8 @@ sub collect { # ME time X nnnn X(X) [...] return 1 if $left =~ m/backlogstats/; if ($left =~ m/^\S+\s+ # ME - time\ (\d+)\s+ # time - ((?:\S+\ \d+\(\d+\)\s*)+) # timer values + time\s(\d+)\s+ # time + ((?:\S+\s\d+\(\d+\)\s*)+) # timer values $/ox) { $innfeed_time_times += $1; my $timers = $2; @@ -1459,8 +1459,8 @@ sub collect { # The exact timers change from various versions of INN, so try to deal # with this in a general fashion. if ($left =~ m/^\S+\s+ # ME - time\ (\d+)\s+ # time - ((?:\S+\ \d+\(\d+\)\s*)+) # timer values + time\s(\d+)\s+ # time + ((?:\S+\s\d+\(\d+\)\s*)+) # timer values $/ox) { $nnrpd_time_times += $1; my $timers = $2; @@ -1683,13 +1683,28 @@ sub collect { $nocem_totalids{$nocem_lastid} += $2; return 1; } - if ($left =~ /bad signature from (.*)/o) { + if ($left =~ /Article <[^>]*>: (.*) \(ID [[:xdigit:]]*\) not in keyring/o) { + $nocem_badsigs{$1}++; + $nocem_goodsigs{$1} = 0 unless ($nocem_goodsigs{$1}); + $nocem_totalbad++; + $nocem_lastid = $1; + return 1; + } + if ($left =~ /Article <[^>]*>: bad signature from (.*)/o) { $nocem_badsigs{$1}++; $nocem_goodsigs{$1} = 0 unless ($nocem_goodsigs{$1}); $nocem_totalbad++; $nocem_lastid = $1; return 1; } + if ($left =~ /Article <[^>]*>: malformed signature/o) { + $nocem_badsigs{'N/A'}++; + $nocem_goodsigs{'N/A'} = 0 unless ($nocem_goodsigs{'N/A'}); + $nocem_totalbad++; + $nocem_lastid = 'N/A'; + return 1; + } + return 1; } diff -Nurp inn-2.4.5/scripts/innshellvars.in inn-2.4.6/scripts/innshellvars.in --- inn-2.4.5/scripts/innshellvars.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/scripts/innshellvars.in 2009-03-01 09:49:22.000000000 -0800 @@ -1,5 +1,5 @@ #!@_PATH_SH@ -## $Revision: 7466 $ +## $Revision: 8236 $ ## Set up any and all shell variables that an INN shell script ## might need. Also sets umask. @@ -11,14 +11,14 @@ eval `@prefix@/bin/innconfval -s` NEWSHOME=${PATHNEWS} SPOOLBASE=${PATHSPOOL} MOST_LOGS=${PATHLOG} -export NEWSHOME SPOOL MOST_LOGS +export NEWSHOME SPOOLBASE MOST_LOGS NEWSBIN=${PATHBIN} NEWSETC=${PATHETC} NEWSLIB=@LIBDIR@ INNDDIR=${PATHRUN} LOCKS=${PATHRUN} -export NEWSBIN NEWSETC INNDDIR NEWSHOME +export NEWSBIN NEWSETC NEWSLIB INNDDIR ERRLOG=${MOST_LOGS}/errlog LOG=${MOST_LOGS}/news diff -Nurp inn-2.4.5/scripts/innshellvars.tcl.in inn-2.4.6/scripts/innshellvars.tcl.in --- inn-2.4.5/scripts/innshellvars.tcl.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/scripts/innshellvars.tcl.in 2009-03-01 09:49:22.000000000 -0800 @@ -4,7 +4,7 @@ # Start Date: Sat, 24 Aug 1996 23:45:34 +0200 # Project: INN # File: innshellvars.tcl -# RCSId: $Id: innshellvars.tcl.in 7466 2005-12-12 03:04:08Z eagle $ +# RCSId: $Id: innshellvars.tcl.in 8234 2008-12-14 18:10:04Z iulius $ # Description: Set up any and all variables that an INN tcl script # might need. @@ -53,7 +53,7 @@ set inn_innd "${inn_newsbin}/innd" set inn_inndstart "${inn_newsbin}/inndstart" set inn_innwatch "${inn_newsbin}/innwatch" set inn_rnews "${inn_newsbin}/rnews" -set inn_controlprogs "${inn_pathcontrol}/control" +set inn_controlprogs "${inn_pathcontrol}" set inn_perl_startup_innd "${inn_pathfilter}/startup_innd.pl" set inn_perl_filter_innd "${inn_pathfilter}/filter_innd.pl" set inn_perl_filter_nnrpd "${inn_pathfilter}/filter_nnrpd.pl" diff -Nurp inn-2.4.5/scripts/news.daily.in inn-2.4.6/scripts/news.daily.in --- inn-2.4.5/scripts/news.daily.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/scripts/news.daily.in 2009-03-01 09:49:22.000000000 -0800 @@ -1,12 +1,13 @@ #!@_PATH_SH@ -## $Revision: 5999 $ +## $Revision: 7944 $ ## Daily news maintenance. ## Optional arguments: ## expdir=xxx Directory in which to build new history file ## tmpdir=xxx Working directory for `sort' and such -## expirectl=xxx Use xxx as expire.ctl file +## expctl=xxx Use xxx as expire.ctl file ## flags=xxx Pass xxx flags to expire ## lowmark Create and use a lowmark file +## mailto=xxx E-mail address to which to send the report instead of newsmaster ## noexpire Do not expire ## noexplog Do not log expire output ## nologs Do not scan logfiles @@ -121,6 +122,9 @@ do LOWMARKFILE=${MOST_LOGS}/expire.lowmark DORENUMBER=false ;; + Xmailto=*) + NEWSMASTER=`expr "${I}" : 'mailto=\(.*\)'` + ;; Xnotdaily) DAILY=false DOLOGS=false diff -Nurp inn-2.4.5/scripts/simpleftp.in inn-2.4.6/scripts/simpleftp.in --- inn-2.4.5/scripts/simpleftp.in 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/scripts/simpleftp.in 2009-03-01 09:49:22.000000000 -0800 @@ -3,7 +3,7 @@ # simpleftp - Rudimentary FTP client. # # Author: David Lawrence . -# Rewritten by Julien Elie to use Net::FTP. +# Rewritten by Julien Elie to use Net::FTP. # # Fetch files to the local machine based on URLs on the command line. # INN's configure searches for ncftp, wget, linx, et caetera, diff -Nurp inn-2.4.5/storage/buffindexed/buffindexed.c inn-2.4.6/storage/buffindexed/buffindexed.c --- inn-2.4.5/storage/buffindexed/buffindexed.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/storage/buffindexed/buffindexed.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: buffindexed.c 7602 2007-02-10 22:19:49Z eagle $ +/* $Id: buffindexed.c 8207 2008-12-02 17:36:30Z iulius $ ** ** Overview buffer and index method. */ @@ -217,7 +217,7 @@ typedef enum {SRCH_FRWD, SRCH_BKWD} SRCH static char LocalLogName[] = "buffindexed"; static long pagesize = 0; -static OVBUFF *ovbufftab; +static OVBUFF *ovbufftab = NULL; static int GROUPfd; static GROUPHEADER *GROUPheader = NULL; static GROUPENTRY *GROUPentries = NULL; diff -Nurp inn-2.4.5/storage/overdata.c inn-2.4.6/storage/overdata.c --- inn-2.4.5/storage/overdata.c 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/storage/overdata.c 2009-03-01 09:49:22.000000000 -0800 @@ -1,4 +1,4 @@ -/* $Id: overdata.c 7477 2005-12-24 21:34:38Z eagle $ +/* $Id: overdata.c 7985 2008-08-28 21:51:06Z iulius $ ** ** Overview data processing. ** @@ -244,7 +244,7 @@ valid_overview_string(const char *string p = (const unsigned char *) string; if (full) { for (; *p != '\0' && *p != ':'; p++) - if (*p < 33 || *p == 127) + if (!CTYPE(isgraph, *p)) return false; if (*p != ':') return false; diff -Nurp inn-2.4.5/support/config.guess inn-2.4.6/support/config.guess --- inn-2.4.5/support/config.guess 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/support/config.guess 2009-03-01 09:49:22.000000000 -0800 @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. -timestamp='2008-04-14' +timestamp='2009-02-03' # 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 @@ -331,7 +331,20 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize @@ -796,7 +809,7 @@ EOF x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T | authenticamd) + EM64T | authenticamd | genuineintel) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) @@ -935,6 +948,9 @@ EOF if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -1138,6 +1154,16 @@ EOF 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; @@ -1324,6 +1350,9 @@ EOF i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 diff -Nurp inn-2.4.5/support/config.sub inn-2.4.6/support/config.sub --- inn-2.4.5/support/config.sub 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/support/config.sub 2009-03-01 09:49:22.000000000 -0800 @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. -timestamp='2008-04-14' +timestamp='2009-02-03' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -122,6 +122,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^- case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -249,6 +250,7 @@ case $basic_machine in | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ @@ -279,7 +281,7 @@ case $basic_machine in | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -288,7 +290,7 @@ case $basic_machine in | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) + | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) @@ -331,6 +333,7 @@ case $basic_machine in | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ @@ -362,7 +365,7 @@ case $basic_machine in | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ @@ -375,7 +378,7 @@ case $basic_machine in | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ - | z8k-*) + | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) @@ -443,6 +446,10 @@ case $basic_machine in basic_machine=m68k-apollo os=-bsd ;; + aros) + basic_machine=i386-pc + os=-aros + ;; aux) basic_machine=m68k-apple os=-aux @@ -463,6 +470,10 @@ case $basic_machine in basic_machine=c90-cray os=-unicos ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -1136,6 +1147,10 @@ case $basic_machine in basic_machine=z8k-unknown os=-sim ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; none) basic_machine=none-none os=-none @@ -1174,7 +1189,7 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) @@ -1246,8 +1261,9 @@ case $os in -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ + | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ @@ -1256,7 +1272,7 @@ case $os in | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ + | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ diff -Nurp inn-2.4.5/support/install-sh inn-2.4.6/support/install-sh --- inn-2.4.5/support/install-sh 2008-06-29 10:56:57.000000000 -0700 +++ inn-2.4.6/support/install-sh 2009-03-01 09:49:22.000000000 -0800 @@ -56,7 +56,7 @@ chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" -mvcmd="$mvprog" +mvcmd="$mvprog -f" src="" dst="" dir_arg="" @@ -265,7 +265,7 @@ else if [ x"$backupsuffix" != x ] && [ -f "$dstdir/$dstfile" ]; then $doit $mvcmd $dstdir/$dstfile $dstdir/$dstfile$backupsuffix else - $doit $rmcmd -f $dstdir/$dstfile + $doit $rmcmd $dstdir/$dstfile fi && $doit $mvcmd $dsttmp $dstdir/$dstfile