Changes since the last release (1.0.7.1) 2.3 Fri Jan 30 04:34:09 EST 1998 * new: more http statistics * change: optimised list.c * bugfix: nocem log entry format * new: minUpdateFailDelay and minUpdateSyntaxDelay now control how long we flag a server/list tuple as being unavailable * bugfix: LoC and LoXover (statistics) were not calculated correctly * bugfix: remove potentional race condition in src/lists.c pertaining to updating overview_fmt information in shared memory * new: expanded nntpcache.servers-dist examples * bugfix: server uptime/down time calculation missed some cases * change: consistant case-independence in wild mats * change: smarter handling of newnews errors 2.3pre1: Wed Jan 28 07:12:19 EST 1998 * new: nntpcacherized innreport+GD * new: logInn - switchable nnrpd compatible log messages * bugfix: typo in article.c caused filtered not-cached BODY's, fetched from a server marked as article caching enabled to return the article head prepended to the body. * new: full pat1,!pat2,pat3 support throughout for configuration wildmat's * new: innreport/nnrpd compatible log messages everywhere * port: added strerror() for systems that don't have it * bugix: \r\n missing from NNTP server down error message in ihave.c * new: statistics collated on a per-server basis * change: IHAVE robustness increased * change: attempt to deal with clients that don't send MODE READER as their first instruction * new: expand our mmalloc() memory curruption detector to report the source line and number the currupted region was malloc'd from. Only takes an additional 4 bytes per malloc. * new: various cool http server statistical display features * bugfix: XGTITLE alt.foo* (i.e pattern) worked fine, but XGTITLE alt.foo activated a hash table optimisation trap for LIST ACTIVE specific.group -- and would return the high and low water marks (etc) instead of the group name * new: force a cache miss for GROUP immediately following POST, so readers can see an updated article count * bugfix: the NoCem daemon neglected to flag itself has being in reader mode, consequently, if it spoke to servers that defaulted taking NNTP rather than NNRP, it was unable to fetch any articles. * change: more specific NNTP error messages in group.c * bugfix: the NoCem daemon skipped all articles due to missing slaveClient directive in emitf(). 2.2b7: Mon Jan 19 06:39:13 EST 1998 * bugfix: relayUnknowns was broken during the re-organisation of the cmd loop. This caused trn and some versions of tin to hang on startup. 2.2b6: Mon Jan 19 04:30:11 EST 1998 * port: modify ./configure to auto detect -lresolv and -lbind * port: modify include file order in contrib/newshound/conf.h for solaris 2.5.1 * new: core web-server code merged * bugfix: some systems created mmapBaseFile with mode 0 permissions due to a missing argument in nntpache.c * port: modifiy configure.in and common/ntypes.h to handle HPUX's disbelief in underscores (HPUX uses uint64_t while the rest of the world uses u_int64_t) * new: greatly improved NEWNEWS handling * port: BSDOS <time.h> included sys/types.h which caused compile-time error pertaining to nconf's redefinition of FD_SETSIZE in src/date.c * change: set the default listActiveThreshold to 0 in cf/nnconf.cf.in. The default threshold of 5 was quite reasonable, but until the news admin is familar with how nntpcache works, it's preferable that the active file be identical (or only expanded) after nntpcache lands on the scene. * bugfix: serverDownRecheck was declared as "int" not "time" in cf/nnconf.cf.in 2.2b5: Thu Jan 15 16:51:27 EST 1998 * bugfix: Some sort of depravity caused the default umask in nnconf.cf.in to be set to 0755 instad of 022. * change: alt.nocem.misc -> news.lists.filters. The latter is more widely carried. * new: Greatly expanded the last example in nntpcache.servers, as some servers were placing news.nntpcache.org too high up on their server list (meaning news.nntpcache.org got hit with hundreds of <msgid> lookups) * change: -dist(ify) installed files in pgp/ so local configuration isn't over-written. update INSTALL accordingly * bugfix: make 'install' neglected to set the ownerships of $(sysconfdir) and $(localstatedir) correctly 2.2b4: Wed Jan 14 12:17:09 EST 1998 * bufix: nntpcache had a ceiling on msgid lengths of 127 characters. Pine, in its infamy, places the hostname, operating system version information, architecture information, time, Pine version etc into the Message-ID. nntpcache would silently truncade these moby-msgid's to 127 characters. Changed the Message-ID length to 500 characters. * change: reverse the logic of 'PORTS'. Maintaing an uptodate list of what nntpcache worked on proved futile, because nntpcache functions well on most platforms now. Instead, we list the platforms nntpcache doesn't work on :) * change: minor modifications to INSTALL to reflect -dist and autodetection of promising UID/GID's * change: the nntpcache.* config files are now installed as nntpcache.*-dist, e.g nntpache.config-dist, so old configurations are not wiped-out. 2.2b3: Wed Jan 14 10:41:24 EST 1998 * new: toggle nocemPGP at configure time based on detection of PGP (or otherwise) * bugfix: installation targets in cf/Makefile.am presumed a fresh install - if there was existing cache data, then the top level directores became mode 600, and nntpcache was unable to access them * new: user definable umask * bugfix: consistancy in directory creation permissions, sometimes directories were created as 0775-umask, sometimes as 0755-umask. all are now 0775-umask. all file creations are 0664-umask * change: minor extensions to strKToi() * new: confused now handles octal (0) and hex (0x) integers 2.2b2 : Tue Jan 13 17:24:10 EST 1998 * bugfix: Exit(1) -> Exit(0) in sigpipe() - if a client disconnected before QUIT (quite common), then the new Exit() handler would force an abort() * change: updated INSTALL to reflect V2 changes * bugfix: misplaced debugging macro in ihave.c caused IHAVE's to fail if logDebug was enabled * new: HELP command * new: adminEmail config variable (only used in HELP so far) * new: autodetect hostname at compile time * bugix: code for the DATE command was present, but the keyword had gone walk-about * new: nntpcache news server (for nntpcache.* groups) now open to the world on news.nntpcache.org! example config file changes to reflect this. * bugix: final \n was missing from nnconf.cf.in causing some systems to ignore the last entry (mmapBaseFile) * port: libproff/utils.c now has a setenv() -> putenv() wrapper for systems missing setenv () - e.g solaris 2.5. redundent tests for HAVE_SETENV in nntpcache.c removed. 2.2b1: Mon Jan 12 17:08:22 EST 1998 * new: autoconf detection of PGP * new: autoconf detection of available nntpcache UID/GID's * new: autodetection/adaption for FD_SETSIZE * new: confused is now capable of generating and parsing arbitrary configuration structures, code changes all-over to reflect this * new: assertion macros from marutukku * change: general code rationalisation * new: Exit() now a macro to eliminate compiler warnings * port: adaptive handling of mmap address differences * new: smarter handling of /* */ style comments in nntpcache.servers parsing code * new: strXMListAdd()/strXMListFree(), shared memory versions of libproff functions strListAdd()/strListFree() * new: conf.[ch] -> nnconf.[ch] to reflect changes in confused * new: smarter logging during list merges * new: autoconf'ed internal fixed-bit type system, n_8 -> n_u64 * new: handle lame newsgroup listings (newsgroups with out any descriptions) * new: smarter NNTP error message output in group.c * new: safeGroup characters now definable in config * new: highly optimised safeGroup() * new: smarter NNTP error message output in date.c * new: statsArticleID now settable at run time * change: smarter NNTP error message output in article.c * change: X() auto-extern/prototype generator changed to the more sophisticated and TAGS friendly EXPORT macro system. Code changes throughout to reflect this. * new: migration of all make files to GNU automake * new: complete source tree reorganisation * new: "FAQ" and "FAQ.html" * new: "HACKING" documentation * change: overviewFmt -> overviewFmtInternal, overviewFmtDef -> overviewFmtBozo (migrated to stringl types, the name changes are designed to be incompatible with older configuration files) * new: ihaveSpeedHandshake -- fast multiserver IHAVE handshaking * new: readersMax config keyword - limit concurrent reader population * new: postStripHeader config regex * new: serverDownRecheck config keyword * new: complete NoCem daemon and PGP support code. * new: NoCem config keywords: nocem, nocemIntitialScan, nocemInterval, nocemGroups, nocemFrom, nocemType, nocemAction, nocemPGP, nocemPGPbegin, nocemPGPend, nocemPGPcommand, nocemPGPgood, nocemPGPPATH * new: NoCem pgp dir -> contains public keys for most valid NoCem posters * new: libconfused - smarter handling of quotes * new: libconfused - support for new `stringl' type * new: cleaner headers in libproff/*.c * bugfix: libproff/str.c/strStackAdd() had dubious boundary allocation methods * new: NoCem access controls in acc.c * new: more intelligent error message handling in group.c * new: verbose setproctitile() suport throughout * new: smarter/multi-server IHAVE support * new: unsafe group stripping during list merge phase * new: active threshold (listActiveThreshold) and (listPermitLoneyness) configuration variables * new: improved logging for in list merge phase * new: NOTREACHED macro * new: various new logging macros in log.h * new: logListMerge and logListCorrelation configuration variables * new: html source code analysis/tour * new: www.nntpcache.org web pages * new: nntpcache.org back again * new: -f flag (with [acnu] arguments) to hold off execution of children (used for debugging) * new: Complete restructuring of nntpcache.c to support internal daemons in addition to general hardening. * new: make_vm_proc() and retire_vm_proc() for internal daemons. * new: Regex based generic header stripper for post.c * new: Global sever availability status now monitored and used to intelligently bypass faulty servers across multiple clients * new: Generic method of writing efficient loop-back daemons - emit*() routines modified to capture data that would have ended up being send to the client in a strStack * new: NoCem statistics support in stats.h * new: NoCem support for xovers * change: smarter handling of XHDR fields * change: truth values now returned by most CMD* functions * new: confused has a new type "stringl" which defined a struct strList linked list of strings * change: all round smarter handling of xover format definitions * new: smarter handling of mmap base addresses when mmapAnon is not used/available, the first acquired base address is used and tracked via con.mmapBaseFile * bugfix: typos in nntpcache.c caused anonMmap option to be always true in certain circumstances. * bugfix: If the client idle time was set to n seconds and n-m seconds had elapsed (| 0<m<n) and the client issued a command that took longer than m-n seconds, the client would erroniously find itself idle nuked. * new: QUICK keyword for the access file, completes rule parsing on the current entry. * bugfix: some sscanf implementations insist on passing the entire string to be sscanf'ed - this caused problems at one place in article.c where the string to be passed was not \0 terminated. * bugfix: Under some circumstances double frees could occur in xover.c and post.c, resulting in the infamous "memory corrupt" error. * bugfix: a close in xover.c was using (recently) freed data * bugfix: When delayed server binding was introduced it broke IHAVE support (sent `mode reader' on server connect) * new: use 64bit ints (if available) or doubles for statistical byte counters (some stats were wrapping around due to the low ceiling of 32 bit ints) * bugfix: keyword entry for LAST was (bizarrely) missing * new: IHAVE permission flag added to access controls * bugfix: Various bogosity in libproff/str.c strcase* fixed * new: Added SO_KEEPALIVE to more frequently detect network hangs * change: Minor changes to make clean * bugfix: improved syncing of next/last article numbers