diff -ruN inn-2.3.2/ChangeLog inn-2.3.3/ChangeLog --- inn-2.3.2/ChangeLog Thu May 3 13:27:32 2001 +++ inn-2.3.3/ChangeLog Sun May 5 23:02:07 2002 @@ -1,642 +1,285 @@ -2001-04-27 06:38 kondou +2002-04-25 06:49 rra - * samples/cycbuff.conf: - Clarify order of item in comment + * NEWS, doc/pod/news.pod: Added some additional notes about two bug + fixes with user-noticeable behavior changes. -2001-04-24 19:18 rra +2002-04-20 02:53 rra - * samples/control.ctl: Added ee.* based on tsoome@ut.ee (Toomas - Soome)'s posting to news.admin.technical. + * INSTALL, doc/pod/install.pod: Add a reference to NEWS, add + OpenBSD to the list of tested systems, update the Perl URL, and + remove the reference to pgpgpg since it's no longer needed. -2001-04-23 22:41 kondou +2002-04-19 06:01 vinocur - * storage/ov.c: - From: Andrew Stribblehill - - expireover occasionally dumped core - -2001-04-23 12:29 rra - - * NEWS, doc/pod/news.pod: Change "Netscape verisons" to "Netscape - browsers" for clarity. + * NEWS: Rephrase a few unclear points -2001-04-23 06:29 kondou - - * nnrpd/article.c: - From: jani+inn@ifi.uio.no - - if a header line is broken up into several continued lines, as e.g. - Subject, Newsgroups and References may be, GetHeader() doesn't cope - with it +2002-04-19 05:32 vinocur -2001-04-22 09:23 rra + * doc/pod/news.pod: Rephrase a few unclear points - * MANIFEST: Remove include/inn, fix the alphabetization of - samples/newsgroups.minimal. +2002-04-19 05:21 rra -2001-04-22 06:44 rra + * NEWS, doc/pod/news.pod: Add an additional note to NEWS about + creating a new key ring if you're switching from PGP to GnuPG. - * support/: config.guess, config.sub: Updated to version - 2001-04-20. +2002-04-19 04:57 rra -2001-04-22 06:36 rra + * NEWS, doc/pod/news.pod: Add news entries for the other major bug + fixes in INN 2.3.3. - * samples/control.ctl: Synchronize with trunk. Add england.*, - europa.*, and hamster.*, update the issuer information for bit.* - and saar.*, and open up newsgroup creation in finet.* more to - reflect that hierarchy's policies. Add codewarrior.*, update the - e-mail addresses and PGP signatures for wales.*, and add URL and - PGP key information for malta.* and europa.*. +2002-04-19 04:38 rra -2001-04-20 16:36 hkehoe + * MANIFEST: Add the POD source for passwd.nntp(5) and remove + lib/xwritev.c now that this has been included in lib/xwrite.c. - * storage/ovdb/ovdb.c: Add userid check to ovdb_open_berkeleydb +2002-04-18 05:37 rra -2001-04-18 08:02 rra + * configure, configure.in: Check for gpgv. - * nnrpd/perm.c: Fix typo in "authenticator succesful" message, - reported by Bettina Fink. +2002-04-18 04:36 rra -2001-04-17 21:53 rra + * backends/pgpverify.in: -- Native support for GnuPG without the + pgpgpg wrapper, using GnuPG's program interface by Marco d'Itri. + -- Always use Sys::Syslog without any setlogsock call for Perl + 5.6.0 or later, since Sys::Syslog in those versions of Perl uses + the C library interface and is now portable. -- Default to + expecting the key ring in $inn'newsetc/pgp if it exists. -- Fix a + portability problem for Perl 4 introduced in 1.12. - * doc/man/storage.conf.5: Note that size is in bytes. +2002-04-14 10:22 kondou -2001-04-12 21:03 rra + * doc/man/expireover.8: + fixed a typo - * INSTALL, doc/pod/install.pod: Add a warning about equivalence of - the news UID and the news GID in practice. +2002-03-25 20:03 rra -2001-04-12 16:20 rra - - * innfeed/misc.c: Use dolog rather than a static buffer in - logOrPrint to avoid buffer overflows that keep getting reported - (incorrectly) as security vulnerabilities. This will mean that - errors only going to syslog before will now also go to stderr, but - that shouldn't be a major problem. - -2001-03-29 01:04 kondou - - * storage/cnfs/cnfs.c: - From: Alex Kiernan - - Fix uninitialised memory read when initialising cycbuffs + * NEWS, doc/pod/news.pod: Add a mention of the tradindexed bug + fixes and update news.pod to include the stuff in NEWS. -2001-03-26 22:41 kondou +2002-03-25 19:48 rra - * storage/interface.c: - corrupted article might lead incorrect memory allocation + * include/libinn.h: Backport the tested implementation of xwrite + and xwritev from CURRENT and add xpwrite. -2001-03-26 22:37 kondou +2002-03-25 03:50 rra - * expire/makehistory.c: - may dumped core if articles are broken + * configure, configure.in: Pick up some additional bits of Python + linkage needed for the current version. Patch from Greg Andruk + . -2001-03-19 02:52 kondou +2002-03-25 02:21 rra - * samples/control.ctl: - update for be.* hierarchy + * doc/man/ctlinnd.8: Remove the advice to throttle the server and + edit the active file when removing or adding a bunch of groups, + since this does the wrong thing for at least some overview methods. -2001-03-17 06:02 rra +2002-03-23 10:27 kondou - * NEWS, doc/pod/news.pod: Added the fixes to the nnrpd ARTICLE - protocol bug, the tagged-hash fixes, and allowing innxmit to read - from regular file names. + * doc/: man/inn.conf.5, pod/inn.conf.pod: + clarify pauseretrytime explanation -2001-03-17 05:50 rra +2002-03-12 15:36 kondou - * backends/innxmit.c: Import changes from mainline to allow innxmit - to work on filenames as well as storage API tokens: Restore support - for article paths as well as storage API tokens in the input batch - file. Also add ANSI C prototypes for some functions that take no - arguments, add const where needed, and remove declarations of - unused and shadowing variables. Use NNTP_MSGID_MAXLEN. Fix logic - for handling wire-format articles not obtained from the storage - API. Additional fixes for streaming mode to allow reading articles - from files; there were some additional hidden assumptions that all - articles had tokens. - -2001-03-17 01:04 rra - - * INSTALL, doc/pod/install.pod: Use su - news instead of su news. - -2001-03-15 23:00 kondou - - * expire/expire.c: - From: Sang-yong Suh + * backends/archive.c: + From: Karl Skibinski - expire.c does not flushes the newly written history lines on to the - new history text file before it is checking any duplicates - -2001-03-15 03:12 kondou - - * innfeed/host.c: - type mismatched for return value of getHostInfo() - -2001-03-11 13:43 kondou - - * nnrpd/nnrpd.c: - enable tracing for daemonized nnrpd + crossposts of archived articles incorrectly when trying to + concatenate the articles into one file per group -2001-03-11 13:42 kondou +2002-03-12 15:00 kondou * doc/man/ctlinnd.8: - describe 'ctlinnd trace n {y|n}' for daemonized nnrpd + status and renumberlow were not explained -2001-03-11 06:33 rra +2002-02-16 19:49 rra - * doc/man/innfeed.conf.5: Fix typos (to for too). + * frontends/innconfval.c: Safer handling of Tcl string variables, + from Peter da Silva . -2001-03-05 05:55 rra +2002-02-06 16:51 rra - * backends/gpgverify.in, backends/Makefile, MANIFEST, - backends/gpgverify.in: Add gpgverify by Marco d'Itri , - based on pgpverify but using GnuPG to verify control messages - instead. + * configure, configure.in: Attempt large file support on Linux; + newer kernels can handle it. -2001-03-05 05:44 rra +2002-02-03 19:07 vinocur - * configure, configure.in: Handle the case of OpenSSL not compiled - against rsaref but with rsaref on the system. Patch from Kenichi - Okada . - -2001-03-05 04:10 kondou - - * configure, configure.in: - order of sendmail search path is now changed - -2001-03-05 01:04 rra - - * nnrpd/article.c: Fix a long-standing RFC 977 compliance bug - (since INN 1.0!). The response to an ARTICLE command retrieving by - message ID had the message ID as the fourth word of the response - line rather than the third as is required. This fix is reported to - *possibly* cause problems with some Netscape versions. + * doc/: man/passwd.nntp.5, pod/passwd.nntp.pod: + Clarified wording in passwd.nntp documentation + + Converted above to pod format + + Generate passwd.nntp(5) from new pod docs -2001-03-03 07:57 rra +2002-02-03 19:03 vinocur - * doc/: pod/readers.conf.pod, man/readers.conf.5: Import changes - from mainline: Added a summary of what happens when a user - connects. Remove the incorrect information about access groups - without users keys (I mis-read the source). Fix the example of - basic authentication to instead take advantage of (and explain) - nnrpd's behavior when there are no matching auth groups that yield - valid user strings. Better explain the various states that - connections go through in that example. + * doc/pod/passwd.nntp.pod: + Fiddled CVS keywords from last commit -2001-03-02 09:02 kondou +2002-02-03 19:00 vinocur - * nnrpd/article.c: - From: "F. Senault" + * doc/pod/passwd.nntp.pod: + Clarified wording in passwd.nntp documentation - space after pathname was missed for 'xhdr Xref ' + Converted above to pod format -2001-03-02 05:55 kondou +2002-01-22 04:51 vinocur - * doc/: man/readers.conf.5, pod/readers.conf.pod: - fixes typo - - clarify the behavior if hosts: does not exist - - fixes sample incorrectness + * NEWS: + Added a note about recent readers.conf "access: A" modification to + NEWS. -2001-03-01 15:16 kondou +2002-01-05 20:47 vinocur - * doc/man/readers.conf.5: - typo fixed + * doc/man/overview.fmt.5: + Clarification of rebuilding overview after changes to overview.fmt - section was incorrect - -2001-03-01 15:15 kondou - - * doc/pod/readers.conf.pod: - typo fixed + Bugfix, expireover is no longer used for rebuilding overview -2001-03-01 03:32 kondou +2001-11-11 13:38 kondou - * doc/: pod/readers.conf.pod, man/readers.conf.5: - clarify relation between allownewnews and N + * frontends/cnfsstat.in: + From: Basil Kruglov + + fixing not showing any syslog for cnfsstat messages on FreeBSD box -2001-03-01 02:54 kondou +2001-09-26 13:19 kondou - * nnrpd/nnrpd.c: - suppress error of gethostbyaddr() for local ip + * README, doc/pod/readme.pod: + update for new suck url -2001-02-23 07:54 kondou +2001-09-25 07:29 kondou - * storage/ov3/ov3.c: - all indices are lost when repacking + * doc/: man/inn.conf.5, pod/inn.conf.pod: + description of readertrack was still incorrect -2001-02-17 14:57 kondou +2001-09-22 13:16 kondou - * nnrpd/post.c: - nnrpd dropped CR for folded non system headers + * doc/man/mailpost.8: + typo fixed('-' was missed for 'm' option) -2001-02-14 09:00 kondou +2001-09-22 13:09 kondou - * scripts/innreport_inn.pm: - article cancellation was counted as bad article + * doc/man/mailpost.8: + clarify the number of group name needs to be one -2001-02-12 21:42 kondou +2001-09-22 12:47 kondou - * nnrpd/nnrpd.c: - From: Kenichi Okada - - error reply fixed + * doc/: man/inn.conf.5, pod/inn.conf.pod: + clarify what readertrack is intended for -2001-02-12 16:24 kondou +2001-09-01 15:20 kondou * configure, configure.in: From: Kenichi Okada - rsa patch for configure - -2001-02-12 16:07 kondou - - * storage/: cnfs/cnfs.c, buffindexed/buffindexed.c: - From: Alex Kiernan - - The config parsers in these leak memory when you've got comments in - the file + recent libcrypto needs libdl for enabling ssl -2001-02-08 22:23 kondou +2001-07-28 09:30 rra - * nnrpd/tls.c: - From: Kenichi Okada - - It is a trial code for future feature. Now it is not needed + * backends/controlchan.in: Skip control message commands that + contain characters not in [a-z]. -2001-02-08 11:58 kondou +2001-07-24 22:41 kondou - * configure, configure.in: - From: Kenichi Okada + * doc/man/inews.1, MANIFEST: + From: "Adam J. Richter" - If openssl has been compiled with the rsaref2 libraries, we need to - include the rsaref libraries in the crypto check - -2001-02-07 09:05 rra - - * nnrpd/post.c: nnrpdauthsender wasn't replacing a supplied Sender - header; it now overrides anything from the client. Patch from - Jeffrey M. Vinocur . - -2001-02-07 00:35 rra - - * samples/newsfeeds.in: Fixed typo in the sample news2mail entry. - -2001-02-06 15:07 kondou - - * innd/art.c: - rejected entry is recoreded in history for junked articles if - wanttrash is true - -2001-02-06 00:09 rra - - * innd/inndstart.c: Fix a mistake in the initial comment; the - alternate port for feeds is 433. - -2001-02-04 14:53 kondou - - * lib/dbz.c: - innconf does not need to be read at dbz - -2001-02-03 19:37 rra - - * INSTALL, doc/pod/install.pod: Added a warning about the - instability of INN's shared library interface and about the odd - behavior of ldconfig on some systems in the presence of .OLD - versions of shared libraries. - -2001-02-03 18:31 rra - - * lib/dbz.c: Bug fixes for tagged hash, including handling of - overflow tables. Found by Andrew Gierth - . - -2001-02-03 09:54 rra - - * NEWS, doc/pod/news.pod: Added the expiration efficiency - improvements for tradspool (and to a lesser degree timehash), added - the new sample subscriptions file and additional documentation. - -2001-02-03 09:52 rra - - * MANIFEST, doc/man/Makefile, doc/man/innmail.1, - doc/pod/innmail.pod: Add a manual page for innmail, contributed by - Jeffrey M. Vinocur . - -2001-02-03 09:43 rra - - * MANIFEST, doc/man/Makefile, doc/man/subscriptions.5, - doc/pod/subscriptions.pod, samples/subscriptions, site/Makefile: - Add a sample subscriptions file. From Bettina Fink - . - -2001-02-03 07:38 rra - - * doc/man/Makefile, doc/man/fastrm.1, doc/man/fastrm.8, - doc/pod/fastrm.pod, MANIFEST: Moved the fastrm man page from - section 8 to section 1 (see man/fastrm.8 for old revision history) - and rewrote it in POD. Added back in documentation of the various - options useful when removing disk files rather than storage API - tokens. - -2001-02-03 07:36 rra - - * expire/fastrm.c: Resurrected all of the code for removing regular - files as well as storage API tokens. Removed the old vestiges of a - linked list of files in a directory from that code in favor of a - pure resizing array. Deferred the initialization of the storage - API until the first storage token is seen to improve performance - for the case where all articles are stored in a storage method that - can produce file names (tradspool, timehash) or one with self- - expiration (CNFS). Reformatted and updated the style to match - current best practice, including using warn and die everywhere for - error reporting. Backported from CURRENT, added private copies of - die/sysdie and warn/syswarn. - -2001-02-03 07:33 rra - - * expire/expireover.c: No longer default to -e if neither -e nor -k - are given; the default behavior is slightly different than either - of those. - -2001-02-03 07:32 rra - - * include/storage.h: Add SMprintfiles to print out the files - corresponding to a storage API token and Xref information (used by - expireover for fastrm). - -2001-02-03 07:31 rra - - * storage/buffindexed/buffindexed.c: OVEXPremove now takes more - arguments. - -2001-02-03 07:31 rra - - * storage/ov.c: When generating a list of files and storage API - tokens to remove for fastrm while doing group-based expire, call - SMprintfiles for each token rather than just printing out the - token. Keep the Xref information so that it can be passed to - SMprintfiles (tradspool needs it in order to generate a complete - list of file names). Fix the expiration logic so that in the - default case an article won't be removed until it expires out of - all of the newsgroups to which it was posted (per Xref) rather than - removing it when it expires out of the newsgroup listed first in - the Xref information (otherwise, articles were being expired out of - newsgroups with expiration times set to never in expire.ctl). - -2001-02-03 07:30 rra - - * storage/ovinterface.h: Change the prototype for OVEXPremove so - that it takes Xref information, since that's needed for - SMprintfiles. - -2001-02-03 07:30 rra - - * storage/: cnfs/cnfs.c, cnfs/cnfs.h, timecaf/timecaf.c, - timecaf/timecaf.h: Add a simple implementation of printfiles that - just prints out the textual form of the token (for fastrm). - -2001-02-03 07:29 rra - - * storage/trash/: trash.c, trash.h: Add an implementation of - printfiles (that does nothing, since nothing is actually stored in - trash). - -2001-02-03 07:28 rra - - * storage/timehash/: timehash.c, timehash.h: Add printfiles to - print out the file name corresponding to a storage API token for a - timehash article. - -2001-02-03 07:28 rra - - * storage/tradspool/: tradspool.c, tradspool.h: Add printfiles to - print out the files corresponding to the given Xref information - (ignoring the provided token, since the token doesn't provide - enough information to determine all of the files for a given - article). This is used by expireover to generate the file for - fastrm. - -2001-02-03 07:26 rra - - * storage/: buildconfig.in, interface.c, interface.h: Add a - printfiles method to print out the files corresponding to a storage - API token with given Xref information. - -2001-02-03 06:42 rra - - * expire/expirerm.in: Pass the root of the article spool to fastrm - as its last argument. - -2001-02-03 00:35 rra - - * scripts/innreport_inn.pm: Exclude filter: status lines from - Cleanfeed. Reported by Marco d'Itri. - -2001-01-27 13:32 rra - - * backends/overchan.c: Clarify the error message logged if overchan - runs while innd is creating overview. - -2001-01-27 11:26 rra - - * INSTALL, doc/pod/install.pod: Add a mention of the - incompatibility between INN and Python 2.0 compiled with cycle - garbage collection, thanks to Greg Andruk . - Also add a mention that Python hooks allow authentication scripts. - -2001-01-27 11:05 rra - - * configure, configure.in: Give /opt a higher precedence than /usr - when looking for the default-named BerkeleyDB directories. Check - for the Linux paths as well as the FreeBSD paths, and check for - both db2 and db3. - -2001-01-27 10:03 rra - - * LICENSE: Add 2001 to the copyright. - -2001-01-23 10:22 rra - - * INSTALL, doc/pod/install.pod: Update the documentation for signed - control messages to recommend GnuPG and the pgpgpg wrapper, now - that GnuPG supports verification of RSA signatures. - -2001-01-23 09:50 rra - - * doc/: pod/innmail.pod, man/innmail.1: Add a manual page for - innmail, contributed by Jeffrey M. Vinocur . - -2001-01-23 09:16 rra - - * doc/: pod/subscriptions.pod, man/subscriptions.5: Add a man page - for the subscriptions file. - -2001-01-23 09:14 rra - - * samples/subscriptions: Add a sample subscriptions file. From - Bettina Fink . - -2001-01-23 00:26 rra - - * nnrpd/perm.c: Accept User: from an authenticator program with any - capitalization. - -2001-01-22 05:54 rra - - * storage/ov.c: Remove the "group not matched" error since it can - occur repeatedly under the new expiration system for removed - newsgroups and doesn't mean what it used to mean (and is no longer - particularly useful). - -2001-01-22 05:53 rra - - * storage/tradspool/tradspool.c: Comment the algorithm used to - skipped hard-linked articles and silence the syslog warnings about - unknown storage classes for articles that are intentionally - skipped. - -2001-01-22 01:55 rra - - * lib/dbz.c: Remove the duplicate definition of MAP__ARG (the same - as the definition in clibrary.h). + typo fixed -2001-01-18 16:53 rra +2001-07-19 21:28 rra - * NEWS, doc/pod/news.pod: Add a news item for the change in who can - post approved articles to moderated groups by default and duplicate - it in a new 2.3.1 to 2.3.2 section since otherwise people may miss - it and it's important. + * authprogs/ckpasswd.c: Merge from mainline: Use HAVE_DBM to decide + whether to compile in dbm support, rather than basing it on the + presence of the header files. -2001-01-17 21:31 rra +2001-07-19 21:27 rra - * INSTALL, doc/pod/install.pod: Added a caution in the section - about make update about using the same configure flags as one used - the first time, and a recommendation to look in config.status for - them. Idea from Jeffrey M Vinocur . + * configure, configure.in, include/config.h.in: Import the OpenSSL + checking code from mainline as it's more reliable. Check for a dbm + library and define HAVE_DBM iff one is found. -2001-01-17 21:05 rra +2001-07-19 21:13 rra - * samples/newgroup.pl: Fix the regex for removing (Moderated) from - a description to quote the parens properly. + * authprogs/radius.c: Remove the includes of the dbm header files; + this program doesn't use dbm. -2001-01-17 15:58 rra +2001-07-19 02:15 rra - * storage/ov3/ov3.c: Something about the process of running - makehistory seems to be able to generate group index entries where - the lowmark is lower than the base. This doesn't solve that - problem, but it at least lets the overview clean itself up during - expire. If the lowmark passed to opensearch is lower than base, - set it to base. + * backends/sendbatch.in: Set COMPFLAGS to -f by default (see the + compress man page). Reported by Jochen Erwied . -2001-01-16 16:15 kondou +2001-07-18 14:45 kondou - * expire/makehistory.c: - reported by Tomasz Dymek + * backends/gpgverify.in: + From: "Andy Igoshin" - dropped -u option is displayed in Usage() function - -2001-01-16 15:36 rra - - * samples/readers.conf: Add documentation of the restriction on - approving articles to moderated groups and give localhost - permission to do that. - -2001-01-16 15:26 rra - - * doc/: man/readers.conf.5, pod/readers.conf.pod: Add documentation - of the A flag in access:, accidentally dropped when the man page - was rewritten in POD. - -2001-01-16 14:01 rra - - * doc/: man/inn.conf.5, pod/inn.conf.pod: Added a recommendation to - keep all values in inn.conf even if they're set to the defaults - since otherwise some scripts may misbehave. Added a recommendation - to use ctlinnd xexec innd to reload inn.conf when necessary. + parenthesis was missed -2001-01-16 13:27 rra - - * Makefile.global.in: Bump revision to 2.3.2. - -2001-01-16 13:09 rra - - * scripts/innshellvars.pl.in: Suppress an uninitialized variable - warning on a server with BerkeleyDB support but without overview - enabled. - -2001-01-14 22:19 kondou +2001-07-18 14:37 kondou * configure, configure.in: - From: Denis Shaposhnikov + From: Roman Gollent - learn configure about pgpgpg wrapper to gpg - -2001-01-12 16:59 kondou - - * doc/man/incoming.conf.5, doc/man/innreport.8, innd/rc.c, - samples/innreport.conf.in, scripts/innreport.in, - scripts/innreport_inn.pm: - correct Fabien's contact address - -2001-01-11 08:09 rra - - * lib/Makefile: Make sure ../include/inn exists. - -2001-01-11 07:48 rra + Forte C 6.0 is considered - * backends/inndf.c: Use unsigned long instead of long for the inode - count on systems without statvfs. Otherwise, ReiserFS (which was - returning the maximum value of an unsigned long as the count of - free inodes) overflows the data type and results in weird output. +2001-07-03 22:55 kondou -2001-01-11 05:25 kondou - - * MANIFEST: - update for contrib/ninpaths-3.1.1/* + * contrib/reset-cnfs.c: + From: Roman Gollent + + support for raw device largefile -2001-01-11 05:24 kondou +2001-06-21 11:21 rra - * contrib/ninpaths-3.1.1/sendinpaths: file sendinpaths was - initially added on branch STABLE-2_3. + * README, doc/pod/readme.pod: Update the URL for suck. -2001-01-11 05:24 kondou +2001-06-16 15:50 kondou - * contrib/ninpaths-3.1.1/ninpaths.c: file ninpaths.c was initially - added on branch STABLE-2_3. + * authprogs/radius.c: + From: elr@panix.com + + consider radius packet lost(tries to retransmit) -2001-01-11 05:24 kondou +2001-06-16 04:34 kondou - * contrib/ninpaths-3.1.1/ninpaths.README: file ninpaths.README was - initially added on branch STABLE-2_3. + * include/inndcomm.h: + From: Heiko Schlichting + + The comment in include/inndcomm.h describing the ICC protocol seems + to be wrong. The message length is of type short and therefore 2 + bytes and not 4 as written -2001-01-11 05:24 kondou +2001-06-16 04:30 kondou - * contrib/ninpaths-3.1.1/: Checksums, Makefile, ninpaths.README, - ninpaths.c, sendinpaths: - ninpaths is now included + * authprogs/radius.c: + From: "Yury B.Razbegin" + + cpcatpath() returns static area which was incorrectly DISPOSE'd. -2001-01-11 05:24 kondou +2001-06-03 14:02 kondou - * contrib/ninpaths-3.1.1/Makefile: file Makefile was initially - added on branch STABLE-2_3. + * backends/mod-active.in: + '-w' is now dropped for executing perl -2001-01-11 05:24 kondou +2001-05-24 02:34 kondou - * contrib/ninpaths-3.1.1/Checksums: file Checksums was initially - added on branch STABLE-2_3. + * authprogs/ident.c: + From: "Matthias Urlichs" + + when querying hosts behind firewalls which deny auth-requests (that + is, they don't send reject packets), the authprogs/ident program + shipped with INN 2.3.{0,1} simply hangs forever, and thus also + nnrpd just hangs;neither can the user really connect, nor does he + get any error message. -2001-01-10 16:06 kondou +2001-05-10 17:14 rra - * nnrpd/perm.c: - reported by "Marco d'Itri" - - nnrpd just closed incoming connections and does not log any - diagnostic info unless readers.conf is readable + * doc/man/ctlinnd.8: ctlinnd kill is correct; ctlinnd signal is + not. Patch from Andrew Stribblehill + . -2001-01-10 15:26 kondou +2001-05-03 21:00 kondou - * doc/pod/readme.pod, README: - typo fixed + * Makefile.global.in: + bump revision number to 2.3.3 diff -ruN inn-2.3.2/INSTALL inn-2.3.3/INSTALL --- inn-2.3.2/INSTALL Thu May 3 13:27:32 2001 +++ inn-2.3.3/INSTALL Sun May 5 23:02:07 2002 @@ -26,6 +26,8 @@ versa). If you don't remember what options you used but you have your old build tree, look at the comments at the beginning of config.status. + For more information about recent changes, see NEWS. + Supported Systems INN has been confirmed to work on the following operating systems: @@ -34,6 +36,7 @@ FreeBSD 2.2.x and up HP-UX 10.20 and up Linux 2.x (tested with libc 5.4 or glibc 2.0 and up) + OpenBSD 2.8 and up SCO 5.0.4 (tested with gcc 2.8.1 and cc) Solaris 2.5.x and up UnixWare 7.1 @@ -67,7 +70,7 @@ security problems) and INN is tested primarily with newer versions of Perl, so it's highly recommended that you install the latest stable distribution of Perl before compiling INN. For instructions on - obtaining and installing Perl, see . + obtaining and installing Perl, see . * The INN Makefiles use the syntax "include FILE", rather than the syntax expected by some BSDish systems of ".include ". If your @@ -82,8 +85,7 @@ it's actively developed, supports OpenPGP, is freely available and free to use for any purpose (including in the US), and (as of version 1.0.4 at least) supports RSA signatures used by most current control - message senders. You need to install both GnuPG and pgpgpg from - ; a link for pgpgpg is under "Front ends." + message senders. You can get GnuPG from . Alternately, you can install PGP from or one of the international versions of it. Be warned, however, that the @@ -486,10 +488,10 @@ Configuring INN All documentation from this point on assumes that you have set up the - news user on your system as suggested in the Installing INN entry - elsewhere in this document so that the root of your INN installation is - ~news/. If you've moved things around by using options with configure, - you'll need to adjust the instructions to account for that. + news user on your system as suggested in "Installing INN" so that the + root of your INN installation is ~news/. If you've moved things around + by using options with configure, you'll need to adjust the instructions + to account for that. All of INN's configuration files are located in ~news/etc. Unless noted otherwise, any files referred to below are in this directory. When you @@ -624,8 +626,8 @@ have lots of incoming and outgoing feeds. Note that the maximum value for this setting is very operating-system-dependent, and you may have to reconfigure your system (possibly even recompile your - kernel) to increase it. See the File Descriptor Limits entry - elsewhere in this document for complete details. + kernel) to increase it. See "File Descriptor Limits" for complete + details. usecontrolchan If set to true, all control messages except for cancels will be @@ -749,10 +751,9 @@ named remote.example.com and containing the message ID and storage token of each message to send to that site. innxmit knows how to read this format of file and send those articles to the remote site. For - information on setting it up to run periodically, see the Setting Up the - Cron Jobs entry elsewhere in this document below. You will also need to - set up a config file for nntpsend; see the man page for nntpsend.ctl for - more information. + information on setting it up to run periodically, see "Setting Up the + Cron Jobs" below. You will also need to set up a config file for + nntpsend; see the man page for nntpsend.ctl for more information. If instead you want to use innfeed to send outgoing messages (recommended for sites with more than a couple of peers), you need some @@ -881,9 +882,8 @@ but it requires your OS support mmap() on a block device. Solaris supports this, FreeBSD and Linux (without patches) do not. Also on many PC-based Unixes it is difficult to create more than eight - partitions, which may limit your options. See the Creating the - Article Spool entry elsewhere in this document for more discussion - of how to set this up. + partitions, which may limit your options. See "Creating the Article + Spool" for more discussion of how to set this up. 2. Use a real file on a filesystem. This will be a bit slower than using a raw disk partition, but it should work on any Unix system. diff -ruN inn-2.3.2/MANIFEST inn-2.3.3/MANIFEST --- inn-2.3.2/MANIFEST Thu May 3 13:27:32 2001 +++ inn-2.3.3/MANIFEST Sun May 5 23:02:07 2002 @@ -200,6 +200,7 @@ doc/pod/ovdb.pod Master file for ovdb.5 doc/pod/ovdb_recover.pod Master file for ovdb_recover.8 doc/pod/ovdb_upgrade.pod Master file for ovdb_upgrade.8 +doc/pod/passwd.nntp.pod Master file for passwd.nntp.5 doc/pod/readers.conf.pod Master file for readers.conf.5 doc/pod/readme.pod Master file for README doc/pod/sasl.conf.pod Master file for sasl.conf.5 @@ -235,7 +236,7 @@ frontends/scanspool.in Scan spool directory for trash frontends/signcontrol.in PGP control message signing program frontends/sm.c Get article or overview data from token -frontends/sys2nf.c Sys file to newsfeeds conversion aide +frontends/sys2nf.c Sys file to newsfeeds conversion aid include Header files (Directory) include/acconfig.h Master file for config.h.in include/clibrary.h C library portability @@ -384,7 +385,6 @@ lib/xmalloc.c Failsafe memory allocation wrapper lib/xsignal.c signal() wrapper using sigaction lib/xwrite.c write that handles partial transfers -lib/xwritev.c writev that handles partial transfers nnrpd Reader server (Directory) nnrpd/Makefile Makefile for nnrpd nnrpd/article.c Article-related routines diff -ruN inn-2.3.2/Makefile.global.in inn-2.3.3/Makefile.global.in --- inn-2.3.2/Makefile.global.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/Makefile.global.in Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -## $Id: Makefile.global.in,v 1.42.2.3 2001/01/16 13:27:47 rra Exp $ +## $Id: Makefile.global.in,v 1.42.2.4 2001/05/03 21:00:53 kondou Exp $ ## ## 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.3.2 +VERSION = 2.3.3 VERSION_EXTRA = ## If you want to install INN relative to a root directory other than /, diff -ruN inn-2.3.2/NEWS inn-2.3.3/NEWS --- inn-2.3.2/NEWS Thu May 3 13:27:32 2001 +++ inn-2.3.3/NEWS Sun May 5 23:02:07 2002 @@ -1,3 +1,43 @@ +Changes from 2.3.2 to 2.3.3 + + * pgpverify now supports using GnuPG to check signatures (rather than + PGP) without the pgpgpg wrapper. GnuPG can check both old-style RSA + signatures and new OpenPGP signatures and is recommended over PGP 2.6. + If you have GnuPG installed, pgpverify will use it rather than PGP, + which means that you may have to create a new key ring for GnuPG to + use to verify signatures if you were previously using PGP. + + * An item that was noted in NEWS below but was inadvertently left out of + nnrpd has actually been added this time: users can no longer post + articles containing Approved: headers to moderated groups by default; + they must be specifically given that permission with the access: + parameter in readers.conf. See the man page for more details. + + * Two bugs in repacking overview index files and a reliability bug with + writing overview data were all fixed in the tradindexed overview + method, hopefully making it somewhat more reliable, particularly for + makehistory. + + * If rc.news.local exists in the INN binary directory, it will be run + with the start or stop argument whenever rc.news is run. This is + available as a hook for local startup and shutdown code. + + * The default history table hash sizes were increased because a + too-small value can cause serious performance problems (whereas a + too-large hash just wastes a bit of disk space). + + * The sample control.ctl file has been extensively updated. + + * Wildmat exclusions (@ and !) should now work properly in storage.conf + newsgroup patterns. + + * The implementation of the -w flag for expireover was fixed; + previously, the value given to -w to change expireover's notion of the + current time was scaled by too much. + + * Various other more minor bug fixes, standards compliance fixes, and + documentation improvements. + Changes from 2.3.1 to 2.3.2 * innxmit can again handle regular filenames as input as well as storage diff -ruN inn-2.3.2/README inn-2.3.3/README --- inn-2.3.2/README Thu May 3 13:27:32 2001 +++ inn-2.3.3/README Sun May 5 23:02:07 2002 @@ -176,7 +176,7 @@ want to read the newsgroup news.software.nntp, which gets a lot of INN-related questions.) - To join these lists, send a subscription request to the `-request' + To join these lists, send a subscription request to the "-request" address. The addresses for the above lists are: inn-announce-request@isc.org @@ -236,7 +236,7 @@ OPENSTEP only, unfortunately. suck - URL: + URL: suck is a separate package for downloading a news feed via a reading connection (rather than via a direct NNTP or UUCP feed) and sending diff -ruN inn-2.3.2/authprogs/ckpasswd.c inn-2.3.3/authprogs/ckpasswd.c --- inn-2.3.2/authprogs/ckpasswd.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/authprogs/ckpasswd.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: ckpasswd.c,v 1.6.2.2 2000/09/20 10:47:22 kondou Exp $ +/* $Id: ckpasswd.c,v 1.6.2.3 2001/07/19 21:28:13 rra Exp $ ** ** The default username/password authenticator. */ @@ -14,11 +14,13 @@ # include #endif -#ifdef HAVE_NDBM_H -# include -#else -# ifdef HAVE_DB1_NDBM_H -# include +#if HAVE_DBM +# ifdef HAVE_NDBM_H +# include +# else +# ifdef HAVE_DB1_NDBM_H +# include +# endif # endif #endif @@ -78,7 +80,7 @@ return(pass); } -#if defined(HAVE_NDBM_H) || defined(HAVE_DB1_NDBM_H) +#if HAVE_DBM char *GetDBPass(char *name, char *file) { datum key; @@ -101,7 +103,7 @@ dbm_close(D); return(pass); } -#endif +#endif /* HAVE_DBM */ int main(int argc, char *argv[]) { @@ -117,17 +119,17 @@ do_shadow = do_file = do_db = 0; fname = 0; #if HAVE_GETSPNAM -#if defined(HAVE_NDBM_H) || defined(HAVE_DB1_NDBM_H) +# if HAVE_DBM while ((opt = getopt(argc, argv, "sf:d:")) != -1) { -#else +# else while ((opt = getopt(argc, argv, "sf:")) != -1) { -#endif +# endif #else -#if defined(HAVE_NDBM_H) || defined(HAVE_DB1_NDBM_H) +# if HAVE_DBM while ((opt = getopt(argc, argv, "f:d:")) != -1) { -#else +# else while ((opt = getopt(argc, argv, "f:")) != -1) { -#endif +# endif #endif /* only allow one of the three possibilities */ if (do_shadow || do_file || do_db) @@ -140,7 +142,7 @@ fname = optarg; do_file = 1; break; -#if defined(HAVE_NDBM_H) || defined(HAVE_DB1_NDBM_H) +#if HAVE_DBM case 'd': fname = optarg; do_db = 1; @@ -181,7 +183,7 @@ if (do_file) rpass = GetFilePass(uname, fname); else -#if defined(HAVE_NDBM_H) || defined(HAVE_DB1_NDBM_H) +#if HAVE_DBM if (do_db) rpass = GetDBPass(uname, fname); else diff -ruN inn-2.3.2/authprogs/ident.c inn-2.3.3/authprogs/ident.c --- inn-2.3.2/authprogs/ident.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/authprogs/ident.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: ident.c,v 1.6.2.1 2000/09/16 17:10:48 kondou Exp $ +/* $Id: ident.c,v 1.6.2.2 2001/05/24 02:34:26 kondou Exp $ ** ** ident authenticator. */ @@ -10,10 +10,15 @@ #include #include #include +#include #include "libinn.h" #include "macros.h" +void out() { + exit(1); +} + int main(int argc, char *argv[]) { struct servent *s; @@ -27,6 +32,8 @@ char *endstr; int gotcliaddr, gotcliport, gotlocaddr, gotlocport; + signal(SIGALRM,out); + alarm(15); memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; diff -ruN inn-2.3.2/authprogs/radius.c inn-2.3.3/authprogs/radius.c --- inn-2.3.2/authprogs/radius.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/authprogs/radius.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: radius.c,v 1.13.2.3 2000/10/01 22:54:07 kondou Exp $ +/* $Id: radius.c,v 1.13.2.6 2001/07/19 21:13:02 rra Exp $ ** ** Authenticate a user against a remote radius server. */ @@ -20,14 +20,6 @@ # include #endif -#ifdef HAVE_NDBM_H -# include -#else -# ifdef HAVE_DB1_NDBM_H -# include -# endif -#endif - #include "macros.h" #include "md5.h" #include "libinn.h" @@ -181,6 +173,7 @@ fd_set rdfds; uint32_t nvalue; ARGTYPE slen; + int authtries= 3; /* number of times to try reaching the radius server */ /* first, build the sockaddrs */ memset(&sinl, '\0', sizeof(sinl)); @@ -328,24 +321,24 @@ return(-1); } - /* send out the packet and wait for reply. */ - if (sendto(sock, (char *)&req, reqlen, 0, (struct sockaddr*) &sinr, - sizeof(sinr)) < 0) { - fprintf(stderr, "radius: cant send auth_req: %s\n", strerror(errno)); - close(sock); - return(-1); - } - /* wait 5 seconds maximum for a radius reply. */ - now = time(0); - end = now+5; - tmout.tv_sec = 6; - tmout.tv_usec = 0; - done = 0; - FD_ZERO(&rdfds); - /* store the old vector to verify next checksum */ - memcpy(secbuf+sizeof(req.vector), req.vector, sizeof(req.vector)); - ret = -2; - while (!done && end >= now) { + while (!done && authtries--) { + /* send out the packet and wait for reply. */ + if (sendto(sock, (char *)&req, reqlen, 0, (struct sockaddr*) &sinr, + sizeof(sinr)) < 0) { + fprintf(stderr, "radius: cant send auth_req: %s\n", strerror(errno)); + close(sock); + return(-1); + } + /* wait 5 seconds maximum for a radius reply. */ + now = time(0); + end = now+5; + tmout.tv_sec = 6; + tmout.tv_usec = 0; + done = 0; + FD_ZERO(&rdfds); + /* store the old vector to verify next checksum */ + memcpy(secbuf+sizeof(req.vector), req.vector, sizeof(req.vector)); + ret = -2; FD_SET(sock, &rdfds); got = select(sock+1, &rdfds, 0, 0, &tmout); if (got < 0) { @@ -521,7 +514,6 @@ read_config(f, &radconfig); fclose(f); } - DISPOSE(radius_config); } if (!radconfig.radhost) { fprintf(stderr, "No radius host to authenticate against.\n"); diff -ruN inn-2.3.2/backends/archive.c inn-2.3.3/backends/archive.c --- inn-2.3.2/backends/archive.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/backends/archive.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: archive.c,v 1.19.2.1 2000/07/23 04:11:41 kondou Exp $ +/* $Id: archive.c,v 1.19.2.2 2002/03/12 15:36:44 kondou Exp $ ** ** Read batchfiles on standard input and archive them. */ @@ -601,7 +601,7 @@ *p = '\0'; } - if (base) { + if (base && !Concat) { /* Try to link the file into the archive. */ if (link(base, dest) < 0) { diff -ruN inn-2.3.2/backends/controlchan.in inn-2.3.3/backends/controlchan.in --- inn-2.3.2/backends/controlchan.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/backends/controlchan.in Sun May 5 23:02:07 2002 @@ -1,5 +1,5 @@ #!@_PATH_PERL@ -# $Id: controlchan.in,v 1.3.2.1 2000/09/19 06:31:40 hkehoe Exp $ +# $Id: controlchan.in,v 1.3.2.2 2001/07/28 09:30:17 rra Exp $ # Copyright (c)1998 G.J. Andruk ########################################################################### # controlchan - read a feed, sniff out control messages, and send them @@ -185,6 +185,7 @@ if ($progname !~ /(^[a-z]+$)/) { logmsg ('notice', 'Naughty control in article %s', $msgid); + next; } else { $progname = $1; } diff -ruN inn-2.3.2/backends/gpgverify.in inn-2.3.3/backends/gpgverify.in --- inn-2.3.2/backends/gpgverify.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/backends/gpgverify.in Sun May 5 23:02:07 2002 @@ -174,7 +174,7 @@ die "$0: cannot use Sys::Syslog: $@ [$msg]\n" if $@; die "$0: cannot set syslog method [$msg]\n" - if not setlogsock('unix') or setlogsock('inet'); + if not (setlogsock('unix') or setlogsock('inet')); $msg .= " processing $header{'Message-ID'}" if $header{'Message-ID'}; diff -ruN inn-2.3.2/backends/mod-active.in inn-2.3.3/backends/mod-active.in --- inn-2.3.2/backends/mod-active.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/backends/mod-active.in Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -#! /usr/bin/perl -w +#! /usr/bin/perl # fixscript will replace this line with require innshellvars.pl # batch-active-update diff -ruN inn-2.3.2/backends/pgpverify.in inn-2.3.3/backends/pgpverify.in --- inn-2.3.2/backends/pgpverify.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/backends/pgpverify.in Sun May 5 23:02:07 2002 @@ -1,6 +1,8 @@ -#!@_PATH_PERL@ -ws +#! @_PATH_PERL@ -ws +do '@LIBDIR@/innshellvars.pl'; +# # written April 1996, tale@isc.org (David C Lawrence) -# Version 1.13, 14 Dec 1999 +# Version 1.14, 6 May 2001 # # NOTICE TO INN MAINTAINERS: The version that is shipped with INN # is the same as the version that I make available to the rest of the @@ -8,6 +10,19 @@ # # This program is intended to be compatible with Perl 4 and Perl 5. # +# Changes from 1.13.1 -> 1.14 +# -- Native support for GnuPG without the pgpgpg wrapper, using GnuPG's +# program interface by Marco d'Itri. +# -- Always use Sys::Syslog without any setlogsock call for Perl 5.6.0 or +# later, since Sys::Syslog in those versions of Perl uses the C library +# interface and is now portable. +# -- Default to expecting the key ring in $inn'newsetc/pgp if it exists. +# -- Fix a portability problem for Perl 4 introduced in 1.12. +# +# Changes from 1.13 -> 1.13.1 +# -- Nothing functional, just moved the innshellvars.pl line to the head of +# the script, to accomodate the build process of INN. +# # Changes from 1.12 -> 1.13 # -- Use INN's syslog_facility if available. # @@ -65,34 +80,47 @@ # -- checks to ensure that the temporary file is really a file, and # not a link or some other weirdness +# Path to the GnuPG gpgv binary, if you have GnuPG. If you do, this will +# be used in preference to PGP. For most current control messages, you +# need a version of GnuPG that can handle RSA signatures. If you have INN +# and the script is able to successfully include your innshellvars.pl +# file, the value of $inn::gpgv will override this. +# $gpgv = '/usr/local/bin/gpgv'; + # Path to pgp binary; for PGP 5.0, set the path to the pgpv binary. -# GnuPG users should point this to the pgpgpg wrapper. -# If you have INN and the script is able to successfully include you +# If you have INN and the script is able to successfully include your # innshellvars.pl file, the value of $inn::pgp will override this. $pgp = '/usr/local/bin/pgp'; -# if you keep your keyring somewhere that is not the default used by pgp, -# uncomment the next line and set appropriately. -# $ENV{'PGPPATH'} = '/path/to/your/pgp/config'; +# If you keep your keyring somewhere that is not the default used by pgp, +# uncomment the next line and set appropriately. If you have INN and the +# script is able to successfully include your innshellvars.pl file, this +# will be set to $inn::newsetc/pgp if that directory exists unless you set +# it explicitly. GnuPG will use a file named pubring.gpg in this +# directory. +# $keyring = '/path/to/your/pgp/config'; -# If you have INN and the script is able to successfully include you +# If you have INN and the script is able to successfully include your # innshellvars.pl file, the value of $inn::pathtmp and $inn::locks will # override these. $tmpdir = "/tmp"; $lockdir = $tmpdir; # How should syslog be accessed? -# As it turns out, syslogging is very hard to do portably in all -# versions of perl up to and including 5.005_02. 'inet' is all that -# was available in perl up to version 5.004_03. If your syslog does -# not accept UDP log packets, such as when syslogd runs with the -l flag, +# +# As it turns out, syslogging is very hard to do portably in versions of +# Perl prior to 5.6.0. Sys::Syslog should work without difficulty in +# 5.6.0 or later and will be used automatically for those versions of Perl +# (unless $syslog_method is ''). For earlier versions of Perl, 'inet' is +# all that's available up to version 5.004_03. If your syslog does not +# accept UDP log packets, such as when syslogd runs with the -l flag, # 'inet' will not work. A value of 'unix' will try to contact syslogd -# directly over a Unix domain socket built entirely in perl code -# (no subprocesses). If that is not working for you, and you have -# the 'logger' program on your system, set this variable to its full -# path name to have a subprocess contact syslogd. If the method is just -# "logger", the script will search some known directories for that program. -# If it can't be found & used, everything falls back on stderr logging. +# directly over a Unix domain socket built entirely in perl code (no +# subprocesses). If that is not working for you, and you have the +# 'logger' program on your system, set this variable to its full path name +# to have a subprocess contact syslogd. If the method is just "logger", +# the script will search some known directories for that program. If it +# can't be found & used, everything falls back on stderr logging. # # You can test the script's syslogging by running "pgpverify < /some/text/file" # on a file that is not a valid news article. The "non-header at line #" @@ -133,20 +161,14 @@ $0 =~ s%^.*/%%; # trim /path/to/prog to prog -do '@LIBDIR@/innshellvars.pl'; $pgp = $inn'pgp if $inn'pgp && $inn'pgp ne "no-pgp-found-during-configure"; +$gpgv = $inn'gpgv if $inn'gpgv; $tmp = ($inn'pathtmp ? $inn'pathtmp : $tmpdir) . "/pgp$$"; $lockdir = $inn'locks if $inn'locks; $syslog_facility = $inn'syslog_facility if $inn'syslog_facility; -# -# ... and it is expected some day that an INN variable will let perl -# scripts know how syslogging should be done. - -# the call to pgp needs to be locked because it tries to both read and write -# a file named randseed.bin but doesn't do its own locking as it should, -# and the consequences of a multiprocess conflict is failure to verify. -# -$lock = "$lockdir/LOCK.$0"; +if (! $keyring && $inn'newsetc) { + $keyring = $inn'newsetc . '/pgp' if -d $inn'newsetc . '/pgp'; +} if (! -x $pgp) { &fail("$0: $pgp: " . (-e _ ? "cannot execute" : "no such file") . "\n"); @@ -244,59 +266,122 @@ print $message if $test; -until (&shlock($lock) > 0) { - sleep(2); +if ($gpgv) { + ($ok, $signer) = &gpg_check($tmp, $keyring); +} else { + ($ok, $signer) = &pgp_check($tmp, $keyring); } -open(PGP,"$pgp -f +language=en < $tmp 2>&1 >/dev/null |") || - &fail("$0: failed to execute pgp: $!\n"); +print "$signer\n" if $signer; +exit $ok; + +# Check the signature using PGP (including 2.6.2, 5.0, and the pgpgpg +# wrapper for GnuPG). +sub pgp_check { + ($file, $ring) = @_; + + $ENV{'PGPPATH'} = $ring if $ring; + + # The call to pgp needs to be locked because it tries to both read and + # write a file named randseed.bin but doesn't do its own locking as it + # should, and the consequences of a multiprocess conflict is failure to + # verify. + $lock = "$lockdir/LOCK.$0"; + + until (&shlock($lock) > 0) { + sleep(2); + } -undef $/; -$_ = ; + open(PGP,"$pgp -f +language=en < $file 2>&1 >/dev/null |") || + &fail("$0: failed to execute pgp: $!\n"); -unlink($lock) || &errmsg("$0: unlink $lock: $!\n"); -unlink($tmp) || &errmsg("$0: unlink $tmp: $!\n"); + undef $/; + $_ = ; -unless (close(PGP)) { - if ($? >> 8) { - &errmsg("$0: pgp exited status " . ($? >> 8) . "\n"); - } else { - &errmsg("$0: pgp died on signal " . ($? & 255) . "\n"); + unlink($lock) || &errmsg("$0: unlink $lock: $!\n"); + unlink($file) || &errmsg("$0: unlink $file: $!\n"); + + unless (close(PGP)) { + if ($? >> 8) { + &errmsg("$0: pgp exited status " . ($? >> 8) . "\n"); + } else { + &errmsg("$0: pgp died on signal " . ($? & 255) . "\n"); + } } -} -print if $test; + print if $test; + + # MIT PGP 2.6.2: + # Good signature from user "Robert Braver ". + # ViaCrypt PGP 4.0: + # Good signature from user: Robert Braver + # GnuPG (via pgpgpg) + # Good signature from "news.announce.newgroups" + # PGP 5.0i: + # Good signature made 1997-07-09 21:57 GMT by key: + # 1024 bits, Key ID B88DA9C1, Created 1996-04-10 + # "news.announce.newgroups" + + $ok = 2; # unknown signature result is default + if (/B[Aa][Dd] signature /) { + $ok = 3; + } elsif (/Good signature from user(: (.*)| "(.*)"\.)/ || + /Good signature from "(.*)"/ || + /Good signature made .* by key:\n.+\n +"(.*)"/) { + $ok = 0; + $signer = $+; + } elsif (/Keyring file '(.*)' does not exist/) { + &fail("$0: couldn't access $1. Bad \$HOME or \$PGPPATH?\n"); + } -# MIT PGP 2.6.2: -# Good signature from user "Robert Braver ". -# ViaCrypt PGP 4.0: -# Good signature from user: Robert Braver -# GnuPG (via pgpgpg) -# Good signature from "news.announce.newgroups" -# PGP 5.0i: -# Good signature made 1997-07-09 21:57 GMT by key: -# 1024 bits, Key ID B88DA9C1, Created 1996-04-10 -# "news.announce.newgroups" - -$ok = 2; # unknown signature result is default -if (/B[Aa][Dd] signature /) { - $ok = 3; -} elsif (/Good signature from user(: (.*)| "(.*)"\.)/ || - /Good signature from "(.*)"/ || - /Good signature made .* by key:\n.+\n +"(.*)"/) { - $ok = 0; - $signer = $+; -} elsif (/Keyring file '(.*)' does not exist/) { - &fail("$0: couldn't access $1. Bad \$HOME or \$PGPPATH?\n"); + return ($ok, $signer); } -print "$signer\n" if $signer; -exit $ok; +# Check the signature using GnuPG. +sub gpg_check { + ($file, $ring) = @_; + + $opts = '--quiet --status-fd=1 --logger-fd=1'; + if ($ring) { + $opts .= " --keyring=$ring/pubring.pgp"; + } else { + $opts .= " --keyring=pubring.pgp"; + } + + open(PGP, "$gpgv $opts $file 2> /dev/null |") || + &fail("$0: failed to execute $pgp: $!\n"); + + undef $/; + $_ = ; + + unlink($file) || &errmsg("$0: unlink $file: $!\n"); + + unless (close(PGP)) { + if ($? >> 8) { + &errmsg("$0: gpgv exited status " . ($? >> 8) . "\n"); + } else { + &errmsg("$0: gpgv died on signal " . ($? & 255) . "\n"); + } + } -sub -errmsg + $ok = 255; # default exit status + if (/\[GNUPG:\]\s+GOODSIG\s+\S+\s+(\S+)/) { + $ok = 0; + $signer = $1; + } elsif (/\[GNUPG:\]\s+NODATA/ || /\[GNUPG:\]\s+UNEXPECTED/) { + $ok = 1; + } elsif (/\[GNUPG:\]\s+NO_PUBKEY/) { + $ok = 2; + } elsif (/\[GNUPG:\]\s+BADSIG\s+/) { + $ok = 3; + } + + return ($ok, $signer); +} -{ +# Log an error message, attempting syslog first based on $syslog_method +# and falling back on stderr. +sub errmsg { $_[0] =~ s/\n$//; $date = ''; @@ -306,6 +391,11 @@ unless $@; } + if ($syslog_method && $] >= 5.006) { + eval "use Sys::Syslog"; + $syslog_method = 'internal'; + } + if ($syslog_method eq "logger") { @loggers = ('/usr/ucb/logger', '/usr/bin/logger', '/usr/local/bin/logger'); foreach $try (@loggers) { @@ -320,7 +410,7 @@ if ($syslog_method ne '' && $syslog_method !~ m%/logger$%) { if ($] >= 5) { eval "use Sys::Syslog"; - } else { + } else { eval "require 'syslog.pl'"; } } @@ -352,16 +442,17 @@ # to use a Unix domain socket to talk to syslogd, which is # the only way to do it when syslog runs with the -l switch. if ($syslog_method eq "unix") { - if ($^O eq "dec_osf") { - sub Sys::Syslog::_PATH_LOG { "/dev/log" } + if ($^O eq "dec_osf" && $] >= 5) { + eval 'sub Sys::Syslog::_PATH_LOG { "/dev/log" }'; } if ($] <= 5.00403 || ! eval "setlogsock('unix')") { warn $date, "$0: cannot use syslog_method 'unix' on this system\n"; $syslog_method = ''; &errmsg($_[0]); + return; } } - + # unfortunately, there is no way to definitively know in this program if # the message was logged. I wish there were a way to send a message # to stderr if and only if the syslog attempt failed. @@ -372,14 +463,9 @@ } } -sub -fail - -{ +sub fail { unlink($tmp); - &errmsg($_[0]); - exit 255; } @@ -413,7 +499,7 @@ if ($! == &EEXIST) { if (open(LOCK, "<$file")) { $pid = ; - if ($pid =~ /^\d+$/ && (kill(0, $pid) == 1 || $! != &ESRCH)) { + if ($pid =~ /^\d+$/ && (kill(0, $pid) == 1 || $! != &ESRCH)) { unlink($ltmp); return 0; } @@ -421,14 +507,14 @@ # ok, the pid in the lockfile is not a number or no longer exists. close(LOCK); # silent failure is ok here - # unlink failed + # unlink failed if (unlink($file) != 1 && $! != &ENOENT) { unlink($ltmp); return 0; } # check if open failed for reason other than file no longer present - } elsif ($! != &ENOENT) { + } elsif ($! != &ENOENT) { unlink($ltmp); return -1; } @@ -482,3 +568,8 @@ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE. + +# Local variables: +# cperl-indent-level: 2 +# fill-column: 74 +# End: diff -ruN inn-2.3.2/backends/sendbatch.in inn-2.3.3/backends/sendbatch.in --- inn-2.3.2/backends/sendbatch.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/backends/sendbatch.in Sun May 5 23:02:07 2002 @@ -1,7 +1,7 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -## $Revision: 1.4.2.1 $ +## $Revision: 1.4.2.2 $ ## SH script to send UUCP batches out. By Mike Cooper and Rich $alz. ## Based on B News sendbatch 1.22 10/29/89. @@ -11,7 +11,7 @@ ## Program names and flags. Most can be set on the command-line. C7= COMP= -COMPFLAGS= +COMPFLAGS=-f # Use the COMPRESS variable as it is in innshellvars # COMPRESS=/usr/ucb/compress ECHO= diff -ruN inn-2.3.2/configure inn-2.3.3/configure --- inn-2.3.2/configure Thu May 3 13:27:32 2001 +++ inn-2.3.3/configure Sun May 5 23:02:07 2002 @@ -1,6 +1,6 @@ #! /bin/sh -# From configure.in Revision: 1.163.2.16 +# From configure.in Revision: 1.163.2.22 ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*- @@ -173,7 +173,7 @@ ac_help="$ac_help --disable-libtool-lock avoid locking (might break parallel builds)" ac_help="$ac_help - --with-openssl=PATH enable OpenSSL [default=no]" + --with-openssl=PATH Enable OpenSSL (for NNTP over SSL support)" # Initialize some variables set by options. # The variables have the same names as the options, with @@ -2771,12 +2771,52 @@ fi pgpverify=true -for ac_prog in pgpv pgp pgpgpg +for ac_prog in gpgv do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:2780: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_PATH_GPGV'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$PATH_GPGV" in + /*) + ac_cv_path_PATH_GPGV="$PATH_GPGV" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_PATH_GPGV="$PATH_GPGV" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_PATH_GPGV="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +PATH_GPGV="$ac_cv_path_PATH_GPGV" +if test -n "$PATH_GPGV"; then + echo "$ac_t""$PATH_GPGV" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$PATH_GPGV" && break +done + +for ac_prog in pgpv pgp pgpgpg +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2820: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path__PATH_PGP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2821,7 +2861,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2825: checking for $ac_word" >&5 +echo "configure:2865: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GETFTP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2864,7 +2904,7 @@ # Extract the first word of ""$LOG_COMPRESS"", so it can be a program name with args. set dummy "$LOG_COMPRESS"; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2868: checking for $ac_word" >&5 +echo "configure:2908: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_LOG_COMPRESS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2904,7 +2944,7 @@ # Extract the first word of "compress", so it can be a program name with args. set dummy compress; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2908: checking for $ac_word" >&5 +echo "configure:2948: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_COMPRESS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2946,7 +2986,7 @@ # Extract the first word of "gzip", so it can be a program name with args. set dummy gzip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2950: checking for $ac_word" >&5 +echo "configure:2990: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GZIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2995,13 +3035,13 @@ if test "${with_sendmail+set}" = set ; then echo $ac_n "checking for sendmail""... $ac_c" 1>&6 -echo "configure:2999: checking for sendmail" >&5 +echo "configure:3039: checking for sendmail" >&5 echo "$ac_t""$SENDMAIL" 1>&6 else # Extract the first word of "sendmail", so it can be a program name with args. set dummy sendmail; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3005: checking for $ac_word" >&5 +echo "configure:3045: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SENDMAIL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3040,7 +3080,7 @@ # Extract the first word of "sendmail", so it can be a program name with args. set dummy sendmail; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3044: checking for $ac_word" >&5 +echo "configure:3084: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SENDMAIL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3085,7 +3125,7 @@ # Extract the first word of "uustat", so it can be a program name with args. set dummy uustat; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3089: checking for $ac_word" >&5 +echo "configure:3129: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_HAVE_UUSTAT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3119,7 +3159,7 @@ # Extract the first word of "python", so it can be a program name with args. set dummy python; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3123: checking for $ac_word" >&5 +echo "configure:3163: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path__PATH_PYTHON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3160,14 +3200,14 @@ echo $ac_n "checking for library containing crypt""... $ac_c" 1>&6 -echo "configure:3164: checking for library containing crypt" >&5 +echo "configure:3204: checking for library containing crypt" >&5 if eval "test \"`echo '$''{'ac_cv_search_crypt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_crypt="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_crypt="none required" else @@ -3189,7 +3229,7 @@ test "$ac_cv_search_crypt" = "no" && for i in crypt; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_crypt="-l$i" break @@ -3223,14 +3263,14 @@ echo $ac_n "checking for library containing setproctitle""... $ac_c" 1>&6 -echo "configure:3227: checking for library containing setproctitle" >&5 +echo "configure:3267: checking for library containing setproctitle" >&5 if eval "test \"`echo '$''{'ac_cv_search_setproctitle'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_setproctitle="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_setproctitle="none required" else @@ -3252,7 +3292,7 @@ test "$ac_cv_search_setproctitle" = "no" && for i in util; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_setproctitle="-l$i" break @@ -3289,14 +3329,14 @@ echo $ac_n "checking for library containing gethostbyname""... $ac_c" 1>&6 -echo "configure:3293: checking for library containing gethostbyname" >&5 +echo "configure:3333: checking for library containing gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_search_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_gethostbyname="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_gethostbyname="none required" else @@ -3318,7 +3358,7 @@ test "$ac_cv_search_gethostbyname" = "no" && for i in nsl; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_gethostbyname="-l$i" break @@ -3350,7 +3390,7 @@ fi echo $ac_n "checking for gethostbyname in -lresolv""... $ac_c" 1>&6 -echo "configure:3354: checking for gethostbyname in -lresolv" >&5 +echo "configure:3394: checking for gethostbyname in -lresolv" >&5 ac_lib_var=`echo resolv'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3358,7 +3398,7 @@ ac_save_LIBS="$LIBS" LIBS="-lresolv $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3390,12 +3430,12 @@ fi echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:3394: checking for socket" >&5 +echo "configure:3434: checking for socket" >&5 if eval "test \"`echo '$''{'ac_cv_func_socket'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_socket=yes" else @@ -3437,7 +3477,7 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 -echo "configure:3441: checking for socket in -lsocket" >&5 +echo "configure:3481: checking for socket in -lsocket" >&5 ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3445,7 +3485,7 @@ ac_save_LIBS="$LIBS" LIBS="-lsocket "$LIBS" $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3476,7 +3516,7 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for socket in -lnsl""... $ac_c" 1>&6 -echo "configure:3480: checking for socket in -lnsl" >&5 +echo "configure:3520: checking for socket in -lnsl" >&5 ac_lib_var=`echo nsl'_'socket | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3484,7 +3524,7 @@ ac_save_LIBS="$LIBS" LIBS="-lnsl -lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3523,14 +3563,14 @@ echo $ac_n "checking for library containing inet_addr""... $ac_c" 1>&6 -echo "configure:3527: checking for library containing inet_addr" >&5 +echo "configure:3567: checking for library containing inet_addr" >&5 if eval "test \"`echo '$''{'ac_cv_search_inet_addr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_inet_addr="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_inet_addr="none required" else @@ -3552,7 +3592,7 @@ test "$ac_cv_search_inet_addr" = "no" && for i in 44bsd; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_inet_addr="-l$i" break @@ -3585,7 +3625,7 @@ fi echo $ac_n "checking for pthread_create in -lthread""... $ac_c" 1>&6 -echo "configure:3589: checking for pthread_create in -lthread" >&5 +echo "configure:3629: checking for pthread_create in -lthread" >&5 ac_lib_var=`echo thread'_'pthread_create | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3593,7 +3633,7 @@ ac_save_LIBS="$LIBS" LIBS="-lthread $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3627,7 +3667,7 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6 -echo "configure:3631: checking for pthread_create in -lpthread" >&5 +echo "configure:3671: checking for pthread_create in -lpthread" >&5 ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3635,7 +3675,7 @@ ac_save_LIBS="$LIBS" LIBS="-lpthread $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3679,7 +3719,7 @@ echo $ac_n "checking for getspnam in -lshadow""... $ac_c" 1>&6 -echo "configure:3683: checking for getspnam in -lshadow" >&5 +echo "configure:3723: checking for getspnam in -lshadow" >&5 ac_lib_var=`echo shadow'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3687,7 +3727,7 @@ ac_save_LIBS="$LIBS" LIBS="-lshadow $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3727,7 +3767,7 @@ echo $ac_n "checking for nlist in -lelf""... $ac_c" 1>&6 -echo "configure:3731: checking for nlist in -lelf" >&5 +echo "configure:3771: checking for nlist in -lelf" >&5 ac_lib_var=`echo elf'_'nlist | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3735,7 +3775,7 @@ ac_save_LIBS="$LIBS" LIBS="-lelf $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3775,7 +3815,7 @@ echo $ac_n "checking for regexec in -lregex""... $ac_c" 1>&6 -echo "configure:3779: checking for regexec in -lregex" >&5 +echo "configure:3819: checking for regexec in -lregex" >&5 ac_lib_var=`echo regex'_'regexec | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3783,7 +3823,7 @@ ac_save_LIBS="$LIBS" LIBS="-lregex $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3822,16 +3862,18 @@ fi -echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:3827: checking for dbm_open in -ldbm" >&5 -ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +inn_save_LIBS=$LIBS +LIBS= + +echo $ac_n "checking for library containing dbm_open""... $ac_c" 1>&6 +echo "configure:3870: checking for library containing dbm_open" >&5 +if eval "test \"`echo '$''{'ac_cv_search_dbm_open'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - ac_save_LIBS="$LIBS" -LIBS="-ldbm $LIBS" + ac_func_search_save_LIBS="$LIBS" +ac_cv_search_dbm_open="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" + ac_cv_search_dbm_open="none required" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - DBM_LIB="-ldbm" -else - echo "$ac_t""no" 1>&6 -fi - -echo $ac_n "checking for dbm_open in -lndbm""... $ac_c" 1>&6 -echo "configure:3867: checking for dbm_open in -lndbm" >&5 -ac_lib_var=`echo ndbm'_'dbm_open | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lndbm $LIBS" +test "$ac_cv_search_dbm_open" = "no" && for i in ndbm dbm; do +LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" + ac_cv_search_dbm_open="-l$i" +break else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - DBM_LIB="-lndbm" -else - echo "$ac_t""no" 1>&6 +done +LIBS="$ac_func_search_save_LIBS" fi +echo "$ac_t""$ac_cv_search_dbm_open" 1>&6 +if test "$ac_cv_search_dbm_open" != "no"; then + test "$ac_cv_search_dbm_open" = "none required" || LIBS="$ac_cv_search_dbm_open $LIBS" + DBM_LIB=$LIBS + cat >> confdefs.h <<\EOF +#define HAVE_DBM 1 +EOF + +else : + +fi +LIBS=$inn_save_LIBS if test x"$DO_PERL" = xDO ; then echo $ac_n "checking for Perl linkage""... $ac_c" 1>&6 -echo "configure:3910: checking for Perl linkage" >&5 +echo "configure:3939: checking for Perl linkage" >&5 inn_perl_core_path=`$_PATH_PERL -MConfig -e 'print $Config{archlibexp}'` inn_perl_core_flags=`$_PATH_PERL -MExtUtils::Embed -e ccopts` inn_perl_core_libs=`$_PATH_PERL -MExtUtils::Embed -e ldopts 2>&1 | tail -1` @@ -3932,17 +3961,19 @@ if test x"$DO_PYTHON" = xdefine ; then echo $ac_n "checking for Python linkage""... $ac_c" 1>&6 -echo "configure:3936: checking for Python linkage" >&5 +echo "configure:3965: checking for Python linkage" >&5 py_prefix=`$_PATH_PYTHON -c 'import sys; print sys.prefix'` py_ver=`$_PATH_PYTHON -c 'import sys; print sys.version[:3]'` py_libdir="${py_prefix}/lib/python${py_ver}" PYTHON_INC="-I${py_prefix}/include/python${py_ver}" - py_libs=`grep '^LIBS=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_libc=`grep '^LIBC=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_libm=`grep '^LIBM=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_liblocalmod=`grep '^LOCALMODLIBS=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_libbasemod=`grep '^BASEMODLIBS=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - PYTHON_LIB="-L$py_libdir/config $py_libs $py_libc $py_libm -lpython$py_ver $py_liblocalmod $py_libbasemod" + py_linkage="" + for py_linkpart in LIBS LIBC LIBM LOCALMODLIBS BASEMODLIBS \ + LINKFORSHARED LDFLAGS ; do + py_linkage="$py_linkage "`grep "^${py_linkpart}=" \ + $py_libdir/config/Makefile \ + | sed -e 's/^.*=//'` + done + PYTHON_LIB="-L$py_libdir/config -lpython$py_ver $py_linkage" PYTHON_LIB=`echo $PYTHON_LIB | sed -e 's/ \\t*/ /g'` echo "$ac_t""$py_libdir" 1>&6 else @@ -3958,7 +3989,7 @@ if test x"$DO_LFS" = xDO ; then echo $ac_n "checking for largefile linkage""... $ac_c" 1>&6 -echo "configure:3962: checking for largefile linkage" >&5 +echo "configure:3993: checking for largefile linkage" >&5 case "$host" in *-aix4.01*) echo "$ac_t""no" 1>&6 @@ -3976,7 +4007,7 @@ LFS_LDFLAGS="" LFS_LIBS="" ;; - *-linux*|*-irix*) + *-irix*) echo "$ac_t""no" 1>&6 { echo "configure: error: Large files not supported on this platform" 1>&2; exit 1; } ;; @@ -3985,7 +4016,7 @@ # Extract the first word of "getconf", so it can be a program name with args. set dummy getconf; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3989: checking for $ac_word" >&5 +echo "configure:4020: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GETCONF'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4036,56 +4067,62 @@ fi + # Check whether --with-openssl or --without-openssl was given. if test "${with_openssl+set}" = set; then withval="$with_openssl" - case "${withval}" in - no) DO_SSL=DONT ;; - *) DO_SSL=DO - OPENSSL_DIR=$with_openssl - ;; - esac + OPENSSL_DIR=$with_openssl else - DO_SSL=DONT + OPENSSL_DIR=no fi -if test "x$DO_SSL" = "xDO" -then - case "$OPENSSL_DIR" in - no) OPENSSL_DIR="no";; - ""|yes) - for dir in ${prefix} /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr; do - if test -f "$dir/include/openssl/ssl.h"; then - OPENSSL_DIR="$dir" - break - fi - if test -f "$dir/include/ssl.h"; then - OPENSSL_DIR="$dir" - break - fi - done - ;; - esac -else - OPENSSL_DIR="no" -fi -echo $ac_n "checking for openssl""... $ac_c" 1>&6 -echo "configure:4074: checking for openssl" >&5 -echo "$ac_t""$OPENSSL_DIR" 1>&6 -if test "$OPENSSL_DIR" != "no"; then - SSL_INC="-I${OPENSSL_DIR}/include" +echo $ac_n "checking if OpenSSL is desired""... $ac_c" 1>&6 +echo "configure:4081: checking if OpenSSL is desired" >&5 +if test x"$OPENSSL_DIR" = xno ; then + echo "$ac_t""no" 1>&6 + SSL_BIN= + SSL_INC= + SSL_LIB= +else + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for OpenSSL location""... $ac_c" 1>&6 +echo "configure:4090: checking for OpenSSL location" >&5 + if test x"$OPENSSL_DIR" = xyes ; then + for dir in $prefix /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg \ + /usr/local /usr ; do + if test -f "$dir/include/openssl/ssl.h" ; then + OPENSSL_DIR=$dir + break + fi + done + fi + if test x"$OPENSSL_DIR" = xyes ; then + { echo "configure: error: Can not find OpenSSL" 1>&2; exit 1; } + else + echo "$ac_t""$OPENSSL_DIR" 1>&6 SSL_BIN="${OPENSSL_DIR}/bin" - SSL_LIB="-L${OPENSSL_DIR}/lib" - echo $ac_n "checking for RSAPublicEncrypt in -lrsaref""... $ac_c" 1>&6 -echo "configure:4081: checking for RSAPublicEncrypt in -lrsaref" >&5 + SSL_INC="-I${OPENSSL_DIR}/include" + + # This is mildly tricky. In order to satisfy most linkers, libraries + # have to be listed in the right order, which means that libraries + # with dependencies on other libraries need to be listed first. But + # the -L flag for the OpenSSL library directory needs to go first of + # all. So put the -L flag into LIBS and accumulate actual libraries + # into SSL_LIB, and then at the end, restore LIBS and move -L to the + # beginning of SSL_LIB. + inn_save_LIBS=$LIBS + LIBS="$LIBS -L${OPENSSL_DIR}/lib" + SSL_LIB='' + echo $ac_n "checking for RSAPublicEncrypt in -lrsaref""... $ac_c" 1>&6 +echo "configure:4118: checking for RSAPublicEncrypt in -lrsaref" >&5 ac_lib_var=`echo rsaref'_'RSAPublicEncrypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lrsaref $SSL_LIB $LIBS" +LIBS="-lrsaref $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4112,15 +4149,15 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for RSAPublicEncrypt in -lRSAglue""... $ac_c" 1>&6 -echo "configure:4116: checking for RSAPublicEncrypt in -lRSAglue" >&5 +echo "configure:4153: checking for RSAPublicEncrypt in -lRSAglue" >&5 ac_lib_var=`echo RSAglue'_'RSAPublicEncrypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lRSAglue -lrsaref $SSL_LIB $LIBS" +LIBS="-lRSAglue -lrsaref $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4146,37 +4183,36 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - SSL_LIB="-lRSAglue -lrsaref ${SSL_LIB}" + SSL_LIB="-lRSAglue -lrsaref" else echo "$ac_t""no" 1>&6 fi - else echo "$ac_t""no" 1>&6 fi - echo $ac_n "checking for RSAPublicEncrypt in -lrsaref""... $ac_c" 1>&6 -echo "configure:4161: checking for RSAPublicEncrypt in -lrsaref" >&5 -ac_lib_var=`echo rsaref'_'RSAPublicEncrypt | sed 'y%./+-%__p_%'` + echo $ac_n "checking for BIO_new in -lcrypto""... $ac_c" 1>&6 +echo "configure:4197: checking for BIO_new in -lcrypto" >&5 +ac_lib_var=`echo crypto'_'BIO_new | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lrsaref $SSL_LIB $LIBS" +LIBS="-lcrypto $SSL_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4191,32 +4227,27 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - SSL_LIB="${SSL_LIB} -lRSAglue -lrsaref" -else - echo "$ac_t""no" 1>&6 -fi - - echo $ac_n "checking for BIO_accept in -lcrypto""... $ac_c" 1>&6 -echo "configure:4201: checking for BIO_accept in -lcrypto" >&5 -ac_lib_var=`echo crypto'_'BIO_accept | sed 'y%./+-%__p_%'` + echo $ac_n "checking for DSO_load in -ldl""... $ac_c" 1>&6 +echo "configure:4232: checking for DSO_load in -ldl" >&5 +ac_lib_var=`echo dl'_'DSO_load | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lcrypto $SSL_LIB $LIBS" +LIBS="-ldl -lcrypto -ldl $SSL_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4251: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4231,33 +4262,38 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - SSL_LIB="-lcrypto ${SSL_LIB}" + SSL_LIB="-lcrypto -ldl $SSL_LIB" +else + echo "$ac_t""no" 1>&6 +SSL_LIB="-lcrypto $SSL_LIB" +fi + else echo "$ac_t""no" 1>&6 { echo "configure: error: Can not find OpenSSL" 1>&2; exit 1; } fi - echo $ac_n "checking for SSL_CTX_new in -lssl""... $ac_c" 1>&6 -echo "configure:4242: checking for SSL_CTX_new in -lssl" >&5 -ac_lib_var=`echo ssl'_'SSL_CTX_new | sed 'y%./+-%__p_%'` + echo $ac_n "checking for SSL_library_init in -lssl""... $ac_c" 1>&6 +echo "configure:4278: checking for SSL_library_init in -lssl" >&5 +ac_lib_var=`echo ssl'_'SSL_library_init | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lssl $SSL_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4272,20 +4308,19 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - SSL_LIB="-lssl ${SSL_LIB}"; - cat >> confdefs.h <<\EOF -#define HAVE_SSL 1 -EOF - + SSL_LIB="-lssl $SSL_LIB" else echo "$ac_t""no" 1>&6 { echo "configure: error: Can not find OpenSSL" 1>&2; exit 1; } fi -else - SSL_LIB="" - SSL_INC="" - SSL_BIN="" + SSL_LIB="-L${OPENSSL_DIR}/lib $SSL_LIB" + LIBS=$inn_save_LIBS + cat >> confdefs.h <<\EOF +#define HAVE_SSL 1 +EOF + + fi fi @@ -4293,12 +4328,12 @@ echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:4297: checking for ANSI C header files" >&5 +echo "configure:4332: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -4306,7 +4341,7 @@ #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4310: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4345: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4323,7 +4358,7 @@ if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -4341,7 +4376,7 @@ if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -4362,7 +4397,7 @@ : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -4373,7 +4408,7 @@ exit (0); } EOF -if { (eval echo configure:4377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -4402,17 +4437,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4406: checking for $ac_hdr" >&5 +echo "configure:4441: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4416: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4451: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4441,12 +4476,12 @@ for ac_func in memcpy strchr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4445: checking for $ac_func" >&5 +echo "configure:4480: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4496,12 +4531,12 @@ for ac_func in memchr memmove memset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4500: checking for $ac_func" >&5 +echo "configure:4535: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4557,12 +4592,12 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:4561: checking for $ac_hdr that defines DIR" >&5 +echo "configure:4596: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> @@ -4570,7 +4605,7 @@ DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:4574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4609: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -4595,7 +4630,7 @@ # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:4599: checking for opendir in -ldir" >&5 +echo "configure:4634: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4603,7 +4638,7 @@ ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4636,7 +4671,7 @@ else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:4640: checking for opendir in -lx" >&5 +echo "configure:4675: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4644,7 +4679,7 @@ ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4678,12 +4713,12 @@ fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:4682: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:4717: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -4692,7 +4727,7 @@ struct tm *tp; ; return 0; } EOF -if { (eval echo configure:4696: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -4713,12 +4748,12 @@ fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:4717: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:4752: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -4734,7 +4769,7 @@ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:4738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -4761,17 +4796,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4765: checking for $ac_hdr" >&5 +echo "configure:4800: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4775: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4810: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4803,17 +4838,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4807: checking for $ac_hdr" >&5 +echo "configure:4842: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4842,12 +4877,12 @@ fi echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6 -echo "configure:4846: checking for st_blksize in struct stat" >&5 +echo "configure:4881: checking for st_blksize in struct stat" >&5 if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -4855,7 +4890,7 @@ struct stat s; s.st_blksize; ; return 0; } EOF -if { (eval echo configure:4859: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4894: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_st_blksize=yes else @@ -4876,12 +4911,12 @@ fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 -echo "configure:4880: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:4915: checking whether struct tm is in sys/time.h or time.h" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -4889,7 +4924,7 @@ struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:4893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4928: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -4910,12 +4945,12 @@ fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:4914: checking for working const" >&5 +echo "configure:4949: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5003: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -4985,12 +5020,12 @@ fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:4989: checking for size_t" >&5 +echo "configure:5024: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -5018,12 +5053,12 @@ fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:5022: checking for uid_t in sys/types.h" >&5 +echo "configure:5057: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -5052,12 +5087,12 @@ fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:5056: checking for off_t" >&5 +echo "configure:5091: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -5085,12 +5120,12 @@ fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:5089: checking for pid_t" >&5 +echo "configure:5124: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -5118,12 +5153,12 @@ fi echo $ac_n "checking for caddr_t""... $ac_c" 1>&6 -echo "configure:5122: checking for caddr_t" >&5 +echo "configure:5157: checking for caddr_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_caddr_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -5151,12 +5186,12 @@ fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:5155: checking for ssize_t" >&5 +echo "configure:5190: checking for ssize_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -5188,12 +5223,12 @@ echo $ac_n "checking for sig_atomic_t""... $ac_c" 1>&6 -echo "configure:5192: checking for sig_atomic_t" >&5 +echo "configure:5227: checking for sig_atomic_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_sig_atomic_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -5225,12 +5260,12 @@ echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 -echo "configure:5229: checking for socklen_t" >&5 +echo "configure:5264: checking for socklen_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -5264,7 +5299,7 @@ echo $ac_n "checking value of IOV_MAX""... $ac_c" 1>&6 -echo "configure:5268: checking value of IOV_MAX" >&5 +echo "configure:5303: checking value of IOV_MAX" >&5 if eval "test \"`echo '$''{'inn_cv_macro_iov_max'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5272,7 +5307,7 @@ 16 else cat > conftest.$ac_ext < @@ -5321,7 +5356,7 @@ } EOF -if { (eval echo configure:5325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5360: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then inn_cv_macro_iov_max=`cat conftestval` else @@ -5351,12 +5386,12 @@ echo $ac_n "checking for SUN_LEN""... $ac_c" 1>&6 -echo "configure:5355: checking for SUN_LEN" >&5 +echo "configure:5390: checking for SUN_LEN" >&5 if eval "test \"`echo '$''{'inn_cv_macro_sun_len'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -5371,7 +5406,7 @@ ; return 0; } EOF -if { (eval echo configure:5375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* inn_cv_macro_sun_len=yes else @@ -5394,19 +5429,19 @@ echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6 -echo "configure:5398: checking for tm_gmtoff in struct tm" >&5 +echo "configure:5433: checking for tm_gmtoff in struct tm" >&5 if eval "test \"`echo '$''{'inn_cv_struct_tm_gmtoff'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { struct tm t; t.tm_gmtoff = 3600 ; return 0; } EOF -if { (eval echo configure:5410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* inn_cv_struct_tm_gmtoff=yes else @@ -5428,19 +5463,19 @@ echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:5432: checking for tm_zone in struct tm" >&5 +echo "configure:5467: checking for tm_zone in struct tm" >&5 if eval "test \"`echo '$''{'inn_cv_struct_tm_zone'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { struct tm t; t.tm_zone = "UTC" ; return 0; } EOF -if { (eval echo configure:5444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* inn_cv_struct_tm_zone=yes else @@ -5462,19 +5497,19 @@ echo $ac_n "checking for timezone variable""... $ac_c" 1>&6 -echo "configure:5466: checking for timezone variable" >&5 +echo "configure:5501: checking for timezone variable" >&5 if eval "test \"`echo '$''{'inn_cv_var_timezone'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { timezone = 3600; altzone = 7200 ; return 0; } EOF -if { (eval echo configure:5478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* inn_cv_var_timezone=yes else @@ -5496,19 +5531,19 @@ echo $ac_n "checking for tzname variable""... $ac_c" 1>&6 -echo "configure:5500: checking for tzname variable" >&5 +echo "configure:5535: checking for tzname variable" >&5 if eval "test \"`echo '$''{'inn_cv_var_tzname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { *tzname = "UTC" ; return 0; } EOF -if { (eval echo configure:5512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* inn_cv_var_tzname=yes else @@ -5531,7 +5566,7 @@ echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:5535: checking size of int" >&5 +echo "configure:5570: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5539,7 +5574,7 @@ ac_cv_sizeof_int=4 else cat > conftest.$ac_ext < main() @@ -5550,7 +5585,7 @@ exit(0); } EOF -if { (eval echo configure:5554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_int=`cat conftestval` else @@ -5570,7 +5605,7 @@ else echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:5574: checking size of long" >&5 +echo "configure:5609: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5578,7 +5613,7 @@ ac_cv_sizeof_long=4 else cat > conftest.$ac_ext < main() @@ -5589,7 +5624,7 @@ exit(0); } EOF -if { (eval echo configure:5593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long=`cat conftestval` else @@ -5609,7 +5644,7 @@ else echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:5613: checking size of short" >&5 +echo "configure:5648: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5617,7 +5652,7 @@ ac_cv_sizeof_short=2 else cat > conftest.$ac_ext < main() @@ -5628,7 +5663,7 @@ exit(0); } EOF -if { (eval echo configure:5632: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_short=`cat conftestval` else @@ -5657,12 +5692,12 @@ echo $ac_n "checking for int32_t""... $ac_c" 1>&6 -echo "configure:5661: checking for int32_t" >&5 +echo "configure:5696: checking for int32_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_int32_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -5701,12 +5736,12 @@ echo $ac_n "checking for uint32_t""... $ac_c" 1>&6 -echo "configure:5705: checking for uint32_t" >&5 +echo "configure:5740: checking for uint32_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_uint32_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -5744,7 +5779,7 @@ echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:5748: checking for 8-bit clean memcmp" >&5 +echo "configure:5783: checking for 8-bit clean memcmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5752,7 +5787,7 @@ ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -5781,17 +5816,17 @@ ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:5785: checking for vfork.h" >&5 +echo "configure:5820: checking for vfork.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5795: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5830: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5816,18 +5851,18 @@ fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:5820: checking for working vfork" >&5 +echo "configure:5855: checking for working vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then echo $ac_n "checking for vfork""... $ac_c" 1>&6 -echo "configure:5826: checking for vfork" >&5 +echo "configure:5861: checking for vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vfork=yes" else @@ -5872,7 +5907,7 @@ ac_cv_func_vfork_works=$ac_cv_func_vfork else cat > conftest.$ac_ext < @@ -5967,7 +6002,7 @@ } } EOF -if { (eval echo configure:5971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_vfork_works=yes else @@ -5990,12 +6025,12 @@ fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:5994: checking return type of signal handlers" >&5 +echo "configure:6029: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -6012,7 +6047,7 @@ int i; ; return 0; } EOF -if { (eval echo configure:6016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -6037,12 +6072,12 @@ symlink waitpid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6041: checking for $ac_func" >&5 +echo "configure:6076: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6104: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6093,12 +6128,12 @@ for ac_func in seteuid setreuid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6097: checking for $ac_func" >&5 +echo "configure:6132: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6147,12 +6182,12 @@ echo $ac_n "checking for getrlimit""... $ac_c" 1>&6 -echo "configure:6151: checking for getrlimit" >&5 +echo "configure:6186: checking for getrlimit" >&5 if eval "test \"`echo '$''{'ac_cv_func_getrlimit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_getrlimit=yes" else @@ -6190,12 +6225,12 @@ if eval "test \"`echo '$ac_cv_func_'getrlimit`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for setrlimit""... $ac_c" 1>&6 -echo "configure:6194: checking for setrlimit" >&5 +echo "configure:6229: checking for setrlimit" >&5 if eval "test \"`echo '$''{'ac_cv_func_setrlimit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_setrlimit=yes" else @@ -6248,12 +6283,12 @@ for ac_func in sysconf getdtablesize ulimit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6252: checking for $ac_func" >&5 +echo "configure:6287: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6303,12 +6338,12 @@ if test x"$ac_cv_func_fcntl" = xno ; then echo $ac_n "checking for flock""... $ac_c" 1>&6 -echo "configure:6307: checking for flock" >&5 +echo "configure:6342: checking for flock" >&5 if eval "test \"`echo '$''{'ac_cv_func_flock'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_flock=yes" else @@ -6352,7 +6387,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for flock in -lbsd""... $ac_c" 1>&6 -echo "configure:6356: checking for flock in -lbsd" >&5 +echo "configure:6391: checking for flock in -lbsd" >&5 ac_lib_var=`echo bsd'_'flock | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6360,7 +6395,7 @@ ac_save_LIBS="$LIBS" LIBS="-lbsd $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6396,12 +6431,12 @@ for ac_func in lockf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6400: checking for $ac_func" >&5 +echo "configure:6435: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6458,12 +6493,12 @@ for ac_func in statfs do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6462: checking for $ac_func" >&5 +echo "configure:6497: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6514,17 +6549,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6518: checking for $ac_hdr" >&5 +echo "configure:6553: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6528: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6563: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6556,12 +6591,12 @@ strcasecmp strdup strerror strspn setenv hstrerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6560: checking for $ac_func" >&5 +echo "configure:6595: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6613,7 +6648,7 @@ if test "$ac_cv_func_fseeko" = no || test "$ac_cv_func_ftello" = no ; then echo $ac_n "checking for off_t-compatible fpos_t""... $ac_c" 1>&6 -echo "configure:6617: checking for off_t-compatible fpos_t" >&5 +echo "configure:6652: checking for off_t-compatible fpos_t" >&5 if eval "test \"`echo '$''{'inn_cv_type_fpos_t_large'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6621,7 +6656,7 @@ inn_cv_type_fpos_t_large=no else cat > conftest.$ac_ext < #include @@ -6635,7 +6670,7 @@ exit(off == (off_t) 9223372036854775807ULL ? 0 : 1); } EOF -if { (eval echo configure:6639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then inn_cv_type_fpos_t_large=yes else @@ -6672,12 +6707,12 @@ echo $ac_n "checking if mmap() sees write()s""... $ac_c" 1>&6 -echo "configure:6676: checking if mmap() sees write()s" >&5 +echo "configure:6711: checking if mmap() sees write()s" >&5 if test "$cross_compiling" = yes; then result="yes" else cat > conftest.$ac_ext < #include @@ -6709,7 +6744,7 @@ } EOF -if { (eval echo configure:6713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then result="yes" else @@ -6733,7 +6768,7 @@ echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:6737: checking for working mmap" >&5 +echo "configure:6772: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_shared'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6741,7 +6776,7 @@ ac_cv_func_mmap_shared=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_shared=yes else @@ -6865,12 +6900,12 @@ for ac_func in madvise do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6869: checking for $ac_func" >&5 +echo "configure:6904: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6920,7 +6955,7 @@ fi echo $ac_n "checking whether msync is needed""... $ac_c" 1>&6 -echo "configure:6924: checking whether msync is needed" >&5 +echo "configure:6959: checking whether msync is needed" >&5 if eval "test \"`echo '$''{'ac_cv_func_need_msync'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6928,7 +6963,7 @@ ac_cv_func_need_msync=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_need_msync=yes else @@ -7065,12 +7100,12 @@ if test $ac_cv_lib_regex_regexec = no; then echo $ac_n "checking for regexec""... $ac_c" 1>&6 -echo "configure:7069: checking for regexec" >&5 +echo "configure:7104: checking for regexec" >&5 if eval "test \"`echo '$''{'ac_cv_func_regexec'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_regexec=yes" else @@ -7118,12 +7153,12 @@ fi echo $ac_n "checking for three argument msync""... $ac_c" 1>&6 -echo "configure:7122: checking for three argument msync" >&5 +echo "configure:7157: checking for three argument msync" >&5 if eval "test \"`echo '$''{'inn_cv_func_msync_3_args'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -7132,7 +7167,7 @@ char *p; int psize; msync(p,psize,MS_ASYNC); ; return 0; } EOF -if { (eval echo configure:7136: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* inn_cv_func_msync_3_args=yes else @@ -7153,9 +7188,9 @@ fi echo $ac_n "checking for Unix domain sockets""... $ac_c" 1>&6 -echo "configure:7157: checking for Unix domain sockets" >&5 +echo "configure:7192: checking for Unix domain sockets" >&5 cat > conftest.$ac_ext < @@ -7181,10 +7216,10 @@ echo $ac_n "checking log facility for news""... $ac_c" 1>&6 -echo "configure:7185: checking log facility for news" >&5 +echo "configure:7220: checking log facility for news" >&5 if test x"$SYSLOG_FACILITY" = xnone ; then cat > conftest.$ac_ext < @@ -7438,6 +7473,7 @@ s%@_PATH_SH@%$_PATH_SH%g s%@_PATH_SED@%$_PATH_SED%g s%@_PATH_SORT@%$_PATH_SORT%g +s%@PATH_GPGV@%$PATH_GPGV%g s%@_PATH_PGP@%$_PATH_PGP%g s%@pgpverify@%$pgpverify%g s%@GETFTP@%$GETFTP%g @@ -7458,9 +7494,9 @@ s%@LFS_CFLAGS@%$LFS_CFLAGS%g s%@LFS_LDFLAGS@%$LFS_LDFLAGS%g s%@LFS_LIBS@%$LFS_LIBS%g -s%@SSL_LIB@%$SSL_LIB%g -s%@SSL_INC@%$SSL_INC%g s%@SSL_BIN@%$SSL_BIN%g +s%@SSL_INC@%$SSL_INC%g +s%@SSL_LIB@%$SSL_LIB%g s%@LIBOBJS@%$LIBOBJS%g s%@MISSING_MAN@%$MISSING_MAN%g s%@MISSING_SRC@%$MISSING_SRC%g diff -ruN inn-2.3.2/configure.in inn-2.3.3/configure.in --- inn-2.3.2/configure.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/configure.in Sun May 5 23:02:07 2002 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.in,v 1.163.2.17 2001/03/05 05:44:17 rra Exp $ +dnl $Id: configure.in,v 1.163.2.23 2002/04/18 05:37:55 rra Exp $ -AC_REVISION($Revision: 1.163.2.17 $)dnl +AC_REVISION($Revision: 1.163.2.23 $)dnl AC_PREREQ(2.13) dnl FIXME: The separable tests in this file should be broken out into @@ -426,8 +426,11 @@ INN_PERL_VERSION(5.003) fi -dnl Look for PGP 5.0's pgpv, or pgp/pgpgpg if pgpv is not found. +dnl Look for PGP 5.0's pgpv, then pgp, then pgpgpg (not sure why anyone would +dnl have pgpgpg and not gpgv, but it doesn't hurt). Separately look for +dnl GnuPG (which we prefer). pgpverify=true +AC_PATH_PROGS(PATH_GPGV, gpgv) AC_PATH_PROGS(_PATH_PGP, pgpv pgp pgpgpg) if test -z "$_PATH_PGP" ; then pgpverify=false @@ -566,10 +569,12 @@ AC_CHECK_LIB(regex, regexec) dnl Some of the authentication programs want to be able to open dbm files. -dnl -dnl FIXME: These conflict. What order should they really be in? -AC_CHECK_LIB(dbm, dbm_open, DBM_LIB="-ldbm") -AC_CHECK_LIB(ndbm, dbm_open, DBM_LIB="-lndbm") +inn_save_LIBS=$LIBS +LIBS= +AC_SEARCH_LIBS(dbm_open, ndbm dbm, + [DBM_LIB=$LIBS + AC_DEFINE(HAVE_DBM, 1, [Define if you have a dbm library.])]) +LIBS=$inn_save_LIBS AC_SUBST(DBM_LIB) dnl Libraries and flags for embedded Perl. Some distributions of Linux have @@ -610,12 +615,14 @@ py_ver=`$_PATH_PYTHON -c 'import sys; print sys.version[[:3]]'` py_libdir="${py_prefix}/lib/python${py_ver}" PYTHON_INC="-I${py_prefix}/include/python${py_ver}" - py_libs=`grep '^LIBS=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_libc=`grep '^LIBC=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_libm=`grep '^LIBM=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_liblocalmod=`grep '^LOCALMODLIBS=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - py_libbasemod=`grep '^BASEMODLIBS=' $py_libdir/config/Makefile | sed -e 's/^.*=//'` - PYTHON_LIB="-L$py_libdir/config $py_libs $py_libc $py_libm -lpython$py_ver $py_liblocalmod $py_libbasemod" + py_linkage="" + for py_linkpart in LIBS LIBC LIBM LOCALMODLIBS BASEMODLIBS \ + LINKFORSHARED LDFLAGS ; do + py_linkage="$py_linkage "`grep "^${py_linkpart}=" \ + $py_libdir/config/Makefile \ + | sed -e 's/^.*=//'` + done + PYTHON_LIB="-L$py_libdir/config -lpython$py_ver $py_linkage" PYTHON_LIB=`echo $PYTHON_LIB | sed -e 's/[ \\t]*/ /g'` AC_MSG_RESULT($py_libdir) else @@ -674,7 +681,7 @@ LFS_LDFLAGS="" LFS_LIBS="" ;; - *-linux*|*-irix*) + *-irix*) AC_MSG_RESULT(no) AC_MSG_ERROR([Large files not supported on this platform]) ;; @@ -700,67 +707,71 @@ AC_SUBST(LFS_LIBS) fi -dnl -dnl Test for OpenSSL -dnl -AC_ARG_WITH(openssl, - [ --with-openssl=PATH enable OpenSSL [default=no]], - [case "${withval}" in - no) DO_SSL=DONT ;; - *) DO_SSL=DO - OPENSSL_DIR=$with_openssl - ;; - esac], - DO_SSL=DONT) -if test "x$DO_SSL" = "xDO" -then - case "$OPENSSL_DIR" in - no) OPENSSL_DIR="no";; - ""|yes) - for dir in ${prefix} /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr; do - if test -f "$dir/include/openssl/ssl.h"; then - OPENSSL_DIR="$dir" - break - fi - if test -f "$dir/include/ssl.h"; then - OPENSSL_DIR="$dir" - break - fi - done - ;; - esac +dnl Check for whether the user wants to compile with OpenSSL, and if so what +dnl the path to the various components of it is. +AC_DEFUN([INN_LIB_OPENSSL], +[AC_ARG_WITH(openssl, + [ --with-openssl=PATH Enable OpenSSL (for NNTP over SSL support)], + OPENSSL_DIR=$with_openssl, + OPENSSL_DIR=no) +AC_MSG_CHECKING(if OpenSSL is desired) +if test x"$OPENSSL_DIR" = xno ; then + AC_MSG_RESULT(no) + SSL_BIN= + SSL_INC= + SSL_LIB= else - OPENSSL_DIR="no" -fi -AC_MSG_CHECKING(for openssl) -AC_MSG_RESULT($OPENSSL_DIR) -if test "$OPENSSL_DIR" != "no"; then - SSL_INC="-I${OPENSSL_DIR}/include" + AC_MSG_RESULT(yes) + AC_MSG_CHECKING(for OpenSSL location) + if test x"$OPENSSL_DIR" = xyes ; then + for dir in $prefix /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg \ + /usr/local /usr ; do + if test -f "$dir/include/openssl/ssl.h" ; then + OPENSSL_DIR=$dir + break + fi + done + fi + if test x"$OPENSSL_DIR" = xyes ; then + AC_MSG_ERROR(Can not find OpenSSL) + else + AC_MSG_RESULT($OPENSSL_DIR) SSL_BIN="${OPENSSL_DIR}/bin" - SSL_LIB="-L${OPENSSL_DIR}/lib" - AC_CHECK_LIB(rsaref, RSAPublicEncrypt, - [AC_CHECK_LIB(RSAglue, RSAPublicEncrypt, - SSL_LIB="-lRSAglue -lrsaref ${SSL_LIB}",,-lrsaref $SSL_LIB)] - ,,$SSL_LIB) + SSL_INC="-I${OPENSSL_DIR}/include" + + # This is mildly tricky. In order to satisfy most linkers, libraries + # have to be listed in the right order, which means that libraries + # with dependencies on other libraries need to be listed first. But + # the -L flag for the OpenSSL library directory needs to go first of + # all. So put the -L flag into LIBS and accumulate actual libraries + # into SSL_LIB, and then at the end, restore LIBS and move -L to the + # beginning of SSL_LIB. + inn_save_LIBS=$LIBS + LIBS="$LIBS -L${OPENSSL_DIR}/lib" + SSL_LIB='' AC_CHECK_LIB(rsaref, RSAPublicEncrypt, - SSL_LIB="${SSL_LIB} -lRSAglue -lrsaref",,$SSL_LIB) - AC_CHECK_LIB(crypto,BIO_accept, - SSL_LIB="-lcrypto ${SSL_LIB}", - [AC_MSG_ERROR(Can not find OpenSSL)], - $SSL_LIB) - AC_CHECK_LIB(ssl, SSL_CTX_new, - SSL_LIB="-lssl ${SSL_LIB}"; - [AC_DEFINE(HAVE_SSL, 1, [Define if OpenSSL is available.])], - [AC_MSG_ERROR(Can not find OpenSSL)], - $SSL_LIB) -else - SSL_LIB="" - SSL_INC="" - SSL_BIN="" + [AC_CHECK_LIB(RSAglue, RSAPublicEncrypt, + [SSL_LIB="-lRSAglue -lrsaref"], , -lrsaref)]) + AC_CHECK_LIB(crypto, BIO_new, + [AC_CHECK_LIB(dl, DSO_load, + SSL_LIB="-lcrypto -ldl $SSL_LIB", + SSL_LIB="-lcrypto $SSL_LIB", + -lcrypto -ldl $SSL_LIB)], + [AC_MSG_ERROR(Can not find OpenSSL)], + $SSL_LIB) + AC_CHECK_LIB(ssl, SSL_library_init, + [SSL_LIB="-lssl $SSL_LIB"], + [AC_MSG_ERROR(Can not find OpenSSL)], + $SSL_LIB) + SSL_LIB="-L${OPENSSL_DIR}/lib $SSL_LIB" + LIBS=$inn_save_LIBS + AC_DEFINE(HAVE_SSL, 1, [Define if OpenSSL is available.]) + fi fi -AC_SUBST(SSL_LIB) -AC_SUBST(SSL_INC) AC_SUBST(SSL_BIN) +AC_SUBST(SSL_INC) +AC_SUBST(SSL_LIB)]) +INN_LIB_OPENSSL dnl Special checks for header files. diff -ruN inn-2.3.2/contrib/reset-cnfs.c inn-2.3.3/contrib/reset-cnfs.c --- inn-2.3.2/contrib/reset-cnfs.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/contrib/reset-cnfs.c Sun May 5 23:02:07 2002 @@ -7,20 +7,35 @@ #include +/* uncomment the below for LARGE_FILES support */ +/* #define LARGE_FILES */ + int main(int argc, char *argv[]) { int fd; int i, j; char buf[512]; - struct stat st; +#ifdef LARGE_FILES + struct stat64 st; +#else + struct stat st; +#endif int numwr; bzero(buf, sizeof(buf)); for (i = 1; i < argc; i++) { - if ((fd = open(argv[i], O_RDWR, 0664)) < 0) +#ifdef LARGE_FILES + if ((fd = open(argv[i], O_LARGEFILE | O_RDWR, 0664)) < 0) +#else + if ((fd = open(argv[i], O_RDWR, 0664)) < 0) +#endif fprintf(stderr, "Could not open file %s: %s\n", argv[i], strerror(errno)); else { - if (fstat(fd, &st) < 0) { +#ifdef LARGE_FILES + if (fstat64(fd, &st) < 0) { +#else + if (fstat(fd, &st) < 0) { +#endif fprintf(stderr, "Could not stat file %s: %s\n", argv[i], strerror(errno)); } else { /* each bit in the bitfield is 512 bytes of data. Each byte diff -ruN inn-2.3.2/doc/man/ctlinnd.8 inn-2.3.3/doc/man/ctlinnd.8 --- inn-2.3.2/doc/man/ctlinnd.8 Thu May 3 13:27:32 2001 +++ inn-2.3.3/doc/man/ctlinnd.8 Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -.\" $Revision: 1.16.2.3 $ +.\" $Revision: 1.16.2.6 $ .TH CTLINND 8 .SH NAME ctlinnd \- control the InterNetNews daemon @@ -65,12 +65,6 @@ is invoked with the ``\fB\-h\fP'' flag, then only the usage for that command will be given. .PP -If a large number of groups are going to be created or deleted at once, -it may be more efficient to ``pause'' or ``throttle'' the server -and edit the -.IR active (5) -file directly. -.PP The complete list of commands follows. Note that all commands have a fixed number of arguments. If a parameter can be an empty string, then it is necessary to @@ -216,6 +210,16 @@ .I command if specified. .TP +.BI kill " signal site" +Signal +.I signal +is sent to the specified +.IR site , +which must be a channel or exploder feed. +.I Signal +can be a numeric signal number or the word ``hup,'' ``int,'' or ``term''; +case is not significant. +.TP .BI lowmark " file" Reset the lowmarks in the .I active @@ -480,6 +484,9 @@ .IR inn.conf (5) for overview creation. .TP +.BI renumberlow " file" +This command does same as ``lowmark'' command. +.TP .BI reserve " reason" The next ``pause'' or ``throttle'' command must use .I reason @@ -520,15 +527,14 @@ and a Python method named ``filter_close'' exists, it will be called just before innd exits. .TP -.BI signal " sig site" -Signal -.I sig -is sent to the specified -.IR site , -which must be a channel or exploder feed. -.I Sig -can be a numeric signal number or the word ``hup,'' ``int,'' or ``term''; -case is not significant. +.BI status " off|interval" +.I innd +status reporting is turned off if ``off'' or ``0'' is specified, +otherwise, status will be reported every +.I interval +seconds to syslog. See ``status'' in +.IR inn.conf (5) +for information on how to set the startup default. .TP .BI tcl " flag" Enable or disable Tcl news filtering, if @@ -555,7 +561,7 @@ Performance monitoring is turned off if ``off'' or ``0'' is specified, otherwise, statistics will be reported every .I interval -seconds to syslog. See +seconds to syslog. See ``timer'' in .IR inn.conf (5) for information on how to set the startup default. .TP @@ -620,7 +626,7 @@ .de R$ This is revision \\$3, dated \\$4. .. -.R$ $Id: ctlinnd.8,v 1.16.2.3 2001/03/11 13:42:49 kondou Exp $ +.R$ $Id: ctlinnd.8,v 1.16.2.6 2002/03/25 02:21:41 rra Exp $ .SH "SEE ALSO" active(5), expire(8), diff -ruN inn-2.3.2/doc/man/expireover.8 inn-2.3.3/doc/man/expireover.8 --- inn-2.3.2/doc/man/expireover.8 Thu May 3 13:27:32 2001 +++ inn-2.3.3/doc/man/expireover.8 Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -.\" $Revision: 1.9.2.2 $ +.\" $Revision: 1.9.2.3 $ .TH EXPIREOVER 8 .SH NAME expireover \- Expire entries from the news overview database @@ -66,7 +66,7 @@ file. A name of ``\fB\-\fP'' is taken to mean the standard input. .TP .B \-k -When the ``\fB\-f\fP'' flag is used, then +When the ``\fB\-k\fP'' flag is used, then articles are removed when they have been expired from all the groups they appear in. Note that you cannot use both ``\fB\-e\fP'' and ``\fB\-k\fP'' flag at the @@ -130,7 +130,7 @@ .de R$ This is revision \\$3, dated \\$4. .. -.R$ $Id: expireover.8,v 1.9.2.2 2000/09/05 23:21:38 kondou Exp $ +.R$ $Id: expireover.8,v 1.9.2.3 2002/04/14 10:22:47 kondou Exp $ .SH "SEE ALSO" active(5), ctlinnd(8). diff -ruN inn-2.3.2/doc/man/inews.1 inn-2.3.3/doc/man/inews.1 --- inn-2.3.2/doc/man/inews.1 Thu May 3 13:27:32 2001 +++ inn-2.3.3/doc/man/inews.1 Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -.\" $Revision: 1.6.2.1 $ +.\" $Revision: 1.6.2.2 $ .TH INEWS 1 .SH NAME inews \- send a Usenet article to the local news server for distribution @@ -62,7 +62,7 @@ accepts, but ignores, the ``\fB\-A\fP'', ``\fB\-V\fP'' and ``\fB\-W\fP'' flags. .TP .B \-D -As a debugging aide, if the ``\fB\-D\fP'' flag is used, the consistency checks +As a debugging aid, if the ``\fB\-D\fP'' flag is used, the consistency checks will be performed, and the article will be sent to the standard output, rather then sent to the server. .TP @@ -186,7 +186,7 @@ .de R$ This is revision \\$3, dated \\$4. .. -.R$ $Id: inews.1,v 1.6.2.1 2000/08/17 13:32:08 kondou Exp $ +.R$ $Id: inews.1,v 1.6.2.2 2001/07/24 22:41:27 kondou Exp $ .SH "SEE ALSO" moderators(5), inn.conf(5). diff -ruN inn-2.3.2/doc/man/inn.conf.5 inn-2.3.3/doc/man/inn.conf.5 --- inn-2.3.2/doc/man/inn.conf.5 Thu May 3 13:27:32 2001 +++ inn-2.3.3/doc/man/inn.conf.5 Sun May 5 23:02:07 2002 @@ -1,5 +1,5 @@ -.\" Automatically generated by Pod::Man version 1.14 -.\" Tue Jan 16 06:00:02 2001 +.\" Automatically generated by Pod::Man version 1.15 +.\" Sat Mar 23 18:07:16 2002 .\" .\" Standard preamble: .\" ====================================================================== @@ -137,8 +137,8 @@ .rm #[ #] #H #V #F C .\" ====================================================================== .\" -.IX Title "INN.CONF 1" -.TH INN.CONF 1 "INN 2.3" "2001-01-16" "InterNetNews Documentation" +.IX Title "inn.conf 5" +.TH INN.CONF 5 "INN 2.3.3" "2002-03-23" "InterNetNews Documentation" .UC .SH "NAME" inn.conf \- Configuration data for InterNetNews programs @@ -592,9 +592,13 @@ and the default is false. .Ip "\fIreadertrack\fR" 4 .IX Item "readertrack" -Whether to enable the tracking system for client reading and posting. See -\&\fInnrpd.track\fR\|(5) for more information. This is a boolean value and the -default is false. +Whether to enable the tracking system for client behavior. Tracked +information is recoreded to \fIpathlog\fR/tracklogs/log-ID. \s-1ID\s0 is determined +by nnrpd's \s-1PID\s0 and when nnrpd runs. Currenlty that information includes +the messages which tell enabling reader track and where posted article is +tracked. Which user and client, that is recorded, is determined by +nnrpd.track. See \fInnrpd.track\fR\|(5) for more information. This is a boolean +value and the default is false. .PP \&\s-1INN\s0 has optional support for generating keyword information automatically from article body text and putting that information in overview for the @@ -951,8 +955,10 @@ set to a value lower than \fInicekids\fR. .Ip "\fIpauseretrytime\fR" 4 .IX Item "pauseretrytime" -Wait for this many seconds before noticing inactive channels. The default -value is \f(CW\*(C`300\*(C'\fR. +Wait for this many seconds before noticing inactive channels. +Wait for this many seconds before innd processes article when it's paused +or the number of channel write failure exceeds \fIbadiocount\fR. The +default value is \f(CW\*(C`300\*(C'\fR. .Ip "\fIpeertimeout\fR" 4 .IX Item "peertimeout" How long (in seconds) an \fIinnd\fR\|(8) incoming channel may be inactive before @@ -1074,7 +1080,7 @@ Written by Rich \f(CW$alz\fR for InterNetNews and since modified, updated, and reorganized by innumerable other people. .PP -$Id: inn.conf.5,v 1.86.2.6 2001/01/16 14:01:33 rra Exp $ +$Id: inn.conf.5,v 1.86.2.9 2002/03/23 10:27:58 kondou Exp $ .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIinews\fR\|(1), \fIinnd\fR\|(8), \fIinnwatch\fR\|(8), \fInnrpd\fR\|(8), \fIrnews\fR\|(1). diff -ruN inn-2.3.2/doc/man/mailpost.8 inn-2.3.3/doc/man/mailpost.8 --- inn-2.3.2/doc/man/mailpost.8 Thu May 3 13:27:32 2001 +++ inn-2.3.3/doc/man/mailpost.8 Sun May 5 23:02:07 2002 @@ -46,6 +46,9 @@ -d local local.mail.rec.bicycles.racing" .fi .RE +.PP +.I newsgroups +cannot be multiple groups. Only one newsgroup name is allowed. .SH OPTIONS .TP .B \-r @@ -63,7 +66,7 @@ If the ``\fB\-d\fP'' flag is used the value given is added to the article as a Distribution header. .TP -.B \m +.B \-m If the ``\fB\-m\fP'' flag is used the value given is added to the articles in a Mailing-List header, if a Mailing-List header doesn't already exist. .TP @@ -79,7 +82,7 @@ .de R$ This is revision \\$3, dated \\$4. .. -.R$ $Id: mailpost.8,v 1.2.2.1 2000/05/13 04:37:35 kondou Exp $ +.R$ $Id: mailpost.8,v 1.2.2.3 2001/09/22 13:16:45 kondou Exp $ .SH FILES /mailpost-msgid.db database file .SH BUGS diff -ruN inn-2.3.2/doc/man/overview.fmt.5 inn-2.3.3/doc/man/overview.fmt.5 --- inn-2.3.2/doc/man/overview.fmt.5 Thu May 3 13:27:32 2001 +++ inn-2.3.3/doc/man/overview.fmt.5 Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -.\" $Revision: 1.6.6.2 $ +.\" $Revision: 1.6.6.3 $ .TH OVERVIEW.FMT 5 .SH NAME overview.fmt \- format of news overview database @@ -15,9 +15,10 @@ A trailing set of lines can have the word ``full'' appear after the colon; this indicates that the header should appear as well as its value. .PP -If this file is changed, it is usually necessary to rebuild the -existing overview database using -.IR expireover (8) +If this file is changed, new overview records will be constructed with +the modified format. If it is desired to update existing records, it is +necessary to rebuild the existing overview database using +.IR makehistory (8) after removing all existing overview files. .PP \&``Xref:full'' must be included, or @@ -38,6 +39,11 @@ Xref:full .fi .RE +.PP +Usually the only modifications which should be made to the default file +are additions of new fields to the end of the file; all such fields +should have ``full'' after the colon. The first eight fields should +remain in the same order as above. .SH HISTORY Written by Rich $alz for InterNetNews. Intended to be compatible with the @@ -46,6 +52,6 @@ .de R$ This is revision \\$3, dated \\$4. .. -.R$ $Id: overview.fmt.5,v 1.6.6.2 2000/08/17 13:32:13 kondou Exp $ +.R$ $Id: overview.fmt.5,v 1.6.6.3 2002/01/05 20:47:36 vinocur Exp $ .SH "SEE ALSO" inn.conf(5) diff -ruN inn-2.3.2/doc/man/passwd.nntp.5 inn-2.3.3/doc/man/passwd.nntp.5 --- inn-2.3.2/doc/man/passwd.nntp.5 Thu May 3 13:27:32 2001 +++ inn-2.3.3/doc/man/passwd.nntp.5 Sun May 5 23:02:07 2002 @@ -1,52 +1,181 @@ -.\" $Revision: 1.5 $ -.TH PASSWD.NNTP 5 -.SH NAME -passwd.nntp \- passwords for connecting to remote NNTP servers -.SH DESCRIPTION -The file -.I /passwd.nntp -contains host-name-password triplets for use when authenticating client -programs to NNTP servers. -This file is normally interpreted by the -.IR NNTPsendpassword -routine in -.IR libinn (3). -Blank lines and lines beginning with a number sign (``#'') are ignored. -All other lines should consist of three or four fields separated by colons: -.RS +.\" Automatically generated by Pod::Man v1.32, Pod::Parser v1.12 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW .nf -host:name:password -host:name:password:style +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R .fi -.RE +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "PASSWD.NNTP 5" +.TH PASSWD.NNTP 5 "2002-02-03" "INN 2.4.0" "InterNetNews Documentation" +.SH "NAME" +passwd.nntp \- passwords for connecting to remote NNTP servers +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +The file \fIpasswd.nntp\fR in \fIpathetc\fR contains host / name / password +triplets for use when authenticating client programs to \s-1NNTP\s0 servers. +This file is normally interpreted by \fINNTPsendpassword()\fR in \fIlibinn\fR\|(3). +Blank lines and lines beginning with a number sign (\f(CW\*(C`#\*(C'\fR) are ignored. +All other lines should consist of three or four fields separated by +colons: +.PP +.Vb 2 +\& host:name:password +\& host:name:password:style +.Ve +.PP +The first field is the name of a host, and is matched in a +case-insensitive manner. (No detailed matching, such as comparing \s-1IP\s0 +addresses, is done.) +.PP +The second field is a user name, and the third is a password. If either +the username or password is empty, then that portion of the +authentication will not occur. (For example, when connecting to a +remote \s-1INN\s0 for peering, only the password is needed.) .PP -The first field is the name of a host, and is matched in a case-insensitive -manner. -The second field is a user name, and the third is a password. The optional fourth field specifies the type of authentication to use. -The default is ``authinfo'' which means that NNTP ``authinfo'' -commands are used to authenticate to the remote host. -If either the username or password are empty, then the related command will -not be sent. -(The ``authinfo'' command is a common extension to RFC 977.) +At present, the only recognized \*(L"authentication style\*(R" is \f(CW\*(C`authinfo\*(C'\fR; +this is also the default. It means that \s-1NNTP\s0 \*(L"authinfo\*(R" commands are +used to authenticate to the remote host. (The \f(CW\*(C`authinfo\*(C'\fR command is a +common extension to \s-1RFC\s0 977.) .PP For example: -.RS -.nf -## UUNET needs a password, MIT doesn't. -mit.edu:bbn::authinfo -uunet.uu.net:bbn:yoyoma:authinfo -.fi -.RE .PP -This file should not be world-readable. -.SH HISTORY -Written by Rich $alz for InterNetNews. -.de R$ -This is revision \\$3, dated \\$4. -.. -.R$ $Id: passwd.nntp.5,v 1.5 1998/04/09 15:16:15 mibsoft Exp $ +.Vb 3 +\& ## UUNET needs a password, MIT doesn't. +\& mit.edu:bbn::authinfo +\& uunet.uu.net:bbn:yoyoma:authinfo +.Ve +.PP +This file should not be world\-readable. +.SH "HISTORY" +.IX Header "HISTORY" +Written by Rich \f(CW$alz\fR for InterNetNews. This is +revision \f(CW$Revision: 1.5.6.1 $, dated \f(CW$Date: 2002/02/03 19:07:50 $. +.PP +$Id: passwd.nntp.5,v 1.5.6.1 2002/02/03 19:07:50 vinocur Exp $ .SH "SEE ALSO" -inn.conf(5), -innd(8), -libinn(3). +.IX Header "SEE ALSO" +\&\fIinn.conf\fR\|(5), \fIinnd\fR\|(8), \fIlibinn\fR\|(3). diff -ruN inn-2.3.2/doc/pod/inn.conf.pod inn-2.3.3/doc/pod/inn.conf.pod --- inn-2.3.2/doc/pod/inn.conf.pod Thu May 3 13:27:32 2001 +++ inn-2.3.3/doc/pod/inn.conf.pod Sun May 5 23:02:07 2002 @@ -514,9 +514,13 @@ =item I -Whether to enable the tracking system for client reading and posting. See -nnrpd.track(5) for more information. This is a boolean value and the -default is false. +Whether to enable the tracking system for client behavior. Tracked +information is recoreded to I/tracklogs/log-ID. ID is determined +by nnrpd's PID and when nnrpd runs. Currenlty that information includes +the messages which tell enabling reader track and where posted article is +tracked. Which user and client, that is recorded, is determined by +nnrpd.track. See nnrpd.track(5) for more information. This is a boolean +value and the default is false. =back @@ -954,8 +958,10 @@ =item I -Wait for this many seconds before noticing inactive channels. The default -value is C<300>. +Wait for this many seconds before noticing inactive channels. +Wait for this many seconds before innd processes article when it's paused +or the number of channel write failure exceeds I. The +default value is C<300>. =item I @@ -1102,7 +1108,7 @@ Written by Rich $alz for InterNetNews and since modified, updated, and reorganized by innumerable other people. -$Id: inn.conf.pod,v 1.12.2.6 2001/01/16 14:01:33 rra Exp $ +$Id: inn.conf.pod,v 1.12.2.9 2002/03/23 10:28:07 kondou Exp $ =head1 SEE ALSO diff -ruN inn-2.3.2/doc/pod/install.pod inn-2.3.3/doc/pod/install.pod --- inn-2.3.2/doc/pod/install.pod Thu May 3 13:27:32 2001 +++ inn-2.3.3/doc/pod/install.pod Sun May 5 23:02:07 2002 @@ -26,6 +26,8 @@ versa). If you don't remember what options you used but you have your old build tree, look at the comments at the beginning of F. +For more information about recent changes, see F. + =head1 Supported Systems INN has been confirmed to work on the following operating systems: @@ -34,6 +36,7 @@ FreeBSD 2.2.x and up HP-UX 10.20 and up Linux 2.x (tested with libc 5.4 or glibc 2.0 and up) + OpenBSD 2.8 and up SCO 5.0.4 (tested with gcc 2.8.1 and cc) Solaris 2.5.x and up UnixWare 7.1 @@ -72,7 +75,7 @@ and INN is tested primarily with newer versions of Perl, so it's highly recommended that you install the latest stable distribution of Perl before compiling INN. For instructions on obtaining and installing Perl, see -. +. =item * @@ -90,9 +93,8 @@ version of PGP. The recommended version is GnuPG, since it's actively developed, supports OpenPGP, is freely available and free to use for any purpose (including in the US), and (as of version 1.0.4 at least) supports -RSA signatures used by most current control message senders. You need to -install both GnuPG and pgpgpg from ; a link for -pgpgpg is under "Front ends." +RSA signatures used by most current control message senders. You can get +GnuPG from . Alternately, you can install PGP from or one of the international versions of it. Be warned, however, that the licensing diff -ruN inn-2.3.2/doc/pod/news.pod inn-2.3.3/doc/pod/news.pod --- inn-2.3.2/doc/pod/news.pod Thu May 3 13:27:32 2001 +++ inn-2.3.3/doc/pod/news.pod Sun May 5 23:02:07 2002 @@ -1,3 +1,64 @@ +=head1 Changes from 2.3.2 to 2.3.3 + +=over 2 + +=item * + +pgpverify now supports using GnuPG to check signatures (rather than PGP) +without the pgpgpg wrapper. GnuPG can check both old-style RSA signatures +and new OpenPGP signatures and is recommended over PGP 2.6. If you have +GnuPG installed, pgpverify will use it rather than PGP, which means that +you may have to create a new key ring for GnuPG to use to verify signatures +if you were previously using PGP. + +=item * + +An item that was noted in NEWS below but was inadvertently left out of +nnrpd has actually been added this time: users can no longer post +articles containing Approved: headers to moderated groups by default; +they must be specifically given that permission with the access: +parameter in readers.conf. See the man page for more details. + +=item * + +Two bugs in repacking overview index files and a reliability bug with +writing overview data were all fixed in the tradindexed overview method, +hopefully making it somewhat more reliable, particularly for makehistory. + +=item * + +If rc.news.local exists in the INN binary directory, it will be run with +the start or stop argument whenever rc.news is run. This is available +as a hook for local startup and shutdown code. + +=item * + +The default history table hash sizes were increased because a too-small +value can cause serious performance problems (whereas a too-large hash +just wastes a bit of disk space). + +=item * + +The sample control.ctl file has been extensively updated. + +=item * + +Wildmat exclusions (@ and !) should now work properly in storage.conf +newsgroup patterns. + +=item * + +The implementation of the -w flag for expireover was fixed; previously, +the value given to -w to change expireover's notion of the current time +was scaled by too much. + +=item * + +Various other more minor bug fixes, standards compliance fixes, and +documentation improvements. + +=back + =head1 Changes from 2.3.1 to 2.3.2 =over 2 diff -ruN inn-2.3.2/doc/pod/passwd.nntp.pod inn-2.3.3/doc/pod/passwd.nntp.pod --- inn-2.3.2/doc/pod/passwd.nntp.pod Wed Dec 31 16:00:00 1969 +++ inn-2.3.3/doc/pod/passwd.nntp.pod Sun May 5 23:02:07 2002 @@ -0,0 +1,51 @@ +=head1 NAME + +passwd.nntp - passwords for connecting to remote NNTP servers + +=head1 DESCRIPTION + +The file F in I contains host / name / password +triplets for use when authenticating client programs to NNTP servers. +This file is normally interpreted by NNTPsendpassword() in libinn(3). +Blank lines and lines beginning with a number sign (C<#>) are ignored. +All other lines should consist of three or four fields separated by +colons: + + host:name:password + host:name:password:style + +The first field is the name of a host, and is matched in a +case-insensitive manner. (No detailed matching, such as comparing IP +addresses, is done.) + +The second field is a user name, and the third is a password. If either +the username or password is empty, then that portion of the +authentication will not occur. (For example, when connecting to a +remote INN for peering, only the password is needed.) + +The optional fourth field specifies the type of authentication to use. +At present, the only recognized "authentication style" is C; +this is also the default. It means that NNTP "authinfo" commands are +used to authenticate to the remote host. (The C command is a +common extension to RFC 977.) + +For example: + + ## UUNET needs a password, MIT doesn't. + mit.edu:bbn::authinfo + uunet.uu.net:bbn:yoyoma:authinfo + +This file should not be world-readable. + +=head1 HISTORY + +Written by Rich $alz for InterNetNews. This is +revision $Revision: 1.2.2.1 $, dated $Date: 2002/02/03 19:07:50 $. + +$Id: passwd.nntp.pod,v 1.2.2.1 2002/02/03 19:07:50 vinocur Exp $ + +=head1 SEE ALSO + +inn.conf(5), innd(8), libinn(3). + +=cut diff -ruN inn-2.3.2/doc/pod/readme.pod inn-2.3.3/doc/pod/readme.pod --- inn-2.3.2/doc/pod/readme.pod Thu May 3 13:27:32 2001 +++ inn-2.3.3/doc/pod/readme.pod Sun May 5 23:02:07 2002 @@ -249,7 +249,7 @@ =item suck -URL: +URL: suck is a separate package for downloading a news feed via a reading connection (rather than via a direct NNTP or UUCP feed) and sending diff -ruN inn-2.3.2/frontends/cnfsstat.in inn-2.3.3/frontends/cnfsstat.in --- inn-2.3.2/frontends/cnfsstat.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/frontends/cnfsstat.in Sun May 5 23:02:07 2002 @@ -1,7 +1,7 @@ #! /usr/bin/perl # fixscript will replace this line with require innshellvars.pl -# $Id: cnfsstat.in,v 1.5.2.10 2000/09/16 08:39:54 hkehoe Exp $ +# $Id: cnfsstat.in,v 1.5.2.11 2001/11/11 13:38:07 kondou Exp $ # # Copyright Andreas Lamrecht 1998 # @@ -62,7 +62,7 @@ if ($OSNAME eq "dec_osf") { sub Sys::Syslog::_PATH_LOG { "/dev/log" } } - Sys::Syslog::setlogsock('unix') if $OSNAME =~ /linux|dec_osf/; + Sys::Syslog::setlogsock('unix') if $OSNAME =~ /linux|freebsd|dec_osf/; } openlog ('cnfsstat', 'pid', $inn::syslog_facility); } else { diff -ruN inn-2.3.2/frontends/innconfval.c inn-2.3.3/frontends/innconfval.c --- inn-2.3.2/frontends/innconfval.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/frontends/innconfval.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Revision: 1.17 $ +/* $Revision: 1.17.2.1 $ ** ** Get a config value from INN. */ @@ -65,8 +65,17 @@ case 4: /* tcl */ if (isnum(val)) printf("set inn_%s %s\n", v, val); - else - printf("set inn_%s \"%s\"\n", v, val); + else { + int i; + + printf("set inn_%s {", v); + for (i = 0; val[i] != '\0'; i++) { + if (strchr ("{}", val[i])) + putchar('\\'); + putchar(val[i]); + } + printf("}\n"); + } break; } } diff -ruN inn-2.3.2/include/config.h.in inn-2.3.3/include/config.h.in --- inn-2.3.2/include/config.h.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/include/config.h.in Sun May 5 23:02:07 2002 @@ -1,5 +1,5 @@ /* include/config.h.in. Generated automatically from configure.in by autoheader. */ -/* $Revision: 1.64.2.4 $ +/* $Revision: 1.64.2.5 $ ** ** Here be configuration data used by various InterNetNews programs. This ** file is used as source for the autoheader script, which from it and @@ -220,9 +220,6 @@ /* Define if you have the setproctitle function. */ #undef HAVE_SETPROCTITLE -/* Define if you have OpenSSL available. */ -#undef HAVE_SSL - /* Define if defines the SUN_LEN macro. */ #undef HAVE_SUN_LEN @@ -497,6 +494,12 @@ /* Define if you have the shadow library (-lshadow). */ #undef HAVE_LIBSHADOW + +/* Define if you have a dbm library. */ +#undef HAVE_DBM + +/* Define if OpenSSL is available. */ +#undef HAVE_SSL /* Define if your struct tm has a tm_gmtoff member. */ #undef HAVE_TM_GMTOFF diff -ruN inn-2.3.2/include/innconf.h inn-2.3.3/include/innconf.h --- inn-2.3.2/include/innconf.h Thu May 3 13:27:32 2001 +++ inn-2.3.3/include/innconf.h Sun May 5 23:02:07 2002 @@ -2,7 +2,7 @@ These are the definitions used for inn.conf variables and used primarily in lib/getconfig.c - $Header: /home/kondou/news/inn/repository/inn/include/innconf.h,v 1.33 1999/12/17 17:00:51 kondou Exp $ + $Header: /dist1/cvs/isc/inn/inn/include/innconf.h,v 1.33 1999/12/17 17:00:51 kondou Exp $ */ /* diff -ruN inn-2.3.2/include/inndcomm.h inn-2.3.3/include/inndcomm.h --- inn-2.3.2/include/inndcomm.h Thu May 3 13:27:32 2001 +++ inn-2.3.3/include/inndcomm.h Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Revision: 1.7 $ +/* $Revision: 1.7.2.1 $ ** ** Here be values used for communicating with the server once it is ** running. @@ -9,7 +9,7 @@ #endif /* __cplusplus */ /* The header for the ICC protocol is a one-byte protocol version followed - by a 4 byte messages length*/ + by a 2 byte messages length*/ #define HEADER_SIZE (sizeof (ICC_PROTOCOLTYPE) + sizeof (ICC_MSGLENTYPE)) typedef short ICC_MSGLENTYPE; /* Length code to prefix commands to diff -ruN inn-2.3.2/include/libinn.h inn-2.3.3/include/libinn.h --- inn-2.3.2/include/libinn.h Thu May 3 13:27:32 2001 +++ inn-2.3.3/include/libinn.h Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: libinn.h,v 1.74.2.3 2000/09/30 01:03:44 hkehoe Exp $ +/* $Id: libinn.h,v 1.74.2.4 2002/03/25 19:48:43 rra Exp $ ** ** Here be declarations of functions in the InterNetNews library. */ @@ -260,8 +260,9 @@ extern int wildmat(const char *text, const char *p); extern pid_t waitnb(int *statusp); extern int xread(int fd, char *p, OFFSET_T i); -extern int xwrite(int fd, char *p, int i); -extern int xwritev(int fd, struct iovec *vp, int vpcount); +extern ssize_t xpwrite(int fd, const void *buffer, size_t size, off_t offset); +extern ssize_t xwrite(int fd, const void *buffer, size_t size); +extern ssize_t xwritev(int fd, const struct iovec *iov, int iovcnt); extern int GetResourceUsage(double *usertime, double *systime); extern int SetNonBlocking(int fd, BOOL flag); extern void CloseOnExec(int fd, int flag); diff -ruN inn-2.3.2/innd/art.c inn-2.3.3/innd/art.c --- inn-2.3.2/innd/art.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/innd/art.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: art.c,v 1.131.2.14 2001/02/06 15:07:07 kondou Exp $ +/* $Id: art.c,v 1.131.2.15 2001/07/28 09:36:58 rra Exp $ ** ** Article-processing. */ @@ -24,6 +24,10 @@ #define EXECUTE_BITS 0111 #endif /* defined(S_IXUSR) */ +#if !defined(S_ISDIR) +#define S_ISDIR(mode) (((mode) & 0xF000) == 0x4000) +#endif + /* ** For speed we build a binary tree of the headers, sorted by their @@ -1137,7 +1141,8 @@ FileGlue(buff, innconf->pathcontrol, '/', _PATH_BADCONTROLPROG); else { FileGlue(buff, innconf->pathcontrol, '/', Control); - if (stat(buff, &Sb) < 0 || (Sb.st_mode & EXECUTE_BITS) == 0) + if (stat(buff, &Sb) < 0 || (Sb.st_mode & EXECUTE_BITS) == 0 + || S_ISDIR(Sb.st_mode)) FileGlue(buff, innconf->pathcontrol, '/', _PATH_BADCONTROLPROG); } diff -ruN inn-2.3.2/innd/innd.c inn-2.3.3/innd/innd.c --- inn-2.3.2/innd/innd.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/innd/innd.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: innd.c,v 1.62.2.3 2000/09/04 22:10:21 kondou Exp $ +/* $Id: innd.c,v 1.62.2.4 2002/03/25 02:42:38 rra Exp $ ** ** Variable definitions, miscellany, and main(). */ @@ -847,6 +847,19 @@ if ((i = getfdcount()) < 0) { syslog(L_FATAL, "%s cant getfdcount %m", LogName); exit(1); + } + + /* There is no file descriptor limit on some hosts; for those, cap at + MaxOutgoing plus maxconnections plus 20, or 5000, whichever is larger. + Otherwise, we use insane amounts of memory for the channel table. + FIXME: Get rid of this hard-coded constant. */ + if (i > 5000) { + int max; + + max = innconf->maxconnections + MaxOutgoing + 20; + if (max < 5000) + max = 5000; + i = max; } syslog(L_NOTICE, "%s descriptors %d", LogName, i); if (MaxOutgoing == 0) { diff -ruN inn-2.3.2/innd/nc.c inn-2.3.3/innd/nc.c --- inn-2.3.2/innd/nc.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/innd/nc.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: nc.c,v 1.56.2.3 2000/07/27 12:49:04 kondou Exp $ +/* $Id: nc.c,v 1.56.2.4 2002/04/18 00:37:44 rra Exp $ ** ** Routines for the NNTP channel. Other channels get the descriptors which ** we turn into NNTP channels, and over which we speak NNTP. @@ -333,7 +333,6 @@ SMfreearticle(art); /* Write the message. */ - p = TokenToText(*token); buff = NEW(char, strlen(p) + 16); (void)sprintf(buff, "%d 0 %s", NNTP_NOTHING_FOLLOWS_VAL, p); NCwritereply(cp, buff); diff -ruN inn-2.3.2/innd/python.c inn-2.3.3/innd/python.c --- inn-2.3.2/innd/python.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/innd/python.c Sun May 5 23:02:07 2002 @@ -1,5 +1,5 @@ /* -** $Id: python.c,v 1.5.2.1 2000/12/10 12:55:58 kondou Exp $ +** $Id: python.c,v 1.5.2.2 2001/10/04 01:35:40 kondou Exp $ ** ** python.c: Embed Python in the style of innd's TCL and Perl stuff. ** @@ -526,7 +526,7 @@ p = wpos; q = workstring; for (i=0 ; ivalue_idx ; i++) { - if (strncmp (s->values[i]->name,name,p - name) == 0) + if (strlen (s->values[i]->name) == p - name && + strncmp (s->values[i]->name,name,p - name) == 0) { if (*p == '\0') /* last segment of name */ return s->values[i] ; diff -ruN inn-2.3.2/innfeed/misc.c inn-2.3.3/innfeed/misc.c --- inn-2.3.2/innfeed/misc.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/innfeed/misc.c Sun May 5 23:02:07 2002 @@ -4,7 +4,7 @@ * Start Date: Wed Dec 27 17:10:18 1995 * Project: INN (innfeed) * File: misc.c - * RCSId: $Id: misc.c,v 1.8.2.4 2001/04/12 16:20:24 rra Exp $ + * RCSId: $Id: misc.c,v 1.8.2.5 2001/06/19 22:54:28 kondou Exp $ * * Copyright: Copyright (c) 1996 by Internet Software Consortium * @@ -29,7 +29,7 @@ */ #if ! defined (lint) -static const char *rcsid = "$Id: misc.c,v 1.8.2.4 2001/04/12 16:20:24 rra Exp $" ; +static const char *rcsid = "$Id: misc.c,v 1.8.2.5 2001/06/19 22:54:28 kondou Exp $" ; static void use_rcsid (const char *rid) { /* Never called */ use_rcsid (rcsid) ; use_rcsid (rid) ; } @@ -154,7 +154,10 @@ } else { - dolog (level,fmt,ap) ; + char buffer [512] ; + + vsnprintf (buffer,sizeof (buffer),fmt,ap) ; + syslog (level,buffer) ; } va_end (ap) ; } diff -ruN inn-2.3.2/lib/Makefile inn-2.3.3/lib/Makefile --- inn-2.3.2/lib/Makefile Thu May 3 13:27:32 2001 +++ inn-2.3.3/lib/Makefile Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -## $Id: Makefile,v 1.49.2.4 2001/01/11 08:09:10 rra Exp $ +## $Id: Makefile,v 1.49.2.5 2002/03/25 19:48:44 rra Exp $ include ../Makefile.global @@ -16,7 +16,7 @@ md5.c nonblocking.c parsedate.c perl.c qio.c radix32.c readin.c \ remopen.c reservedfd.c resource.c rwlock.c sendarticle.c \ sendpass.c tempname.c waitnb.c wildmat.c version.c xfopena.c \ - xmalloc.c xsignal.c xwrite.c xwritev.c + xmalloc.c xsignal.c xwrite.c OBJECTS = $(MISSING_OBJ) \ argparse.o checkart.o cleanfrom.o clientactive.o clientlib.o \ @@ -26,7 +26,7 @@ md5.o nonblocking.o parsedate.o qio.o radix32.o readin.o \ remopen.o reservedfd.o resource.o rwlock.o sendarticle.o \ sendpass.o tempname.o waitnb.o wildmat.o version.o xfopena.o \ - xmalloc.o xsignal.o xwrite.o xwritev.o + xmalloc.o xsignal.o xwrite.o LOBJECTS= $(OBJECTS:.o=.lo) @@ -97,8 +97,6 @@ # DO NOT DELETE THIS LINE -- make depend depends on it. setenv.o: setenv.c ../include/configdata.h ../include/config.h \ ../include/clibrary.h ../include/libinn.h ../include/macros.h -hstrerror.o: hstrerror.c ../include/configdata.h ../include/config.h \ - ../include/clibrary.h argparse.o: argparse.c ../include/configdata.h ../include/config.h \ ../include/clibrary.h ../include/libinn.h ../include/macros.h checkart.o: checkart.c ../include/configdata.h ../include/config.h \ @@ -190,7 +188,5 @@ ../include/clibrary.h xmalloc.o: xmalloc.c ../include/config.h ../include/libinn.h xsignal.o: xsignal.c ../include/config.h ../include/libinn.h -xwrite.o: xwrite.c ../include/configdata.h ../include/config.h \ - ../include/clibrary.h -xwritev.o: xwritev.c ../include/configdata.h ../include/config.h \ - ../include/clibrary.h +xwrite.o: xwrite.c ../include/config.h ../include/clibrary.h \ + ../include/libinn.h ../include/macros.h diff -ruN inn-2.3.2/lib/clientactive.c inn-2.3.3/lib/clientactive.c --- inn-2.3.2/lib/clientactive.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/lib/clientactive.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Revision: 1.7 $ +/* $Revision: 1.7.2.1 $ ** */ #include @@ -95,8 +95,10 @@ FILE *CAlistopen(FILE *FromServer, FILE *ToServer, char *request) { /* Gotta talk to the server -- see if we can. */ - if (FromServer == NULL || ToServer == NULL) + if (FromServer == NULL || ToServer == NULL) { + errno = EBADF; return NULL; + } (void)sprintf(CApathname, "%.220s/%s", innconf->pathtmp, _PATH_TEMPACTIVE); (void)mktemp(CApathname); diff -ruN inn-2.3.2/lib/dbz.c inn-2.3.3/lib/dbz.c --- inn-2.3.2/lib/dbz.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/lib/dbz.c Sun May 5 23:02:07 2002 @@ -169,16 +169,20 @@ * make it a bit easier if we want to store more in here. */ -/* A new, from-scratch database, not built as a rebuild of an old one, - * needs to know table size. Normally the user supplies this info, - * but there have to be defaults. +/* A new, from-scratch database, not built as a rebuild of an old one, needs + * to know table size. Normally the user supplies this info, but there have + * to be defaults. Making this too small can have devestating effects on + * history speed for the current history implementation whereas making it too + * big just wastes disk space, so err on the side of caution. This may still + * be a bit too small. Assume people using tagged hash are running somewhat + * smaller servers. */ #ifndef DEFSIZE #ifdef DO_TAGGED_HASH -#define DEFSIZE 500009 /* I need a prime number */ +#define DEFSIZE 1000003 /* I need a prime number */ #else -#define DEFSIZE 750000 +#define DEFSIZE 10000000 #endif #endif /* DEFSIZE */ diff -ruN inn-2.3.2/lib/endian.c inn-2.3.3/lib/endian.c --- inn-2.3.2/lib/endian.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/lib/endian.c Sun May 5 23:02:07 2002 @@ -98,6 +98,8 @@ store(p, i); load_and_store(p, 1); } + /* simply here so the compiler can't optimise everything away */ + memchr(byte, '\0', sizeof byte); /* if we got here, then we can mis-align longs */ printf("#undef INN_MUST_ALIGN\n"); diff -ruN inn-2.3.2/lib/xwrite.c inn-2.3.3/lib/xwrite.c --- inn-2.3.2/lib/xwrite.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/lib/xwrite.c Sun May 5 23:02:07 2002 @@ -1,21 +1,166 @@ -/* $Revision: 1.2 $ +/* $Id: xwrite.c,v 1.2.6.1 2002/03/25 19:48:44 rra Exp $ ** +** write and writev replacements to handle partial writes. +** +** Usage: +** +** ssize_t xwrite(int fildes, const void *buf, size_t nbyte); +** ssize_t xpwrite(int fildes, const void *buf, size_t nbyte, +** off_t offset); +** ssize_t xwritev(int fildes, const struct iovec *iov, int iovcnt); +** +** xwrite, xpwrite, and xwritev behave exactly like their C library +** counterparts except that, if write or writev succeeds but returns a number +** of bytes written less than the total bytes, the write is repeated picking +** up where it left off until the full amount of the data is written. The +** write is also repeated if it failed with EINTR. The write will be aborted +** after 10 successive writes with no forward progress. +** +** Both functions return the number of bytes written on success or -1 on an +** error, and will leave errno set to whatever the underlying system call +** set it to. Note that it is possible for a write to fail after some data +** was written, on the subsequent additional write; in that case, these +** functions will return -1 and the number of bytes actually written will +** be lost. */ -#include -#include -#include "configdata.h" + +#include "config.h" #include "clibrary.h" #include +#include -/* -** Keep writing until everything has been written or we get an error. -*/ -int xwrite(int fd, char *p, int i) +#include "libinn.h" +#include "macros.h" + +/* If we're running the test suite, call testing versions of the write + functions. #undef pwrite first because large file support may define a + macro pwrite (pointing to pwrite64) on some platforms (e.g. Solaris). */ +#if TESTING +# undef pwrite +# define pwrite fake_pwrite +# define write fake_write +# define writev fake_writev +ssize_t fake_pwrite(int, const void *, size_t, off_t); +ssize_t fake_write(int, const void *, size_t); +ssize_t fake_writev(int, const struct iovec *, int); +#endif + +ssize_t +xwrite(int fd, const void *buffer, size_t size) +{ + size_t total; + ssize_t status; + int count = 0; + + /* Abort the write if we try ten times with no forward progress. */ + for (total = 0; total < size; total += status) { + if (++count > 10) + break; + status = write(fd, (const char *) buffer + total, size - total); + if (status > 0) + count = 0; + if (status < 0) { + if (errno != EINTR) + break; + status = 0; + } + } + return (total < size) ? -1 : (ssize_t) total; +} + +ssize_t +xpwrite(int fd, const void *buffer, size_t size, off_t offset) { - int c; + size_t total; + ssize_t status; + int count = 0; + + /* Abort the write if we try ten times with no forward progress. */ + for (total = 0; total < size; total += status) { + if (++count > 10) + break; + status = pwrite(fd, (const char *) buffer + total, size - total, + offset + total); + if (status > 0) + count = 0; + if (status < 0) { + if (errno != EINTR) + break; + status = 0; + } + } + return (total < size) ? -1 : (ssize_t) total; +} + +ssize_t +xwritev(int fd, const struct iovec iov[], int iovcnt) +{ + ssize_t total, status = 0; + size_t left, offset; + int iovleft, i, count; + struct iovec *tmpiov; + + /* Get a count of the total number of bytes in the iov array. */ + for (total = 0, i = 0; i < iovcnt; i++) + total += iov[i].iov_len; + + /* First, try just writing it all out. Most of the time this will + succeed and save us lots of work. Abort the write if we try ten times + with no forward progress. */ + count = 0; + do { + if (++count > 10) + break; + status = writev(fd, iov, iovcnt); + if (status > 0) + count = 0; + } while (status < 0 && errno == EINTR); + if (status < 0) + return -1; + if (status == total) + return total; + + /* If we fell through to here, the first write partially succeeded. + Figure out how far through the iov array we got, and then duplicate + the rest of it so that we can modify it to reflect how much we manage + to write on successive tries. */ + offset = status; + left = total - offset; + for (i = 0; offset >= (size_t) iov[i].iov_len; i++) + offset -= iov[i].iov_len; + iovleft = iovcnt - i; + tmpiov = NEW(struct iovec, iovleft); + memcpy(tmpiov, iov + i, iovleft * sizeof(struct iovec)); + + /* status now contains the offset into the first iovec struct in tmpiov. + Go into the write loop, trying to write out everything remaining at + each point. At the top of the loop, status will contain a count of + bytes written out at the beginning of the set of iovec structs. */ + i = 0; + do { + if (++count > 10) + break; + + /* Skip any leading data that has been written out. */ + for (; offset >= (size_t) tmpiov[i].iov_len && iovleft > 0; i++) { + offset -= tmpiov[i].iov_len; + iovleft--; + } + tmpiov[i].iov_base = (char *) tmpiov[i].iov_base + offset; + tmpiov[i].iov_len -= offset; + + /* Write out what's left and return success if it's all written. */ + status = writev(fd, tmpiov + i, iovleft); + if (status <= 0) + offset = 0; + else { + offset = status; + left -= offset; + count = 0; + } + } while (left > 0 && (status >= 0 || errno == EINTR)); - for ( ; i; p += c, i -= c) - if ((c = write(fd, (POINTER)p, (SIZE_T)i)) <= 0) - return -1; - return 0; + /* We're either done or got an error; if we're done, left is now 0. */ + free(tmpiov); + return (left == 0) ? total : -1; } diff -ruN inn-2.3.2/lib/xwritev.c inn-2.3.3/lib/xwritev.c --- inn-2.3.2/lib/xwritev.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/lib/xwritev.c Wed Dec 31 16:00:00 1969 @@ -1,38 +0,0 @@ -/* $Revision: 1.2 $ -** -*/ -#include -#include -#include "configdata.h" -#include "clibrary.h" -#include -#include - - -/* -** Do a writev, return -1 on error; 0 if okay. Handling the return value -** of writev is a pain. It should return the number of iov's it fully -** wrote out, and update the fields in all of them to contain the new -** startpoints. -*/ -int xwritev(int fd, struct iovec *vp, int vpcount) -{ - int i; - long left; - - /* Get the total bytecount. */ - for (left = 0, i = vpcount; --i >= 0; ) - left += vp[i].iov_len; - - while (vpcount) { - if ((i = writev(fd, vp, vpcount)) < 0) - return -1; - if ((left -= i) <= 0) - break; - for (; i >= vp->iov_len; vp++, vpcount--) - i -= vp->iov_len; - vp->iov_base = ((char *) vp->iov_base) + i; - vp->iov_len -= i; - } - return 0; -} diff -ruN inn-2.3.2/nnrpd/commands.c inn-2.3.3/nnrpd/commands.c --- inn-2.3.2/nnrpd/commands.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/nnrpd/commands.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: commands.c,v 1.40.2.2 2000/10/01 22:56:09 kondou Exp $ +/* $Id: commands.c,v 1.40.2.3 2002/01/22 02:35:49 vinocur Exp $ ** ** Miscellaneous commands. */ @@ -90,6 +90,7 @@ PERMcanread = FALSE; PERMcanpost = FALSE; PERMaccessconf->locpost = FALSE; + PERMaccessconf->allowapproved = FALSE; if (!*av) { Reply("%d no authenticator\r\n", NNTP_SYNTAX_VAL); @@ -194,6 +195,7 @@ PERMcanpost = strchr(fields[1], 'P') != NULL; PERMaccessconf->locpost = strchr(fields[1], 'L') != NULL; if (strchr(fields[1], 'N') != NULL) PERMaccessconf->allownewnews = TRUE; + PERMaccessconf->allowapproved = strchr(fields[1], 'A') != NULL; sprintf(PERMuser, "%s@%s", fields[2], fields[0]); (void)strcpy(PERMpass, fields[3]); (void)strcpy(accesslist, fields[4]); diff -ruN inn-2.3.2/nnrpd/group.c inn-2.3.3/nnrpd/group.c --- inn-2.3.2/nnrpd/group.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/nnrpd/group.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Revision: 1.41 $ +/* $Revision: 1.41.2.3 $ ** ** Newsgroups and the active file. */ @@ -31,14 +31,19 @@ /* Parse arguments. */ if (ac == 1) { + if (GRPcur == NULL) { Printf("%d No group specified\r\n", NNTP_XGTITLE_BAD); return; + } else { + group = COPY(GRPcur); + } } else { - group = av[1]; + group = COPY(av[1]); } if (!OVgroupstats(group, &ARTlow, &ARThigh, &count, NULL)) { Reply("%s %s\r\n", NOSUCHGROUP, group); + DISPOSE(group); return; } @@ -53,6 +58,7 @@ if (reply != NULL) { syslog(L_TRACE, "PY_authorize() returned a refuse string for user %s at %s who wants to read %s: %s", PERMuser, ClientHost, group, reply); Reply("%d %s\r\n", NNTP_ACCESS_VAL, reply); + DISPOSE(group); return; } } @@ -65,10 +71,12 @@ grplist[1] = NULL; if (!PERMmatch(PERMreadlist, grplist)) { Reply("%s %s\r\n", NOSUCHGROUP, group); + DISPOSE(group); return; } } else { Reply("%s %s\r\n", NOSUCHGROUP, group); + DISPOSE(group); return; } @@ -95,7 +103,7 @@ if ((handle = OVopensearch(group, ARTlow, ARThigh)) != NULL) { Reply("%d Article list follows\r\n", NNTP_GROUPOK_VAL); while (OVsearch(handle, &i, NULL, NULL, &token, NULL)) { - if (!ARTinstorebytoken(token)) + if (PERMaccessconf->nnrpdcheckart && !ARTinstorebytoken(token)) continue; Printf("%ld\r\n", i); } @@ -110,6 +118,7 @@ Reply("%s %s\r\n", NOSUCHGROUP, group); } } + DISPOSE(group); } diff -ruN inn-2.3.2/nnrpd/misc.c inn-2.3.3/nnrpd/misc.c --- inn-2.3.2/nnrpd/misc.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/nnrpd/misc.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Revision: 1.44.2.2 $ +/* $Revision: 1.44.2.3 $ ** ** Miscellaneous support routines. */ @@ -146,16 +146,34 @@ PERMartok() { static char **grplist; - char *p; + char *p, **grp; if (!PERMspecified) return FALSE; - if ((p = GetHeader("Newsgroups", FALSE)) == NULL) - return 1; - if (NGgetlist(&grplist, p)) - /* No newgroups or null entry. */ - return 1; + if ((p = GetHeader("Xref", FALSE)) == NULL) { + /* in case article does not include Xref */ + if ((p = GetHeader("Newsgroups", FALSE)) == NULL) + if (!NGgetlist(&grplist, p)) + /* No newgroups or null entry. */ + return TRUE; + } else { + /* skip path element */ + if ((p = strchr(p, ' ')) == NULL) + return TRUE; + for (p++ ; *p == ' ' ; p++); + if (*p == '\0') + return TRUE; + if (!NGgetlist(&grplist, p)) + /* No newgroups or null entry. */ + return TRUE; + /* chop ':' and article number */ + for (grp = grplist ; *grp != NULL ; grp++) { + if ((p = strchr(*grp, ':')) == NULL) + return TRUE; + *p = '\0'; + } + } #ifdef DO_PYTHON if (innconf->nnrppythonauth) { @@ -167,7 +185,7 @@ } else { if (reply != NULL) { syslog(L_TRACE, "PY_authorize() returned a refuse string for user %s at %s who wants to read %s: %s", PERMuser, ClientHost, p, reply); - return 1; + return TRUE; } } } diff -ruN inn-2.3.2/nnrpd/nnrpd.c inn-2.3.3/nnrpd/nnrpd.c --- inn-2.3.2/nnrpd/nnrpd.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/nnrpd/nnrpd.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Revision: 1.78.2.20 $ +/* $Revision: 1.78.2.24 $ ** ** NNTP server for readers (NNRP) for InterNetNews. ** This server doesn't do any real load-limiting, except for what has @@ -73,7 +73,8 @@ char *NNRPACCESS = NULL; BOOL ForceReadOnly = FALSE; -char LocalLogFileName[256]; +STATIC char *LocalLogFileName = NULL; +STATIC char *LocalLogDirName; STATIC double STATstart; STATIC double STATfinish; @@ -112,7 +113,7 @@ extern FUNCTYPE CMDstarttls(); #endif -int LLOGenable; +BOOL LLOGenable; extern int TrackClient(); STATIC char CMDfetchhelp[] = "[MessageID|Number]"; @@ -235,6 +236,9 @@ } #endif /* DO_PYTHON */ + if (LocalLogFileName != NULL); + DISPOSE(LocalLogFileName); + exit(x); } @@ -770,7 +774,7 @@ /* Parse arguments. Must COPY() optarg if used because the * TITLEset() routine would clobber it! */ Reject = NULL; - LLOGenable=FALSE; + LLOGenable = FALSE; GRPcur = NULL; MaxBytesPerSecond = 0; strcpy(Username, "unknown"); @@ -888,7 +892,7 @@ syslog(L_FATAL, "nnrpd %s must have group %s", innconf->pathrun, NEWSGRP); exit(1); } else if (pwd->pw_uid != Sb.st_uid) { - syslog(L_FATAL, "nnrpd % must be owned by %s", innconf->pathrun, NEWSUSER); + syslog(L_FATAL, "nnrpd %s must be owned by %s", innconf->pathrun, NEWSUSER); exit(1); } @@ -961,7 +965,7 @@ if (fd < 0) continue; - for (i = 0; (pid = fork()) < 0; i++) { + for (i = 0; i <= MAX_FORKS && (pid = fork()) < 0; i++) { if (i == MAX_FORKS) { syslog(L_FATAL, "cant fork (dropping connection): %m"); continue; @@ -1014,7 +1018,7 @@ if (initialSSL) { sasl_config_read(); ssl_result=tls_init_serverengine(5, /* depth to verify */ - 1, /* can client auth? */ + 0, /* can client auth? */ 0, /* required client to auth? */ (char *)sasl_config_getstring("tls_ca_file", ""), (char *)sasl_config_getstring("tls_ca_path", ""), @@ -1084,19 +1088,28 @@ } if (PERMaccessconf && PERMaccessconf->readertrack || !PERMaccessconf && innconf->readertrack) { + int len; syslog(L_NOTICE, "%s Tracking Enabled (%s)", ClientHost, Username); pid=getpid(); gettimeofday(&tv,NULL); count += pid; vid = tv.tv_sec ^ tv.tv_usec ^ pid ^ count; - sprintf(LocalLogFileName, "%s/tracklogs/log-%ld", innconf->pathlog,vid); - if ((locallog=fopen(LocalLogFileName, "w")) != NULL) { - syslog(L_NOTICE, "%s Local Logging begins (%s) %s",ClientHost, Username, LocalLogFileName); - fprintf(locallog, "%s Tracking Enabled (%s)\n", ClientHost, Username); - fflush(locallog); - LLOGenable=TRUE; + len = strlen("innconf->pathlog") + strlen("/tracklogs/log-") + BUFSIZ; + LocalLogFileName = NEW(char, len); + sprintf(LocalLogFileName, "%s/tracklogs/log-%ld", innconf->pathlog, vid); + if ((locallog = fopen(LocalLogFileName, "w")) == NULL) { + LocalLogDirName = NEW(char, len); + sprintf(LocalLogDirName, "%s/tracklogs", innconf->pathlog); + MakeDirectory(LocalLogDirName, FALSE); + DISPOSE(LocalLogDirName); + } + if (locallog == NULL && (locallog = fopen(LocalLogFileName, "w")) == NULL) { + syslog(L_ERROR, "%s Local Logging failed (%s) %s: %m", ClientHost, Username, LocalLogFileName); } else { - syslog(L_NOTICE, "%s Local Logging failed (%s) %s", ClientHost, Username, LocalLogFileName); + syslog(L_NOTICE, "%s Local Logging begins (%s) %s",ClientHost, Username, LocalLogFileName); + fprintf(locallog, "%s Tracking Enabled (%s)\n", ClientHost, Username); + fflush(locallog); + LLOGenable = TRUE; } } diff -ruN inn-2.3.2/nnrpd/nnrpd.h inn-2.3.3/nnrpd/nnrpd.h --- inn-2.3.2/nnrpd/nnrpd.h Thu May 3 13:27:32 2001 +++ inn-2.3.3/nnrpd/nnrpd.h Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Revision: 1.36.2.4 $ +/* $Revision: 1.36.2.7 $ ** ** Net News Reading Protocol server. */ @@ -65,6 +65,7 @@ char *users; int allownewnews; int locpost; + int allowapproved; int used; int localtime; int strippath; @@ -191,7 +192,7 @@ extern int Argify(); extern NORETURN ExitWithStats(int x, BOOL readconf); extern BOOL GetGroupList(); -extern char *GetHeader(); +extern char *GetHeader(char *header, BOOL IsLineS); extern void GRPreport(); extern void HIScheck(); extern char *HISgetent(); diff -ruN inn-2.3.2/nnrpd/perm.c inn-2.3.3/nnrpd/perm.c --- inn-2.3.2/nnrpd/perm.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/nnrpd/perm.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: perm.c,v 1.17.2.9 2001/04/18 08:02:50 rra Exp $ +/* $Id: perm.c,v 1.17.2.13 2002/01/31 03:48:17 vinocur Exp $ ** ** How to figure out where a user comes from, and what that user can do once ** we know who sie is. @@ -404,22 +404,29 @@ void SetDefaultAccess(ACCESSGROUP *curaccess) { - curaccess->allownewnews = innconf->allownewnews;; + curaccess->allownewnews = innconf->allownewnews; curaccess->locpost = FALSE; + curaccess->allowapproved = FALSE; curaccess->localtime = FALSE; curaccess->strippath = FALSE; curaccess->nnrpdperlfilter = TRUE; curaccess->nnrpdpythonfilter = TRUE; + curaccess->fromhost = NULL; if (innconf->fromhost) curaccess->fromhost = COPY(innconf->fromhost); + curaccess->pathhost = NULL; if (innconf->pathhost) curaccess->pathhost = COPY(innconf->pathhost); + curaccess->organization = NULL; if (innconf->organization) curaccess->organization = COPY(innconf->organization); + curaccess->moderatormailer = NULL; if (innconf->moderatormailer) curaccess->moderatormailer = COPY(innconf->moderatormailer); + curaccess->domain = NULL; if (innconf->domain) curaccess->domain = COPY(innconf->domain); + curaccess->complaints = NULL; if (innconf->complaints) curaccess->complaints = COPY(innconf->complaints); curaccess->spoolfirst = innconf->spoolfirst; @@ -434,6 +441,7 @@ curaccess->nnrpdpostport = innconf->nnrpdpostport; curaccess->nnrpdoverstats = innconf->nnrpdoverstats; curaccess->backoff_auth = innconf->backoff_auth; + curaccess->backoff_db = NULL; if (innconf->backoff_db) curaccess->backoff_db = COPY(innconf->backoff_db); curaccess->backoff_k = innconf->backoff_k; @@ -743,6 +751,7 @@ curaccess->post = 0; CLEAR_CONFIG(PERMpost); } + curaccess->allowapproved = (strchr(tok->name, 'A') != NULL); curaccess->allownewnews = (strchr(tok->name, 'N') != NULL); curaccess->locpost = (strchr(tok->name, 'L') != NULL); SET_CONFIG(oldtype); @@ -1933,7 +1942,7 @@ GetProgInput(foo); done = (ubuf[0] != '\0'); if (done) - syslog(L_TRACE, "%s auth authenticator succesful, user %s", ClientHost, ubuf); + syslog(L_TRACE, "%s auth authenticator successful, user %s", ClientHost, ubuf); else syslog(L_TRACE, "%s auth authenticator failed", ClientHost); DISPOSE(foo); diff -ruN inn-2.3.2/nnrpd/post.c inn-2.3.3/nnrpd/post.c --- inn-2.3.2/nnrpd/post.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/nnrpd/post.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Revision: 1.50.2.7 $ +/* $Revision: 1.50.2.10 $ ** ** Check article, send it to the local server. */ @@ -718,7 +718,9 @@ #endif /* DO_PYTHON */ break; case NF_FLAG_MODERATED: - if (!approved && !*modgroup) { + if (approved && !PERMaccessconf->allowapproved) { + (void)sprintf(Error, "You are not allowed to approve postings"); + } else if (!approved && !*modgroup) { *modgroup = COPY(p); } break; @@ -924,13 +926,12 @@ char buff[NNTP_STRLEN + 2], frombuf[SMBUF]; char *modgroup = NULL; STRING error; - char TrackID[NNTP_STRLEN]; + char *TrackID; + char *DirTrackID; FILE *ftd; - int result; + int result, len; char SDir[255]; - sprintf(TrackID,"%s/trackposts/track.", innconf->pathlog); - /* Set up the other headers list. */ if (OtherHeaders == NULL) { OtherSize = HEADER_DELTA; @@ -1160,34 +1161,48 @@ /* Tracking */ if (PERMaccessconf->readertrack) { - strcat(TrackID,HDR(_messageid)); - if ((ftd=fopen(TrackID,"w")) != NULL) { - for (hp = Table; hp < ENDOF(Table); hp++) - if (hp->Value) { - if (strchr(hp->Value, '\n') != NULL) { - if ((p = Towire(hp->Value)) != NULL) { - (void)fprintf(ftd, "%s: %s\r\n", hp->Name, p); - DISPOSE(p); - } - } - } else { - (void)fprintf(ToServer, "%s: %s\r\n", hp->Name, hp->Value); - } - for (i=0; ipathlog) + strlen("/trackposts/track.") + strlen(HDR(_messageid)) + 1; + TrackID = NEW(char, len); + sprintf(TrackID, "%s/trackposts/track.%s", innconf->pathlog, HDR(_messageid)); + if ((ftd = fopen(TrackID,"w")) == NULL) { + DirTrackID = NEW(char, len); + sprintf(DirTrackID, "%s/trackposts", innconf->pathlog, HDR(_messageid)); + MakeDirectory(DirTrackID, FALSE); + DISPOSE(DirTrackID); + } + if (ftd == NULL && (ftd = fopen(TrackID,"w")) == NULL) { + syslog(L_ERROR, "%s (%s) open %s: %m", + ClientHost, Username, TrackID); + DISPOSE(TrackID); + return NULL; + } + for (hp = Table; hp < ENDOF(Table); hp++) + if (hp->Value) { + if (strchr(hp->Value, '\n') != NULL) { + if ((p = Towire(hp->Value)) != NULL) { + (void)fprintf(ftd, "%s: %s\r\n", hp->Name, p); + DISPOSE(p); + } + } else { + (void)fprintf(ftd, "%s: %s\r\n", hp->Name, hp->Value); + } + } + for (i=0; i; these two files -## will be kept in sync. Please refer to the latest version of this file -## for the most up-to-date hierarchy control information and please use the -## latest version if you intend to carry all hierarchies. You may wish to -## change the policy for alt.*. +## 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 +## news.admin.hierarchies. ## -## Format: +## The canonical version of this file can be found in the latest INN +## release and at ; these +## two files will be kept in sync. Please refer to the latest version of +## this file for the most up-to-date hierarchy control information and +## please use the latest version if you intend to carry all hierarchies. +## You may wish to change the policy for alt.*. +## +## Format: ## ::: ## ## Control message or "all" if it applies to all control @@ -30,76 +35,82 @@ ## tosses the log information, and a relative path xxx ## logs to $LOG/xxx.log. ## -## The *last* matching entry is used. See the expire.ctl(5) man page for -## complete information. -## -## ------------------------------------------------------------------------- +## The *last* matching entry is used. See the expire.ctl(5) man page for +## complete information. ## -## The defaults have changed. +## This file follows the following policies: ## -## Firstly. Most things that caused mail in the past no longer do. This is -## due to proliferation of forged control messages filling up mailboxes. +## * Most unknown or invalid control messages no longer result in mail. +## This is due to the proliferation of forged control messages filling +## up mailboxes. Some news servers even get overwhelmed with trying to +## log failure, so unsigned control messages for hierarchies that use +## PGP are simply dropped. ## -## Secondly, the assumption now is that you have PGP on your system. If you -## don't, then you should get it to help protect youself against all the -## luser control message forgers. If you can't use PGP, then you'll have -## to fix some sections here. Search for *PGP*. At each "*PGP*" found -## you'll need to comment out the block of lines right after it (that have -## 'verify-' in their 4th field). Then uncomment the block of lines that -## comes right after that. You'll also need to turn off pgpverify in -## inn.conf. +## * The assumption is that you now have PGP on your system. If you +## don't, you should get it to help protect yourself against all the +## control message forgeries. See . +## PGP control message verification comes with all versions of INN since +## 1.5, but you will need to install either PGP or GnuPG; see the +## installation instructions for your news server. ## -## For more information on using PGP to verify control messages, upgrade -## to INN 1.5 (or later) or see . +## If for some reason you can't use PGP, search for the *PGP* comments +## and modify the control lines to change "verify-..." in the action +## field to "mail" or "doit=mail" or "doit=" or whatever you +## prefer (replacing with the name of an appropriate log +## file). ## -## ------------------------------------------------------------------------- +## * A number of hierarchies are for local use only but have leaked out +## into the general stream. In this config file, they are set so that +## the groups will be easy to remove, and are marked with a comment of +## *LOCAL* (for use by that organization only, not generally +## distributed), *DEFUNCT* (a hierarchy that's no longer used), or +## *PRIVATE* (should only be carried after making arrangements with the +## given contact address). Please delete all groups in those +## hierarchies from your server if you carry them, unless you've +## contacted the listed contact address and arranged a feed. ## -## A number of hierarchies are for local use only but have leaked out into -## the general stream. In this config file the are set so they are easy to -## remove, marked "local only," "defunct," or "private," and will not be -## added by users of this file. Please delete all groups in those -## hierarchies from your server if you carry them. If you wish to carry -## them please contact the address given to arrange a feed. -## -## If you have permission to carry any of the hierachies so listed in this -## file, you should change the entries for those hierarchies below. +## If you have permission to carry any of the hierachies so listed in +## this file, you should change the entries for those hierarchies below. +## +## 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 +## by scripts into a better database format. Please follow the syntax of +## existing entries when providing new ones. The recognized "fields" are +## Contact (contact e-mail address), URL, Key URL (URL for PGP key), Key +## fingerprint, Key mail (address to mail for PGP key), and Syncable server +## (for actsync or a similar tool). ## ------------------------------------------------------------------------- ## DEFAULT ## ------------------------------------------------------------------------- -all:*:*:mail +# Default to dropping control messages that aren't recognized to allow +# people to experiment without inadvertently mailbombing news admins. +all:*:*:drop ## ------------------------------------------------------------------------- ## CHECKGROUPS MESSAGES ## ------------------------------------------------------------------------- -## Any newsgroup +# Default to mailing all checkgroups messages to the administrator. checkgroups:*:*:mail ## ------------------------------------------------------------------------- -## IHAVE/SENDME MESSAGES +## MISCELLANEOUS CONTROL MESSAGES ## ------------------------------------------------------------------------- +# Mostly only used for UUCP feeds, very rarely used these days. ihave:*:*:drop sendme:*:*:drop -## ------------------------------------------------------------------------- -## SENDSYS -## ------------------------------------------------------------------------- - +# Request to send a copy of the newsfeeds file, intended for mapping +# projects. Almost never used for anything other than mailbombing now. sendsys:*:*:log=sendsys -## ------------------------------------------------------------------------- -## SENDUUNAME -## ------------------------------------------------------------------------- - +# Request to send the server's path entry. Not particularly useful. senduuname:*:*:log=senduuname -## ------------------------------------------------------------------------- -## VERSION -## ------------------------------------------------------------------------- - +# Request to send the server's version number. version:*:*:log=version ## ------------------------------------------------------------------------- @@ -110,42 +121,29 @@ newgroup:*:*:mail rmgroup:*:*:mail -## The Big 8. -## COMP, HUMANITIES, MISC, NEWS, REC, SCI, SOC, TALK - -# If it *doesn't* come from group-admin@isc.org, ignore it silently. +## COMP, HUMANITIES, MISC, NEWS, REC, SCI, SOC, TALK (The Big 8) +# Contact: group-admin@isc.org +# Key fingerprint = F5 35 58 D3 55 64 10 14 07 C6 95 53 13 6F D4 07 +# *PGP* See comment at top of file. newgroup:*:comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:drop rmgroup:*:comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:drop - -# This will weed out forgeries for non-Big 8 hierarchies. newgroup:group-admin@isc.org:*:drop newgroup:tale@*uu.net:*:drop rmgroup:group-admin@isc.org:*:drop rmgroup:tale@*uu.net:*:drop - -# *PGP* See comment at top of file. checkgroups:group-admin@isc.org:*:verify-news.announce.newgroups -newgroup:group-admin@isc.org:comp.*|misc.*|news.*:verify-news.announce.newgroups -newgroup:group-admin@isc.org:rec.*|sci.*|soc.*:verify-news.announce.newgroups -newgroup:group-admin@isc.org:talk.*|humanities.*:verify-news.announce.newgroups -rmgroup:group-admin@isc.org:comp.*|misc.*|news.*:verify-news.announce.newgroups -rmgroup:group-admin@isc.org:rec.*|sci.*|soc.*:verify-news.announce.newgroups -rmgroup:group-admin@isc.org:talk.*|humanities.*:verify-news.announce.newgroups - -# Non-pgp entries, Due to the number of forged messages these are all -# mailed to the NewsAdmin, rmgroups are also not acted upon. -# -# The best idea is to get PGP. -# -# checkgroups:group-admin@isc.org:*:mail -# newgroup:group-admin@isc.org:comp.*|misc.*|news.*|rec.*|sci.*:doit -# newgroup:group-admin@isc.org:soc.*|talk.*|humanities.*:doit -# rmgroup:group-admin@isc.org:comp.*|misc.*|news.*|rec.*|sci.*:mail -# rmgroup:group-admin@isc.org:soc.*|talk.*|humanities.*:mail +newgroup:group-admin@isc.org:comp.*|misc.*:verify-news.announce.newgroups +newgroup:group-admin@isc.org:humanities.*:verify-news.announce.newgroups +newgroup:group-admin@isc.org:news.*|rec.*|sci.*:verify-news.announce.newgroups +newgroup:group-admin@isc.org:soc.*|talk.*:verify-news.announce.newgroups +rmgroup:group-admin@isc.org:comp.*|misc.*:verify-news.announce.newgroups +rmgroup:group-admin@isc.org:humanities.*:verify-news.announce.newgroups +rmgroup:group-admin@isc.org:news.*|rec.*|sci.*:verify-news.announce.newgroups +rmgroup:group-admin@isc.org:soc.*|talk.*:verify-news.announce.newgroups -## ACS & OSU (Ohio State University) +## ACS & OSU (*LOCAL* -- Ohio State University, USA) # Contact: Albert J. School -# secondary contact: Harpal Chohan +# Secondary contact: Harpal Chohan # For local use only, contact the above addresses for information. newgroup:*@*:acs.*|osu.*:mail rmgroup:*@*:acs.*|osu.*:doit @@ -154,82 +152,82 @@ newgroup:greg@*.ucns.uga.edu:ahn.*:doit rmgroup:greg@*.ucns.uga.edu:ahn.*:doit -## AIR ( Internal Stanford University, USA ) +## AIR (*DEFUNCT* -- Stanford University, USA) # Contact: news@news.stanford.edu -# For local use only, contact the above address for information. +# Defunct hierarchy, please remove any groups that you carry. newgroup:*@*:air.*:mail rmgroup:*@*:air.*:doit -## AKR ( Akron, Ohio, USA) +## AKR (Akron, Ohio, USA) newgroup:red@redpoll.mrfs.oh.us:akr.*:doit rmgroup:red@redpoll.mrfs.oh.us:akr.*:doit ## ALABAMA & HSV (Huntsville, Alabama, USA) -# Contact: news@news.msfc.nasa.gov +# Contact: jpc@suespammers.org # *PGP* See comment at top of file. newgroup:*:alabama.*|hsv.*:drop rmgroup:*:alabama.*|hsv.*:drop -checkgroups:news@news.msfc.nasa.gov:alabama.*|hsv.*:verify-alabama-group-admin -newgroup:news@news.msfc.nasa.gov:alabama.*|hsv.*:verify-alabama-group-admin -rmgroup:news@news.msfc.nasa.gov:alabama.*|hsv.*:verify-alabama-group-admin - -# newgroup:news@news.msfc.nasa.gov:alabama.*|hsv.*:doit -# rmgroup:news@news.msfc.nasa.gov:alabama.*|hsv.*:doit +checkgroups:jpc@suespammers.org:alabama.*|hsv.*:verify-alabama-group-admin +newgroup:jpc@suespammers.org:alabama.*|hsv.*:verify-alabama-group-admin +rmgroup:jpc@suespammers.org:alabama.*|hsv.*:verify-alabama-group-admin -## ALIVE +## ALIVE (*DEFUNCT*) # Contact: thijs@kink.xs4all.nl -# No longer used. +# Defunct hierarchy, please remove any groups that you carry. newgroup:*@*:alive.*:mail rmgroup:*@*:alive.*:doit ## ALT -## -## Accept all newgroup's as well as rmgroup's from trusted sources and -## process them silently. Only the rmgroup messages from unknown sources -## will be e-mailed to the administrator. Please note that the people -## listed here are trusted in my opinion only, you opinion my differ. -## -## Other options and comments on alt.* groups can be found on Bill -## Hazelrig's WWW pages at http://www.tezcat.com/~haz1/alt/faqindex.html -## +# +# Accept all newgroups (except ones forged from Big 8 newgroup issuers, +# who never issue alt.* control messages) and silently ignore all +# rmgroups. This file used to attempt to track and recommend trusted +# rmgroup issuers; it no longer does because they change too frequently. +# What policy to use for alt.* groups varies widely from site to site. +# For a small site, it is strongly recommended that this policy be changed +# to drop all newgroups for alt.* as well as rmgroups and that the news +# admin only add new alt.* groups on request, as tons of alt.* newgroups +# are sent out regularly with the intent more to create nonsense entries +# in active files than to actually create a useable newsgroup. +# +# Other options and comments on alt.* groups can be found at +# , one of the many alt.* FAQ sites. Be aware +# that there is no official, generally accepted alt.* policy and all +# information about alt.* groups available is essentially someone's +# opinion, including these comments. There are nearly as many different +# policies with regard to alt.* groups as there are Usenet sites. +# newgroup:*:alt.*:doit newgroup:group-admin@isc.org:alt.*:drop newgroup:tale@*uu.net:alt.*:drop rmgroup:*:alt.*:drop -#rmgroup:haz1@*nwu.edu:alt.*:doit -#rmgroup:grobe@*netins.net:alt.*:doit -#rmgroup:smj@*.oro.net:alt.*:doit -#rmgroup:news@gymnet.com:alt.*:doit -#rmgroup:sjkiii@crl.com:alt.*:doit -#rmgroup:zot@ampersand.com:alt.*:doit -#rmgroup:david@home.net.nz:alt.*:doit -#rmgroup:*@*:alt.config:drop ## AR (Argentina) newgroup:jorge_f@nodens.fisica.unlp.edu.ar:ar.*:doit rmgroup:jorge_f@nodens.fisica.unlp.edu.ar:ar.*:doit -## ARC (NASA Ames Research Center) +## ARC (*LOCAL* -- NASA Ames Research Center, USA) # Contact: news@arc.nasa.gov # For internal use only, contact above address for questions newgroup:*@*:arc.*:mail rmgroup:*@*:arc.*:doit -## ARKANE (Arkane Systems, UK ) +## ARKANE (Arkane Systems, UK) # Contact: newsbastard@arkane.demon.co.uk # URL: http://www.arkane.demon.co.uk/Newsgroups.html checkgroups:newsbastard@arkane.demon.co.uk:arkane.*:mail newgroup:newsbastard@arkane.demon.co.uk:arkane.*:doit rmgroup:newsbastard@arkane.demon.co.uk:arkane.*:doit -## AT (Austrian) +## AT (Austria) checkgroups:control@usenet.backbone.at:at.*:mail newgroup:control@usenet.backbone.at:at.*:doit rmgroup:control@usenet.backbone.at:at.*:doit ## AUS (Australia) # Contact: ausadmin@aus.news-admin.org -# URL: http://aus.news-admin.org/ +# URL: http://aus.news-admin.org/ +# Key URL: http://aus.news-admin.org/ausadmin.asc # *PGP* See comment at top of file. newgroup:*:aus.*:drop rmgroup:*:aus.*:drop @@ -237,7 +235,7 @@ newgroup:ausadmin@aus.news-admin.org:aus.*:verify-ausadmin@aus.news-admin.org rmgroup:ausadmin@aus.news-admin.org:aus.*:verify-ausadmin@aus.news-admin.org -## AUSTIN (Texas, USA) +## AUSTIN (Texas, USA) checkgroups:fletcher@cs.utexas.edu:austin.*:doit checkgroups:chip@unicom.com:austin.*:doit checkgroups:pug@pug.net:austin.*:doit @@ -253,8 +251,9 @@ rmgroup:system@asuvax.eas.asu.edu:az.*:doit ## BA (San Francisco Bay Area, USA) -# Contact: +# Contact: ba-mod@nas.nasa.gov # URL: http://ennui.org/ba/ +# Key URL: http://ennui.org/ba/ba-mod.asc # *PGP* See comment at top of file. newgroup:*:ba.*:drop rmgroup:*:ba.*:drop @@ -262,7 +261,7 @@ newgroup:ba-mod@nas.nasa.gov:ba.*:verify-ba.news.config rmgroup:ba-mod@nas.nasa.gov:ba.*:verify-ba.news.config -## BACKBONE (ruhr.de/ruhrgebiet.individual.net in Germany) +## BACKBONE (*LOCAL* -- ruhr.de/ruhrgebiet.individual.net in Germany) # Contact: admin@ruhr.de # For internal use only, contact above address for questions newgroup:*@*:backbone.*:mail @@ -271,6 +270,7 @@ ## BAYNET (Bayerische Buergernetze, Deutschland) # Contact: news@mayn.de # URL: http://www.mayn.de/users/news/ +# Key URL: http://home.mayn.de/news/pubkey-news.mayn.de # Key fingerprint = F7 AD 96 D8 7A 3F 7E 84 02 0C 83 9A DB 8F EB B8 # Syncable server: news.mayn.de (contact news@mayn.de if permission denied) # *PGP* See comment at top of file. @@ -280,15 +280,16 @@ newgroup:news@mayn.de:baynet.*:verify-news.mayn.de rmgroup:news@mayn.de:baynet.*:verify-news.mayn.de -# newgroup:news@mayn.de:baynet.*:mail -# rmgroup:news@mayn.de:baynet.*:mail -# checkgroups:news@mayn.de:baynet.*:mail +## BC (British Columbia, Canada) +checkgroups:bc_van_usenet@fastmail.ca:bc.*:mail +newgroup:bc_van_usenet@fastmail.ca:bc.*:doit +rmgroup:bc_van_usenet@fastmail.ca:bc.*:doit ## BDA (German groups?) newgroup:news@*netuse.de:bda.*:doit rmgroup:news@*netuse.de:bda.*:doit -## BE (Belgique/Belgie/Belgien/Belgium ) +## BE (Belgique/Belgie/Belgien/Belgium) # Contact: be-hierarchy-admin@usenet.be # URL: http://usenet.be/ # Key URL: http://usenet.be/be.announce.newgroups.asc @@ -300,14 +301,17 @@ newgroup:group-admin@usenet.be:be.*:verify-be.announce.newgroups rmgroup:group-admin@usenet.be:be.*:verify-be.announce.newgroups -# newgroup:group-admin@usenet.be:be.*:doit -# rmgroup:group-admin@usenet.be:be.*:doit - ## BERMUDA newgroup:news@*ibl.bm:bermuda.*:doit rmgroup:news@*ibl.bm:bermuda.*:doit -## BEST ( Best Internet Communications, Inc. ) +## BES (*PRIVATE* -- Bejing Electron Spectrometer) +# Contact: news@news.stanford.edu +# Limited distribution hierarchy, contact the above address for information. +newgroup:news@news.stanford.edu:bes.*:mail +rmgroup:news@news.stanford.edu:bes.*:doit + +## BEST (*LOCAL* -- Best Internet Communications, Inc.) # Contact: news@best.net # For local use only, contact the above address for information. newgroup:*@*:best.*:mail @@ -315,11 +319,7 @@ ## BIONET (Biology Network) # URL: http://www.bio.net/ -# PGP: http://pgp.ai.mit.edu/~bal/pks-commands.html -# -# Biosci-control-key@net.bio.net -# PGP Key fingerprint = EB C0 F1 BA 26 0B C6 D6 FB 8D ED C4 AE 5D 10 54 -# +# Key fingerprint = EB C0 F1 BA 26 0B C6 D6 FB 8D ED C4 AE 5D 10 54 # *PGP* See comment at top of file. newgroup:*:bionet.*:drop rmgroup:*:bionet.*:drop @@ -327,13 +327,14 @@ newgroup:Biosci-control-key@net.bio.net:bionet.*:verify-Biosci-control-key@net.bio.net=newgroup rmgroup:Biosci-control-key@net.bio.net:bionet.*:verify-Biosci-control-key@net.bio.net=rmgroup -## BIRK (University of Oslo, Norway) +## BIRK (*LOCAL* -- University of Oslo, Norway) # Contact: birk-admin@ping.uio.no # For private use only, contact the above address for information. newgroup:*@*:birk.*:drop rmgroup:*@*:birk.*:doit ## BIT (Gatewayed Mailing lists) +# URL: http://www.newsadmin.com/bit/bit.htm # *PGP* See comment at top of file. newgroup:*:bit.*:drop rmgroup:*:bit.*:drop @@ -341,14 +342,11 @@ newgroup:bit@newsadmin.com:bit.*:verify-bit@newsadmin.com rmgroup:bit@newsadmin.com:bit.*:verify-bit@newsadmin.com -# newgroup:bit@newsadmin.com:bit.*:doit -# rmgroup:bit@newsadmin.com:bit.*:doit - ## BIZ (Business Groups) newgroup:edhew@xenitec.on.ca:biz.*:doit rmgroup:edhew@xenitec.on.ca:biz.*:doit -## BLGTN ( Bloomington, In, USA) +## BLGTN (Bloomington, In, USA) newgroup:control@news.bloomington.in.us:blgtn.*:doit rmgroup:control@news.bloomington.in.us:blgtn.*:doit @@ -357,19 +355,19 @@ newgroup:news@*fu-berlin.de:bln.*:doit rmgroup:news@*fu-berlin.de:bln.*:doit -## BOFH ( Bastard Operator From Hell ) +## BOFH (*PRIVATE* -- Bastard Operator From Hell) # Contact: myname@myhost.mydomain.com # For private use only, contact the above address for information. newgroup:*@*:bofh.*:mail rmgroup:*@*:bofh.*:doit ## CA (California, USA) -# URL: http://www.sbay.org/ca/ # Contact: ikluft@thunder.sbay.org +# URL: http://www.sbay.org/ca/ newgroup:ikluft@thunder.sbay.org:ca.*:doit rmgroup:ikluft@thunder.sbay.org:ca.*:doit -## CAIS (Capital Area Internet Services) +## CAIS (*LOCAL* -- Capital Area Internet Services) # Contact: news@cais.com # For local use only, contact the above address for information. newgroup:*@*:cais.*:mail @@ -383,52 +381,48 @@ newgroup:danorton@albany.net:capdist.*:doit rmgroup:danorton@albany.net:capdist.*:doit -## CARLETON (Canadian -- Carleton University) +## CARLETON (Carleton University, Canada) newgroup:news@cunews.carleton.ca:carleton.*:doit newgroup:news@cunews.carleton.ca:carleton*class.*:mail rmgroup:news@cunews.carleton.ca:carleton.*:doit -## CD-ONLINE +## CD-ONLINE (*LOCAL*) # Contact: newsmaster@worldonline.nl # For local use only, contact the above address for information. newgroup:*@*:cd-online.*:mail rmgroup:*@*:cd-online.*:doit -## CENTRAL (The Internet Company of New Zealand, Wellington, NZ ) +## CENTRAL (*LOCAL* -- The Internet Company of New Zealand, Wellington, NZ) # Contact: usenet@iconz.co.nz # For local use only, contact the above address for information. newgroup:*@*:central.*:mail rmgroup:*@*:central.*:doit -## CERN (CERN - European Laboratory for Particle Physics) +## CERN (*PRIVATE* -- CERN European Laboratory for Particle Physics) # Contact: Dietrich Wiegandt # For private use only, contact the above address for information. newgroup:News.Support@cern.ch:cern.*:doit rmgroup:News.Support@cern.ch:cern.*:doit -## CH ( Switzerland ) +## CH (Switzerland) # Contact: ch-news-admin@use-net.ch # URL: http://www.use-net.ch/Usenet/ # Key URL: http://www.use-net.ch/Usenet/adminkey.html -# *PGP* See comment at top of file. # Key fingerprint = 71 80 D6 8C A7 DE 2C 70 62 4A 48 6E D9 96 02 DF +# *PGP* See comment at top of file. newgroup:*:ch.*:drop rmgroup:*:ch.*:drop checkgroups:felix.rauch@nice.ch:ch.*:verify-ch-news-admin@use-net.ch newgroup:felix.rauch@nice.ch:ch.*:verify-ch-news-admin@use-net.ch rmgroup:felix.rauch@nice.ch:ch.*:verify-ch-news-admin@use-net.ch -#checkgroups:felix.rauch@nice.ch:ch.*:doit -#newgroup:felix.rauch@nice.ch:ch.*:doit -#rmgroup:felix.rauch@nice.ch:ch.*:doit - -## CHAVEN (Celestian Haven ISP, USA-Midwest ISP) +## CHAVEN (*LOCAL* -- Celestian Haven ISP, Midwest, USA) # Contact: news@chaven.com # For internal use only, contact above address for questions newgroup:*@*:chaven.*:drop rmgroup:*@*:chaven.*:doit -## CHRISTNET newsgroups +## CHRISTNET (Christian Discussion) checkgroups:news@fdma.com:christnet.*:mail newgroup:news@fdma.com:christnet.*:doit rmgroup:news@fdma.com:christnet.*:doit @@ -439,7 +433,7 @@ rmgroup:lisbon@*interaccess.com:chi.*:doit rmgroup:lisbon@*chi.il.us:chi.*:doit -## CHILE (Chile and Chilean affairs) +## CHILE (Chile and Chilean affairs) # Contact: mod-cga@webhost.cl # URL: http://www.webhost.cl/~mod-cga checkgroups:mod-cga@*webhost.cl:chile.*:mail @@ -460,12 +454,12 @@ newgroup:newsmaster@demon.net:cityscp.*:verify-demon.news rmgroup:newsmaster@demon.net:cityscp.*:verify-demon.news -## CL (CL-Netz, German) -# *PGP* See comment at top of file. +## CL (*PRIVATE* -- CL-Netz, German) # Contact: koordination@cl-netz.de -# For internal use only, contact above address for questions # URL: http://www.cl-netz.de/ # Key URL: http://www.cl-netz.de/control.txt +# For internal use only, contact above address for questions. +# *PGP* See comment at top of file. newgroup:*@*:cl.*:drop rmgroup:*@*:cl.*:doit # The following three lines are only for authorized cl.* sites. @@ -473,11 +467,8 @@ #newgroup:koordination@cl-netz.de:cl.*:verify-cl.netz.infos #rmgroup:koordination@cl-netz.de:cl.*:verify-cl.netz.infos -# checkgroups:koordination@cl-netz.de:cl.*:doit -# newgroup:koordination@cl-netz.de:cl.*:doit -# rmgroup:koordination@cl-netz.de:cl.*:doit - -## CLARINET ( Features and News, Available on a commercial basis) +## CLARINET (Features and News, available on a commercial basis) +# Contact: support@clari.net # *PGP* See comment at top of file. newgroup:*:clari.*:drop rmgroup:*:clari.*:drop @@ -485,36 +476,43 @@ newgroup:cl*@clarinet.com:clari.*:verify-ClariNet.Group rmgroup:cl*@clarinet.com:clari.*:verify-ClariNet.Group -# newgroup:brad@clarinet.com:clari.*:doit -# newgroup:clarinet@clarinet.com:clari.*:doit -# newgroup:clarinet@clarinet.net:clari.*:doit -# rmgroup:brad@clarinet.com:clari.*:doit -# rmgroup:clarinet@clarinet.com:clari.*:doit -# rmgroup:clarinet@clarinet.net:clari.*:doit - -## CMI (University of Illinois, Urbana-Champaign, IL, USA) +## CMI (*LOCAL* -- Champaign County, IL, USA) # Contact: news@uiuc.edu -# For internal use only, contact above address for questions +# For internal use only, contact above address for questions. newgroup:*:cmi.*:drop rmgroup:*:cmi.*:doit -## CMU (Carnegie-Mellon University, Pennsylvania, USA) +## CMU (*LOCAL* -- Carnegie-Mellon University, Pennsylvania, USA) # Contact: Daniel Edward Lovinger -# For internal use only, contact above address for questions +# For internal use only, contact above address for questions. newgroup:*:cmu.*:drop rmgroup:*:cmu.*:doit -## CUHK (Chinese University of Hong Kong) +## CN (China) +# *PGP* See comment at top of file. +newgroup:*:cn.*:drop +rmgroup:*:cn.*:drop +checkgroups:control@bentium.com:cn.*:verify-cn.admin.news.announce +newgroup:control@bentium.com:cn.*:verify-cn.admin.news.announce +rmgroup:control@bentium.com:cn.*:verify-cn.admin.news.announce + +## CN.BBS (China) +# Key URL: http://news.zixia.net/pubkey-cn.bbs.admin.announce +# *PGP* See comment at top of file. +newgroup:news@zixia.net:cn.bbs.*:verify-cn.bbs.admin.announce +rmgroup:news@zixia.net:cn.bbs.*:verify-cn.bbs.admin.announce + +## CUHK (*LOCAL* -- Chinese University of Hong Kong) # Contact: shlam@ie.cuhk.edu.hk (Alan S H Lam) -# For internal use only, contact above address for questions +# For internal use only, contact above address for questions. newgroup:*:cuhk.*:drop rmgroup:*:cuhk.*:doit ## CO (Colorado, USA) # Contact: coadmin@boyznoyz.com (Bill of Denver) +checkgroups:coadmin@boyznoyz.com:co.*:doit newgroup:coadmin@boyznoyz.com:co.*:doit rmgroup:coadmin@boyznoyz.com:co.*:doit -checkgroups:coadmin@boyznoyz.com:co.*:doit ## CODEWARRIOR (CodeWarrior discussion) checkgroups:news@supernews.net:codewarrior.*:doit @@ -532,34 +530,34 @@ newgroup:news@newsflash.concordia.ca:concordia.*:doit rmgroup:news@newsflash.concordia.ca:concordia.*:doit -## COURTS +## COURTS (*DEFUNCT*) # Contact: trier@ins.cwru.edu -# This Hierarchy is defunct as of mid 1998. +# Defunct hierarchy as of mid-1998, please remove any groups that you carry. newgroup:*@*:courts.*:mail rmgroup:*@*:courts.*:doit -## CPCU/IIA (American Institute for Chartered Property Casulty -## Underwriter/Insurance Institute of America, USA ) +## CPCUIIA (American Institute for Chartered Property Casulty +## Underwriter/Insurance Institute of America, USA) # Contact: miller@cpcuiia.org -# URL: www.aicpcu.org +# URL: http://www.aicpcu.org/ checkgroups:miller@cpcuiia.org:cpcuiia.*:mail newgroup:miller@cpcuiia.org:cpcuiia.*:doit rmgroup:miller@cpcuiia.org:cpcuiia.*:doit -## CU (University of Colorado) +## CU (*LOCAL* -- University of Colorado) # Contact: Doreen Petersen # For local use only, contact the above address for information. newgroup:*@*:cu.*:mail rmgroup:*@*:cu.*:doit -## CZ newsgroups (Czech Republic) +## CZ (Czech Republic) # URL: ftp://ftp.vslib.cz/pub/news/config/cz/newsgroups (text) -# URL: http://www.ces.net/cgi-bin/newsgroups.p?cz (HTML) +# URL: http://www.ces.net/cgi-bin/newsgroups.p?cz (HTML) checkgroups:petr.kolar@vslib.cz:cz.*:mail newgroup:petr.kolar@vslib.cz:cz.*:doit rmgroup:petr.kolar@vslib.cz:cz.*:doit -## DC (Washington, D.C. , USA ) +## DC (Washington, D.C., USA) checkgroups:news@mattress.atww.org:dc.*:mail newgroup:news@mattress.atww.org:dc.*:doit rmgroup:news@mattress.atww.org:dc.*:doit @@ -573,36 +571,28 @@ newgroup:*@*:de.alt.*:doit rmgroup:moderator@dana.de:de.*:verify-de.admin.news.announce -# checkgroups:*@*dana.de:de.*:mail -# checkgroups:*@*.dana.de:de.*:mail -# newgroup:*@dana.de|*@*.dana.de:de.*:doit -# newgroup:*@*:de.alt.*:doit -# rmgroup:*@dana.de|*@*.dana.de:de.*:doit - ## DFW (Dallas/Fort Worth, Texas, USA) newgroup:eric@*cirr.com:dfw.*:doit rmgroup:eric@*cirr.com:dfw.*:doit ## DK (Denmark) -# URL: http://www.DK.net/Usenet/ -# Key URL: http://www.DK.net/Usenet/pgp.html +# URL: http://www.usenet.dk/dk-admin/ +# Key URL: http://www.usenet.dk/grupper/control_pubkey.html # Key fingerprint = 7C B2 C7 50 F3 7D 5D 73 8C EE 2E 3F 55 80 72 FF # *PGP* See comment at top of file. newgroup:*:dk.*:drop rmgroup:*:dk.*:drop +checkgroups:news@news.dknet.dk:dk.*:verify-news@news.dknet.dk newgroup:news@news.dknet.dk:dk.*:verify-news@news.dknet.dk rmgroup:news@news.dknet.dk:dk.*:verify-news@news.dknet.dk -# newgroup:news@news.dknet.dk:dk.*:doit -# rmgroup:news@news.dknet.dk:dk.*:doit - -## DUKE ( Duke University, USA ) +## DUKE (*LOCAL* -- Duke University, USA) # Contact: news@newsgate.duke.edu # For local use only, contact the above address for information. newgroup:*@*:duke.*:mail rmgroup:*@*:duke.*:doit -## Easynet PLC +## EASYNET (Easynet PLC, UK) # Contact: Christiaan Keet # URL: ftp://ftp.easynet.net/pub/usenet/easynet.control.txt # *PGP* See comment at top of file. @@ -631,9 +621,6 @@ newgroup:newsadmin@efn.org:efn.*|eug.*:verify-eug.config rmgroup:newsadmin@efn.org:efn.*|eug.*:verify-eug.config -# newgroup:newsadmin@efn.org:efn.*|eug.*:doit -# rmgroup:newsadmin@efn.org:efn.*|eug.*:doit - ## EHIME-U (? University, Japan ?) newgroup:news@cc.nias.ac.jp:ehime-u.*:doit newgroup:news@doc.dpc.ehime-u.ac.jp:ehime-u.*:doit @@ -642,29 +629,24 @@ ## ENGLAND # Contact: admin@england.news-admin.org -# See: http://www.england.news-admin.org/newsadminsfaq.html +# URL: http://www.england.news-admin.org/newsadminsfaq.html +# Key fingerprint = DA 3E C2 01 46 E5 61 CB A2 43 09 CA 13 6D 31 1F # *PGP* See comment at top of file. -# Key fingerprint = DA 3E C2 01 46 E5 61 CB A2 43 09 CA 13 6D 31 1F newgroup:admin@england.news-admin.org:england.*:verify-england-usenet rmgroup:admin@england.news-admin.org:england.*:verify-england-usenet checkgroups:admin@england.news-admin.org:england.*:verify-england-usenet ## ES (Spain) -# Contact: Daniel.Diaz@rediris.es -# See: http://www.rediris.es/netnews/infonews/config.es.html -# See: http://news.rediris.es/~moderador/grupos/newsgroups.es +# Contact: david.martinez@rediris.es +# URL: http://www.rediris.es/netnews/infonews/config.es.html +# URL: http://news.rediris.es/~moderador/grupos/newsgroups.es # *PGP* See comment at top of file. -# Key fingerprint = 3B 63 18 6F 83 EA 89 82 95 1B 7F 8D B6 ED DD 87 newgroup:*:es.*:drop rmgroup:*:es.*:drop -checkgroups:moderador@news.rediris.es:es.*:doit +checkgroups:moderador@news.rediris.es:es.*:verify-es.news newgroup:moderador@news.rediris.es:es.*:verify-es.news rmgroup:moderador@news.rediris.es:es.*:verify-es.news -# checkgroups:moderador@news.rediris.es:es.*:mail -# newgroup:moderador@news.rediris.es:es.*:doit -# rmgroup:moderador@news.rediris.es:es.*:doit - ## ESP (Spanish-language newsgroups) # Contact: # URL: http://ennui.org/esp/ @@ -675,7 +657,7 @@ newgroup:mod-ena@ennui.org:esp.*:verify-esp.news.administracion rmgroup:mod-ena@ennui.org:esp.*:verify-esp.news.administracion -## EUNET ( Europe ) +## EUNET (Europe) newgroup:news@noc.eu.net:eunet.*:doit rmgroup:news@noc.eu.net:eunet.*:doit @@ -687,20 +669,25 @@ rmgroup:group-admin@usenet.eu.org:europa.*:verify-group-admin@usenet.eu.org checkgroups:group-admin@usenet.eu.org:europa.*:verify-group-admin@usenet.eu.org -## EXAMPLE ( Bogus hierarchy reserved for standards documents ) +## EXAMPLE (Bogus hierarchy reserved for standards documents) newgroup:*@*:example.*:mail rmgroup:*@*:example.*:doit -## FA ( "From ARPA" gatewayed mailing lists) +## FA (*DEFUNCT* -- "From ARPA" gatewayed mailing lists) # Removed in the "Great Renaming" of 1988. +# +# Note that a site in Finland is currently (as of 2001) gatewaying various +# mailing lists into fa.* newsgroups, but that site does not appear to be +# issuing any control messages for those groups. +# newgroup:*@*:fa.*:mail rmgroup:*@*:fa.*:doit -## FIDO newsgroups (FidoNet) +## FIDO (FidoNet) newgroup:root@mbh.org:fido.*:doit rmgroup:root@mbh.org:fido.*:doit -## FIDO.BELG.* newsgroups (FidoNet) +## FIDO.BELG.* (FidoNet) # URL: http://www.z2.fidonet.org/news/fido.belg.news/ # *PGP* See comment at top of file. newgroup:*:fido.belg.*:drop @@ -717,11 +704,8 @@ newgroup:newgroups-request@fido7.ru:fido7.*:verify-fido7.announce.newgroups rmgroup:newgroups-request@fido7.ru:fido7.*:verify-fido7.announce.newgroups -# newgroup:news@wing.matsim.udmurtia.su:fido7.*:doit -# rmgroup:news@wing.matsim.udmurtia.su:fido7.*:doit - ## FINET (Finland and Finnish language alternative newsgroups) -# The alt.* of Finland +# The alt.* of Finland. newgroup:*@*.fi:finet.*:doit rmgroup:*@*.fi:finet.*:doit @@ -735,7 +719,7 @@ newgroup:committee@fj-news.org:fj.*:verify-fj.news.announce rmgroup:committee@fj-news.org:fj.*:verify-fj.news.announce -## FL (Florida, USA ) +## FL (Florida, USA) newgroup:hgoldste@news1.mpcs.com:fl.*:doit newgroup:scheidell@fdma.fdma.com:fl.*:doit rmgroup:hgoldste@news1.mpcs.com:fl.*:doit @@ -743,8 +727,8 @@ ## FLORA (FLORA Community WEB, Canada) # Contact: russell@flora.org -# See: http://news.flora.org/ for newsgroup listings and information -# See: http://www.flora.org/russell/ for PGP keys +# URL: http://news.flora.org/ +# Key URL: http://www.flora.org/russell/ # *PGP* See comment at top of file. newgroup:*:flora.*:drop rmgroup:*:flora.*:drop @@ -760,10 +744,7 @@ newgroup:control@usenet-fr.news.eu.org:fr.*:verify-control@usenet-fr.news.eu.org rmgroup:control@usenet-fr.news.eu.org:fr.*:verify-control@usenet-fr.news.eu.org -# newgroup:control@usenet.fr.net:fr.*:doit -# rmgroup:control@usenet.fr.net:fr.*:doit - -## FREE (Open Hierarchy where anyone can craete a group) +## FREE (Open Hierarchy where anyone can create a group) newgroup:*:free.*:doit newgroup:group-admin@isc.org:free.*:drop newgroup:tale@*uu.net:free.*:drop @@ -773,29 +754,31 @@ newgroup:news@picard.cs.osakafu-u.ac.jp:fudai.*:doit rmgroup:news@picard.cs.osakafu-u.ac.jp:fudai.*:doit -## FUR ( furrynet ) -# Contact: fur-config@taronga.com +## FUR (*PRIVATE* -- furrynet) +# Contact: fur-config@news.furry.net # Please contact the above address before adding these groups. +newgroup:*@*:fur.*:mail +rmgroup:*@*:fur.*:doit -## GER & HANNET & HANNOVER & HILDESHEIM & HISS (Hannover, Germany) +## GER & HANNET & HANNOVER & HILDESHEIM & HISS (Hannover, Germany) newgroup:fifi@hiss.han.de:ger.*|hannover.*|hannet.*|hildesheim.*|hiss.*:doit rmgroup:fifi@hiss.han.de:ger.*|hannover.*|hannet.*|hildesheim.*|hiss.*:doit -## GIT (Georgia Institute of Technology, USA ) +## GIT (Georgia Institute of Technology, USA) newgroup:news@news.gatech.edu:git.*:doit newgroup:news@news.gatech.edu:git*class.*:mail rmgroup:news@news.gatech.edu:git.*:doit -## GNU ( Free Software Foundation ) +## GNU (Free Software Foundation) newgroup:gnu@prep.ai.mit.edu:gnu.*:doit newgroup:news@*ai.mit.edu:gnu.*:doit rmgroup:gnu@prep.ai.mit.edu:gnu.*:doit rmgroup:news@*ai.mit.edu:gnu.*:doit ## GOV (Government Information) -# *PGP* See comment at top of file. # URL: http://www.govnews.org/govnews/ -# PGPKEY URL: http://www.govnews.org/govnews/site-setup/gov.pgpkeys +# Key URL: http://www.govnews.org/govnews/site-setup/gov.pgpkeys +# *PGP* See comment at top of file. newgroup:*:gov.*:drop rmgroup:*:gov.*:drop checkgroups:gov-usenet-announce-moderator@govnews.org:gov.*:verify-gov.usenet.announce @@ -814,8 +797,8 @@ ## HAMSTER (Hamster, a Win32 news and mail proxy server) # Contact: hamster-contact@snafu.de # URL: http://www.nethamster.org -# Key fingerprint = 12 75 A9 42 8A D6 1F 77 6A CF B4 0C 79 15 5F 93 # Key URL: http://www.nethamster.org/control/hamster.asc +# Key fingerprint = 12 75 A9 42 8A D6 1F 77 6A CF B4 0C 79 15 5F 93 # *PGP* See comment at top of file. checkgroups:hamster-control@snafu.de:hamster.*:verify-hamster-control@snafu.de newgroup:hamster-control@snafu.de:hamster.*:verify-hamster-control@snafu.de @@ -823,7 +806,7 @@ ## HAN (Korean Hangul) # Contact: newgroups-request@usenet.or.kr -# PGPKEY URL: ftp://ftp.usenet.or.kr/pub/korea/usenet/pgp/PGPKEY.han +# Key URL: ftp://ftp.usenet.or.kr/pub/korea/usenet/pgp/PGPKEY.han # *PGP* See comment at top of file. newgroup:*:han.*:drop rmgroup:*:han.*:drop @@ -835,15 +818,15 @@ newgroup:*@*.harvard.edu:harvard.*:doit rmgroup:*@*.harvard.edu:harvard.*:doit -## HAWAII +## HAWAII newgroup:news@lava.net:hawaii.*:doit rmgroup:news@lava.net:hawaii.*:doit ## HIVNET (HIVNET Foundation, for HIV+/AIDS information) # Contact: news@hivnet.org -# Syncable server: news.hivnet.org +# Key URL: ftp://ftp.hivnet.org/pub/usenet/pgpkey.hivnet # Key fingerprint = 5D D6 0E DC 1E 2D EA 0B B0 56 4D D6 52 53 D7 A4 -# PGPKEY URL: ftp://ftp.hivnet.org/pub/usenet/pgpkey.hivnet +# Syncable server: news.hivnet.org # *PGP* See comment at top of file. newgroup:*:hiv.*:drop rmgroup:*:hiv.*:drop @@ -863,8 +846,17 @@ newgroup:news@academ.com:houston.*:verify-houston.usenet.config rmgroup:news@academ.com:houston.*:verify-houston.usenet.config -# newgroup:news@academ.com:houston.*:doit -# rmgroup:news@academ.com:houston.*:doit +## HUMANITYQUEST +# Contact: news-admin@humanityquest.com +# URL: http://www.humanityquest.com/projects/newsgroups/ +# Key URL: http://www.humanityquest.com/projects/newsgroups/PGP.htm +# Key fingerprint = BA3D B306 B6F5 52AA BA8F 32F0 8C4F 5040 16F9 C046 +# *PGP* See comment at top of file. +newgroup:*:humanityquest.*:drop +rmgroup:*:humanityquest.*:drop +checkgroups:news-admin@humanityquest.com:humanityquest.*:verify-humanityquest.admin.config +newgroup:news-admin@humanityquest.com:humanityquest.*:verify-humanityquest.admin.config +rmgroup:news-admin@humanityquest.com:humanityquest.*:verify-humanityquest.admin.config ## HUN (Hungary) newgroup:*:hun.*:drop @@ -877,25 +869,35 @@ newgroup:skunz@iastate.edu:ia.*:doit rmgroup:skunz@iastate.edu:ia.*:doit -## IBMNET +## IBMNET (*LOCAL*) # Contact: news@ibm.net # For local use only, contact the above address for information. newgroup:*@*:ibmnet.*:mail rmgroup:*@*:ibmnet.*:doit -## ICONZ (The Internet Company of New Zealand, New Zealand) +## ICONZ (*LOCAL* -- The Internet Company of New Zealand, New Zealand) # Contact: usenet@iconz.co.nz # For local use only, contact the above address for information. newgroup:*@*:iconz.*:mail rmgroup:*@*:iconz.*:doit +## IDOCTRA (Idoctra Translation Software, Translation Discussion) +# Contact: support@idoctra.com +newgroup:support@idoctra.com:idoctra.*:doit +rmgroup:support@idoctra.com:idoctra.*:doit + ## IE (Ireland) -newgroup:usenet@ireland.eu.net:ie.*:doit -rmgroup:usenet@ireland.eu.net:ie.*:doit +# Contact: control@usenet.ie +# *PGP* See comment at top of file. +newgroup:*:ie.*:drop +rmgroup:*:ie.*:drop +checkgroups:control@usenet.ie:ie.*:verify-control@usenet.ie +newgroup:control@usenet.ie:ie.*:verify-control@usenet.ie +rmgroup:control@usenet.ie:ie.*:verify-control@usenet.ie -## IEEE (Institute of Electrical and Electronic Engineers) +## IEEE (*DEFUNCT* -- Institute of Electrical and Electronic Engineers) # Contact: -# This hierarchy is now defunct. +# Defunct hierarchy, please remove any groups that you carry. newgroup:*@*:ieee.*:mail rmgroup:*@*:ieee.*:doit @@ -908,35 +910,35 @@ # *PGP* See comment at top of file. newgroup:*:is.*:drop rmgroup:*:is.*:drop +checkgroups:news@isnet.is:is.*:verify-is.isnet newgroup:news@isnet.is:is.*:verify-is.isnet rmgroup:news@isnet.is:is.*:verify-is.isnet -## ISC ( Japanese ?) +## ISC (Japanese ?) newgroup:news@sally.isc.chubu.ac.jp:isc.*:doit rmgroup:news@sally.isc.chubu.ac.jp:isc.*:doit -## ISRAEL and IL newsgroups (Israel) +## ISRAEL & IL (Israel) newgroup:news@news.biu.ac.il:israel.*:doit rmgroup:news@news.biu.ac.il:israel.*|il.*:doit ## IT (Italian) +# Contact: gcn@news.nic.it +# URL: http://www.news.nic.it/ +# Key URL: http://www.news.nic.it/pgp.txt +# Key fingerprint = 94 A4 F7 B5 46 96 D6 C7 A6 73 F2 98 C4 8C D0 E0 # *PGP* See comment at top of file. newgroup:*:it.*:drop rmgroup:*:it.*:drop -checkgroups:stefano@unipi.it:it.*:verify-it.announce.newgroups -newgroup:stefano@unipi.it:it.*:verify-it.announce.newgroups -rmgroup:stefano@unipi.it:it.*:verify-it.announce.newgroups - -# newgroup:news@ghost.sm.dsi.unimi.it:it.*:doit -# newgroup:stefano@*unipi.it:it.*:doit -# rmgroup:news@ghost.sm.dsi.unimi.it:it.*:doit -# rmgroup:stefano@*unipi.it:it.*:doit +checkgroups:gcn@news.nic.it:it.*:verify-gcn@news.nic.it +newgroup:gcn@news.nic.it:it.*:verify-gcn@news.nic.it +rmgroup:gcn@news.nic.it:it.*:verify-gcn@news.nic.it ## ITALIA (Italy) # Contact: news@news.cineca.it # URL: http://news.cineca.it/italia/ -# Key fingerprint = 0F BB 71 62 DA 5D 5D B8 D5 86 FC 28 02 67 1A 6B # Key URL: http://news.cineca.it/italia/italia-pgp.txt +# Key fingerprint = 0F BB 71 62 DA 5D 5D B8 D5 86 FC 28 02 67 1A 6B # *PGP* See comment at top of file. newgroup:*:italia.*:drop rmgroup:*:italia.*:drop @@ -954,9 +956,9 @@ ## JAPAN (Japan) # Contact: Tsuneo Tanaka # URL: http://www.asahi-net.or.jp/~AE5T-KSN/japan-e.html +# Key URL: http://grex.cyberspace.org/~tt/japan.admin.announce.asc +# Key URL: http://www.asahi-net.or.jp/~AE5T-KSN/japan/japan.admin.announce.asc # Key fingerprint = 6A FA 19 47 69 1B 10 74 38 53 4B 1B D8 BA 3E 85 -# PGP Key: http://grex.cyberspace.org/~tt/japan.admin.announce.asc -# PGP Key: http://www.asahi-net.or.jp/~AE5T-KSN/japan/japan.admin.announce.asc # *PGP* See comment at top of file. newgroup:*:japan.*:drop rmgroup:*:japan.*:drop @@ -964,23 +966,17 @@ newgroup:japan.admin.announce@news.efnet.com:japan.*:verify-japan.admin.announce@news.efnet.com rmgroup:japan.admin.announce@news.efnet.com:japan.*:verify-japan.admin.announce@news.efnet.com -# checkgroups:news@marie.iijnet.or.jp:japan.*:log -# newgroup:*@*:japan.*:log -# rmgroup:*@*:japan.*:log - -## K12 ( US Educational Network ) +## K12 (US Educational Network) newgroup:braultr@*csmanoirs.qc.ca:k12.*:doit rmgroup:braultr@*csmanoirs.qc.ca:k12.*:doit -## KA (Karlsruhe, Germany) +## KA (*PRIVATE* -- Karlsruhe, Germany) # Contact: usenet@karlsruhe.org -# For private use only, contact the above address for information. -# # URL: http://www.karlsruhe.org/ (German only) # URL: http://www.karlsruhe.org/newsgroups (newsgroup list) -# -# *PGP* See comment at top of file. # Key fingerprint = DE 19 BB 25 76 19 81 17 F0 67 D2 23 E8 C8 7C 90 +# For private use only, contact the above address for information. +# *PGP* See comment at top of file. newgroup:*:ka.*:drop rmgroup:*:ka.*:drop checkgroups:usenet@karlsruhe.org:ka.*:verify-usenet@karlsruhe.org @@ -996,8 +992,8 @@ rmgroup:ty@kamoi.imasy.or.jp:kanto.*:verify-kanto.news.network ## KASSEL (Kassel, Germany) +# Key mail: pgp-public-keys@keys.de.pgp.net Subject: GET 0xC4D30EE5 # *PGP* See comment at top of file. -# MAIL: pgp-public-keys@keys.de.pgp.net Subject: GET 0xC4D30EE5 newgroup:*:kassel.*:drop rmgroup:*:kassel.*:drop checkgroups:dirk.meyer@dinoex.sub.org:kassel.*:verify-kassel-admin @@ -1013,13 +1009,13 @@ newgroup:kris@white.schulung.netuse.de:kiel.*:doit rmgroup:kris@white.schulung.netuse.de:kiel.*:doit -## KRST (University of Oslo, Norway) +## KRST (*LOCAL* -- University of Oslo, Norway) # Contact: jani@ifi.uio.no # For private use only, contact the above address for information. newgroup:*@*:krst.*:drop rmgroup:*@*:krst.*:doit -## KWNET (Kitchener-Waterloo?) +## KWNET (*LOCAL* -- Kitchener-Waterloo?) # Contact: Ed Hew # For private use only, contact the above address for information. newgroup:*@*:kwnet.*:mail @@ -1032,44 +1028,42 @@ rmgroup:*@*.kentlaw.edu:law.*:doit rmgroup:*@*.law.vill.edu:law.*:doit -## LIU newsgroups (Sweden?) -newgroup:linus@tiny.lysator.liu.se:liu.*:doit -rmgroup:linus@tiny.lysator.liu.se:liu.*:doit - -## LINUX (Newsfeed from news.lameter.com) -checkgroups:christoph@lameter.com:linux.*:doit -newgroup:christoph@lameter.com:linux.*:doit -rmgroup:christoph@lameter.com:linux.*:doit +## LINUX (Gated Linux mailing lists) +# Contact: Marco d'Itri +# Key fingerprint = 81 B3 27 99 4F CE 32 D1 1B C9 01 0D BB B3 2E 41 +# *PGP* See comment at top of file. +newgroup:*:linux.*:drop +rmgroup:*:linux.*:drop +checkgroups:linux-admin@bofh.it:linux.*:verify-linux-admin@bofh.it +newgroup:linux-admin@bofh.it:linux.*:verify-linux-admin@bofh.it +rmgroup:linux-admin@bofh.it:linux.*:verify-linux-admin@bofh.it ## LOCAL (Local-only groups) -# It is not really a good idea for sites to use these since they -# may occur on many unconnect sites +# It is not really a good idea for sites to use these since they may occur +# on many unconnected sites. newgroup:*@*:local.*:mail rmgroup:*@*:local.*:drop -## MALTA ( Nation of Malta ) +## MALTA (Nation of Malta) # Contact: cmeli@cis.um.edu.mt # URL: http://www.malta.news-admin.org/ # Key fingerprint = 20 17 01 5C F0 D0 1A 42 E4 13 30 58 0B 14 48 A6 -# *PGP* See comment at top of file. +# *PGP* See comment at top of file. newgroup:*:malta.*:drop rmgroup:*:malta.*:drop checkgroups:cmeli@cis.um.edu.mt:malta.*:verify-malta.config newgroup:cmeli@cis.um.edu.mt:malta.*:verify-malta.config rmgroup:cmeli@cis.um.edu.mt:malta.*:verify-malta.config -# newgroup:cmeli@cis.um.edu.mt:malta.*:doit -# rmgroup:cmeli@cis.um.edu.mt:malta.*:doit - -## MANAWATU ( Manawatu district, New Zealand) +## MANAWATU (*LOCAL* -- Manawatu district, New Zealand) # Contact: alan@manawatu.gen.nz or news@manawatu.gen.nz # For local use only, contact the above address for information. newgroup:*@*:manawatu.*:mail rmgroup:*@*:manawatu.*:doit -## MAUS ( MausNet, German ) -# *PGP* See comment at top of file. +## MAUS (MausNet, Germany) # Key fingerprint: 82 52 C7 70 26 B9 72 A1 37 98 55 98 3F 26 62 3E +# *PGP* See comment at top of file. newgroup:*:maus.*:drop rmgroup:*:maus.*:drop checkgroups:guenter@gst0hb.north.de:maus.*:verify-maus-info @@ -1079,16 +1073,13 @@ rmgroup:guenter@gst0hb.north.de:maus.*:verify-maus-info rmgroup:guenter@gst0hb.hb.provi.de:maus.*:verify-maus-info -# newgroup:guenter@gst0hb.north.de:maus.*:doit -# rmgroup:guenter@gst0hb.north.de:maus.*:doit - -## MCMASTER (McMaster University, Ontario) +## MCMASTER (*LOCAL* -- McMaster University, Ontario) # Contact: Brian Beckberger # For local use only, contact the above address for information. newgroup:*@*:mcmaster.*:mail rmgroup:*@*:mcmaster.*:doit -## MCOM ( Netscape Inc, USA) +## MCOM (Netscape Inc, USA) newgroup:*@*:mcom.*:mail rmgroup:*@*:mcom.*:doit @@ -1096,13 +1087,13 @@ newgroup:kerry@maine.maine.edu:me.*:doit rmgroup:kerry@maine.maine.edu:me.*:doit -## MEDLUX ( All-Russia medical teleconferences ) +## MEDLUX (All-Russia medical teleconferences) # URL: ftp://ftp.medlux.ru/pub/news/medlux.grp checkgroups:neil@new*.medlux.ru:medlux.*:mail newgroup:neil@new*.medlux.ru:medlux.*:doit rmgroup:neil@new*.medlux.ru:medlux.*:doit -## MELB ( Melbourne, Australia) +## MELB (Melbourne, Australia) newgroup:kre@*mu*au:melb.*:doit newgroup:revdoc@*uow.edu.au:melb.*:doit rmgroup:kre@*mu*au:melb.*:doit @@ -1110,7 +1101,7 @@ ## MENSA (The Mensa Organisation) # Contact: usenet@newsgate.mensa.org -# Key fingerprint: A7 57 24 49 C0 D4 47 33 84 A0 52 6E F1 A4 00 5B +# Key fingerprint = A7 57 24 49 C0 D4 47 33 84 A0 52 6E F1 A4 00 5B # *PGP* See comment at top of file. newgroup:*:mensa.*:drop rmgroup:*:mensa.*:drop @@ -1122,7 +1113,7 @@ newgroup:fwataru@*.metocean.co.jp:metocean.*:doit rmgroup:fwataru@*.metocean.co.jp:metocean.*:doit -## METROPOLIS +## METROPOLIS (*LOCAL*) # Contact: newsmaster@worldonline.nl # For local use only, contact the above address for information. newgroup:*@*:metropolis.*:mail @@ -1131,53 +1122,75 @@ ## MI (Michigan, USA) # Contact: Steve Simmons # URL: http://www.inland-sea.com/mi-news.html -# http://www.inland-sea.com/mi-news.html checkgroups:scs@lokkur.dexter.mi.us:mi.*:mail newgroup:scs@lokkur.dexter.mi.us:mi.*:doit rmgroup:scs@lokkur.dexter.mi.us:mi.*:doit -## MOD (Original top level moderated hierarchy) +## MICROSOFT (Microsoft, Inc.) +# +# Broken control messages for the Microsoft groups are sent from the +# address pssolops@microsoft.com, but they aren't signed and don't contain +# valid newsgroup file entries. It is therefore recommended to use +# actsync rather than control message processing to maintain one's local +# list of microsoft.* groups if you carry this hierarchy. +# +# newgroup:pssolops@microsoft.com:microsoft.*:doit +# rmgroup:pssolops@microsoft.com:microsoft.*:doit +newgroup:*:microsoft.*:drop +rmgroup:*:microsoft.*:drop + +## MILW (Milwaukee, Wisconsin, USA) +# Contact: milw@usenet.mil.wi.us +# URL: http://usenet.mil.wi.us +# Key fingerprint = 6E 9B 9F 70 98 AB 9C E5 C3 C0 05 82 21 5B F4 9E +# Key URL: http://usenet.mil.wi.us/pgpkey +# *PGP* See comment at top of file. +checkgroups:milw@usenet.mil.wi.us:milw.*:verify-milw.config +newgroup:milw@usenet.mil.wi.us:milw.*:verify-milw.config +rmgroup:milw@usenet.mil.wi.us:milw.*:verify-milw.config + +## MOD (*DEFUNCT* -- Original top level moderated hierarchy) # Removed in the "Great Renaming" of 1988. # Possible revival attempt in mid-97, so watch this space.. newgroup:*@*:mod.*:mail rmgroup:*@*:mod.*:doit ## MUC (Munchen (Munich), Germany) -# *PGP* See comment at top of file. # Key fingerprint = 43 C7 0E 7C 45 C7 06 E0 BD 6F 76 CE 07 39 5E 66 +# *PGP* See comment at top of file. newgroup:*:muc.*:drop rmgroup:*:muc.*:drop checkgroups:muc-cmsg@muenchen.pro-bahn.org:muc.*:verify-muc.admin newgroup:muc-cmsg@muenchen.pro-bahn.org:muc.*:verify-muc.admin rmgroup:muc-cmsg@muenchen.pro-bahn.org:muc.*:verify-muc.admin -# newgroup:muc-cmsg@muenchen.pro-bahn.org:muc.*:doit -# rmgroup:muc-cmsg@muenchen.pro-bahn.org:muc.*:doit - -## NAGASAKI-U ( Nagasaki University, Japan ?) +## NAGASAKI-U (Nagasaki University, Japan ?) newgroup:root@*nagasaki-u.ac.jp:nagasaki-u.*:doit rmgroup:root@*nagasaki-u.ac.jp:nagasaki-u.*:doit -## NAS (Numerican Aerodynamic Simulation Facility @ NASA Ames Research Center) +## NAS (*LOCAL* -- Numerican Aerodynamic Simulation Facility, +## NASA Ames Research Center, USA) # Contact: news@nas.nasa.gov -# For internal use only, contact above address for questions +# For internal use only, contact above address for questions. newgroup:*@*:nas.*:mail rmgroup:*@*:nas.*:doit -## NASA (National Aeronautics and Space Administration, USA) +## NASA (*LOCAL* -- National Aeronautics and Space Administration, USA) # Contact: news@nas.nasa.gov -# For internal use only, contact above address for questions +# For internal use only, contact above address for questions. newgroup:*@*:nasa.*:mail rmgroup:*@*:nasa.*:doit ## NC (North Carolina, USA) +# # Tim Seaver says he hasn't had any dealings with nc.* # for over two years and the hierarchy is basically "open to anyone who # wants it." +# # newgroup:tas@ncren.net:nc.*:doit # rmgroup:tas@ncren.net:nc.*:doit -## NCF ( National Capital Freenet, Ottawa, Ontario, Canada ) +## NCF (*LOCAL* -- National Capital Freenet, Ottawa, Ontario, Canada) # Contact: news@freenet.carleton.ca # For local use only, contact the above address for information. newgroup:*@*:ncf.*:mail @@ -1187,7 +1200,7 @@ newgroup:chen@cc.nctu.edu.tw:nctu.*:doit rmgroup:chen@cc.nctu.edu.tw:nctu.*:doit -## NCU (National Central University, Taiwan) +## NCU (*LOCAL* -- National Central University, Taiwan) # Contact: Ying-Hao Chang # Contact: # For local use only, contact the above addresses for information. @@ -1199,10 +1212,10 @@ # newgroup:*@*:nersc.*:mail # rmgroup:*@*:nersc.*:doit -## NET newsgroups ( Usenet 2 ) +## NET newsgroups (Usenet 2) # URL: http://www.usenet2.org +# Key fingerprint = D7 D3 5C DB 18 6A 29 79 BF 74 D4 58 A3 78 9D 22 # *PGP* See comment at top of file. -# Key fingerprint: D7 D3 5C DB 18 6A 29 79 BF 74 D4 58 A3 78 9D 22 newgroup:*:net.*:drop rmgroup:*:net.*:drop checkgroups:control@usenet2.org:net.*:verify-control@usenet2.org @@ -1211,27 +1224,23 @@ ## NETSCAPE (Netscape Communications Corp) # Contact: news@netscape.com -# *PGP* See comment at top of file. # URL: http://www.mozilla.org/community.html # 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 rmgroup:*:netscape.*:drop checkgroups:news@netscape.com:netscape.*:verify-netscape.public.admin newgroup:news@netscape.com:netscape.*:verify-netscape.public.admin rmgroup:news@netscape.com:netscape.*:verify-netscape.public.admin -# checkgroups:news@netscape.com:netscape.*:mail -# newgroup:news@netscape.com:netscape.*:doit -# rmgroups:news@netscape.com:netscape.*:doit - -## NETINS ( netINS, Inc ) +## NETINS (*LOCAL* -- netINS, Inc) # Contact: news@netins.net # For local use only, contact the above address for information. newgroup:*@*:netins.*:mail rmgroup:*@*:netins.*:doit -## NIAGARA (Niagara Peninsula, US/CAN) +## NIAGARA (Niagara Peninsula, USA/Canada) newgroup:news@niagara.com:niagara.*:doit rmgroup:news@niagara.com:niagara.*:doit @@ -1251,39 +1260,45 @@ # Contact: nl-admin@nic.surfnet.nl # URL: http://www.xs4all.nl/~egavic/NL/ (Dutch) # URL: http://www.kinkhorst.com/usenet/nladmin.en.html (English) +# Key fingerprint = 45 20 0B D5 A1 21 EA 7C EF B2 95 6C 25 75 4D 27 # *PGP* See comment at top of file. -# Key fingerprint: 45 20 0B D5 A1 21 EA 7C EF B2 95 6C 25 75 4D 27 newgroup:*:nl.*:drop rmgroup:*:nl.*:drop checkgroups:nl-admin@nic.surfnet.nl:nl.*:verify-nl.newsgroups newgroup:nl-admin@nic.surfnet.nl:nl.*:verify-nl.newsgroups rmgroup:nl-admin@nic.surfnet.nl:nl.*:verify-nl.newsgroups -# checkgroups:nl-admin@nic.surfnet.nl:nl.*:mail -# newgroup:nl-admin@nic.surfnet.nl:nl.*:doit -# rmgroup:nl-admin@nic.surfnet.nl:nl.*:doit - ## NL-ALT (Alternative Netherlands groups) # URL: http://www.xs4all.nl/~onno/nl-alt/ # Several options are given in the FAQ for creating and removing groups. +# Key fingerprint = 6B 62 EB 53 4D 5D 2F 96 35 D9 C8 9C B0 65 0E 4C # *PGP* See comment at top of file. -# Key fingerprint: 6B 62 EB 53 4D 5D 2F 96 35 D9 C8 9C B0 65 0E 4C rmgroup:*:nl-alt.*:drop checkgroups:nl-alt-janitor@surfer.xs4all.nl:nl-alt.*:verify-nl-alt.config.admin newgroup:*@*:nl-alt.*:doit rmgroup:nl-alt-janitor@surfer.xs4all.nl:nl-alt.*:verify-nl-alt.config.admin rmgroup:news@kink.xs4all.nl:nl-alt.*:verify-nl-alt.config.admin -## NLNET newsgroups (Netherlands ISP) +## NLNET (Netherlands ISP) newgroup:beheer@nl.net:nlnet.*:doit rmgroup:beheer@nl.net:nlnet.*:doit +## NLO (Open Source / Free Software, hosted by nl.linux.org) +# URL: http://news.nl.linux.org/doc/nlo.html +# Key fingerprint = 63 DC B2 51 0A F3 DD 72 C2 BD C6 FD C1 C5 44 CF +# *PGP* See comment at top of file. +newgroup:*:nlo.*:drop +rmgroup:*:nlo.*:drop +checkgroups:news@nl.linux.org:nlo.*:verify-nlo.newsgroups +newgroup:news@nl.linux.org:nlo.*:verify-nlo.newsgroups +rmgroup:news@nl.linux.org:nlo.*:verify-nlo.newsgroups + ## NM (New Mexico, USA) newgroup:news@tesuque.cs.sandia.gov:nm.*:doit rmgroup:news@tesuque.cs.sandia.gov:nm.*:doit ## NO (Norway) -# See also http://www.usenet.no/ +# URL: http://www.usenet.no/ # *PGP* See comment at top of file. newgroup:*:no.*:drop rmgroup:*:no.*:drop @@ -1292,13 +1307,6 @@ newgroup:*@*.no:no.alt.*:doit rmgroup:control@usenet.no:no.*:verify-no-hir-control -# checkgroups:control@usenet.no:no.*:mail -# newgroup:control@usenet.no:no.*:doit -# newgroup:*@*.no:no.alt.*:doit -# rmgroup:control@usenet.no:no.*:doit -# sendsys:news@*uninett.no:no.*:doit -# sendsys:control@usenet.no:no.*:doit - ## NORD (Northern Germany) # thilo@own.deceiver.org no longer a valid address # newgroup:thilo@own.deceiver.org:nord.*:doit @@ -1320,21 +1328,18 @@ rmgroup:perry@piermont.com:nyc.*:doit ## NZ (New Zealand) -# *PGP* See comment at top of file. -# Contact root@usenet.net.nz +# Contact: root@usenet.net.nz # URL: http://usenet.net.nz # URL: http://www.faqs.org/faqs/usenet/nz-news-hierarchy -# PGP fingerprint: 07 DF 48 AA D0 ED AA 88 16 70 C5 91 65 3D 1A 28 +# Key fingerprint = 07 DF 48 AA D0 ED AA 88 16 70 C5 91 65 3D 1A 28 +# *PGP* See comment at top of file. newgroup:*:nz.*:drop rmgroup:*:nz.*:drop checkgroups:root@usenet.net.nz:nz.*:verify-nz-hir-control newgroup:root@usenet.net.nz:nz.*:verify-nz-hir-control rmgroup:root@usenet.net.nz:nz.*:verify-nz-hir-control -# newgroup:root@usenet.net.nz:nz.*:doit -# rmgroup:root@usenet.net.nz:nz.*:doit - -## OC newsgroups (Orange County, California, USA) +## OC (Orange County, California, USA) newgroup:bob@tsunami.sugarland.unocal.com:oc.*:doit rmgroup:bob@tsunami.sugarland.unocal.com:oc.*:doit @@ -1354,6 +1359,15 @@ newgroup:pkern@gpu.utcc.utoronto.ca:ont.*:doit rmgroup:pkern@gpu.utcc.utoronto.ca:ont.*:doit +## OPERA (Opera Software, Oslo, Norway) +# Contact: usenet@opera.com +# URL: http://news.opera.com/ +# Key URL: http://news.opera.com/pgpkey-opera-group-admin +# *PGP* See comment at top of file. +newgroup:*@opera.com:opera.*:verify-opera-group-admin +rmgroup:*@opera.com:opera.*:verify-opera-group-admin +checkgroups:*@opera.com:opera.*:verify-opera-group-admin + ## OTT (Ottawa, Ontario, Canada) # Contact: onag@pinetree.org # URL: http://www.pinetree.org/ONAG/ @@ -1385,10 +1399,6 @@ newgroup:pgh-config@psc.edu:pgh.*:verify-pgh.config rmgroup:pgh-config@psc.edu:pgh.*:verify-pgh.config -# checkgroups:pgh-config@psc.edu:pgh.*:mail -# newgroup:pgh-config@psc.edu:pgh.*:doit -# rmgroup:pgh-config@psc.edu:pgh.*:doit - ## PHL (Philadelphia, Pennsylvania, USA) newgroup:news@vfl.paramax.com:phl.*:doit rmgroup:news@vfl.paramax.com:phl.*:doit @@ -1409,7 +1419,7 @@ rmgroup:news@toads.pgh.pa.us:pitt.*:doit ## PL (Poland and Polish language) -## For more info, see http://www.ict.pwr.wroc.pl/doc/news-pl-new-site-faq.html +# URL: http://www.ict.pwr.wroc.pl/doc/news-pl-new-site-faq.html # *PGP* See comment at top of file. newgroup:*:pl.*:drop rmgroup:*:pl.*:drop @@ -1420,24 +1430,19 @@ rmgroup:michalj@*fuw.edu.pl:pl.*:verify-pl.announce.newgroups rmgroup:newgroup@usenet.pl:pl.*:verify-pl.announce.newgroups -# newgroup:michalj@*fuw.edu.pl:pl.*:doit -# newgroup:newgroup@usenet.pl:pl.*:doit -# rmgroup:michalj@*fuw.edu.pl:pl.*:doit -# rmgroup:newgroup@usenet.pl:pl.*:doit - -## PLANET ( PlaNet FreeNZ co-operative, New Zealand) +## PLANET (*LOCAL* -- PlaNet FreeNZ co-operative, New Zealand) # Contact: office@pl.net # For local use only, contact the above address for information. newgroup:*@*:planet.*:mail rmgroup:*@*:planet.*:doit -## PRIMA (prima.ruhr.de/Prima e.V. in Germany) +## PRIMA (*LOCAL* -- prima.ruhr.de/Prima e.V. in Germany) # Contact: admin@prima.ruhr.de # For internal use only, contact above address for questions newgroup:*@*:prima.*:mail rmgroup:*@*:prima.*:doit -## PSU ( Penn State University, USA ) +## PSU (*LOCAL* -- Penn State University, USA) # Contact: Dave Barr (barr@math.psu.edu) # For internal use only, contact above address for questions newgroup:*@*:psu.*:mail @@ -1450,15 +1455,15 @@ newgroup:pmelo@*.inescc.pt:pt.*:verify-control@usenet-pt.org rmgroup:pmelo@*.inescc.pt:pt.*:verify-control@usenet-pt.org -## PUBNET -# This Hierarchy is now defunct. +## PUBNET (*DEFUNCT*) # URL: ftp://ftp.isc.org/pub/usenet/control/pubnet/pubnet.config.Z +# Defunct hierarchy, please remove any groups that you carry. newgroup:*@*:pubnet.*:mail rmgroup:*@*:pubnet.*:doit -## RELCOM ( Commonwealth of Independent States) +## RELCOM (Commonwealth of Independent States) # The official list of relcom groups is supposed to be available from -# URL: ftp://ftp.kiae.su/relcom/netinfo/telconfs.txt +# URL: ftp://kiarchive.relcom.ru/pub/relcom/netinfo/ # *PGP* See comment at top of file. newgroup:*:relcom.*:drop rmgroup:*:relcom.*:drop @@ -1466,35 +1471,34 @@ newgroup:coord@new*.relcom.ru:relcom.*:verify-relcom.newsgroups rmgroup:coord@new*.relcom.ru:relcom.*:verify-relcom.newsgroups -## RPI ( Rensselaer Polytechnic Institute, Troy, NY, USA) +## RPI (*LOCAL* -- Rensselaer Polytechnic Institute, Troy, NY, USA) # Contact: sofkam@rpi.edu # For local use only, contact the above address for information. newgroup:*@*:rpi.*:mail rmgroup:*@*:rpi.*:doit -## SAAR (Saarbruecke, Germany) -checkgroups:thomas.rachel@gmx.de:saar.*:verify-saar-control -newgroup:thomas.rachel@gmx.de:saar.*:verify-saar-control -rmgroup:thomas.rachel@gmx.de:saar.*:verify-saar-control +## SAAR (Saarland Region, Germany) +# URL: http://www.saar-admin-news.de/ +# Key URL: http://www.saar-admin-news.de/saar-control.asc +# *PGP* See comment at top of file. +newgroup:control@saar-admin-news.de:saar.*:verify-saar-control +rmgroup:control@saar-admin-news.de:saar.*:verify-saar-control +checkgroups:control@saar-admin-news.de:saar.*:verify-saar-control ## SACHSNET (German) newgroup:root@lusatia.de:sachsnet.*:doit rmgroup:root@lusatia.de:sachsnet.*:doit ## SAT (San Antonio, Texas, USA) -# *PGP* See comment at top of file. # Contact: satgroup@endicor.com # URL: http://www.endicor.com/~satgroup/ +# *PGP* See comment at top of file. newgroup:*:sat.*:drop rmgroup:*:sat.*:drop checkgroups:satgroup@endicor.com:sat.*:verify-satgroup@endicor.com newgroup:satgroup@endicor.com:sat.*:verify-satgroup@endicor.com rmgroup:satgroup@endicor.com:sat.*:verify-satgroup@endicor.com -# checkgroups:satgroup@endicor.com:sat.*:doit -# newgroup:satgroup@endicor.com:sat.*:doit -# rmgroup:satgroup@endicor.com:sat.*:doit - ## SBAY (South Bay/Silicon Valley, California) newgroup:steveh@grafex.sbay.org:sbay.*:doit newgroup:ikluft@thunder.sbay.org:sbay.*:doit @@ -1504,8 +1508,8 @@ ## SCHULE # Contact: schule-admin@roxel.ms.sub.org # URL: http://home.pages.de/~schule-admin/ -# Key fingerprint = 64 06 F0 AE E1 46 85 0C BD CA 0E 53 8B 1E 73 D2 # Key URL: http://home.pages.de/~schule-admin/schule.asc +# Key fingerprint = 64 06 F0 AE E1 46 85 0C BD CA 0E 53 8B 1E 73 D2 # *PGP* See comment at top of file. newgroup:*:schule.*:drop rmgroup:*:schule.*:drop @@ -1520,7 +1524,7 @@ newgroup:wkronert@sunstroke.sdsu.edu:sdnet.*:doit rmgroup:wkronert@sunstroke.sdsu.edu:sdnet.*:doit -## SDSU (San Diego State University, CA) +## SDSU (*LOCAL* -- San Diego State University, CA) # Contact: Craig R. Sadler # For local use only, contact the above address for information. newgroup:*@*:sdsu.*:mail @@ -1530,7 +1534,7 @@ # Contact: usenet@usenet-se.net # URL: http://www.usenet-se.net/ # URL: http://www.usenet-se.net/index_eng.html (English version) -# Key URL: http://www.usenet-se.net/pgp-key.txt +# Key URL: http://www.usenet-se.net/pgp-key.txt # Key fingerprint = 68 03 F0 FD 0C C3 4E 69 6F 0D 0C 60 3C 58 63 96 # *PGP* See comment at top of file. newgroup:*:se.*:drop @@ -1539,17 +1543,13 @@ newgroup:usenet@usenet-se.net:se.*:verify-usenet-se rmgroup:usenet@usenet-se.net:se.*:verify-usenet-se -# newgroup:usenet@usenet-se.net:se.*:doit -# rmgroup:usenet@usenet-se.net:se.*:doit -# checkgroups:usenet@usenet-se.net:se.*:doit - ## SEATTLE (Seattle, Washington, USA) newgroup:billmcc@akita.com:seattle.*:doit newgroup:graham@ee.washington.edu:seattle.*:doit rmgroup:billmcc@akita.com:seattle.*:doit rmgroup:graham@ee.washington.edu:seattle.*:doit -## SFNET newsgroups (Finland) +## SFNET (Finland) newgroup:sfnet@*.cs.tut.fi:sfnet.*:doit rmgroup:sfnet@*.cs.tut.fi:sfnet.*:doit @@ -1565,15 +1565,12 @@ newgroup:news-admin@arnes.si:si.*:verify-si.news.announce.newsgroups rmgroup:news-admin@arnes.si:si.*:verify-si.news.announce.newsgroups -# newgroup:news-admin@arnes.si:si.*:doit -# rmgroup:news-admin@arnes.si:si.*:doit - ## SK (Slovakia) checkgroups:uhlar@ccnews.ke.sanet.sk:sk.*:mail newgroup:uhlar@ccnews.ke.sanet.sk:sk.*:doit rmgroup:uhlar@ccnews.ke.sanet.sk:sk.*:doit -## SLAC ( Stanford Linear Accelerator Center, Stanford, USA ) +## SLAC (*PRIVATE* -- Stanford Linear Accelerator Center, Stanford, USA) # Contact: news@news.stanford.edu # Limited distribution hierarchy, contact the above address for information. newgroup:news@news.stanford.edu:slac.*:mail @@ -1587,12 +1584,15 @@ newgroup:news@tcp.co.uk:solent.*:doit rmgroup:news@tcp.co.uk:solent.*:doit -## StarOffice (Sun Microsystems, Inc.) -# For the StarOffice business suite. +## SPOKANE (Spokane, Washington, USA) +newgroup:usenet@news.spokane.wa.us:spokane.*:doit +rmgroup:usenet@news.spokane.wa.us:spokane.*:doit + +## STAROFFICE (StarOffice business suite, Sun Microsystems, Inc.) # Contact: news@stardivision.de # URL: http://www.sun.com/products/staroffice/newsgroups.html -# Syncable server: starnews.sun.com # Key fingerprint = F6 6A 5C 57 77 1F 63 26 F2 43 02 41 75 2A 04 1C +# Syncable server: starnews.sun.com # *PGP* See comment at top of file. newgroup:*:staroffice.*:drop rmgroup:*:staroffice.*:drop @@ -1601,15 +1601,19 @@ rmgroup:news@stardivision.de:staroffice.*:verify-staroffice.admin ## STGT (Stuttgart, Germany) -checkgroups:news@news.uni-stuttgart.de:stgt.*:mail -newgroup:news@news.uni-stuttgart.de:stgt.*:doit -rmgroup:news@news.uni-stuttgart.de:stgt.*:doit +# URL: http://news.uni-stuttgart.de/hierarchie/stgt/stgt-control.txt +# *PGP* See comment at start of file. +newgroup:*:stgt.*:drop +rmgroup:*:stgt.*:drop +checkgroups:stgt-control@news.uni-stuttgart.de:stgt.*:verify-stgt-control +newgroup:stgt-control@news.uni-stuttgart.de:stgt.*:verify-stgt-control +rmgroup:stgt-control@news.uni-stuttgart.de:stgt.*:verify-stgt-control ## STL (Saint Louis, Missouri, USA) newgroup:news@icon-stl.net:stl.*:doit rmgroup:news@icon-stl.net:stl.*:doit -## SU ( Stanford University, USA ) +## SU (*LOCAL* -- Stanford University, USA) # Contact: news@news.stanford.edu # For local use only, contact the above address for information. newgroup:*@*:su.*:mail @@ -1633,7 +1637,7 @@ rmgroup:news@tamsun.tamu.edu:tamu.*:doit ## TAOS (Taos, New Mexico, USA) -# Contact: "Chris Gunn" +# Contact: Chris Gunn newgroup:cgunn@laplaza.org:taos.*:doit rmgroup:cgunn@laplaza.org:taos.*:doit @@ -1641,45 +1645,45 @@ newgroup:news@t-fcn.net:tcfn.*:doit rmgroup:news@t-fcn.net:tcfn.*:doit -## T-NETZ (German Email Network) -# Defunct, use z-netz.* +## T-NETZ (*DEFUNCT* -- Germany) +# Defunct, use z-netz.*. newgroup:*@*:t-netz.*:mail rmgroup:*@*:t-netz.*:doit -## TELE (Tele Danmark Internet) +## TELE (*LOCAL* -- Tele Danmark Internet) # Contact: usenet@tdk.net -# For internal use only, contact above address for questions +# For internal use only, contact above address for questions. newgroup:*@*:tele.*:mail rmgroup:*@*:tele.*:doit -## TERMVAKT (University of Oslo, Norway) +## TERMVAKT (*LOCAL* -- University of Oslo, Norway) # Contact: jani@ifi.uio.no # For private use only, contact the above address for information. newgroup:*@*:termvakt.*:drop rmgroup:*@*:termvakt.*:doit ## TEST (Local test hierarchy) -# It is not really a good idea for sites to use these since they -# may occur on many unconnect sites. +# It is not really a good idea for sites to use these since they may occur +# on many unconnected sites. newgroup:*@*:test.*:mail rmgroup:*@*:test.*:mail -## THUR ( Thuringia, Germany ) -# *PGP* See comment at top of file. +## THUR (Thuringia, Germany) # Key Fingerprint: 7E 3D 73 13 93 D4 CA 78 39 DE 3C E7 37 EE 22 F1 +# *PGP* See comment at top of file. newgroup:*:thur.*:drop rmgroup:*:thur.*:drop checkgroups:usenet@thur.de:thur.*:verify-thur.net.news.groups newgroup:usenet@thur.de:thur.*:verify-thur.net.news.groups rmgroup:usenet@thur.de:thur.*:verify-thur.net.news.groups -## TNN ( The Network News, Japan ) +## TNN (The Network News, Japan) newgroup:tnn@iij-mc.co.jp:tnn.*:doit newgroup:netnews@news.iij.ad.jp:tnn.*:doit rmgroup:tnn@iij-mc.co.jp:tnn.*:doit rmgroup:netnews@news.iij.ad.jp:tnn.*:doit -## TRIANGLE (Central North Carolina, USA ) +## TRIANGLE (Research Triangle, Central North Carolina, USA) newgroup:jfurr@acpub.duke.edu:triangle.*:doit newgroup:tas@concert.net:triangle.*:doit newgroup:news@news.duke.edu:triangle.*:doit @@ -1705,12 +1709,7 @@ rmgroup:fletcher@cs.utexas.edu:tx.*:doit rmgroup:usenet@academ.com:tx.*:doit -## UA (Ukraine) -# probable tale mistype - meant ukr.* -# newgroup:*@sita.kiev.ua:ua.*:doit -# rmgroup:*@sita.kiev.ua:ua.*:doit - -## UCB ( University of California Berkeley, USA) +## UCB (University of California Berkeley, USA) # Contact: Chris van den Berg newgroup:*:ucb.*:drop rmgroup:*:ucb.*:drop @@ -1718,7 +1717,7 @@ newgroup:usenet@agate.berkeley.edu:ucb.*:verify-ucb.news rmgroup:usenet@agate.berkeley.edu:ucb.*:verify-ucb.news -## UCD ( University of California Davis, USA ) +## UCD (University of California Davis, USA) newgroup:usenet@rocky.ucdavis.edu:ucd.*:doit newgroup:usenet@mark.ucdavis.edu:ucd.*:doit rmgroup:usenet@rocky.ucdavis.edu:ucd.*:doit @@ -1736,15 +1735,11 @@ newgroup:news@mayn.de:ufra.*:verify-news.mayn.de rmgroup:news@mayn.de:ufra.*:verify-news.mayn.de -# newgroup:news@mayn.de:ufra.*:verify-news.mayn.de -# rmgroup:news@mayn.de:ufra.*:verify-news.mayn.de -# checkgroups:news@mayn.de:ufra.*:verify-news.mayn.de - -## UIUC (University of Illinois, USA ) -newgroup:p-pomes@*.cso.uiuc.edu:uiuc.*:doit -newgroup:paul@*.cso.uiuc.edu:uiuc.*:doit -rmgroup:p-pomes@*.cso.uiuc.edu:uiuc.*:doit -rmgroup:paul@*.cso.uiuc.edu:uiuc.*:doit +## UIUC (*LOCAL* -- University of Illinois at Urbana-Champaign, USA) +# Contact: usenet@uiuc.edu +# For internal use only, contact above address for questions. +newgroup:*@*:uiuc.*:mail +rmgroup:*@*:uiuc.*:doit ## UK (United Kingdom of Great Britain and Northern Ireland) # *PGP* See comment at top of file. @@ -1754,19 +1749,15 @@ newgroup:control@usenet.org.uk:uk.*:verify-uk.net.news.announce rmgroup:control@usenet.org.uk:uk.*:verify-uk.net.news.announce -# checkgroups:control@usenet.org.uk:uk.*:mail -# newgroup:control@usenet.org.uk:uk.*:doit -# rmgroup:control@usenet.org.uk:uk.*:doit - -## UKR ( Ukraine ) +## UKR (Ukraine) newgroup:ay@sita.kiev.ua:ukr.*:doit rmgroup:ay@sita.kiev.ua:ukr.*:doit -## UMICH (University of Michigan) +## UMICH (University of Michigan, USA) newgroup:*@*.umich.edu:umich.*:doit rmgroup:*@*.umich.edu:umich.*:doit -## UMN (University of Minnesota, USA ) +## UMN (University of Minnesota, USA) newgroup:edh@*.tc.umn.edu:umn.*:doit newgroup:news@*.tc.umn.edu:umn.*:doit newgroup:Michael.E.Hedman-1@umn.edu:umn.*:doit @@ -1786,21 +1777,16 @@ newgroup:news@news.itu.int:un.*:verify-ungroups@news.itu.int rmgroup:news@news.itu.int:un.*:verify-ungroups@news.itu.int -# checkgroups:news@news.itu.int:un.*:mail -# newgroup:news@news.itu.int:un.*:doit -# rmgroup:news@news.itu.int:un.*:doit - -## UO (University of Oregon, Eugene, Oregon, USA ) +## UO (University of Oregon, Eugene, Oregon, USA) newgroup:newsadmin@news.uoregon.edu:uo.*:doit rmgroup:newsadmin@news.uoregon.edu:uo.*:doit ## US (United States of America) -# *PGP* See comment at top of file. -checkgroups:usadmin@wwa.com:us.*:mail -newgroup:usadmin@wwa.com:us.*:doit -rmgroup:usadmin@wwa.com:us.*:doit +checkgroups:uscontrol@earthlink.net:us.*:mail +newgroup:uscontrol@earthlink.net:us.*:doit +rmgroup:uscontrol@earthlink.net:us.*:doit -## UT (U. of Toronto) +## UT (University of Toronto, Canada) # newgroup:news@ecf.toronto.edu:ut.*:doit # newgroup:news@ecf.toronto.edu:ut.class.*:mail # rmgroup:news@ecf.toronto.edu:ut.*:doit @@ -1809,7 +1795,7 @@ newgroup:news@news.cc.tut.fi:uta.*:doit rmgroup:news@news.cc.tut.fi:uta.*:doit -## UTEXAS (University of Texas, USA ) +## UTEXAS (University of Texas, USA) newgroup:fletcher@cs.utexas.edu:utexas.*:doit newgroup:news@geraldo.cc.utexas.edu:utexas.*:doit newgroup:fletcher@cs.utexas.edu:utexas*class.*:mail @@ -1817,15 +1803,15 @@ rmgroup:fletcher@cs.utexas.edu:utexas.*:doit rmgroup:news@geraldo.cc.utexas.edu:utexas.*:doit -## UTWENTE (University of Twente, Netherlands) +## UTWENTE (*LOCAL* -- University of Twente, Netherlands) # Contact: newsmaster@utwente.nl # For internal use only, contact above address for questions newgroup:*@*:utwente.*:mail rmgroup:*@*:utwente.*:doit -## UVA (virginia.edu - University of Virginia) +## UVA (*LOCAL* -- University of Virginia, USA) # Contact: usenet@virginia.edu -# For internal use only, contact above address for questions +# For internal use only, contact above address for questions. newgroup:*@*:uva.*:mail rmgroup:*@*:uva.*:doit @@ -1833,9 +1819,9 @@ newgroup:bcameron@math.uwaterloo.ca:uw.*:doit rmgroup:bcameron@math.uwaterloo.ca:uw.*:doit -## UWARWICK (University of Warwick, UK) +## UWARWICK (*LOCAL* -- University of Warwick, UK) # Contact: Jon Harley -# For internal use only, contact above address for questions +# For internal use only, contact above address for questions. newgroup:*@*:uwarwick.*:mail rmgroup:*@*:uwarwick.*:doit @@ -1843,6 +1829,11 @@ newgroup:reggers@julian.uwo.ca:uwo.*:doit rmgroup:reggers@julian.uwo.ca:uwo.*:doit +## VAN (Vancouver, British Columbia, Canada) +checkgroups:bc_van_usenet@fastmail.ca:van.*:mail +newgroup:bc_van_usenet@fastmail.ca:van.*:doit +rmgroup:bc_van_usenet@fastmail.ca:van.*:doit + ## VEGAS (Las Vegas, Nevada, USA) newgroup:cshapiro@netcom.com:vegas.*:doit newgroup:doctor@netcom.com:vegas.*:doit @@ -1853,11 +1844,11 @@ newgroup:news@isl.melco.co.jp:vgc.*:doit rmgroup:news@isl.melco.co.jp:vgc.*:doit -## VMSNET ( VMS Operating System ) +## VMSNET (VMS Operating System) newgroup:cts@dragon.com:vmsnet.*:doit rmgroup:cts@dragon.com:vmsnet.*:doit -## WADAI (Japanese ?) +## WADAI (Japanese ?) newgroup:kohe-t@*wakayama-u.ac.jp:wadai.*:doit rmgroup:kohe-t@*wakayama-u.ac.jp:wadai.*:doit @@ -1884,7 +1875,7 @@ rmgroup:mark@bluefield.net:west-virginia.*:doit rmgroup:bryan27@hgo.net:west-virginia.*:doit -## WORLDONLINE +## WORLDONLINE (*LOCAL*) # Contact: newsmaster@worldonline.nl # For local use only, contact the above address for information. newgroup:*@*:worldonline.*:mail @@ -1908,26 +1899,21 @@ newgroup:news@*xs4all.nl:xs4all.*:doit rmgroup:news@*xs4all.nl:xs4all.*:doit -## YORK (York University, Toronto, ON) +## YORK (*LOCAL* -- York University, Toronto, ON) # Contact: Peter Marques # For local use only, contact the above address for information. newgroup:*@*:york.*:mail rmgroup:*@*:york.*:doit -## Z-NETZ (German non internet based network.) +## Z-NETZ (German non-Internet based network) +# Contact: teko@dinoex.sub.org +# Key URL: ftp://ftp.dinoex.de/pub/keys/z-netz.koordination.user+sysops.asc # *PGP* See comment at top of file. -# MAIL: pgp-public-keys@informatik.uni-hamburg.de Subject: GET 0x40145FC9 newgroup:*:z-netz.*:drop rmgroup:*:z-netz.*:drop -checkgroups:dirk.meyer@dinoex.sub.org:z-netz.*:verify-checkgroups-dinoex -newgroup:dirk.meyer@dinoex.sub.org:z-netz.*:verify-checkgroups-dinoex -newgroup:*@*.de:z-netz.alt.*:doit -newgroup:*@*.sub.org:z-netz.alt.*:doit -rmgroup:dirk.meyer@dinoex.sub.org:z-netz.*:verify-checkgroups-dinoex - -# newgroup:*@*.de:z-netz.*:mail -# newgroup:*@*.sub.org:z-netz.*:mail -# rmgroup:*@*.de:z-netz.*:mail +checkgroups:teko@dinoex.sub.org:z-netz.*:verify-z-netz.koordination.user+sysops +newgroup:teko@dinoex.sub.org:z-netz.*:verify-z-netz.koordination.user+sysops +rmgroup:teko@dinoex.sub.org:z-netz.*:verify-z-netz.koordination.user+sysops ## ZA (South Africa) newgroup:root@duvi.eskom.co.za:za.*:doit @@ -1935,7 +1921,7 @@ rmgroup:root@duvi.eskom.co.za:za.*:doit rmgroup:ccfj@hippo.ru.ac.za:za.*:doit -## ZER (German Email Network) -# Defunct, use z-netz.* +## ZER (*DEFUNCT* -- Germany) +# Defunct, use z-netz.*. newgroup:*@*:zer.*:mail rmgroup:*@*:zer.*:doit diff -ruN inn-2.3.2/samples/cycbuff.conf inn-2.3.3/samples/cycbuff.conf --- inn-2.3.2/samples/cycbuff.conf Thu May 3 13:27:32 2001 +++ inn-2.3.3/samples/cycbuff.conf Sun May 5 23:02:07 2002 @@ -19,9 +19,8 @@ # "metacycbuff" (literally) : symbolic meta-cyclic buffer name : # comma separated list of cyclic buffer symbolic names # -# symbolic meta-cyclic buffer name is defined at storage.conf like; -# cnfs:*:1:0:3999:SMALLAREA -# cnfs:*:2:4000:1000000:BIGAREA +# symbolic meta-cyclic buffer names are used in storage.conf in the +# options field metacycbuff:BIGAREA:ONE,TWO metacycbuff:SMALLAREA:THREE diff -ruN inn-2.3.2/samples/moderators inn-2.3.3/samples/moderators --- inn-2.3.2/samples/moderators Thu May 3 13:27:32 2001 +++ inn-2.3.3/samples/moderators Sun May 5 23:02:07 2002 @@ -1,17 +1,31 @@ -## $Revision: 1.3 $ -## Mailing addresses for moderators. +## $Id: moderators,v 1.3.2.2 2001/09/25 03:58:50 rra Exp $ +## +## 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. +## +## 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: ## : -## First match found is used. +## ## Shell-style newsgroup pattern or specific newsgroup ## Mail address, "%s" becomes newgroup name with dots ## changed to dashes. +## +## The first matching entry is used. -## Russian hierarchies +## Public hierarchies with exceptions. fido7.*:%s@fido7.ru medlux.*:%s@news.medlux.ru +nl.*:%s@nl.net relcom.*:%s@moderators.relcom.ru +ukr.*:%s@sita.kiev.ua -## Direct all public hierarchies to the master moderator database. +## Direct all other public hierarchies to the master moderator database. *:%s@moderators.isc.org - diff -ruN inn-2.3.2/scripts/innshellvars.pl.in inn-2.3.3/scripts/innshellvars.pl.in --- inn-2.3.2/scripts/innshellvars.pl.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/scripts/innshellvars.pl.in Sun May 5 23:02:07 2002 @@ -3,7 +3,7 @@ # Start Date: Sat, 24 Aug 1996 22:08:19 +0200 # Project: INN # File: innshellvars.pl -# RCSId: $Id: innshellvars.pl.in,v 1.2.2.3 2001/01/16 13:09:54 rra Exp $ +# RCSId: $Id: innshellvars.pl.in,v 1.2.2.4 2002/04/18 05:17:26 rra Exp $ # Description: Set up any and all variables that an INN perl script # might need. @@ -72,6 +72,7 @@ $sed = "@_PATH_SED@" ; $inndf = "${newsbin}/inndf" ; $egrep = "@_PATH_EGREP@" ; +$gpgv = "@PATH_GPGV@" ; $perl = "@_PATH_PERL@" ; $pgp = "@_PATH_PGP@" ; $sort = "@_PATH_SORT@" ; diff -ruN inn-2.3.2/scripts/rc.news.in inn-2.3.3/scripts/rc.news.in --- inn-2.3.2/scripts/rc.news.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/scripts/rc.news.in Sun May 5 23:02:07 2002 @@ -1,7 +1,7 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -## $Revision: 1.3.2.2 $ +## $Revision: 1.3.2.4 $ ## News boot script. Runs as "news" user. Requires inndstart be ## setuid root. Run from rc.whatever as: ## su news -c /path/to/rc.news >/dev/console @@ -44,6 +44,10 @@ ${PATHBIN}/dbprocs stop fi + if [ -f ${PATHBIN}/rc.news.local ]; then + ${PATHBIN}/rc.news.local stop + fi + exit 0 ;; esac @@ -182,3 +186,7 @@ fi done & +# Run any additional local startup commands. +if [ -f ${PATHBIN}/rc.news.local ] ; then + ${PATHBIN}/rc.news.local start +fi diff -ruN inn-2.3.2/scripts/scanlogs.in inn-2.3.3/scripts/scanlogs.in --- inn-2.3.2/scripts/scanlogs.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/scripts/scanlogs.in Sun May 5 23:02:07 2002 @@ -1,7 +1,7 @@ #! /bin/sh # fixscript will replace this line with code to load innshellvars -## $Revision: 1.2.2.1 $ +## $Revision: 1.2.2.2 $ ## Summarize INN log files. ## Optional arguments: ## norotate Do not rotate logfiles @@ -164,6 +164,34 @@ ${SYSLOG_ERR}) mv ${F}.old ${OLD}/${BASE} ;; + ${UNWANTED_LOG}) + ## Rotate and compress the file. + BASE=`basename ${F}` + if [ ! -f ${BASE} -a -f ../${BASE} ]; then + cp ../${BASE} ${BASE} + chmod 0440 ${BASE} + fi + if [ -f ${BASE} ]; then + ${LOG_COMPRESS} <${BASE} >${BASE}.0${Z} && rm -f ${BASE} + chmod 0440 ${BASE}.0${Z} + + ## Do rotation. + if [ X${LOGCYCLES} = X ]; then + LOGCYCLES=3 + fi + EXT=${LOGCYCLES} + rm -f ${BASE}.${LOGCYCLES}${Z} + while [ ${EXT} -gt 0 ] ; do + NEXT=${EXT} + EXT=`expr ${EXT} - 1` + test -f ${BASE}.${EXT}${Z} \ + && rm -f ${BASE}.${NEXT}${Z} \ + && mv ${BASE}.${EXT}${Z} ${BASE}.${NEXT}${Z} + done + fi + ## Innreport assumes where unwanted.log exists, so leave it + ## and process later. + ;; *) if [ -f ${F}.old ]; then mv ${F}.old ${OLD}/${BASE} @@ -241,6 +269,16 @@ echo '' fi rm -f ${OLD_LOG} ${OLD_SYSLOG} +if ${ROTATE} ; then + BASE=`basename ${UNWANTED_LOG}` + if [ -f ${UNWANTED_LOG}.old ]; then + mv ${UNWANTED_LOG}.old ${OLD}/${BASE} + else + rm -f ${OLD}/${BASE} + cp ${UNWANTED_LOG} ${OLD}/${BASE} + chmod 0660 ${OLD}/${BASE} + fi +fi OLD_SYSLOG=${OLD}/${EXPLOG}.0 rm -f ${EXPLOG} @@ -252,6 +290,10 @@ LOGCYCLES=3 fi for F in ${LOGS} ; do + ## Skip if it's unwanted.log, since it's already rotated + if [ ${F} = ${UNWANTED_LOG} ]; then + continue + fi ## Skip if file doesn't exist. BASE=`basename ${F}` test -f ${BASE} || continue diff -ruN inn-2.3.2/scripts/simpleftp.in inn-2.3.3/scripts/simpleftp.in --- inn-2.3.2/scripts/simpleftp.in Thu May 3 13:27:32 2001 +++ inn-2.3.3/scripts/simpleftp.in Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -#! /usr/bin/perl -T +#! /usr/bin/perl # fixscript will replace this line with require innshellvars.pl # simpleftp diff -ruN inn-2.3.2/storage/Make.ovmethods inn-2.3.3/storage/Make.ovmethods --- inn-2.3.2/storage/Make.ovmethods Thu May 3 13:27:32 2001 +++ inn-2.3.3/storage/Make.ovmethods Sun May 5 23:02:07 2002 @@ -1,5 +1,5 @@ # This file is automatically generated by ovbuildconfig -OVSUBDIR = ovdb buffindexed ov3 +OVSUBDIR = ovdb ov3 buffindexed OV_OBJECTS = ./buffindexed/buffindexed.o ./ov3/ov3.o ./ovdb/ovdb.o LOV_OBJECTS = ./buffindexed/buffindexed.lo ./ov3/ov3.lo ./ovdb/ovdb.lo diff -ruN inn-2.3.2/storage/buffindexed/buffindexed.c inn-2.3.3/storage/buffindexed/buffindexed.c --- inn-2.3.2/storage/buffindexed/buffindexed.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/storage/buffindexed/buffindexed.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: buffindexed.c,v 1.40.2.6 2001/02/12 16:07:58 kondou Exp $ +/* $Id: buffindexed.c,v 1.40.2.8 2002/01/17 01:41:32 kondou Exp $ ** ** Overview buffer and index method. */ @@ -1200,6 +1200,17 @@ syslog(L_ERROR, "%s: ovsetcurindexblock could not get ovbuff block for new, %d, %d", LocalLogName, ov.index, ov.blocknum); return FALSE; } + ovindexhead.next = ovnull; + ovindexhead.low = 0; + ovindexhead.high = 0; +#ifdef MMAP_MISSES_WRITES + if (mmapwrite(ovbuff->fd, &ovindexhead, sizeof(OVINDEXHEAD), ovbuff->base + ov.blocknum * OV_BLOCKSIZE) != sizeof(OVINDEXHEAD)) { +#else + if (pwrite(ovbuff->fd, &ovindexhead, sizeof(OVINDEXHEAD), ovbuff->base + ov.blocknum * OV_BLOCKSIZE) != sizeof(OVINDEXHEAD)) { +#endif /* MMAP_MISSES_WRITES */ + syslog(L_ERROR, "%s: could not write index record index '%d', blocknum '%d': %m", LocalLogName, ge->curindex.index, ge->curindex.blocknum); + return TRUE; + } if (ge->baseindex.index == NULLINDEX) { ge->baseindex = ov; } else { @@ -1801,7 +1812,11 @@ /* this may be duplicated, but ignore it in this case */ OVEXPremove(Gib[j].token, TRUE, NULL, 0); } +#ifdef OV_DEBUG + freegroupblock(ge); +#else freegroupblock(); +#endif ovgroupunmap(); ge->expired = time(NULL); ge->count = 0; @@ -1919,7 +1934,7 @@ FILE *F = NULL; PID_T pid; char *path = NULL; - int j; + int i,j; struct ov_trace_array *trace; struct ov_name_table *ntp; #endif /* OV_DEBUG */ diff -ruN inn-2.3.2/storage/cnfs/cnfs.c inn-2.3.3/storage/cnfs/cnfs.c --- inn-2.3.2/storage/cnfs/cnfs.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/storage/cnfs/cnfs.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: cnfs.c,v 1.73.2.6 2001/03/29 01:04:13 kondou Exp $ +/* $Id: cnfs.c,v 1.73.2.8 2001/09/21 15:11:12 kondou Exp $ ** ** Cyclic News File System. */ @@ -351,6 +351,11 @@ return FALSE; } *p = '\0'; + if (CNFSgetcycbuffbyname(l) != NULL) { + *p = ':'; + syslog(L_ERROR, "%s: duplicate cycbuff name in line '%s'", LocalLogName, l); + return FALSE; + } cycbuff = NEW(CYCBUFF, 1); memset(cycbuff->name, '\0', CNFSNASIZ); strcpy(cycbuff->name, l); @@ -366,7 +371,7 @@ memset(cycbuff->path, '\0', CNFSPASIZ); strcpy(cycbuff->path, l); if (stat(cycbuff->path, &sb) < 0) { - syslog(L_ERROR, "%s: file '%s' does not exist, ignoring '%s' cycbuff", + syslog(L_ERROR, "%s: file '%s' : %m, ignoring '%s' cycbuff", LocalLogName, cycbuff->path, cycbuff->name); DISPOSE(cycbuff); return FALSE; @@ -419,6 +424,11 @@ return FALSE; } *p = '\0'; + if (CNFSgetmetacycbuffbyname(l) != NULL) { + *p = ':'; + syslog(L_ERROR, "%s: duplicate metabuff name in line '%s'", LocalLogName, l); + return FALSE; + } metacycbuff = NEW(METACYCBUFF, 1); metacycbuff->members = (CYCBUFF **)NULL; metacycbuff->count = 0; diff -ruN inn-2.3.2/storage/interface.c inn-2.3.3/storage/interface.c --- inn-2.3.2/storage/interface.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/storage/interface.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: interface.c,v 1.45.2.6 2001/03/26 22:41:43 kondou Exp $ +/* $Id: interface.c,v 1.45.2.7 2002/04/01 08:22:32 rra Exp $ ** ** Storage Manager interface */ @@ -650,6 +650,7 @@ const char *p; int i; BOOL wanted = FALSE; + BOOL poisoned = FALSE; /* Find the end of the line */ for (p = g+1; (*p != '\n') && (*(p - 1) != '\r'); p++); @@ -668,19 +669,27 @@ for (i = 0; i < num; i++) { switch (patterns[i][0]) { case '!': - if (!wanted && wildmat(group, &patterns[i][1])) - break; + if (wildmat(group, &patterns[i][1])) + wanted = FALSE; + break; case '@': if (wildmat(group, &patterns[i][1])) { - DISPOSE(groups); - return FALSE; + wanted = FALSE; + poisoned = TRUE; } break; default: - if (wildmat(group, patterns[i])) + if (wildmat(group, patterns[i])) { wanted = TRUE; + poisoned = FALSE; + } + break; } } + if (poisoned) { + DISPOSE(groups); + return FALSE; + } } DISPOSE(groups); diff -ruN inn-2.3.2/storage/ov.c inn-2.3.3/storage/ov.c --- inn-2.3.2/storage/ov.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/storage/ov.c Sun May 5 23:02:07 2002 @@ -406,7 +406,7 @@ OVdelayrm = ((OVGE *)val)->delayrm; OVusepost = ((OVGE *)val)->usepost; OVrealnow = ((OVGE *)val)->now; - OVnow = ((OVGE *)val)->now + (time_t)(((OVGE *)val)->timewarp * 86400.); + OVnow = ((OVGE *)val)->now + (time_t)((OVGE *)val)->timewarp; OVquiet = ((OVGE *)val)->quiet; OVkeep = ((OVGE *)val)->keep; OVearliest = ((OVGE *)val)->earliest; diff -ruN inn-2.3.2/storage/ov3/ov3.c inn-2.3.3/storage/ov3/ov3.c --- inn-2.3.2/storage/ov3/ov3.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/storage/ov3/ov3.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: ov3.c,v 1.20.2.8 2001/02/23 07:54:36 kondou Exp $ +/* $Id: ov3.c,v 1.20.2.11 2002/03/31 22:51:01 rra Exp $ ** ** Indexed overview method. */ @@ -725,7 +725,7 @@ ie.expires = expires; ie.token = token; - if (pwrite(gh->indexfd, &ie, sizeof(ie), (artnum - base) * sizeof(ie)) != sizeof(ie)) { + if (xpwrite(gh->indexfd, &ie, sizeof(ie), (artnum - base) * sizeof(ie)) != sizeof(ie)) { syslog(L_ERROR, "tradindexed: could not write index record for %s:%d", gh->group, artnum); return FALSE; } @@ -950,9 +950,7 @@ char bakidx[BIG_BUFFER], oldidx[BIG_BUFFER], newidx[BIG_BUFFER]; struct stat sb; int fd; - int numentries; GROUPHANDLE *gh; - OFFSET_T nbytes; if (delta <= 0) return FALSE; @@ -966,7 +964,7 @@ syslog(L_NOTICE, "tradindexed: repacking group %s, offset %d", group, delta); GROUPlock(gloc, LOCK_WRITE); - if (delta > ge->base) delta = ge->base; + if (delta >= ge->base) delta = ge->base - 1; strcpy(bakgroup, group); strcat(bakgroup, "-BAK"); @@ -996,42 +994,22 @@ return FALSE; } - /* stat old index file so we know its actual size. */ - if (fstat(gh->indexfd, &sb) < 0) { - syslog(L_ERROR, "tradindexed: could not stat %s: %m", newidx); + if (xpwrite(fd, gh->indexmem, gh->indexlen, + sizeof(INDEXENTRY) * delta) < 0) { + syslog(L_ERROR, "tradindexed: packgroup cant write to %s: %m", newidx); close(fd); OV3closegroup(gh, FALSE); GROUPlock(gloc, LOCK_UNLOCK); return FALSE; } - - - /* write old index records to new file */ - numentries = ge->high - ge->low + 1; - nbytes = numentries * sizeof(INDEXENTRY); - - /* - ** check to see if the actual file length is less than nbytes (since the - ** article numbers may be sparse) and if so, only read/write that amount. - */ - if (nbytes > sb.st_size) { - nbytes = sb.st_size; - } - if (pwrite(fd, &gh->indexmem[ge->low - ge->base] , nbytes, - sizeof(INDEXENTRY)*(ge->low - ge->base + delta - 1)) != nbytes) { - syslog(L_ERROR, "tradindexed: packgroup cant write to %s: %m", newidx); - close(fd); - OV3closegroup(gh, FALSE); - GROUPlock(gloc, LOCK_UNLOCK); - return FALSE; - } if (close(fd) < 0) { syslog(L_ERROR, "tradindexed: packgroup cant close %s: %m", newidx); OV3closegroup(gh, FALSE); GROUPlock(gloc, LOCK_UNLOCK); return FALSE; } + do { if (stat(newidx, &sb) < 0) { unlink(newidx); diff -ruN inn-2.3.2/storage/tradspool/tradspool.c inn-2.3.3/storage/tradspool/tradspool.c --- inn-2.3.2/storage/tradspool/tradspool.c Thu May 3 13:27:32 2001 +++ inn-2.3.3/storage/tradspool/tradspool.c Sun May 5 23:02:07 2002 @@ -1,4 +1,4 @@ -/* $Id: tradspool.c,v 1.23.2.4 2001/02/03 07:28:09 rra Exp $ +/* $Id: tradspool.c,v 1.23.2.9 2002/02/11 17:31:45 vinocur Exp $ ** ** Storage manager module for traditional spool format. */ @@ -29,11 +29,11 @@ typedef struct { char *artbase; /* start of the article data -- may be mmaped */ unsigned int artlen; /* art length. */ - int nextindex; + int nextindex; char *curdirname; DIR *curdir; struct _ngtent *ngtp; - BOOL mmapped; + BOOL mmapped; } PRIV_TRADSPOOL; /* @@ -410,13 +410,13 @@ #define RELOAD_TIME_CHECK 600 void -CheckNeedReloadDB(void) { +CheckNeedReloadDB(BOOL force) { static TIMEINFO lastcheck, oldlastcheck, now; struct stat sb; char *fname; if (GetTimeInfo(&now) < 0) return; /* anyone ever seen gettimeofday fail? :-) */ - if (lastcheck.time + RELOAD_TIME_CHECK > now.time) return; + if (!force && lastcheck.time + RELOAD_TIME_CHECK > now.time) return; oldlastcheck = lastcheck; lastcheck = now; @@ -427,7 +427,7 @@ return; } DISPOSE(fname); - if (sb.st_mtime > oldlastcheck.time && oldlastcheck.time != 0) { + if (sb.st_mtime > oldlastcheck.time) { /* add any newly added ngs to our in-memory copy of the db. */ ReadDBFile(); } @@ -487,7 +487,7 @@ unsigned long artnum; char *ng, *path; - CheckNeedReloadDB(); + CheckNeedReloadDB(FALSE); memcpy(&ngnum, &token.token[0], sizeof(ngnum)); memcpy(&artnum, &token.token[sizeof(ngnum)], sizeof(artnum)); @@ -495,7 +495,12 @@ ngnum = ntohl(ngnum); ng = FindNGByNum(ngnum); - if (ng == NULL) return NULL; + if (ng == NULL) { + CheckNeedReloadDB(TRUE); + ng = FindNGByNum(ngnum); + if (ng == NULL) + return NULL; + } path = NEW(char, strlen(ng)+20+strlen(innconf->patharticles)); sprintf(path, "%s/%s/%lu", innconf->patharticles, ng, artnum); @@ -547,7 +552,7 @@ RENEW(xrefs, char *, xrefsize); } - p = q; + p = q; /* skip spaces */ for ( ; *p == ' ' ; p++) ; } @@ -883,7 +888,10 @@ return NULL; } - if ((path = TokenToPath(token)) == NULL) return NULL; + if ((path = TokenToPath(token)) == NULL) { + SMseterror(SMERR_NOENT, NULL); + return NULL; + } if ((art = OpenArticle(path, amount)) != (ARTHANDLE *)NULL) { ret_token = token; art->token = &ret_token; @@ -971,11 +979,16 @@ linkpath = NEW(char, strlen(innconf->patharticles) + strlen(ng) + 32); sprintf(linkpath, "%s/%s/%lu", innconf->patharticles, ng, artnum); - /* hmm, do we want to abort this if one of the symlink unlinks fails? */ - if (unlink(linkpath) < 0) result = FALSE; + /* repeated unlinkings of a crossposted article may fail on account + of the file no longer existing without it truly being an error */ + if (unlink(linkpath) < 0) + if (errno != ENOENT || i == 1) + result = FALSE; DISPOSE(linkpath); } - if (unlink(path) < 0) result = FALSE; + if (unlink(path) < 0) + if (errno != ENOENT || numxrefs == 1) + result = FALSE; DISPOSE(path); for (i = 0 ; i < numxrefs ; ++i) DISPOSE(xrefs[i]); DISPOSE(xrefs); @@ -1208,13 +1221,18 @@ case SMARTNGNUM: if ((ann = (struct artngnum *)value) == NULL) return FALSE; - CheckNeedReloadDB(); + CheckNeedReloadDB(FALSE); memcpy(&ngnum, &token->token[0], sizeof(ngnum)); memcpy(&artnum, &token->token[sizeof(ngnum)], sizeof(artnum)); artnum = ntohl(artnum); ngnum = ntohl(ngnum); ng = FindNGByNum(ngnum); - if (ng == NULL) return FALSE; + if (ng == NULL) { + CheckNeedReloadDB(TRUE); + ng = FindNGByNum(ngnum); + if (ng == NULL) + return FALSE; + } ann->groupname = COPY(ng); ann->artnum = (ARTNUM)artnum; return TRUE;