* 1.9.22, 2002-04-XX
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 <Message-ID>. 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 <message-id>. (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.
