2.4-b4: Wed May 24 01:34:32 EST 2000 (calcium? who needs calcium?) * change: order mmap target before libproff * bugfix: fix port binding problem under Linux and FreeBSD * change: add watch process label * bugfix: fix ifdef typo in libradius * change: update parts of libproff * change: update style guide * bugfix: fix egregious NEWGROUPS y2k bugfixes * change: upgrade autoconf / automake * change: update nocem pgp keys 2.4-b3: Sat Feb 20 20:20:19 EST 2000 (an age of longing) * bugfix: the number of master tasks was, for statistical purposes, counted incorrectly * new: delay auth attempts via unixauth to avoid password scanning * compat: support for linux shadow passwords * bugfix: support SIGHUP a little better * change: don't treat all critical errors as equally severe Exit(2) now exits without abort() * new: handle some more NEWGROUPS y2k broken news readers. We now handle several types of years: yy -> 2000+yy if yy < 70, else 1900+yy yyy -> 1900+yy yyyy -> yyyy 19yyy -> 19yyy - 1900 * new: reorganise code-path to detach from the tty as late as possible. log messages to tty and syslog until detach * bugfix: authinfo_pipe support wasn't automatically compiled in * new: more intelligent debugging support * change: rfc931 idents off by default * new: support for tcpwrappers (useLibWrap) * compat: support a few more stat{v,}fs types. Apparently this was causing src/expire.c to refuse to compile under certain versions of linux 2.4-b2: Fri Dec 31 15:45:59 EST 1999 (it was the afternoon before Armageddon...) * compat: squash printf warnings * new: 2.3.x -> 2.4 upgrade documentation * new: slightly more intelligent banner messages * bugfix: sending AUTHINFO to remote servers, was too secure for its own good. it sent the username twice. and the password not at all. mmmmm, user contributed patches. * bugfix: potential shared memory race conditions in the allocation of pointers to new task_info structures. 2.4-b1: Fri Dec 24 21:20:07 EST 1999 (it was the night before Christmas...) * new: better documentation. ok. just kidding * new: iterative percentage based expiry. minBlocksFree and minFilesFree are now minBlocksFreePercent and minFilesFreePercent * compat: glibc2+ defines strdup. nuke it from orbit * new: AUTHINFO to remote servers via user:pass@server * new: gdb bug report script * bugfix: reset some lists stats if the newsgroup list could not be recovered * new: generic support for AUTHINFO authenticators * new: /etc/passwd AUTHINFO support * new: LDAP AUTHINFO support * new: pipe authenticator support * new: radius support (substantially complete, but untested) * change: eliminate unistd.h related warning under NetBSD/BSDI * change: remove all remaining support for the depreciated stats@nntpcache magic article ID (the http statistics are far more verbose) * new: make the rfc931 timeout configurable as rfc931Timeout (surprise!) * change: drop the default rfc931 timeout to 5 seconds * new: Per connection byte accounting * bugfix: According to the rfc, NEWGROUPS takes 2 digit years. consequently there's a y2k issue. Hack around it using the < 50 rule. * bugfix: use [] rather than <> when generating http forbidden message. * change: la pr?somption d'innocence. * new: various configure time functionality added: --enable-debug, --with-debug, --with-debug-libs, --with-efence, --with-dmalloc, --with-optimise, --with-profiling, --with-block-profiling, --with-static, --with-mstats * new: support gcc style printf style type checking for emitf et al * bugfix: reset list statistics when reinvoked with anonymous shared memory or corrupted file backed shared memory. * and: the unmentionable in pursuit of the uncodeable 2.3.3: Fri Aug 21 07:23:02 EST 1998 * change: updated copyrights to reflect movement to nacf. 2.3.3b4: Wed Aug 19 21:21:07 EST 1998 * change: update & collate NoCem keys. * bugfix: the nntpcache master erroneously freed task structures, leading to reuse of task structures by new tasks (!). * bugfix: a couple of places in src/{ihave,group}.c sigsegv'd when trying to update statistics for a server that had fallen over. * change: core-dump when an assertion fails, in order to avoid potential shared memory corruption. * bugfix: missing "static" in render_idx resulted in config file int's being printed as garbage in the web-stats display (reported for hp-ux, but theoretically other systems too). * bugfix: bad article hits were falsely marked (for the porposes of keeping statistics) as good. 2.3.3b3: Wed Aug 5 05:00:37 EST 1998 * bugfix: By default groups that had always (in nntpcache's experience) contained 0 messages had their high and low water marks ignored. * bugfix: if a remote connection timed out, on auto-reconnection, "next" would return an incorrect article number 2.3.3b2: Tue Aug 4 08:05:53 EST 1998 * new: nocemCache config option - turn on/off caching of articles obtained during a nocem scan * bugfix: typo in failed post inn compat logging macro * port: OSF3.0 sia_getgroup() passed a NULL pointer to our custom (checking) free() routine. For now we just ignore NULL's pointers passed to free(). * bugfix: nntpcache.c:1368 failed assertion: task_desc[nc_none] == NULL nc_none should have been nc_last * bugfix: @@lists@@ statistics macro was returning the number of list requests (by type) formatted as time displacement. This was fine till one hit 60, from then on the result took a little head scratching to comprehend :) 2.3.3b1: Mon Aug 3 07:50:25 EST 1998 * change: task structures revamped * new: user definable nice values for process crew. * change: Exit -> retire_vm_proc where applicable. * bugfix: process pid was wrongly reported in process list * new: web-server / statistics substantially extended * bugfix: the introduction of 64 bit counters in nntpcache-2.3.2 caused headaches (e.g sigsegvs, in the nocem logging macros/statistics) for systems which didn't auto-demote 64bit - 64bit arithmetic into a 32bit int when used as an argument to *printf corresponding to a '%d' format specifier. * bugfix: src/nocem.c:nocem_scan_group() typo caused the last nocem update time to be miscalculated. * bugfix: missing flushes in src/ihave.c caused IHAVE to sometimes pause forever. * bugfix: more than maxXoverNodes * 512 (10240 by default) XOVER's being accessed in one hit resulted in XOVER's prior to this figure (in the same hit) not making it onto the disk. * bugfix: /* hpux */ comment in configure.in naturally tried to run the first thing in the root directory ;) * bugfix: don't believe a news-server when it says there are 0 0 articles in a group in response to a GROUP command - 0 0 means `undefined' according to RFC977. * bugfix: potential race condition for Update and Expire daemon reaping. * bugfix: gif images were not always presented correctly from the nntpcahce web-server (cache miss conditional blank line in the HTTP prelude). * change: clarify a few type definitions that egcs-2.91.50+1998071 took a disliking to. now compiles with -O9 and -mpentium * bugfix: ARTICLE <stats@nntpcache> sigsegv'd. this code was/is being phased out anyway (in favour of statistics as presented by the web-server), it now (mostly) works again. * bugfix: global (as opposed to per-server) byte counter statistics were not collected correctly. * bugfix: trivial typo (extra \r\n) for loginn macro in src/post.c * bugfix: add a dummy call to calloc() to force linking with our calloc() replacement. some systems (e.g linux/libc6) don't over-ride libc calloc otherwise and thus suffer from interference between the nntpcahce shared memory [cm]alloc replacement library and libc calloc (the latter being called not from nntpcache, but directly from libc routines). * bugfix: tweak inn logging compatability macros for greater verismiltude. * bugfix: taskInfoPrivacy (concealing the current group of a client from ps(1)) wasn't obeyed everywhere. * bugfix: add a few missing closelog()'s (not important) * bugfix: trivial logging typo in src/nntpcache.c * bugfix: force `mode reader' for async ACTIVE/NEWSGROUPS (etc) updates. Some news-servers refused to dish out active lists et al when not in reader mode. * new: adaptive LISTGROUP * new: smarter handling of high/low article counts * bugfix: "permissions" in src/http.c somehow ended up as "permimacroons". No-one caught this before. Like the peasents cheering the emperor's imaginary clothes, no one wanted to admit they were just too unhip to dig it. 2.3.2.1: Sun Feb 15 16:30:35 EST 1998 * bugifx: break mmap_tests.c out of cf and into its own directory (mmap/) (fixes a build ordering problem under irix) * port: OSF3.2 getgrid(), in its wisdom, calls free(NULL). nntpcache's malloc debuging library wasn't too happy with this (as you might expect). For now, we just ignore free(NULL) * bugfix: server dowtime (and thus availability) wasn't calculated correctly under certain cercumstances * new: verbose error messages for src/http.c * new: new configuration variable "taskInfoPrivacy" -- if true, don't display current group in the process list for reader clients * port: HPUX's native compiler choked on a couple of functional like constructs in src/http.c - i.e functions such as foo() {return bar();} or foo () {#ifdef NOTON stuff() #endif; return;} * bugfix: insignificant typo corrected in src/http.c (closing </html> was "</html") * bugfix: a typo in src/nntpcache.c caused cache.base to be saved with mode 0x664 rather than 0664 * port: under IRIX6.4 sa_len is #defined (polluted!) in <sys/sockets.h> to be an indirect method of examining a memeber of a union in struct sockaddr. src/sockets.c was using "sa_len" as the name of one of its local variables. changed to "slen" in order to avoid conflict. * new: expand mmap_tests.c to test for merged vm/buffer cache 2.3.2: Sat Jan 31 19:33:38 EST 1998 * bugfix: if a server was defined for a group, but the group didn't exist in the server's active file, then GROUP group incorrectly returned a "remote server down?" message, rather than "no such group". * new: maxMsgIDsearch, used for throttling recursive msgid lookups, and excessive consulting with external servers * bugfix: stringl types in confused were returning only the last node in certain circumstances. * bugfix: fix potential (rare) memory leak in src/article.c 2.3.1: Sat Jan 31 10:04:47 EST 1998 * bugfix: if logInn was on, any unrecognised NNTP command would cause the client daemon to SIGSEGV (missing argument in the logging macro) * bugfix: overview.fmt signatures were miscalculated, resulting in nntpcache working under the false presumption that the server had no overview.fmt at all! * bugfix: server uptime/downtime for list fetch attempts wasn't updated correctly 2.3: Fri Jan 30 17:59:04 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 potential 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: consistent 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 corruption detector to report the source line and number the corrupted 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 instead 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 truncate these moby-msgid's to 127 characters. Changed the Message-ID length to 500 characters. * change: reverse the logic of 'PORTS'. Maintaining 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 directories became mode 600, and nntpcache was unable to access them * new: user definable umask * bugfix: consistency 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 1.0.7 : Sat Jul 12 08:35:05 EST 1997 * bugfix: various statistics are now correctly collected * new: statistics structure is now saved to disk immediately after every update daemon excursion * change: quite a few minor optimisations * new: statistics collection now bypasses IPC, using shared memory instead * new: auto-detection of statistics file version changes * new: allow fetching of stats via magic article-id <stats@nntpcache> * port: remove ftell method of of client byte counts (broken under linux) * change: remove %m from syslog wrappers that didn't set errno * bugfix: SIGHUP (re-read config file) caused nntpcached to stop listening to ports * change: Exit() now uses parameters * new: nnrpd compatible logging messages - permits nnrpd statistics gathering programs to process nntpcached logs * new: add per-group counting for the above * new: CPU (user/system) time accounting * bugfix: typo in libproff/utils.c malloc wrappers meant the code would loop forever trying to allocate memory, even if none was available * bugfix: proctitle implimentations which use argv space were over-writing command line configuration strings. this meant -c, -a and -b could not be used correctly * bugfix: -r (zorching) attempted to remove files based on the default location, rather than the config file * bugfix: genextern.sh was generating unneeded declerations * bugfix: under certain circumstances white-space in xover xref headers would be dropped * bugfix: multi-server same group article number collision for xovers wasn't being delt with correctly as the article number wasn't stripped off during server lookups * new: remoteIdleTimeout - drop the connection to a remote NNTP server if the data channel remains inactive for longer than this period. 1.0.6 : Tue Apr 1 23:36:49 EST 1997 /* no joke :) */ * port: snprintf/vsnprintf functions in libproff for systems that didn't have it. * port: setproctitle support code in libproff for systems that didn't have it in libc (the majority). * update: autoconf 2.12 * bugfix: Permit ':' in path's. Safepath() didn't permit ':' before and as a consequence some operations on servers on ports other than 119 failed. * change: various optimisations thoughout * change: updated version of user-contributed pre-caching code "newshound" from Andre Dedio. * new: re-thread the newsgroup nodes with an activity queue. we don't actually use this thread yet, but it forms the backbone of the active-pre-cache code. * new: active re-writing of colliding Xref:'s. It was possible on a multi-server configuration to experience articles that were cross-posted to newsgroups, spaning news servers. Because different servers have different article numbering for the same group, it was possible for news-readers to falsely take the view that an article in a group handled by another server has already been read when it has not. This sometimes caused even more severe problems with trn4, when the false-article count was over high-water - causing trn4 to believe that ALL the messages in the affected group were read sometime into the future. * bugfix: when a group was in the group list, and the group information had expired in the cache, and the designated server refused to serve the server refused to serve the group, TWO error messages were given instead of one (confusing news readers). * new: optimise LIST {list-type} pattern, where "pattern" is actually a fixed newsgroup (i.e not a pattern). trn fetches group information using this evil construct. * port: modify genextern.sh to use only sed and egrep, and avoid the use of cpp(1). some cpp's (noticibly linux) didn't work correctly with the below form: #define foo(x) #y or #define foo(x) x foo(#foo) * bugfix: history collection for groups with _ in their names was buggy * change: lower syslog priority of bad client quit's to DEBUG 1.0.5: Tue Mar 4 22:27:05 EST 1997 * bugfix: we lied in 1.0.4 when we said the history rebuilding code was fixed ;) 1.0.4: Mon Mar 3 17:54:47 EST 1997 * port: work around for OSF "memory currupt" - the OSF rtld was calling malloc() before entering main() * port: revamp automatic extern generation as OSF/1 CC choked macro(#ifdef) * port: change itod() and dtoi() -> nnitod(), nndtoi() as AIX/HPUX used dtoi() for vnode manipulation * bugfix: history rebuilding code didn't actually work due to missing space * change: smarter locating of cpp for genextern * bugfix: spelling police 1.0.3: Tue Feb 25 02:07:47 EST 1997 * change: improved logging/scanning in build_history.c * port: remove usage of isblank() (sunos didn't have it) * change: smarter use of MAX_SYSLOG * port: undef itod in libproff/time.c (apparently itod(x,y) is an inode macro under HPUX/AIX) 1.0.2 : Sat Feb 22 04:26:32 EST 1997 * new: rebuild history file code * bugfix: use available blocks not free blocks for space checks * bugfix: fix HAVE_STATFS #ifdefs * new: setproctitle support throughout * port: be smarter about MIN/MAX defines * misc: new credits * change: better debugging of suspect groups * bugfix: special case body length buffer calculation (was causing problems for trn) * bugfix: kill double free in ipc.c * port: change a %lu to %u for 64 bit systems * bugfix: smarter overview_fmt hanlding * bugfix: track cwd more effectively * bugfix: specific binding actually works now from the command line, not just config file * bugfix: work-around for strange fd behavior * change: more uniform logging thoughout * bugfix: removed FILE* mem leak * change: tell idled out clients that we have had enough, rather than dropping them silently (which confused) * change: better error reporting in file locking code * bugfix: case-independent pattern matching * change: better PAGESIZE support * port: use bcopy on systems without memmove * new: newshound (contributed software) 1.0.1 : Sat Nov 9 06:55:34 EST 1996 * change: rationalisation of autoconf defines * change: groups with zero messages ever passed through them were stripped out of the active file, we now pass them through, just in case an nntpcache user wants to be the first poster ;) * bugfix: SIGHUPing nntpcached would sometimes confuse it as to the cwd * port: some systems define MMAP_ANONYMOUS but not MMAP_ANON, we now test and correct for this * port: ./configure wasn't detecting mmap in situations where it should have been. we now just test for the call with configure and use our own code for the back-magic stuff * bugfix: some mmap detection macros were mutually exclusive * bugfix: mmalloc ported to 64 bit memory systems 1.0 : Sun Oct 20 23:05:39 EST 1996 * Woo! 0.93.4 : Mon Oct 14 12:29:30 EST 1996 * port: fixed configure/path problem with FreeBSD port * port: updated solaris+GCC2.7.2 port 0.93.3 : Tue Oct 8 11:38:15 EST 1996 * bugfix: <msgid> handling * bugfix: un-needed group negotiation * bugfix: re use of xover buffer offsets * bugfix: xover bitmap initialisation * bugfix: handles long (non-rfc) lines 0.93.2 : Sun Oct 6 11:38:19 EST 1996 * small bug fix in anti-caching of expired xovers 0.93.1 : Sat Oct 5 19:09:03 EST 1996 * several important bug fixes 0.92.8 : Mon Sep 16 09:36:21 EST 1996 * FreeBSD ports file * rationalisation/autodetection of target directories 0.92.6 : Sun Sep 15 20:12:31 EST 1996 * bugfix: a patch was submitted that changed a strcasecmp() into a strCaseEq(), for a system that was missing strcasecmp(). However, the tri-code nature of strcasecmp() was needed, and the boolean strCaseEq() just didn't cut it. As a result several GROUPish things broke. * replacement strcasecmp() added for compatibility. 0.92.5 : Mon Sep 9 04:06:52 EST 1996 * bugfix: a bad file descriptor would sometimes creap into the master select() mask, causing the master to exit, or (0.92.4) endlessly select 0.92.4 : Thu Sep 5 01:15:03 EST 1996 * Unixware port * spam.filter expanded * xover/xhdr filters may be toggled seperately to stat/head/body/article filters * listen() queue increased to 50 * bug fix, multi-line filter definitions were not read in correctly * bug fix, xover filters did not scan the entire header value * bug fix, master deamon would exit when select() failed * bug fix, non-cached article headers were not displayed correctly causing some news readers to behave strangely * bug fix, expired xover caching was still requesting some expired xovers 0.92.3 : Wed Sep 4 04:14:51 EST 1996 * minor bug fix in to server traffic logging * addressed more portability issues in mmap() routines * tweaked solaris port. solaris 2.3 couldn't compile due to lack of getpagesize() 0.92.1 : Sat Aug 31 14:47:39 EST 1996 * enhanced robustability for list collation code. Daemon exists previously, if a server refused an overview.fmt list * removed use of MAP_FIXED in mmap routines. This was inherrently non-portable. * other minor tweaks here and there 0.92.0 : Mon Aug 19 15:15:58 EST 1996 * added compile time support for Electric fence (a VM based malloc checker) no malloc under/over runs detected thus far. * article handling optimised (again) * use MMAP_ANON or /dev/zero if possible * made groupSecurity on LISTs a seperate option to cut down on overhead involved in performing security checks on every line of the list * content filters for xover/xhdr/head/article/body and stat. looks kind of impressive, but has hasn't been tested yet * optimised article caching. e.g articles are now mmaped rather than read(), and we write out full articles in a single write() from an mmaped region * mmap capability testing. mmap implimentation's differ in how they handle a number of situations. we now test for a large number of behaviours at compile time and generate macros from the results (autoconf style) * cache information about which xover's no-one has. previously, we would ask for any range of xover's not in the cache. this was a problem when articles were cancelled or expired early as it left "holes" in the cache which would nntpcache would try to futilely attempt to fill. * circular stack xover file descriptor cache, and xover index cache * fortified all sprintf's * AUTHINFO security routines. not completely finished yet. advise against use. * Check newsgroup names for suspect characters * Prettier change log * Better error handling. Previously when a nntp-server died, the nntpcache child would also die. now we only block those functions that would have used that server. * Improved STAT caching. STATS are now handled as HEAD's internally * Fixed memory leak in article caching * Fixed small messageid bug in posting code * Save overview.fmt's to disk, incase we can't reach the applicable server's on startup * Disabled setvbuf, was causing SEGV's under linux (weird) * /**/ comments in servers/groups file * Lots of server/group examples * Check server Xpath's etc for suspect chars/strs (e.g "../") * XPATH caching * daemon() for systems that have it * NEXT/LAST implimented (not cached yet) * vsnprintf for logging macros * AIX port * Greater granularity in caching controls * GROUP cached * Current group is CWD. Speeds namei translations. * Per-server cache hierarchies (removes possible xpost collisions) * Now able to use multiple ports/news_servers same on same host * Enhanced traffic logging * Optional relaying of unknown commands * Optional replacement of "Organization" header in POSTs * Removed "Default Server" concept * Delayed startup (cool) * Large stdio/socket output buffers * Config files moved to /etc/nntpcache * Pattern matching for NEWGROUPS/LIST * * Group level security on output of NEWGROUPS/LIST * * Complete internal merge of newsgroups/active/active.times/.tide * FULL shared memory operation and mmaped mmalloc (yay!) * Complete re-write of list.c * NEWGROUPS caching implemented * XGITLTE implemented * Bug fix to blocks free expire code * All documentation moved to doc directory * New docs * Autodetect for strcasestr * Removed a few case dependencies * Bug fixes in get by <msgid> security code * Ports for native SGI cc * Auto-detect for strcasecmp - NCR sysvR4 port needed it. * Removed nntpcache.stats newsgroup. nntpcache.stats file * still persists. (crashed some netscape readers) * configure.in now checks for gcc -O2 strength-reduce bug. 0.88.3UL: Fri Jun 14 20:29:38 EST 1996 * New access controls. * Group security controls now workd for fetch by <msgid>. * Multi-server NEWNEWS support added (dodgy). * Pass on unsupported commands instead of blocking. * Minor logging changes. * New contributed perl log parser (contrib/p.pl). * strdup added to libproff for systems that don't have it. * IHAVE support added. * Multi-server NEWGROUPS support added. * Cleanup of access/remote hostname code. * NNTP response changes for newsdump compatability. * Dbz portability. * Fixed bug in xover.c (missing \r\n when no overview.fmt found) * Bug fixes complete with replacement bugs ;) 0.88.2UL : Thu Jun 6 18:36:52 EST 1996 * Fixed -Wall and -pipe auto-detects in configure.in * Ported to HP-UX 9.05. * Little bug fixes. 0.88.1UL : Thu Jun 6 08:43:59 EST 1996 * Bug fixes. * Solaris port. * chroot() option. * New security / nntpcache.access stuff * More statistics. * Rationalised nntpcache.config * Optimisations. 0.87.9UL : Sun Jun 2 01:59:42 EST 1996 * Too many to describe really. But among the more visible were... * Many bug fixes and optimisations. * Rationalisation of the logging system. * XHDR caching (merged with xover cache). * Automatic xover format translation. * User definable fields to keep in xover cache. * Enhanced docs and auto-configure. * New site distribution site: nntpcache.org (!) LocalWords: nacf bugfix src ihave