================================================================================ * 1.9.31, 2002-12-29 ### BUGFIXES - On non-BSD systems, only the first timeout was ever detected. Found and fixed by Richard van der Hoff. - General signal handling fixes. - Fix build when no system PCRE lib is available. Fix detection of -lpcre outside the system library path. - When fetchnews is restarted after a crash that prevented updating the active file, only print one "..as 12345 in de.test" line per group when storing the article. - Only fork() in fetchnews if fork() really works. Some systems (AmigaOS) only support vfork(), which is not sufficient. ================================================================================ * 1.9.30, 2002-12-04 ### BUGFIXES - Fix subtle and rare unterminated loop (100% CPU hang) bug in doarticle(). It can only strike when an ARTICLE, HEAD, STAT or BODY command in Message-ID syntax accesses a crossposted article AFTER a GROUP command and if the group name given there is part of another group's name that the article was crossposted to. Credits to Jan Knutar for a detailed bug report. - Only consider groups (after LIST or NEWGROUPS) that match the only_groups_pcre, if one is configured. This avoids offering groups that are never fetched. - Detect and report write errors when writing the new active ("groupinfo") file. - Whitelist STAT command for NewsCache versions 0.99.18, 0.99.19, 0.99.2?., 1.1.* - RPMs built from the included .spec file now install a "config" and "filters" file, both are marked "noreplace". This should prevent these files from being lost when a SuSE RPM is replaced by one built from this file. - Leafnode will delete duplicate newsgroups from its active file. This process is case-blind. Some badly maintained upstream servers have the same newsgroup more than once, but only differing in capitalization. Leafnode will prefer the group with LESS upper-case characters. - Fix maxage = 0 regression of leafnode 1.9.21. maxage = 0 seems not to be in wide use... ### WORKAROUNDS - Blacklist STAT for servers that contain "NNTP news cache" in their greetings, reported to be necessary for NTL (UK) by Robert Marshall. ### CHANGES - Leafnode now ships with a leafnode.cron.daily file. See INSTALL. - Leafnode now ships with a filters.example file that was taken from the SuSE 7.3 RPM. ### DOCUMENTATION - The newsq manual page was reworked and is more comprehensive now. - README-FQDN was corrected in respect to the dfncis.de host name. - FAQ has information on the Red Hat inetd vs. xinetd issue. ================================================================================ * 1.9.29, 2002-10-23 ### BUGFIXES - Fix fetchnews SIGSEGV that happens when new groups are added. Thanks to Ken Shan for tracking the bug and sending a patch. - Work with multiple upstreams that have the same server name, but different ports. ================================================================================ * 1.9.28, 2002-10-21 ### BUGFIXES - MacOS X 10.1 build has been fixed now (works on sourceforge Compile Farm at least). The fixes of 1.9.25 did not work. ### CHANGES - There is now a leafnode-version program that just prints the version. - Configuration file errors are now printed with the line number. - New server-specific option: only_groups_pcre, to restrict the groups that are fetched from or posted to a specific server. - The build environment has been rebuilt with automake 1.7.1 and autoconf 2.54. ================================================================================ * 1.9.27, 2002-09-24 ### BUGFIXES - Leafnode no longer goes into an infinite loop if your interface list as returned by ioctl(...SIOCGIFCONF...) is longer than 2047 bytes. This was a show-stopper bug without workaround (except unconfiguring interfaces or disabling IPv6, which is usually not an option). The bug was less likely to strike on home computers (except routers), as these tend to have less interfaces. More likely to strike bigger IPv6-enabled BSD servers. - Type issues on 64-bit machines (time_t is int) have been fixed. - RPM build: the spec file has been revamped, the documentation directory now has proper permissions again. - Leafnode builds again on non-IPv6 machines such as Solaris 2.6. ### CHANGES - Robustness: The allowstrangers option is now "stronger", enabling it defeats the "is the client on a local IP" check altogether -- to allow for workarounds should further bugs in this check strike us. - Documentation: The FAQ has been converted to DocBook XML and updated, and the TROUBLESHOOTING document that carried only two items has been merged into the FAQ. It comes now as plain text, HTML and PDF. The CREDITS file has been updated. ================================================================================ * 1.9.26, 2002-09-20 ### GENERAL - Add missing documentation LIESMICH-daemontools ### BUGFIXES - Fix paths in UNINSTALL-daemontools - fetchnews will no longer try to fork in -P (postonly) mode. (The bogus error messages around this were reported by Jan Knutar.) - fetchnews synchronizes child and parent when handing over the lock file, to prevent bogus error messages. - texpire will now skip over lost+found in the top directory and log chdir/opendir errors. (Bug reported by William Grinolds.) /var/spool/news must still be one file system and cannot be a Coda file system. ### CHANGES - newsq now prints a start banner and an explicit "the queue is empty" if it is ================================================================================ * 1.9.25, 2002-08-30 ### DEDICATION - Although only a symbolic measure and no consolation to any victim, this version is dedicated to all the people in the flooded areas of Central and Eastern Europe, particularly Austria, the Czech republic and Germany, where many cities have been drowned by the Moldau, Danube, Elbe and other rivers rivers that have turned into torrential currents by severe rainfall; whole cities in Saxony, Saxony-Anhalt and Brandenburg and the Northwestern Czech republic had to be abandoned temporarily. The material damage is immeasurable, and the personal damage considerable. Protection of the environment is important and everybody's task. ### INCOMPATIBLE - Leafnode's LIST EXTENSIONS reply no longer starts with leading whitespace. The current NNTP draft no longer wants whitespace there. - Leafnode's [X]HDR
commands now return the message-ID in front of the header, which is in conformance with RFC-2980 but contradicts draft-ietf-nntpext-base-15.txt which has expired on 2002-07-15 (which requires the article number to be printed, which is not available before GROUP or which is not in unison when the article is crossposted). ### GENERAL - Fix "configured hostname not accepted" issue: Leafnode now reads the configuration file before validating the hostname or creating the lock file, so the hostname configuration option becomes actually effective. - The lsort program is no longer installed. When updating from a previous version, then please remove it (the default location is /usr/local/sbin) -- it is only used (with explicit path) when you type "make update" and is not needed later. - Documentation updates, including tcpserver/daemontools instructions. - Build files have been regenerated with automake 1.6.2 (autoconf 2.53) - A tighter integration of the included PCRE directory into the build process. - German documentation is back. - Fix some PCRE compile issues. - The paths of the FILES sections of the manpages should now be correct. - The FAQ file now ships. - MacOS X 10.1/Darwin build fixes for -twolevel_namespace issue. We pass -flat_namespace to the linker. - Easier first-time installation: A script to aid setting up leafnode when daemontools and tcpserver are present. ### nntpd - Fix reading interface information on systems that have sa_len in struct sockaddr, such as FreeBSD. Leafnode would erroneously refuse connections from IPv4 clients on these machines when IPv6 interfaces were configured. - New allow_8bit_headers configuration option (default off) to accept unencoded 8-bit data (seems to be common in dk.* and no.* hierarchies) - Fix lots of minor bugs that splint turned up. - Fix some minor XHDR issues. - Fix LIST ACTIVE.TIMES (did not work at all and returned bogus data). - Add HDR support (same as XHDR, basically). - Redo the HELP output. - List HDR in LIST EXTENSIONS reply. - Fix crash when the client terminates the connection right after a POST command. Not exploitable, reported and fixed by Fabrizio Tironi. ### fetchnews - when updating the active file fails, set a flag to try downloading the whole active file again on the next run and keep the old active data to avoid losing group lo/hi marks. - new server-specific option "noactive = 1" to defeat downloading the full active file (newsgroups list) from this server. Courtesy of Mark Brown of Debian. ================================================================================ * 1.9.24, 2002-07-10 ### INCOMPATIBLE CHANGES: - See all "incompatible changes" sections below. ### GENERAL - there will be no more prereleases or release candidates. people don't test them. ### nntpd - no longer crashes and disconnects when a client (slrn) sends "XOVER" before "GROUP". Makes leafnode compatible again with slrn. - address resolver fixed when IPv6 enabled - fix ARTICLE/STAT/HEAD/BODY commands with implicit number ("current article pointer" ================================================================================ * 1.9.23, 2002-07-08 ### INCOMPATIBLE CHANGES: - If you update to 1.9.23 and have articles in your out.going queue, fetchnews will no longer post these. To fix, do: chmod u+x /var/spool/news/out.going/* - Access from outside the local networks (as figured from IP and netmasks of the local interfaces) is now denied by default. To restore the old behaviour, check README and config.example for a new option "allowstrangers" and how to enable it. Read config.example closely! Using this is deliberately difficult. - When a client posts, syntax and semantics of the Message-ID header are checked. These tests are essential to avoid Message-ID collisions. You can still switch off Message-ID generation in your news reader and let leafnode generate a Message-ID. - Spooldir may only contain characters from the POSIX portable path name character set. These are: the small and capital latin letters a through z, the ten digits 0 through 9 and the individual characters ".", "-", "_", "/". ### KNOWN BUGS - Leafnode does not handle embedded NUL characters in news correctly. ### GENERAL - The README now contains a new section "DEBUGGING". - The INSTALL file now has an xinetd config example. - The FQDN "linux.local" is now also rejected. - Fetchnews will no longer try to post articles that nntpd is still receiving. - Bugfixes, compile warnings fixed, memory leaks fixes, possible crashes fixed. - Treating folded headers has improved. - NEWGROUPS now really works, even across fetchnews -f. fetchnews -f is now less harmful to the group low/high marks. - There is now documentation on the fully-qualified domain name issue, in text, pod and HTML format. See the README.FQDN* files. - There is a new configuration option: "nopost" (server-specific). Set "nopost=1" just below the server line to avoid posting to the server in question. - Article number treatment has improved. This should fix "pseudo article not displayed" issues for good. - Most leafnode programs no longer see incomplete lines. Incomplete lines are lines without trailing LF character. - When a leafnode program recreates a directory in the spool dir, the owner is now properly set to "news". ### fetchnews - Fetchnews now filters on original header lines, rather than regenerated lines. - Will exit with code 2 when it could not connect to at least one upstream server. ### nntpd - The client timeout is now configurable, patch courtesy of Jonathan Larmour. - No longer confuse clients with "400 Service discontinued" messages on timeout. - No longer resolve the local listening address to a name and use that as fqdn (broke Message-ID generation). Reported by Andreas Muck. - Posts with 8-bit or control data in headers or malformatted headers are now rejected. These articles are malformatted. (illegal!) Only broken newsreaders generate such headers. - Better logging when groups are subscribed to; set debugmode = 1 in your config file to enable, and look for "markinterest:" in the log. - POST now suggests a Message-ID. ### texpire - Expire groups that are not in the group.info. (This will happen when news groups are removed upstream and the active file is re-fetched.) - Set groupexpire for a particular group to -1 to let texpire ignore it. Think of this as an archive function. Patch courtesy of Andreas Meininger. ================================================================================ * 1.9.22, 2002-04-19 general: - Fix the hostname qualification logic. - No longer use fnmatch(), but use wildmat() instead. That's well-tried in leafnode 2.0b. fetchnews: - Fix the broken NewsCache workaround. ======================================================================== * 1.9.21, 2002-04-08 INCOMPATIBLE CHANGES: - leafnode never fetches articles that would be expired right away as per the current expire/groupexpire settings. Add "clamp_maxage = 0" to your configuration to restore the old behaviour. general: - no longer segfaults when the groupinfo file is empty (when the upstream servers are all unreachable). - gets time zone offset against GMT right. - overview handling now detects when articles are removed from the "middle" of a group (i. e. which are not low or high water mark) applyfilter: - no longer trashes the article high water mark. fetchnews: - leafnode never fetches articles that would be expired right away as per the current expire/groupexpire settings. - can recover state information from a SERVERINFO~ file left behind by a previous incomplete fetchnews run. ======================================================================== * 1.9.20, 2002-03-25 INCOMPATIBLE CHANGES: - leafnode REQUIRES a valid fully qualified domain name now, localhost.localdomain is invalid! Fix your /etc/hosts if leafnode programs refuse to run. - running leafnode without access control (such as tcpd from Wietse Venema's tcp_wrappers package or xinetd/tcpserver's native access control) is officially deprecated. - leafnode no longer tries to post the article to all your servers, but only to one, to prevent moderators from getting posts to moderated groups more than once. Move your most reliable news servers first in the configuration file. General: - new locking scheme, prevents groupinfo corruption, the old locking scheme was totally ineffective - manual pages now contain proper paths to programs or files - pattern matching has been fixed - no more timezone messups in logs or generated Date: headers (backport from 2.0beta) - memory and file descriptor leaks have been fixed - some more parts of NNTP chatter are subject to timeout handling - the included PCRE package was updated to v3.5 (but better, get PCRE 3.9 or newer and install that prior to configuring and installing leafnode) - maintainer builds now need ./configure --enable-maintainer-mode. Results in faster compilation for end users. fetchnews: - can now safely post to NewsCache servers, 1.9.19 and older would discard all upstream posts to NewsCache servers because NewsCache lies about the availability of an article in STAT . We use HEAD now. (workaround backported from leafnode 2.0beta) - upstream posts are now deleted as soon as they have successfully been posted. - fetchnews -P no longer segfaults - SIGPIPE now updates groupinfo and overview information, it would kill fetchnews before. - log port number in "connected to" log message - Mark Brown's workaround to "no groups available" problem with authentication failures, but after authentication failures and fixing username/password in the configuration file, run fetchnews -f once leafnode (nntpd): - buffer underrun fixed when the command consisted only of whitespace. Bug fix by Ralf Wildenhues. - log our and the peer's address (to hint someone he should really use tcpd or something similar, and to overcome "I did not order this news group" reports) - now mark the correct article for download in delaybody mode if the news reader sends BODY or ARTICLE . (only affects crossposted articles). - XOVER 1- now works on pseudogroups - XOVER -n is now supported (came for free with the previous fix ;) - STAT/HEAD/BODY/ARTICLE with "current article pointer" now work for pseudo groups - exits with 503 error message to the client if the own hostname is not configured properly newsq: - add a new -f option to show the failed.postings queue. texpire: - the man page has been finally fixed to document that we expire individual articles, not threads. Changes which are more technical and less visible: - article numbers are now unsigned long almost everywhere - out-of-memory conditions detected properly - non-exploitable buffer overruns fixed - line reading function is rock solid now, no more getaline crashes - mkstemp is now robust against broken implementations that do not look at the umask - some tuning took place, some fprintf have been replaced by fputs - mkstemp function updated from leafnode 2.0beta ======================================================================== * 1.9.19 and prior: see ChangeLog. A separate NEWS file was not kept. vim:tw=78:ai:com=f\:-: