2009-05-21  iulius

	* branches/2.5/doc/pod/hacking.pod,
	  branches/2.5/doc/pod/readme.pod: The first paragraph of README
	  should be removed when branching: it is a new STABLE release no
	  longer in active development.

	* branches/2.5/doc/pod/hacking.pod: INN 2.5 uses autoconf and
	  autoheader (in our autogen script) to be generated.

	* branches/2.5: Branch 2.5.0 release.

	* trunk/doc/FAQ, trunk/doc/pod/hacking.pod, trunk/doc/pod/news.pod:
	  Prepare INN 2.5.0 release and bump the number version in the FAQ.

	* trunk/support/config.guess: Update support files for autoconf to
	  their last stable version:
	  
	  * config.guess (s390x:SunOS:*:*): Add s390x-ibm-solaris*.

	* trunk/support/install-sh: Don't chown directories that already
	  exist. (Backport commit 6882.)

	* trunk/doc/pod/hacking.pod: * Mention Trac instead of ViewVC.
	  
	  * Add a link to nightly snapshots and update other links.
	  
	  * Add POD commands (especially B<>, C<> and F<>).
	  
	  * Explain how to update install-sh.
	  
	  * Update the section on how to make a release.

2009-05-20  iulius

	* trunk/storage/tradindexed/tdx-data.c: It is pointless remapping
	  index files for tradindexed when articles have arrived
	  out-of-order. Only data files need to (holes in these files are
	  not filled).

2009-05-19  eagle

	* trunk/doc/FAQ: Note the need to run ctlinnd renumber '' after
	  rebuilding history for versions of INN prior to 2.5.

2009-05-18  iulius

	* trunk/doc/pod/auth_krb5.pod, trunk/doc/pod/checklist.pod,
	  trunk/doc/pod/inn.conf.pod, trunk/doc/pod/install.pod,
	  trunk/doc/pod/readers.conf.pod, trunk/m4/openssl.m4,
	  trunk/samples/inn.conf.in: Also mention TLS when SSL is used in
	  our documentation and public files.

	* trunk/doc/pod/nnrpd.pod: Update the documentation of nnrpd,
	  especially the part about RFC 977 and additions to the protocol
	  (which are now in RFC 3977, 4642 and 4643).

	* trunk/nnrpd/nnrpd.c: Better sentence to log. Thanks, D. Stussy.

2009-05-18  eagle

	* trunk/storage/tradindexed/tdx-data.c,
	  trunk/storage/tradindexed/tdx-group.c: Minor coding style fixes
	  in the tradindexed code.

2009-05-17  iulius

	* trunk/Makefile, trunk/Makefile.global.in, trunk/configure.ac,
	  trunk/m4/prog-ensure.m4: * Use Autoconf checks to find the path
	  to awk, egrep, 'mkdir -p' and sed.
	  
	  * Add the inn-workers mailing-list address for bugs reports.

	* trunk/doc/pod/innd.pod, trunk/doc/pod/nnrpd.pod,
	  trunk/innd/innd.c, trunk/nnrpd/nnrpd.c: Add a -4 flag to both
	  innd and nnrpd for IPv4 binding addresses, similarly to -6 for
	  IPv6.

	* trunk/Makefile, trunk/Makefile.global.in: Use $SED instead of sed
	  in Makefile.

	* trunk/support/install-sh: Update install-sh to its last stable
	  version. Backport special INN changes in it.

	* trunk/support/fixconfig.in: * Use a global sed replacement.
	  
	  * '\@' is not portable according to Posix. Use '[@]' instead.

2009-05-16  iulius

	* trunk/doc/pod/readme.pod: Perl 5.004 is needed at build time.
	  Mention that Perl 5.8.0 is recommended.

	* trunk/authprogs/radius.c, trunk/backends/innxbatch.c,
	  trunk/backends/innxmit.c, trunk/backends/nntpget.c,
	  trunk/include/inn/options.h, trunk/include/nntp.h,
	  trunk/innd/art.c, trunk/innd/nc.c, trunk/innfeed/innlistener.c,
	  trunk/lib/clientlib.c, trunk/lib/localopen.c,
	  trunk/lib/remopen.c: Use NNTP_MAXLEN_COMMAND instead of
	  NNTP_STRLEN.

	* trunk/doc/pod/ctlinnd.pod, trunk/doc/pod/news.daily.pod,
	  trunk/doc/pod/pullnews.pod, trunk/innd/art.c, trunk/innd/innd.h,
	  trunk/innd/util.c, trunk/lib/alloca.c,
	  trunk/tests/overview/api-t.c, trunk/tests/overview/overview-t.c:
	  Typos.

	* trunk/TODO, trunk/doc/FAQ, trunk/doc/pod/readme.pod,
	  trunk/include/inn/nntp.h, trunk/include/nntp.h: Update references
	  of RFC 977 and RFC 1036 to new RFC 3977, 4642, 4643, 4644, 5536
	  and 5537 when it applies.

	* trunk/doc/pod/passwd.nntp.pod: Update reference of AUTHINFO
	  commands to RFC 4643.

	* trunk/doc/pod/ctlinnd.pod, trunk/innd/cc.c: It is now useless to
	  reload the overview.fmt file because it does not exist any
	  longer. The overview configuration is in inn.conf.
	  
	  see #101

	* trunk/nnrpd/nnrpd.c: Fix a bug in previous commit 8463: we have
	  to use select() for multiple sockets! Otherwise, we have a huge
	  CPU consumption.

2009-05-15  iulius

	* trunk/doc/pod/nnrpd.pod, trunk/innd/rc.c, trunk/nnrpd/nnrpd.c:
	  Remove the limitation nnrpd had to only listen to one socket. We
	  can now accept both IPv4 and IPv6 connections configured with the
	  "-b" and "-6" flags.

2009-05-14  iulius

	* trunk/frontends/mailpost.in: Add a colon after the space
	  following a header name. SMTP does not require it whereas NNTP
	  does.
	  
	  Thanks to D. Stussy for having pointed out that issue.

2009-05-12  iulius

	* trunk/innd/art.c: Do not remember the message-ID of an article
	  when it is marked as "to be deferred".

	* trunk/doc/pod/inn.conf.pod, trunk/doc/pod/news.pod,
	  trunk/include/inn/innconf.h, trunk/innd/art.c,
	  trunk/lib/innconf.c, trunk/samples/inn.conf.in: Add a new
	  inn.conf option "verifygroups" to check whether all newsgroups a
	  message is posted to exist on the news server.

	* trunk/innfeed/host.c: Adjust old and new values for max
	  connexions during a reconfiguration of a host in innfeed.

	* trunk/storage/tradindexed/tdx-data.c,
	  trunk/storage/tradindexed/tdx-group.c,
	  trunk/storage/tradindexed/tdx-private.h: Add a proper remap of
	  overview data files when new articles are appended out-of-order
	  to these files. Static searches otherwise would fail.
	  
	  See also commit 8451.

2009-05-09  iulius

	* trunk/doc/pod/newsfeeds.pod: Mention that "A" flags are not
	  effective on funnel targets.

	* trunk/samples/control.ctl, trunk/samples/control.ctl.local:
	  Encodings of newgroup/checkgroups descriptions of Usenet
	  hierarchies should be in control.ctl, and not control.ctl.local.

2009-05-08  iulius

	* trunk/doc/pod/hook-perl.pod, trunk/doc/pod/readme.pod: * Mention
	  Paolo's Postfilter nnrpd hook script.
	  
	  * Remove the link towards Marco's Cleanfeed (Steve's Cleanfeed is
	  now far better).
	  
	  * Rename News Gizmo to News Shogun.

	* trunk/scripts/news.daily.in: Fix a bug in news.daily: when the
	  server is throttled, it is not properly seen and it might end up
	  still being throttled after the run of news.daily.

	* trunk/doc/pod/news.daily.pod, trunk/scripts/news.daily.in:
	  innfeed dropped files in its spool will now be processed by
	  news.daily, running procbatch; a "noprocbatch" keyword has been
	  added to disable this automatic process.

	* trunk/tests/overview/xref-t.c: Fix a bug after the ok_block()
	  call: the number of the test was not incremented.

2009-05-07  jeff

	* trunk/doc/man/libstorage.3, trunk/storage/tradindexed/tdx-data.c:
	  Modify behavior of tradindexed (with OVSTATICSEARCH) to fix
	  corrupted XOVER responses caused by the mid-search attempt to
	  unmap and remap overview data in the hopes of making additional
	  data accessible.
	  
	  Clarify documentation on behavior of OVSTATICSEARCH.

2009-05-06  iulius

	* trunk/scripts/innstat.in: Use $SORT as set at configure time.

	* trunk/lib/perl.c: Log a message in news.notice if INN believes
	  filter_innd.pl and filter_nnrpd.pl have been mixed up.

	* trunk/doc/pod/hook-perl.pod: Specify that "delete $hdr{header}"
	  will not always work in Perl innd filter hook.

	* trunk/innd/art.c: Log to news.notice when an article is rejected
	  with dontrejectfiltered set to true.

	* trunk/innd/art.c: The Af flag was not working for funnel entries.
	  
	  The problem is that at some point during ARTpropagate(), funnels
	  are removed in favour of what they point at (like innfeed!).
	  Therefore, if "news.server.org" has the Af flag, this flag is not
	  transmitted to "innfeed!" (because it handles more than one
	  site). And when it is time to send the article, "news.server.org"
	  is no longer known and the article ends up being transmitted to
	  "innfeed!" which sends it to "news.server.org".
	  
	  Fix the code to check for the Af flag on funnels too.

2009-05-04  iulius

	* trunk/frontends/mailpost.in: Do not use "\n" in syslog() calls.
	  And always log an error message, even though we are not running
	  in debug mode.

	* trunk/nnrpd/post.c: Fix a segfault in nnrpd when a NULL pointer
	  is passed as the first argument of MaxLength. Also see commit
	  8396 for innd.

	* trunk/doc/pod/hook-perl.pod: Explain how to remove a header with
	  the Perl nnrpd filter hook.

	* trunk/nnrpd/perl.c: Fix a bug in nnrpd Perl filter hook:
	  undefining an header or setting it to an empty value ("")
	  generated an empty header line ("In-Reply-To: \r\n" for
	  instance).
	  
	  Doing that now totally removes the header.

2009-05-03  iulius

	* trunk/samples/localgroups: Mention that localgroups is formatted
	  like the newsgroups file.

	* trunk/frontends/mailpost.in: Log the error to syslog in case the
	  e-mail version of the error isn't sent.
	  
	  Thanks to D. Stussy for the patch.

2009-05-01  iulius

	* trunk/samples/incoming.conf: Also apply commit 8436 to the
	  incoming.conf sample file.

	* trunk/innd/art.c: Properly log the incoming peer name when there
	  is a reject because the headers of the article are not valid.
	  
	  Thanks to Petr Novopashenniy for having reported this issue.

	* trunk/innd/art.c: Fix a bug during the parsing of message-IDs:
	  USEFOR allows leading and trailing white spaces in the
	  Message-Id: and Supersedes: headers. Articles containing such
	  white spaces were rejected by innd.
	  
	  Thanks to Petr Novopashenniy for having reported this issue.

	* trunk/doc/pod/incoming.conf.pod, trunk/doc/pod/innbind.pod,
	  trunk/doc/pod/innd.pod: Clarify the use of IPv6 colon-separated
	  addresses in our documentation.

	* trunk/doc/pod/distrib.pats.pod, trunk/samples/distrib.pats,
	  trunk/samples/newsfeeds.in: Clarify how the newsfeeds "ME" entry
	  works against local distributions and local postings via nnrpd.
	  
	  Thanks to D. Stussy for having pointed out that potential
	  problem.

2009-04-28  iulius

	* trunk/innd/art.c: Fix an old typo: "Control" was always logged!

2009-04-26  iulius

	* trunk/control/modules/checkgroups.pl: Be more precise in the mail
	  sent to the administrator after a checkgroups is handled by
	  controlchan (specify whether changes have been done, directly in
	  the mail body).
	  
	  Also prevent mod-active normal output from being logged to
	  errlog.

2009-04-25  iulius

	* trunk/support/config.guess, trunk/support/config.sub: Update
	  support files for autoconf to their last stable version:
	  
	  * config.sub: Handle moxie.
	  
	  * config.guess (pc:*:*:*): Return i586-pc-msdosdjgpp, for
	  consistency with config.sub.

	* trunk/control/controlchan.in,
	  trunk/control/modules/checkgroups.pl,
	  trunk/doc/pod/control.ctl.pod, trunk/doc/pod/news.pod,
	  trunk/samples/control.ctl.local, trunk/scripts/innreport_inn.pm:
	  Many improvements to checkgroups handling:
	  
	  * Act on checkgroups control messages instead of sending mail;
	  
	  * Add the /maxdocheckgroups/ control.ctl option to specify the
	  maximum number of changes that could be made at one time before
	  bailing and mailing the changes to the admin;
	  
	  * Process all matching entries for a checkgroups and not the last
	  matching control.ctl entry. It especially allows to use "drop"
	  commands, combined with "mail" and "doit". To achieve that,
	  controlchan uses exclusion and drop patterns;
	  
	  * Fix a long-standing bug causing patterns not being properly
	  handled by docheckgroups: standard grep patterns were generated
	  by controlchan instead of *egrep* patterns!
	  
	  * Fix a long-standing bug causing multiple entries for the same
	  checkgroups sender not to be honoured (for instance aus.* and
	  canb.*) because the last one did not match the list of
	  newsgroups;
	  
	  * Fix two wrong log matches in innreport;
	  
	  * Documentation improvements, with useful samples.
	  
	  close #3, #102

	* trunk/control/docheckgroups.in: Fix a bug during checkgroups
	  process: when docheckgroups returned an empty file, it marked
	  everything as to be removed.

	* trunk/doc/pod/pullnews.pod: Typo.

	* trunk/support/mkmanifest: Remove obsolete files from the "make
	  manifest" support script.

2009-04-24  iulius

	* trunk/control/docheckgroups.in: Fix a long-standing issue with
	  docheckgroups: patterns did not match newsgroups but newsgroups
	  along with their description!

	* trunk/innd/ng.c: Check whether the high water mark is not
	  inferior to the low water mark of a newsgroup when running
	  "ctlinnd lowmark".
	  
	  Thanks to Steve Crook for the bug report.

	* trunk/CONTRIBUTORS, trunk/storage/buffindexed/buffindexed.c: The
	  low water mark was not properly set by expire on an empty
	  newsgroup when running a buffindexed overview.
	  
	  Thanks to Steve Crook for the bug report.

2009-04-19  iulius

	* trunk/scripts/innreport.in: Silent Perl warnings when GD.pm is
	  not installed.
	  
	  Thanks to Alexander Bartolich for the patch.

	* trunk/nnrpd/group.c: LISTGROUP answers have been inversing low
	  and high water marks for empty newsgroups since commit 8374. Now
	  fixed.

2009-04-18  iulius

	* trunk/lib/Makefile: A few declarations were missing to compile
	  libraries.

	* trunk/lib/perl.c: Do not try to destruct the Perl interpretor if
	  it has not been created yet! It can happen if innd exits at
	  startup because of a problem during its initialization.
	  
	  Thanks to Petr Novopashenniy for having reported the bug.

	* trunk/innd/nc.c: Return 501 and not 435 in response to a HEAD or
	  STAT command when the argument is not a valid message-ID.
	  
	  Note that we still keep 435 for IHAVE. We want to reject the
	  article so that it is considered as an unwanted article by the
	  other site.

2009-04-13  iulius

	* trunk/control/perl-nocem.in: Silent a possible use of
	  uninitialized value (when the message-ID is not set).

2009-04-12  iulius

	* trunk/backends/batcher.c, trunk/backends/buffchan.c,
	  trunk/backends/innxbatch.c, trunk/backends/innxmit.c,
	  trunk/configure.ac, trunk/expire/expireover.c, trunk/innd/cc.c,
	  trunk/innd/innd.c, trunk/innd/proc.c, trunk/nnrpd/nnrpd.c:
	  AC_TYPE_SIGNAL is being obsoleted by Autoconf. On modern systems,
	  the returned signal type is void. So we just use that type.

	* trunk/Makefile.global.in, trunk/support/fixscript.in: Find out a
	  working shell via configure. It will also allow the user to
	  modify it with the CONFIG_SHELL environment variable.

	* trunk/doc/pod/innconfval.pod, trunk/lib/innconf.c: Return a
	  space-separated string for Bourne shell innconfval output.

	* trunk/Makefile, trunk/doc/pod/innupgrade.pod,
	  trunk/scripts/innupgrade.in, trunk/tests/util/innupgrade.t:
	  Rename obsolete programs and configuration files, appending
	  '.OLD' to their name. Remove obsolete man pages.
	  
	  The affected files are only those since INN 2.4.0.

	* trunk/doc/pod/innconfval.pod, trunk/lib/innconf.c: Return a
	  string instead of an array when "innconfval -s" is used because
	  pure Bourne shell does not recognize arrays.

	* trunk/Makefile, trunk/doc/Makefile, trunk/site/Makefile: Fix a
	  bug when "make -j" is used with a non-GNU make. In a GNU make,
	  the "cd" command is in effect only for the current command, which
	  is not the case with for instance a BSD-based make.

	* trunk/doc/pod/news.pod, trunk/scripts/innupgrade.in: innupgrade
	  was assuming that Xref:full was the eighth field in overview.fmt,
	  which might not always be the case.

2009-04-11  iulius

	* trunk/scripts/innupgrade.in: $#_ in Perl returns the last index
	  of an array, and not the number of its elements!

	* trunk/scripts/inncheck.in, trunk/scripts/innupgrade.in: * Also
	  update scripts (forgotten from previous /large/ commit 8409).
	  
	  see #101

	* trunk/MANIFEST, trunk/doc/man/Makefile, trunk/doc/man/inncheck.8,
	  trunk/doc/man/overview.fmt.5, trunk/doc/pod/ctlinnd.pod,
	  trunk/doc/pod/getlist.pod, trunk/doc/pod/inn.conf.pod,
	  trunk/doc/pod/makehistory.pod, trunk/doc/pod/news.pod,
	  trunk/doc/pod/nnrpd.pod, trunk/expire/Makefile,
	  trunk/expire/makehistory.c, trunk/include/inn/innconf.h,
	  trunk/include/inn/ov.h, trunk/include/inn/overview.h,
	  trunk/include/inn/paths.h.in, trunk/innd/Makefile,
	  trunk/innd/art.c, trunk/lib/innconf.c, trunk/nnrpd/list.c,
	  trunk/nnrpd/nnrpd.c, trunk/samples/inn.conf.in,
	  trunk/samples/overview.fmt, trunk/site, trunk/site/Makefile,
	  trunk/storage/Makefile, trunk/storage/expire.c,
	  trunk/storage/overdata.c, trunk/storage/tradindexed/tdx-util.c,
	  trunk/support/mkmanifest, trunk/tests/data/etc/inn.conf,
	  trunk/tests/data/etc/overview.fmt,
	  trunk/tests/data/upgrade/inn.conf.ok,
	  trunk/tests/data/upgrade/overview.fmt,
	  trunk/tests/innd/artparse-t.c, trunk/tests/lib/innconf-t.c: * Add
	  support for list values in inn.conf.
	  
	  * Remove the overview.fmt file and use two new inn.conf
	  parameters: extraoverviewadvertised and extraoverviewhidden. They
	  allow the news administrator to choose the overview fields he
	  wants to advertise to readers.
	  
	  * Add a new argument to overview_extra_fields: this function
	  returns either the additional fields to advertise (with ":full")
	  or all the additional fields to generate.
	  
	  * Xref is forced as the eighth field of the overview database. *
	  Be consistent with the responses of other LIST commands: no full
	  stop at the end of the initial response line.
	  
	  * Updated documentation, samples and test suite.
	  
	  close #101

	* trunk/configure.ac: AC_USE_SYSTEM_EXTENSIONS is better than
	  AC_AIX in Autoconf (it is a superset of AC_AIX).

	* trunk/configure.ac, trunk/m4/cc-c-o.m4, trunk/tests/lib/qio-t.c:
	  Autoconf 2.61 uses HAVE_STRUCT_STAT_ST_BLKSIZE instead of
	  HAVE_ST_BLKSIZE and AS_MESSAGE_LOG_FD instead of AC_FD_CC.

2009-04-11  eagle

	* trunk/doc/pod/inn.conf.pod: Move the note that NNTP-Posting-Host
	  isn't obfuscated to the correct option (addnntppostinghost, not
	  addnntppostingdate). Thanks, John F. Morse.

2009-04-04  iulius

	* trunk/scripts/innupgrade.in, trunk/tests/data/upgrade/inn.conf,
	  trunk/tests/data/upgrade/inn.conf.ok: Silent innupgrade when
	  reaching a parameter which expects a list value.

	* trunk/control/modules/newgroup.pl: * Allow a repeated punctuation
	  in the name of a newsgroup.
	  
	  * Do not allow a newsgroup named "poster".
	  
	  * Top-level "control", "example", "junk" and "to" are now
	  rejected.
	  
	  * Comment a redundant check.

	* trunk/control/modules/newgroup.pl: Reject newgroup control
	  articles which are incoherent between the announced status of the
	  newsgroup and the moderation flag in its description.

	* trunk/control/controlchan.in: Properly parse Control: headers
	  (newsgroups names are case-sensitive).

	* trunk/TODO, trunk/contrib/README, trunk/contrib/auth_pass.README,
	  trunk/doc/FAQ, trunk/doc/pod/hook-perl.pod,
	  trunk/doc/pod/hook-python.pod, trunk/doc/pod/install.pod,
	  trunk/doc/pod/readme.pod: * Consolidate INN mailing-lists and use
	  inn-workers instead of inn-bugs and inn-patches.
	  
	  * Mention Trac notifications in inn-bugs.
	  
	  * Fix a few https links to ISC.

2009-04-03  iulius

	* trunk/innd/art.c, trunk/innd/nc.c: Remember the message-IDs of
	  rejected articles when the reject is done before ARTpost().
	  
	  Also remember them when INN is rund in slave mode.
	  
	  We now properly parse all the headers (and for instance find out
	  the message-ID or the path of an article even though the relevant
	  headers come after an error has been triggered off).

	* trunk/innd/art.c: * Make the code more robust as for the use of
	  the distributions list (make sure it is not null).
	  
	  * Fix a bug in the remembering of message-IDs (remembertrash was
	  not checked when an error occurs during storing).

	* trunk/innd/art.c: Allow an empty distributions list (otherwise,
	  the function always returns false).

	* trunk/innd/art.c: Log articles rejects even though the path or
	  the message-ID is unknown.

	* trunk/innd/util.c: Fix a segfault in innd when a NULL pointer is
	  passed as the first argument of MaxLength.
	  
	  Thanks to Petr Novopashenniy for the bug report.

	* trunk/innd/art.c, trunk/innd/innd.h, trunk/innd/nc.c: When the
	  news server is throttled, log the rejected article (with 400) in
	  the news log file.

2009-03-28  iulius

	* trunk/innfeed/host.c, trunk/nnrpd/perl.c, trunk/nnrpd/python.c:
	  Remove useless xstrdup() calls in vector_add(). Memory has been
	  leaking in both innfeed (since commit 8176) and nnrpd (since a
	  long time).

2009-03-26  iulius

	* trunk/LICENSE, trunk/MANIFEST, trunk/configure.ac,
	  trunk/include/clibrary.h, trunk/lib/Makefile,
	  trunk/lib/strerror.c, trunk/support/mkmanifest,
	  trunk/tests/Makefile, trunk/tests/TESTS, trunk/tests/lib,
	  trunk/tests/lib/strerror-t.c: Remove the replacement for a
	  missing strerror function. Modern systems have it (only ULTRIX is
	  reported not to).
	  
	  The test suite does not work on a few systems (the wording of the
	  reply to strerror(0) is not standardized).

2009-03-23  iulius

	* trunk/BOOTSTRAP, trunk/configure.ac, trunk/doc/pod/hacking.pod,
	  trunk/doc/pod/news.pod: Require version 2.61 or later of Autoconf
	  (previously, Autoconf 2.59 or later was required).
	  
	  Commit 8390 fixed a bug for the AC_FUNC_FSEEKO Autoconf macro
	  ($ac_cv_sys_largefile_source is used instead of
	  $ac_cv_func_fseek).

	* trunk/nnrpd/nnrpd.c: Add TCP_NODELAY to nnrpd in order to fix an
	  issue of slow downloading of overviews and slow answers on some
	  architectures (like BSD/OS).
	  
	  Patch suggested by David Canzi.

	* trunk/configure.ac: The AC_FUNC_FSEEKO Autoconf macro changed and
	  now defines $ac_cv_sys_largefile_source instead of
	  $ac_cv_func_fseek. Support for large files has therefore been
	  broken on a few architectures (like FreeBSD) for a long time.

2009-03-18  iulius

	* trunk/innd/art.c: Do not log 437/439 when the article is not
	  rejected.

	* trunk/CONTRIBUTORS, trunk/innd/art.c: inn_status.html was not
	  counting rejects during TAKETHIS (response code 439).

	* trunk/innd/art.c, trunk/scripts/innreport_inn.pm: Log right 439
	  response codes in <pathlog>/news when TAKETHIS rejects a message
	  (it is not 437 like IHAVE).

	* trunk/innd/nc.c: When paused or throttled, do not hang incoming
	  connections (nnrpd was hanging without responding to a client
	  trying to post an article).
	  
	  Thanks to Ray Banana for the bug report.

2009-03-17  eagle

	* trunk/doc/FAQ: Fix typo, thanks Geraint A. Edwards.

2009-03-16  iulius

	* trunk/doc/pod/inn.conf.pod, trunk/lib/innconf.c,
	  trunk/samples/inn.conf.in: Update innconf to reflect the changes
	  of commit 8383. Also decrease overcachesize from 128 to 64
	  (previously 15).

2009-03-15  iulius

	* trunk/doc/pod/inn.conf.pod, trunk/samples/inn.conf.in: Increase
	  the default settings of overcachesize from 15 to 128 and
	  msgidcachesize from 10000 to 16000.

	* trunk/nnrpd/sasl.c: Revert commit 8268 about AUTHINFO SASL:
	  
	  The knowledge acquired since the beginning of a session should
	  not be reset when no security layer has been negotiated during
	  the SASL exchange.

2009-03-10  eagle

	* trunk/doc/FAQ: Current release is 2.4.6.

2009-03-09  iulius

	* trunk/doc/pod/news.pod: New change for INN 2.5.0 (RC1 right now).

	* trunk/lib/uwildmat.c: Silent a warning (unitialized value --
	  which is initialized by design).

	* trunk/control/modules/newgroup.pl: Reactivate the check for a
	  proper newsgroup name.
	  
	  Also add a check for a non-empty description.

	* trunk/innfeed/connection.c: Remove a part of commit 7382:
	  
	  Whenever doSomeWrites is called with writes still pending, add a
	  work callback to do the write at the next opportunity. This
	  should eliminate a temporary connection deadlock state on
	  flushing, where the response to the IHAVE body arrived before we
	  finished writing it. Before, doSomeWrites would have failed to
	  call issueQUIT because writes were still pending, and then after
	  the writes complete, there's no code to go back and issue it
	  until the read timeout expires.
	  
	  It appears that innfeed eats CPU with that callback:
	  
	  PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 25012
	  news 103 4 8304K 14M run/1 19:08 96.68% 96.68% innfeed 24847 news
	  95 0 30M 32M run/0 3:56 18.12% 18.12% innd

2009-03-08  iulius

	* trunk/control/controlchan.in,
	  trunk/control/modules/checkgroups.pl: Add encodings to
	  checkgroups processing: controlchan now looks for the charset and
	  try to convert the descriptions into the local encoding.
	  
	  Defaults are cp1252 for expected encodings (unless the charset is
	  properly set in the checkgroups message, or control.ctl dictates
	  another charset) and utf-8 for the local encoding.
	  
	  close #4

2009-03-05  iulius

	* trunk/nnrpd/group.c, trunk/nnrpd/list.c: Fix a bug in the result
	  of LIST ACTIVE, GROUP and LISTGROUP when the newsgroup is empty.
	  If n is the common low/high mark, then low=n+1, high=n should be
	  returned (and not low=n, high=n-1).

	* trunk/innd/ng.c: When a newsgroup is empty, the high water mark
	  should be one less than the low water mark according to RFC 3977.
	  
	  "ctlinnd renumber" must not assume the previous high water mark
	  in the active file was right.

	* trunk/nnrpd/list.c: When a newsgroup is empty, the high water
	  mark should be one less than the low water mark according to RFC
	  3977. Fix LIST ACTIVE to do that when possible.

2009-03-01  iulius

	* trunk/authprogs: Clean up auth_smb in svn:ignore.

	* trunk/frontends/mailpost.in: Return non-zero exit status on a few
	  other errors.

	* trunk/support/mksnapshot: Do not build INN when making a beta or
	  RC release.

	* trunk/Makefile, trunk/support/mkmanifest: Generate a changelog
	  file for beta and RC releases.
	  
	  Exclude README.* files from being checked for in the MANIFEST.

	* trunk/m4/perl.m4: Add a warning at configure time if GD is not
	  installed as a Perl module.

2009-02-28  iulius

	* trunk/MANIFEST, trunk/authprogs/Makefile, trunk/doc/man,
	  trunk/doc/man/Makefile, trunk/doc/pod/Makefile,
	  trunk/doc/pod/auth_smb.pod, trunk/doc/pod/readers.conf.pod,
	  trunk/support/mkmanifest: Remove residual traces of auth_smb in
	  INN. (Following commit 8365.)

2009-02-28  eagle

	* trunk/LICENSE, trunk/authprogs/Makefile,
	  trunk/authprogs/auth_smb.c, trunk/authprogs/smbval,
	  trunk/doc/pod/news.pod: Remove auth_smb. This hasn't been
	  maintained since it was contributed apart from a single pass
	  through to clean up warnings and dead code. It was based on an
	  old version of the Samba login code that had known security
	  issues and probably therefore has security issues of its own. No
	  one currently working on INN has the necessary background or test
	  environment to test this code and keep it working.
	  
	  There are good PAM modules that do the same thing as this code.
	  Users who want to authenticate users against Samba or SMB servers
	  should use ckpasswd with PAM support and the pam_smbpass or
	  similar PAM module.

	* trunk/doc/pod/news.pod: Rephrase some of the NEWS entries for
	  2.5.0 to be more idiomatic and rewrap some long lines. Add new
	  NEWS entries for improved IPv6 support, code cleanup, and the
	  improved test suite.

2009-02-28  iulius

	* trunk/samples/control.ctl.local: Fix encodings for Russian and
	  Baltic languages. Thanks to Andrew A. Vasilyev for his valuable
	  information.

2009-02-27  iulius

	* trunk/doc/pod/news.pod: Mention a fix for Perl 5.8.9 in the INN
	  2.4.6 changelog.

	* trunk/frontends/mailpost.in: Return a non-zero exit status on
	  error.

	* trunk/frontends/mailpost.in: * Fix *again* an uninitialized
	  variable (when the body of the article is empty).
	  
	  * When an article contained CRLF, parsing was broken.

	* trunk/doc/pod/distributions.pod, trunk/doc/pod/docheckgroups.pod,
	  trunk/doc/pod/incoming.conf.pod, trunk/doc/pod/news.daily.pod,
	  trunk/doc/pod/newsgroups.pod, trunk/doc/pod/newslog.pod,
	  trunk/doc/pod/scanlogs.pod, trunk/doc/pod/shlock.pod,
	  trunk/doc/pod/simpleftp.pod, trunk/doc/pod/storage.conf.pod,
	  trunk/doc/pod/tally.control.pod, trunk/perl/INN/Config.pm.in,
	  trunk/scripts/simpleftp.in: Remove my email from documentation.

2009-02-26  iulius

	* trunk/doc/pod/news.pod: Better changelog for INN 2.5.0 (release
	  candidate). Separate more clearly changes with upgrade
	  significance (in the upgrading section) and the regular summary
	  of changes section.

	* trunk/Makefile: With commit 8353: Add support for release
	  candidates generation.

	* trunk/support/mksnapshot: Add support for release candidates
	  generation.

2009-02-25  iulius

	* trunk/doc/pod/news.pod: New changelog for INN 2.4.6.

	* trunk/doc/pod/news.pod: Old changelog fixes.

	* trunk/scripts/inncheck.in: rnews can be owned by the group uucp
	  if --enable-uucp-rnews is given to configure.

	* trunk/scripts/inncheck.in: Allow a range of permissions to be
	  checked, instead of a forced one. Therefore, we can have
	  different configurations, depending on the security the user
	  wants to enforce.

	* trunk/frontends/mailpost.in: Fix an uninitialized variable (when
	  the body of the article is empty).

2009-02-22  iulius

	* trunk/innd/perl.c, trunk/nnrpd/perl.c: Add void casts to silence
	  "value computed is not used" warnings with gcc 4.3.2.

	* trunk/doc/pod/news.pod: Proposal of changelog for INN 2.5.0.

2009-02-21  iulius

	* trunk/doc/pod/makehistory.pod: Better wording.

	* trunk/doc/FAQ, trunk/doc/pod/makehistory.pod: Mention that
	  makehistory also generates dbz indices, contrary to what the man
	  page stated. Also fix a few typos and wrong command-line
	  commands.

	* trunk/expire/makehistory.c: Remove the "-e" flag from the
	  command-line parser of makehistory (oversight of commit 8022).

	* trunk/scripts/inncheck.in: Fix a bug in the check for the group
	  of the innbind program (inncheck was checking the group with the
	  news user instead). Also add a comment for unknown files in the
	  rnews directory (they may be backups ending with ".OLD").

2009-02-20  iulius

	* trunk/doc/pod/news.pod: Changelog for INN 2.4.6 ;-)

	* trunk/doc/pod/install.pod, trunk/doc/pod/ovdb.pod: Mention that
	  Berkeley DB 4.7 is recommended, as well as Python 2.5.0.

2009-02-19  iulius

	* trunk/storage/tradindexed/tradindexed.c: A boolean value should
	  be returned by tradindexed_cancel (not a NULL pointer).

	* trunk/innfeed/Makefile: Update dependencies.

	* trunk/samples/control.ctl: Update to new upstream version: add
	  the grisbi.* hierarchy.

	* trunk/support/config.guess, trunk/support/config.sub: Update
	  support files for autoconf to their last stable version: *
	  config.guess (i*86:AROS:*:*): Detect AROS. * config.guess
	  (NCR*:*:4.2:*, MPRAS*:*:4.2:*): Add detection for NCR MPRAS. *
	  config.sub (aros, aros-*): Handle these. * config.sub: Handle
	  -kopensolaris*. * config.sub (sh[24]aeb): Handle big endian
	  variants. * config.sub (lm32): New.

	* trunk/nnrpd/post.c, trunk/scripts/innreport_inn.pm: Increment the
	  count of rejected posts when CLOSE is used in filter_nnrpd.pl.
	  Also fix a few messages processed by innreport as for postings
	  when CLOSE/DROP/SPOOL are used.

2009-02-18  iulius

	* trunk/doc/pod/hook-perl.pod, trunk/nnrpd/post.c: Add the
	  possibility to close a connection via filter_nnrpd.pl (Perl nnrpd
	  filter hook). The returned string should begin with "CLOSE" to do
	  that.

	* trunk/perl/INN/Config.pm.in, trunk/scripts/innshellvars.in,
	  trunk/scripts/innshellvars.pl.in,
	  trunk/scripts/innshellvars.tcl.in: Export a "C" value for
	  LC_CTYPE so as to treat all input as a stream of bytes in our
	  scripts. Problems are for instance triggered off by docheckgroups
	  on UTF-8 systems when it receives a ISO-8859-15 checkgroups
	  control message: sed regexps do not match what they should.

	* trunk/control/docheckgroups.in: The pattern "a\+" is not
	  recognized by a few sed implementations. Therefore, we use "aa*"
	  instead.

2009-02-14  eagle

	* trunk/LICENSE: Add new copyright year.

2009-02-01  iulius

	* trunk/control/docheckgroups.in: Be more consistent in wording.

	* trunk/scripts/inncheck.in: Remove warnings from inncheck if
	  control.ctl contains lines for encoding settings.

	* trunk/control/controlchan.in, trunk/control/modules/newgroup.pl,
	  trunk/samples/control.ctl.local: Add encoding to newgroup
	  processing: controlchan now looks for the charset and try to
	  convert the description into the local encoding. Defaults are
	  cp1252 for expected encodings (unless the charset is properly set
	  in the newgroup message, or control.ctl dictates another charset)
	  and utf-8 for the local encoding.
	  
	  Add a few encoding exceptions to control.ctl.local.
	  
	  (The man pages will be updated when checkgroups are also
	  processed the same way.)
	  
	  see #4

2009-01-31  iulius

	* trunk/scripts/innupgrade.in: Better explanation for the reason
	  why innupgrade should be taint-safe.

	* trunk/m4/mmap.m4: Typo from previous commit...

	* trunk/m4/cc-flags.m4, trunk/m4/inet-ntoa.m4, trunk/m4/int32.m4,
	  trunk/m4/iov-max.m4, trunk/m4/large-fpos.m4, trunk/m4/mmap.m4,
	  trunk/m4/sendfd.m4, trunk/m4/snprintf.m4, trunk/m4/socket.m4,
	  trunk/m4/vamacros.m4: Change deprecated invocations of
	  AC_TRY_RUN, AC_TRY_LINK and AC_TRY_COMPILE to their new
	  equivalent AC_RUN_IFELSE, AC_LINK_IFELSE and AC_COMPILE_IFELSE
	  functions. Also use AC_LANG_SOURCE and AC_LANG_PROGRAM.

2009-01-31  eagle

	* trunk/m4/getaddrinfo.m4: Use AC_RUN_IFELSE and AC_LANG_SOURCE in
	  the getaddrinfo check instead of the deprecated AC_TRY_RUN.

2009-01-31  iulius

	* trunk/MANIFEST, trunk/configure.ac,
	  trunk/include/portable/socket.h, trunk/m4/getaddrinfo.m4: Make
	  use of the AI_ADDRCONFIG flag conditional (some systems like
	  BSD/OS do not support it properly).

	* trunk/tests/storage/sm.t: Use "q" and "d" instead of "Q" in sed
	  patterns.

	* trunk/scripts/innupgrade.in: Make innupgrade taint-safe;
	  otherwise, it is not run on a few systems like BSD/OS during
	  "make update".

	* trunk/innd/cc.c, trunk/innd/lc.c, trunk/innd/rc.c,
	  trunk/lib/inndcomm.c, trunk/lib/localopen.c: Fix compilation
	  issues when Unix domain sockets do not exist.

2009-01-30  iulius

	* trunk/support/install-sh: Add "-f" to the move command during
	  "make update".

	* trunk/innd/rc.c: Fix an unknown value for ai_flags. The problem
	  is found only on platforms without Unix domain sockets.

2009-01-29  iulius

	* trunk/lib/getnameinfo.c, trunk/tests/lib/getnameinfo-t.c: Add a
	  few casts to silent gcc warnings during the build.

	* trunk/configure.ac, trunk/include/clibrary.h,
	  trunk/include/portable/setproctitle.h: setproctitle, strlcat and
	  strlcpy may exist as functions but without being prototyped (for
	  instance on BSD/OS). Add their prototype if it is needed.

	* trunk/nnrpd/tls.c, trunk/storage/timecaf/caf.c: Add two casts to
	  silent gcc warnings during the buid.

	* trunk/lib/confparse.c, trunk/storage/ov.c: Typos.

	* trunk/configure.ac: sys/mount.h requires sys/param.h on some
	  systems (a warning is issued by configure).

	* trunk/perl/Makefile: Generate INN::Config man page only when the
	  main file (.in) has changed. Otherwise, it is rebuilt during the
	  build.

2009-01-20  eagle

	* trunk/doc/FAQ: Update the FAQ entry for the Cygwin port to not
	  reference a non-existent URL.

2009-01-18  iulius

	* trunk/MANIFEST, trunk/control/controlchan.in,
	  trunk/doc/pod/control.ctl.pod, trunk/doc/pod/tally.control.pod,
	  trunk/samples/control.ctl.local, trunk/scripts/inncheck.in,
	  trunk/site, trunk/site/Makefile, trunk/support/mkmanifest: * Add
	  a local control.ctl file, named control.ctl.local. * Fix a bug in
	  controlchan: the time of modification of control.ctl is undefined
	  if the file does not exist and a control article is received. *
	  Update the documentation of control.ctl with especially an
	  example of use. * Also fix a typo in the documentation of
	  tally.control and control.ctl. * Add a syntax check for
	  control.ctl.local in inncheck.
	  
	  close #95

	* trunk/innfeed/host.c: Fix an assertion failure in innfeed.
	  connections is a NULL-terminated array; cxn can then be NULL if
	  maxConnections connections are not open.
	  
	  Thanks to William Kronert for the bug report.

	* trunk/scripts/innreport.in: innreport created incorrect file
	  names at the start of the year: the change of year was not seen.
	  Instead of creating "Dec 31 04:15:02 -- Jan 2 04:15:03", it
	  generated a wrong "Jan 1 00:00:00 -- Dec 31 23:59:59".
	  
	  Thanks to Alexander Bartolich for the patch!
	  
	  close #41

2009-01-17  iulius

	* trunk/scripts/innmail.in: Fix a check for the definition of
	  $opt_s (if it was "0", innmail sent the warning that there was no
	  subject).

	* trunk/frontends/scanspool.in, trunk/innfeed/procbatch.in,
	  trunk/innfeed/testListener.pl, trunk/scripts/innmail.in: Use
	  Getopt::Std instead of getopts.pl (which is not maintained by
	  Perl and produces spurious warnings).
	  
	  Thanks to William Kronert for the report.
	  
	  close #123

2009-01-12  eagle

	* trunk/m4/perl.m4: Call AC_MSG_RESULT before the warning for
	  missing Perl modules.

2009-01-11  iulius

	* trunk/scripts/innreport.in: Add a sanity check in innreport a
	  division by zero in innreport.db:
	  
	  Jan 9 19:27:58 -- Jan 9 19:27:58
	  
	  Thanks to Alexander Bartolich for the patch.

	* trunk/scripts/innreport.in: Fix a bug in innreport when the log
	  consists of only one line; then $last_date was never assigned to.
	  
	  Patch from Alexander Bartolich.
	  
	  see #41 (only the third problem)

	* trunk/control/modules/checkgroups.pl,
	  trunk/control/modules/ihave.pl, trunk/control/modules/sendsys.pl:
	  * add a blank line in the mail output of checkgroups control
	  messages. * ihave control messages did not work (Perl error
	  because of the use of an unsupported syntax). * sendsys control
	  messages send the newsfeeds file (and not the newsgroups file).

	* trunk/support/makedepend: Fix a bug in "make depend": an empty
	  line could be created.
	  
	  Example: -- header.h \ --
	  
	  Remove it, so that we only have: -- header.h --

	* trunk/control/controlchan.in: Do not output temp to core because
	  it can lead to memory issues (or attacks/starvation). Instead,
	  use temporary files, which is incidentally the default for
	  MIME::Parser. controlchan is spawn during a long time, so it is
	  necessary. We purge the temporary files once used.
	  
	  see #122

2009-01-10  iulius

	* trunk/configure.ac, trunk/m4/perl.m4: Add a warning at configure
	  time if MIME::Parser or Encode are missing.
	  
	  see #122

	* trunk/control/controlchan.in,
	  trunk/control/modules/checkgroups.pl,
	  trunk/control/modules/ihave.pl,
	  trunk/control/modules/newgroup.pl,
	  trunk/control/modules/rmgroup.pl,
	  trunk/control/modules/sendme.pl,
	  trunk/control/modules/sendsys.pl,
	  trunk/control/modules/senduuname.pl,
	  trunk/control/modules/version.pl, trunk/doc/pod/install.pod,
	  trunk/doc/pod/news.pod: Use MIME::Parser in controlchan so that
	  we could decode MIME control headers (especially those which
	  contain application/news-groupinfo entities, as described in
	  USEPRO).
	  
	  Also fix a long-standing bug of uninitialized variables when some
	  headers were missing.
	  
	  Update INSTALL to mention the dependency on MIME::Parser.
	  
	  close #122

2009-01-09  iulius

	* trunk/scripts/innreport.in: * Use of a modified version of time
	  parsing code that performs faster and more correctly. * Fix the
	  parsing during leap years.
	  
	  Thanks to Alexander Bartolich for the patch.
	  
	  see #90 (Daylight savings time are still mishandled.)

2009-01-08  iulius

	* trunk/backends/actsyncd.in, trunk/m4/perl.m4,
	  trunk/support/fixscript.in: Change "tail -n -1" to "tail -n 1"
	  (after commit 8278).

	* trunk/backends/actsyncd.in, trunk/m4/perl.m4,
	  trunk/support/fixscript.in: Use the "-n" option with head and
	  tail (already used in config.guess).

	* trunk/CONTRIBUTORS, trunk/innfeed/connection.c,
	  trunk/innfeed/connection.h, trunk/innfeed/host.c: Fix an
	  assertion failure in innfeed. We have cases where all the
	  connections to a host are inactive and sleeping. Therefore, cxn
	  is still NULL and passed to cxnCheckstate().
	  
	  Thanks to William Kronert for the bug report.
	  
	  close #121

	* trunk/innfeed/Makefile: Fix dependencies in innfeed: connection.c
	  was missing.

2009-01-03  iulius

	* trunk/control/modules/ihave.pl,
	  trunk/control/modules/newgroup.pl,
	  trunk/control/modules/rmgroup.pl,
	  trunk/control/modules/sendsys.pl, trunk/control/perl-nocem.in,
	  trunk/control/signcontrol.in: * Mention that the newsgroups file
	  is in $INN::Config::pathdb when a mail is sent to the news
	  administrator. * Add " (Moderated)" to the end of an empty
	  newsgroup description if the newsgroups is moderated. * Remove
	  trailing useless spaces.

2008-12-31  iulius

	* trunk/nnrpd/nnrpd.c: * Fix a bug with AUTHINFO USER in
	  CAPABILITIES: it was not properly advertised when INN was not
	  compiled with TLS support. And also AUTHINFO SASL when INN was
	  compiled with TLS support! * Do not advertise AUTHINFO SASL and
	  SASL if no mechanism is available. * Do not advertise AUTHINFO
	  SASL PLAIN, LOGIN and EXTERNAL unless a TLS layer is active.

	* trunk/nnrpd/sasl.c: Prevent AUTHINFO SASL LOGIN (now a legacy
	  mechanism) from being used if a TLS layer is not active.

	* trunk/nnrpd/perm.c: Advertise AUTHINFO SASL consider that a
	  client can authentify if SASL is available (even though there is
	  no auth:, res:, perl_auth: or python_auth: parameters).

	* trunk/nnrpd/sasl.c: Only AUTHINFO SASL PLAIN and AUTHINFO SASL
	  EXTERNAL are vulnerable. Other SASL mechanisms can be used
	  without an active TLS layer.

	* trunk/scripts/innreport_inn.pm: RFC 4643 states that usernames
	  and passwords can contain spaces. More generally, they are bytes
	  strings (without NUL, CR and LF).
	  
	  Now that AUTHINFO SASL is implemented, nnrpd supports that. This
	  patch fixes the decoding of the news.notice file: innreport
	  couldn't see usernames with spaces.
	  
	  Also see #30 (for AUTHINFO USER/PASS where both usernames and
	  passwords could contain spaces).

2008-12-30  iulius

	* trunk/nnrpd/sasl.c: Fix a bug after successful AUTHINFO SASL: the
	  knowledge acquired since the beginning of the session was not
	  reset when no security layer was negotiated during the SASL
	  exchange.

2008-12-27  iulius

	* trunk/nnrpd/commands.c, trunk/nnrpd/post.c: Typo and add a
	  warning about not changing a size without reporting it to Perl
	  and Python code.

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.h, trunk/nnrpd/perl.c,
	  trunk/nnrpd/perm.c, trunk/nnrpd/python.c: Remove useless
	  intermediate variables to handle the response code of Perl and
	  Python authentication filters. We now have a pointer to the
	  response code that we can use in several functions.
	  
	  #see 107

	* trunk/doc/pod/hook-perl.pod, trunk/doc/pod/hook-python.pod: Typo.

	* trunk/MANIFEST, trunk/doc/Makefile, trunk/doc/compliance-nntp:
	  Remove the document describing INN's compliance with standards.
	  It is now in a Trac report.

2008-12-26  iulius

	* trunk/nnrpd/commands.c: Use 481 as the default value when no
	  Perl/Python auth hooks are used.

	* trunk/doc/pod/hook-perl.pod, trunk/doc/pod/hook-python.pod,
	  trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.h, trunk/nnrpd/perl.c,
	  trunk/nnrpd/perm.c, trunk/nnrpd/python.c,
	  trunk/samples/nnrpd_auth.pl.in, trunk/samples/nnrpd_auth.py:
	  Allow the user to send 403 response codes (with an error string)
	  with nnrpd Perl and Python filters. Only 281, 481 and 403 (as the
	  default value) are possible.

	* trunk/nnrpd/perl.c: Remove useless code in Perl authentication
	  hook. When 200 or 201, "code" should not be changed. When 481 is
	  returned, there is no need to change PERMneedauth (is has already
	  been set to true before the call of the function).

2008-12-26  eagle

	* trunk/doc/pod/hook-perl.pod: Correct the suggested response codes
	  for Perl authentication hooks to match RFC 4643.

2008-12-25  iulius

	* trunk/nnrpd/perm.c: Return 400 and not 502 when reject_with: is
	  set in readers.conf.

	* trunk/nnrpd/perm.c: Send 400 instead of 502 when the server is
	  temporarily unavailable. Typos and final dots at the end of a few
	  error strings.

2008-12-24  iulius

	* trunk/MANIFEST, trunk/doc/pod/getlist.pod,
	  trunk/include/inn/libinn.h, trunk/include/inn/nntp.h,
	  trunk/lib/Makefile, trunk/lib/commands.c, trunk/nnrpd/list.c,
	  trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h: Add the CAPABILITIES
	  command to nnrpd. Also check whether the possible keyword is
	  valid.
	  
	  Remove LIST EXTENSIONS.
	  
	  close #91

	* trunk/doc/compliance-nntp: Update the compliance NNTP document.
	  Mention RFC 3977, 4642, 4643 and 4644.
	  
	  Only innd does not check argument length (nnrpd does). LIST
	  EXTENSIONS is removed. XHDR is compliant with RFC 2980. innd and
	  nnrpd do not advertise IHAVE for the entire session.

2008-12-23  iulius

	* trunk/doc/pod/hook-python.pod, trunk/samples/filter_innd.py: Add
	  notes about buffers and memory views in documentation. Also fix a
	  wrong syntax to have access to a dictionary key.
	  
	  see #78

	* trunk/samples/nnrpd_access_wrapper.py,
	  trunk/samples/nnrpd_auth_wrapper.py: Better Python syntax.

	* trunk/samples/INN.py, trunk/samples/filter_innd.py,
	  trunk/samples/nnrpd.py, trunk/samples/nnrpd_access.py,
	  trunk/samples/nnrpd_access_wrapper.py,
	  trunk/samples/nnrpd_auth.py, trunk/samples/nnrpd_auth_wrapper.py,
	  trunk/samples/nnrpd_dynamic.py,
	  trunk/samples/nnrpd_dynamic_wrapper.py: In Python samples: *
	  Remove tabulations for indentations (not allowed by Python 3.0
	  when spaces are used for that purpose). * Add a comment for
	  "except Exception *as* errmsg" (new syntax). * Add a comment for
	  memoryview() instead of buffer() which is absent from Python 3.0.
	  * Remove occurrences of types.InstanceType (absent from Python
	  3.0). * Use parenthesis for print(). * Add a hook to use
	  sys.intern() instead of intern() for Python 3.0.
	  
	  All the samples are for directly use with Python 2.x. Commented
	  lines are present wherever the syntax has changed with Python
	  3.x.
	  
	  see #78

2008-12-22  iulius

	* trunk/backends/news2mail.in: Add a comma to separate addresses.
	  Otherwise, a broken To: header was generated by news2mail when
	  multiple addresses were used.
	  
	  close #73

2008-12-21  iulius

	* trunk/doc/pod/readme.pod: Remove an obsolete link (error 404) for
	  the suck package.

	* trunk/LICENSE, trunk/MANIFEST, trunk/control,
	  trunk/control/Makefile, trunk/control/gpgverify.in,
	  trunk/support/mkmanifest: Remove gpgverify because it uses the
	  old attached signature verification method, which doesn't work
	  properly for new-style GnuPG signatures that require Hash headers
	  for attached signatures.
	  
	  23:21 news@trigofacile ~% gpgverify < checkgroups-1229673648.sig
	  zsh: exit 3 gpgverify < checkgroups-1229673648.sig
	  
	  Note that pgpverify also handles GnuPG signatures, recognizes
	  their new-style, and is shipped with INN. For that checkgroups,
	  it answers "[GNUPG:] GOODSIG", etc. Therefore, pgpverify should
	  be used instead of gpgverify.
	  
	  close #13

	* trunk/samples/innreport.conf.in, trunk/scripts/innreport.in: The
	  default value for HTML output is false. Add the html-unknown
	  parameter in innreport.conf. Use the new @HTTPDIR@ configure
	  variable instead of a hard-coded path.

	* trunk/doc/pod/hook-perl.pod, trunk/doc/pod/readme.pod: Mention
	  Steve Crook's Cleanfeed version. Remove obsolete Usenet II Filter
	  for innd.

	* trunk/MANIFEST, trunk/doc/man, trunk/doc/man/mod-active.8,
	  trunk/doc/pod/Makefile, trunk/doc/pod/mod-active.pod: Convert
	  mod-active(8) man page into POD. Mention that no syntax checking
	  is performed on group names by the script.

	* trunk/doc/man/innfeed.conf.5, trunk/innfeed/connection.c,
	  trunk/innfeed/endpoint.c, trunk/innfeed/host.c,
	  trunk/innfeed/imap_connection.c, trunk/innfeed/innlistener.c,
	  trunk/innfeed/main.c, trunk/innfeed/misc.c, trunk/innfeed/misc.h,
	  trunk/samples/innfeed.conf: Add a new log-time-format: parameter
	  for innfeed. Change ctime(3) to strftime(3). Update documentation
	  and innfeed.conf sample file.
	  
	  Thanks to Alexander Bartolich for the patch.
	  
	  close #97

	* trunk/MANIFEST, trunk/backends/crosspost.c,
	  trunk/doc/man/innreport.8, trunk/doc/pod/install.pod,
	  trunk/samples/innreport.conf.in, trunk/scripts/innreport_inn.pm,
	  trunk/storage/tradspool/README.tradspool: Remove the crosspost
	  backend program (broken since INN 2.3.0, and not much useful
	  nowadays). Update documentation and innreport.
	  
	  close #96

2008-12-17  iulius

	* trunk/authprogs/radius.c: Fix the segfault of radius
	  authenticator when none of the radius servers respond.
	  
	  Thanks to Matija Nalis for the patch.
	  
	  close #94

2008-12-15  iulius

	* trunk/scripts/innshellvars.tcl.in: Add $inn_db_home and
	  $inn_syslog_facility. Set umask.
	  
	  close #10

2008-12-14  iulius

	* trunk/doc/pod/news.pod, trunk/scripts/innshellvars.in: Fix
	  exports. Add $UMASK and $SYSLOG_FACILITY. Rename $SPOOLBASE to
	  $SPOOLDIR.
	  
	  see #10

	* trunk/perl/INN/Config.pm.in, trunk/scripts/innshellvars.pl.in,
	  trunk/scripts/innshellvars.tcl.in: Add $path and $locks
	  variables.
	  
	  see #10

	* trunk/scripts/innshellvars.tcl.in: Do the same thing as the shell
	  version of innshellvars: * Re-add $inn_newslbin. * New variable
	  $inn_home. * Export variables NEWSHOME, SPOOLDIR, MOST_LOGS,
	  NEWSBIN, NEWSETC, NEWSLIB, INNDDIR, NEWSLBIN in the environment.i
	  
	  Also fix $inn_controlprogs.
	  
	  see #10

	* trunk/perl/INN/Config.pm.in, trunk/scripts/innshellvars.pl.in: Do
	  the same thing as the shell version of innshellvars: * Sets
	  umask. * New variable $home. * Export variables NEWSHOME,
	  SPOOLDIR, MOST_LOGS, NEWSBIN, NEWSETC, NEWSLIB, INNDDIR, NEWSLBIN
	  in the environment.
	  
	  see #10

	* trunk/backends/actmerge.in, trunk/backends/actsync.c,
	  trunk/backends/actsyncd.in, trunk/doc/FAQ,
	  trunk/doc/pod/checklist.pod, trunk/doc/pod/inndf.pod,
	  trunk/doc/pod/innupgrade.pod, trunk/doc/pod/install.pod,
	  trunk/doc/pod/news.daily.pod: Be consistent in the documentation:
	  use I<pathbin> and friends instead of paths like
	  /usr/local/news/bin.
	  
	  close #5

	* trunk/frontends/sys2nf.c: Use pathdb from inn.conf in sys2nf.c.
	  
	  see #5

	* trunk/frontends/sys2nf.c: Fix a compilation issue.

	* trunk/doc/pod/inn.conf.pod: Add double quotes in the minimal
	  inn.conf.

	* trunk/tests/data/upgrade/inn.conf,
	  trunk/tests/data/upgrade/inn.conf.ok: Add test for innupgrade:
	  change nntpactsync to incominglogfrequency.

2008-12-14  eagle

	* trunk/innfeed/endpoint.c: Remove dead code for historic BSD and
	  System V signal handling that Autoconf wasn't probing for and
	  reactivate the intended sigaction code for blocking signals that
	  had been compiled out.

	* trunk/expire/fastrm.c: Be consistent about NULL pointer checks
	  when freeing file lists. Not really a bug, but it makes it more
	  obvious the code is correct.

	* trunk/innd/util.c: Handle the second argument being NULL in a
	  call to MaxLength, which can happen in some pathological error
	  handling cases. Found by Saturn in 2007.

	* trunk/storage/tradindexed/tdx-group.c: In the tradindexed audit
	  code, make sure that we don't try to free a NULL vector. Found by
	  Saturn back in 2007.

	* trunk/innfeed/tape.c: Add a paranoia ASSERT in tape processing. I
	  don't think the article argument here could have ever been NULL,
	  but the function would definitely crash it if were and innfeed
	  uses an ASSERT elsewhere when that's the case.

	* trunk/storage/tradindexed/tdx-group.c: hashmap_load() can return
	  NULL in weird cases (missing active file), so check the return
	  value before using it when doing audits. Found by Saturn back in
	  2007.

	* trunk/scripts/innshellvars.tcl.in: Remove inn_newslbin from
	  innshellvars.tcl. It's not present in the other versions and
	  isn't used by INN. Also set inn_newsetc (used elsewhere in the
	  file) from pathetc instead of hard-coding an /etc subdirectory of
	  pathnews.

	* trunk/doc/FAQ: Change multiple references from CVS to Subversion.

2008-12-07  iulius

	* trunk/nnrpd/nnrpd.c: Prettier answer when the command does not
	  need any argument.

2008-12-06  iulius

	* trunk/doc/pod/pullnews.pod, trunk/frontends/pullnews.in: * Add
	  "-O" option, which avoids downloading the whole article from
	  upstream if downstream already has it (adding small overhead by
	  using STAT); * Fix hostnames on command line (implemented, but
	  didn't work before); + Use admin-specified ordering of servers in
	  config file (useful when using timeouts and some servers are
	  faster/preferred); + Lock file is per-groupfile, not
	  per-unix-user, which allows running several pullnews with
	  different config files in parallel.
	  
	  Thanks to Matija Nalis for the patch.

	* trunk/m4/libtool.m4, trunk/m4/ltoptions.m4, trunk/m4/ltsugar.m4,
	  trunk/m4/ltversion.m4, trunk/m4/lt~obsolete.m4,
	  trunk/support/ltmain.sh: Update libtool to version 2.2.6a with
	  the necessary support for the -B flag in ltmain.sh.

	* trunk/support/config.guess, trunk/support/config.sub: Update
	  support files for autoconf to their last stable version. *
	  config.sub (z80, z80-*): Handle. * config.sub (cegcc, -cegcc*):
	  New. * config.guess: Add support for detecting x86_64 Solaris. *
	  config.guess (*:Interix*:[3456]*): Handle "genuineintel". *
	  config.guess (padre:Linux:*:*): New. * config.guess
	  (i86pc:SunOS:5.*:*, i86xen:SunOS:5.*:*): No need to invoke echo
	  as /usr/bin/echo.

	* trunk/samples/moderators: Add aioe.*, perl.* and si.* information
	  for moderated newsgroups.

	* trunk/samples/control.ctl: Update to new upstream version: * Add
	  demon.*, hacktic.* and news4us.*. * Change information for us.*
	  (now PGP-managed) and xs4all.*. * Mark easynet.*, efn.*, eug.*,
	  humanityquest.* and un.* as historic. * Mark info.* and uiuc.* as
	  defunct.

	* trunk/nnrpd/article.c: The check for an invalid newsgroup after
	  successful authentication should be done only if articles are
	  requested by message-IDs.

2008-12-05  iulius

	* trunk/nnrpd/commands.c: Fix a bug introduced in revision 8061.
	  
	  When no group is selected and authentication occurs, articles
	  could not be retrieved by their message-IDs.
	  
	  Thanks to Fred Senault for having spotted that issue.

2008-12-02  iulius

	* trunk/backends/mod-active.in: Fix a bug in mod-active for aliased
	  newsgroups. Only "=" was written to the active file.
	  
	  Thanks to D. Stussy for the patch.

2008-12-01  iulius

	* trunk/innfeed/host.c: Fix a bug introduced in revision 7786. If
	  bindaddress6: is unset in innfeed.conf, force-ipv4: was not taken
	  into account.

2008-11-30  iulius

	* trunk/innd/art.c, trunk/innd/innd.h: Use a buffer for the Lines:
	  header (to generate overview :lines metadata).

	* trunk/doc/pod/auth_krb5.pod, trunk/doc/pod/auth_smb.pod,
	  trunk/doc/pod/domain.pod, trunk/doc/pod/external-auth.pod,
	  trunk/doc/pod/hook-perl.pod, trunk/doc/pod/ident.pod,
	  trunk/doc/pod/incoming.conf.pod, trunk/doc/pod/libauth.pod,
	  trunk/doc/pod/pullnews.pod, trunk/doc/pod/radius.conf.pod,
	  trunk/doc/pod/rc.news.pod, trunk/doc/pod/tst.pod: Use S<> for
	  names. Missing =cut at the end of incoming.conf.pod.

	* trunk/doc/pod/news2mail.pod: Add a FILES section and credits to
	  D. Stussy.

	* trunk/MANIFEST, trunk/backends/news2mail.in, trunk/doc/man,
	  trunk/doc/man/news2mail.8, trunk/doc/pod/Makefile,
	  trunk/doc/pod/news2mail.pod, trunk/samples/news2mail.cf,
	  trunk/samples/newsfeeds.in: Add an optional third parameter to
	  news2mail, specifying the envelope-from address for e-mails sent
	  to lists. Also fix a long-standing bug about the use of the first
	  argument (in To:). Fix levels for syslog calls.
	  
	  Thanks to D. Stussy for the patch.
	  
	  Convert the documentation into POD. Update the samples files. Use
	  "Ap" and an exclusion of the list owner domain in newsfeeds.

2008-11-29  iulius

	* trunk/doc/pod/inn.conf.pod: Typo for the name of
	  buffindexed.conf. Reported by Jens Kubieziel.

	* trunk/doc/pod/buffindexed.conf.pod, trunk/doc/pod/news.pod,
	  trunk/storage/buffindexed/buffindexed.c: Allow the use of buffers
	  larger than 2 GB with buffindexed.
	  
	  Patch from Kirill Berezin.
	  
	  Idea of the patch:
	  
	  if (mmapwrite(ovbuff->fd, &ovindexhead, sizeof(OVINDEXHEAD),
	  ovbuff->base + ov.blocknum * OV_BLOCKSIZE) !=
	  sizeof(OVINDEXHEAD)) {
	  
	  This is a part of current ovsetcurindexblock function. Third
	  argument is the offset from the beginning of buffer: ovbuff->base
	  is off_t and ov.blocknum is unsigned int. For the case of INN
	  compiled without --enable-largefiles it works fine, but in other
	  case the size of off_t is 8 bytes and unsigned int still uses 4
	  bytes.
	  
	  Now say we have a 5Gb buffer, which is roughly equal to 625000
	  8000 byte blocks, and we are going to access to block # 620000
	  that is equal to offset of 4960000000 bytes, or about at very end
	  of the buffer. BUT C standard does not require to cast all parts
	  of statement to type of argument with longest size before
	  calculation of result, instead is requires a cast of arguments of
	  current operation only. As a result, because multiplication is
	  operation with higher priority and the size of blocknum is 4
	  bytes and constant have no size hints, we will have an offset
	  somewhere in the beginning of buffer instead of very end of it.
	  To resolve such a limitation, a macro (OV_OFFSET) now calculates
	  the offset (changing blocknum type to off_t instead of unsigned
	  int).

	* trunk/storage/buffindexed/buffindexed.c: Rollback for the case of
	  error during group expiration. This fix requires a long
	  description. Expiration process for buffindexed method is
	  straightforward -- retrieve full chain of indexes, sort, look
	  through the chain and COPY data and indexes to keep in new
	  location (in other words create a new chain of indexes); update
	  group description with new chain location and free all blocks
	  allocated for old chain. This means it must be enough space to
	  copy all group's indexes and headers.
	  
	  For the case of error, for example not enough room available,
	  blocks allocated for old chain are freed, group description
	  remains unchanged and blocks allocated for new chain are still
	  allocated, but not linked to any group. Such a failure have a
	  very interesting outcomes. According to group description, first
	  block of a group exists and is valid, but in reality it is
	  unallocated and server free to write a header into it. And when
	  occasionally server writes a header into this location,
	  expiration process dumps a following error message:
	  
	  Nov 6 04:29:48 andromeda expireover[23091]: buffindexed:
	  ovgroupmmap ovbuff is null(ovindex is 12854, ovblock is 808793140
	  
	  where the number of buffer is 12854, but it is not possible for a
	  server with buffers numbers 0, 1, 2 and 3.
	  
	  This patch changes error processing as follows: free just
	  allocated chain, keep old chain and group description as it was
	  before expiration.
	  
	  Patch from Kirill Berezin.

	* trunk/storage/buffindexed/buffindexed.c: Fixes lost
	  initialization of group descriptor after exipiration of all
	  articles for a group at once.
	  
	  Patch from Kirill Berezin.

	* trunk/storage/buffindexed/buffindexed.c: Data placement
	  optimization for buffindexed; the main idea is to place data as
	  tight as possible; current implementation scatters data over all
	  unavailable disk space. This fix leads to a drastic reduction of
	  expireover runtime (for instance from 9 hours to about 1 hour or
	  so).
	  
	  Patch from Kirill Berezin.

2008-11-24  iulius

	* trunk/innd/rc.c, trunk/samples/incoming.conf: incoming.conf has
	  more than just names and addresses and use a more general short
	  description.

2008-11-23  iulius

	* trunk/innd/icd.c: Prevent control.cancel from being removed.
	  Thanks to D. Stussy for having pointed that issue out.

2008-11-23  eagle

	* trunk/support/mksnapshot: Snapshot actions were accidentally
	  commented out.

	* trunk/doc/pod/incoming.conf.pod: incoming.conf has more than just
	  names and addresses and use a more general short description.

2008-11-22  iulius

	* trunk/MANIFEST, trunk/doc/man, trunk/doc/man/incoming.conf.5,
	  trunk/doc/pod/Makefile, trunk/doc/pod/incoming.conf.pod: Convert
	  into POD the incoming.conf man page. Add the ignore: parameter
	  and fix a few mistakes.

	* trunk/samples/incoming.conf: Typo.

	* trunk/innd/innd.h, trunk/innd/nc.c, trunk/innd/rc.c,
	  trunk/samples/incoming.conf: Add a new ignore: parameter in
	  incoming.conf. It compels innd to answer 435 and 438 to
	  IHAVE/CHECK commands from the remote peer so that it does not
	  send any articles.

	* trunk/doc/FAQ: Add a comment about the "to" newsgroup (mandatory
	  groups section) and alias newsgroups (renaming section).

	* trunk/backends/news2mail.in, trunk/backends/send-uucp.in,
	  trunk/control/controlchan.in, trunk/control/gpgverify.in,
	  trunk/control/perl-nocem.in, trunk/frontends/cnfsstat.in,
	  trunk/frontends/mailpost.in: Use the default native setlogsock
	  when Sys::Syslog is version >= 0.15.

2008-11-22  eagle

	* trunk/doc/FAQ: Recommend creating junk with n rather than y,
	  matching the current default active file.

2008-11-21  iulius

	* trunk/Makefile, trunk/support/mksnapshot: Use more portable make
	  functions in order to generate beta releases.

	* trunk/control/controlchan.in, trunk/doc/man/controlchan.8,
	  trunk/doc/pod/install.pod, trunk/doc/pod/newsfeeds.pod,
	  trunk/samples/newsfeeds.in: Add "AC" to the controlchan channel
	  feed in newsfeeds. Thanks to D. Stussy for this suggestion.

2008-11-20  iulius

	* trunk/scripts/news.daily.in: Unreserve the server only if it was
	  reserved by expire. Be sure to also do that in case news.daily
	  exits.
	  
	  Thanks to D. Stussy for having pointed this issue out.

	* trunk/innd/status.c: Add the number of allowed connexions in the
	  status file of innd.

2008-11-19  iulius

	* trunk/innd/status.c: Print multiple IP addresses in the
	  inn_status file in order to see the addresses of a connected
	  peer. Patch from D. Stussy.

	* trunk/innfeed/host.c: Show all addresses that innfeed thinks the
	  peer has. Patch from D. Stussy.

2008-11-18  iulius

	* trunk/scripts/innreport.in: Check whether the config file is a
	  real file. Patch from Alexander Bartolich.

	* trunk/CONTRIBUTORS, trunk/backends/shlock.c: Fix a long-standing
	  bug in shlock. Thanks a lot to Berend Reitsma for his fix.
	  
	  The race condition is that there is a timewindow between the
	  discovery of an invalid lock and the removal of that lockfile.
	  The lockfile that is removed might be another file than the one
	  you checked. This can happen because another shlock might have
	  done the same check but did not yet remove the lockfile because
	  of OS scheduling. You will happily remove the file, create a new
	  lockfile and return success. If the OS then schedules the other
	  shlock again, it will continue to remove the lockfile, create a
	  new lockfile and return success too. At this point you have two
	  processes running within the locked part...

	* trunk/scripts/news.daily.in: When news.daily finishes, the news
	  server might have a "reserved" status in case expire was killed
	  during its expiry. (The news server is put back to running mode
	  -- not left throttled.) This means that when news.daily is run
	  for the next day's cycle, no article expiration takes place.
	  
	  Thanks to D. Stussy for having pointed that issue out.

2008-11-17  iulius

	* trunk/MANIFEST, trunk/contrib/README,
	  trunk/contrib/innreport-filter.xslt: Add a filter for innreport's
	  HTML files in the contrib section. Thanks to Alexander Bartolich.

	* trunk/doc/pod/news.pod: Add information upgrade for innreport.

	* trunk/MANIFEST, trunk/samples/innreport.conf.in,
	  trunk/samples/innreport.css, trunk/site, trunk/site/Makefile,
	  trunk/support/mkmanifest: Add innreport.css and install it to
	  pathhttp. Thanks to Alexander Bartolich for his style.

	* trunk/Makefile.global.in, trunk/doc/pod/inn.conf.pod,
	  trunk/lib/innconf.c, trunk/m4/paths.m4,
	  trunk/samples/inn.conf.in, trunk/support/fixconfig.in: Add
	  support for --with-http-dir at configure time. It allows the user
	  to configure pathhttp in inn.conf (which was previously set to
	  pathlog).

	* trunk/MANIFEST, trunk/doc/man, trunk/doc/man/shlock.1,
	  trunk/doc/pod/Makefile, trunk/doc/pod/shlock.pod: Convert
	  documentation for shlock into POD.

	* trunk/scripts/innreport.in: Better escape of HTML and XML. Patch
	  from Alexander Bartolich.

	* trunk/scripts/innreport.in: Patch from Alexander Bartolich. Many
	  thanks to him!
	  
	  Function EscapeHTML sanitizes input from log files by replacing
	  special characters (especially non-ASCII characters) with
	  HTML-entities.
	  
	  Split EvalExpr into parts:
	  
	  PrepareEval takes an expression from innreport.conf (a string),
	  substitutes variable names and pseudo-functions, compiles the
	  code to an anonymous subroutine, and returns it together with
	  references to enclosure variables. EvalExpr and EvalHash call a
	  subroutine compiled by PrepareEval.
	  
	  All three functions provide diagnostic output (and throw an
	  exception on errors) if $DEBUG is true.
	  
	  All expression evolution is now done through PrepareEval.
	  
	  Functions ComputeTotal and ComputeTotalDouble now use a cache.
	  The performance gain is insignificant, but if $DEBUG is true then
	  modifications of the input parameter (a hash) can be detected.
	  
	  New Perl function Divide0 is available to innreport.conf as
	  "div0". It returns 0 if one of the divisors is 0.
	  
	  At the moment expressions in innreport.conf throw lots of
	  division-by-zero exceptions, so it is not possible to run
	  innreport if $DEBUG is true.

	* trunk/Makefile, trunk/support/mksnapshot: Add a README.beta file.

	* trunk/Makefile, trunk/support/mksnapshot: Add support for
	  generating beta releases.

	* trunk/doc/FAQ: Add information on modifying the X-Trace: header.

2008-11-16  iulius

	* trunk/doc/pod/docheckgroups.pod, trunk/scripts/news.daily.in:
	  Typos.

	* trunk/doc/pod/news.pod, trunk/nnrpd/nnrpd.c: Fix a bug in nnrpd:
	  it was dropping its permissions to news too soon (before the
	  binding of the network socket).
	  
	  Remove that remark from the upgrade process. Add a few remarks on
	  inn.conf instead (TLS support without sasl.conf and
	  incominglogfrequency parameter).

2008-11-15  iulius

	* trunk/doc/pod/hook-perl.pod, trunk/doc/pod/hook-python.pod,
	  trunk/innd/innd.c, trunk/innd/innd.h,
	  trunk/samples/filter_innd.py, trunk/tests/innd/fakeinnd.c: Add
	  access to five new headers within Perl and Python hooks for innd:
	  * X-User-ID * X-Auth-Sender * Original-NNTP-Posting-Host *
	  Original-Sender * NNTP-Posting-Path
	  
	  Also update the POD documentation and the Python sample.

	* trunk/frontends/pullnews.in: Two issues (and some minor tidy-ups)
	  resolved in pullnews:
	  
	  - when an article is foreshortened, pullnews warned of an out of
	  bounds subscript; - when an article number is not in group (423),
	  pullnews redundantly retried that article.
	  
	  Thanks to Geraint A. Edwards for the patch.

2008-11-10  eagle

	* trunk/doc/pod/readers.conf.pod: Add another readers.conf example,
	  this one showing a hierarchy that's restricted to authenticated
	  users.

	* trunk/doc/pod/readme.pod: The old newsx link is completely dead.

	* trunk/doc/pod/news.pod: Drop the L<> markup for a link to the old
	  active.Z file on ftp.isc.org. I don't want to change this to .gz
	  (the current name) since that would be changing history, but
	  making this a link produces a broken link that shows up each time
	  I run a broken link check on the HTML documentation. This seems
	  the best compromise.

2008-11-01  iulius

	* trunk/scripts/inncheck.in: Fix an undefined variable.

2008-10-27  iulius

	* trunk/include/portable/socket.h, trunk/lib/network.c: Revert the
	  change of previous revision 8145. Add a portable declaration
	  instead.

2008-10-25  iulius

	* trunk/innd/art.c: Fix a bug when articles were fed to innd via
	  IHAVE or TAKETHIS with an empty body: the article terminator was
	  not recognized. Therefore, subsequent NNTP commands were eaten
	  inside the article...
	  
	  Thanks to Wolfgang M. Weyand for having reported this issue.

	* trunk/doc/pod/active.pod, trunk/doc/pod/readme.pod,
	  trunk/doc/pod/sendinpaths.pod: New information for the TOP1000
	  project. Update links and fix typos.

	* trunk/doc/pod/news.pod: First upgrade note for INN 2.5: nnrpd now
	  cannot bind to any port.

	* trunk/nnrpd/tls.c: Fix a cast which causes a compilation warning
	  on 64-bit architectures.

	* trunk/CONTRIBUTORS, trunk/lib/network.c: EAI_ADDRFAMILY was
	  obsoleted with RFC 3493. Thanks to Wolfgang M. Weyand for having
	  pointed that out (it causes compilation issues).

2008-10-07  iulius

	* trunk/CONTRIBUTORS, trunk/scripts/innreport.in: Test for the
	  existence of 'img_dir' instead of 'html_dir'. Thanks to Wim Lewis
	  for the patch.

2008-10-05  eagle

	* trunk/MANIFEST: Add doc/FAQ to the manifest.

	* trunk/doc/FAQ: Expand the Id keyword.

	* trunk/doc/FAQ: Merge FAQ into trunk.

2008-09-27  iulius

	* trunk/nnrpd/article.c, trunk/nnrpd/commands.c,
	  trunk/nnrpd/group.c, trunk/nnrpd/misc.c, trunk/nnrpd/nnrpd.h,
	  trunk/nnrpd/perm.c, trunk/nnrpd/sasl.c: After a successful
	  AUTHINFO USER/PASS in an already selected newsgroup, make sure
	  the client still has read access to that newsgroup.

	* trunk/nnrpd/perm.c: Improve comments.

2008-09-26  iulius

	* trunk/nnrpd/nnrpd.c: Switch the place between "range" and
	  "message-ID" in HELP.

	* trunk/nnrpd/group.c: Fix a bug which causes low and high counters
	  for the currently selected newsgroup to be changed even though
	  the group is not changed.

	* trunk/nnrpd/group.c, trunk/nnrpd/misc.c, trunk/nnrpd/post.c,
	  trunk/nnrpd/python.c, trunk/scripts/innreport_inn.pm: Fix a bug
	  since commit 6208 which made Python dynamic hooks not work.
	  Typos.

	* trunk/nnrpd/perl.c, trunk/nnrpd/python.c: On fatal failures
	  during authentication, use 400 and not 502 before closing the
	  connection.

	* trunk/nnrpd/article.c, trunk/nnrpd/commands.c,
	  trunk/nnrpd/group.c, trunk/nnrpd/newnews.c: Answer 480 instead of
	  502 when the user can authenticate.

	* trunk/samples/nnrpd_auth.pl.in, trunk/samples/nnrpd_auth.py,
	  trunk/samples/nnrpd_auth_wrapper.py: When authentication fails,
	  return 481 and not 502 in nnrpd hooks.

	* trunk/nnrpd/perl.c: Fix indentation.

	* trunk/nnrpd/post.c, trunk/nnrpd/post.h, trunk/nnrpd/sasl.c:
	  Better comments.

2008-09-23  iulius

	* trunk/nnrpd/sasl.c: * Properly set TLS negociation for the SASL
	  server. * Do not use the ANONYMOUS mechanism.

2008-09-22  iulius

	* trunk/nnrpd/list.c: Use "n" instead of "j" and "x" for active
	  newsgroups flags. It is more useful for readers.

2008-09-21  iulius

	* trunk/nnrpd/sasl.c: Correctly find out 504 or 482 for
	  base64-encoding.

	* trunk/nnrpd/Makefile, trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h,
	  trunk/nnrpd/sasl.c, trunk/scripts/innreport_inn.pm: * Restart the
	  SASL server after authentication failure. * Add PLAIN and LOGIN
	  mechanisms. * Reset the state of the NNTP protocol after a
	  security layer has been negotiated.

	* trunk/include/inn/nntp.h, trunk/nnrpd/line.c,
	  trunk/nnrpd/nnrpd.c, trunk/nnrpd/sasl.c: * It appears that
	  sasl_decode64() returns SASL_CONTINUE instead of SASL_BADPROT
	  when there is a base64-encoding error! Adapt AUTHINFO SASL for
	  that behaviour. Segfaults fixed in the process. * Convert "=" to
	  an empty string "" when a client answers only that. * Call
	  sasl_done() when the client exits in order to properly close the
	  SASL connection object. * Add NNTP_ERR_BASE64 for NNTP error code
	  504.

	* trunk/nnrpd/commands.c, trunk/nnrpd/sasl.c: If authentication
	  will fail, send 502 with a better comment.

	* trunk/doc/pod/readers.conf.pod, trunk/nnrpd/commands.c,
	  trunk/nnrpd/list.c, trunk/nnrpd/misc.c, trunk/nnrpd/nnrpd.c,
	  trunk/nnrpd/nnrpd.h, trunk/nnrpd/perm.c, trunk/nnrpd/sasl.c: *
	  Check whether STARTTLS must be used before trying to
	  authenticate. Send 483 if that is the case. * Use require_ssl:
	  for an encrypted connection either from the beginning if the -S
	  flag is passed to nnrpd or after a successful use of STARTTLS. *
	  Reorganize how nnrpd parses auth blocks with that change to
	  require_ssl:. * Replace ClientSSL by
	  PERMcanauthenticatewithoutSSL in order to better be aware of the
	  real permissions. * Documentation update.

2008-09-20  iulius

	* trunk/nnrpd/misc.c: Close the connection on STARTTLS failure
	  (during the negotiation).

	* trunk/nnrpd/misc.c, trunk/scripts/innreport_inn.pm: * STARTTLS is
	  not allowed (502) after AUTHINFO. * STARTTLS resets the current
	  newsgroup and article number.

	* trunk/nnrpd/article.c, trunk/nnrpd/group.c, trunk/nnrpd/nnrpd.h:
	  Use a common prototype.

	* trunk/nnrpd/group.c: Useless repbuff variable.

	* trunk/nnrpd/misc.c, trunk/nnrpd/tls.c, trunk/nnrpd/tls.h: * Do
	  not close the connection when TLS negotiation can not be
	  initiated. Therefore, send 580 and not 400, unless it is done at
	  initial connection by nnrpd -S. * Do not send 580 when
	  negotiation fails (382 has already been sent).

	* trunk/include/inn/nntp.h, trunk/include/nntp.h,
	  trunk/nnrpd/sasl.c: Return 482 instead of 483 after a failure in
	  AUTHINFO SASL. Add new NNTP_FAIL_PRIVACY_NEEDED 483 code.

	* trunk/nnrpd/tls.c: Bug-fix for TLS: return 1 when length is
	  right.

	* trunk/nnrpd/newnews.c, trunk/nnrpd/post.c, trunk/nnrpd/tls.c,
	  trunk/nnrpd/tls.h, trunk/nnrpd/track.c: Pretty comments. Also use
	  sizeof(buf) instead of 256 in a few TLS calls.

2008-09-19  iulius

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/sasl.c,
	  trunk/nnrpd/tls.c: * Return 400 instead of 503 (sic) at initial
	  connection if something goes wrong. * Return 400 instead of 580
	  if STARTTLS fails and nnrpd exits. * Return 501 instead of 502
	  when AUTHINFO has already been used and its syntax is incorrect.
	  * Do not log passwords if AUTHINFO PASS, AUTHINFO SASL PLAIN or
	  AUTHINFO SASL EXTERNAL are used.

2008-09-17  iulius

	* trunk/nnrpd/article.c, trunk/nnrpd/commands.c,
	  trunk/nnrpd/group.c, trunk/nnrpd/list.c, trunk/nnrpd/nnrpd.c,
	  trunk/nnrpd/nnrpd.h, trunk/nnrpd/perm.c: Use Reply() and Printf()
	  at the right moment! Reply() can be traced (response codes)
	  whereas Printf() can not.

	* trunk/nnrpd/nnrpd.c: Initial connections were sometimes closed
	  without sending 502. Typos.

	* trunk/nnrpd/newnews.c: Return 501 instead of 502 when the syntax
	  of NEWNEWS is wrong and the user cannot use NEWNEWS.

2008-09-16  iulius

	* trunk/nnrpd/commands.c, trunk/nnrpd/misc.c: Return 502 instead of
	  483 when STARTTLS is used on an active TLS layer. Typos.

	* trunk/nnrpd/group.c, trunk/nnrpd/list.c: LIST HEADERS and LIST
	  NEWSGROUPS are mandatory. Prettier answers.

	* trunk/nnrpd/line.c, trunk/nnrpd/sasl.c,
	  trunk/scripts/innreport_inn.pm: Typos.

	* trunk/nnrpd/commands.c, trunk/nnrpd/group.c: GROUP and LISTGROUP
	  bug-fixes: * answer 501 instead of 502 when the syntax of the
	  command is not good; * send 502 instead of 480 when already
	  authenticated.

2008-09-13  iulius

	* trunk/nnrpd/article.c: Answer 503 when the OVER MSGID capability
	  is used. Also fix the return codes of XOVER, which should be 224
	  and not 423 when no articles are available.

2008-09-12  iulius

	* trunk/MANIFEST, trunk/tests/data/overview/1-4stripped: Add a new
	  overview test file for :bytes and :lines when there is no Xref:
	  in the articles.

	* trunk/tests/data/overview/1-4, trunk/tests/storage/makehistory.t:
	  makehistory now creates :lines and :bytes by default. Add them to
	  the test suite. I have manually checked the expected result.

2008-09-11  iulius

	* trunk/doc/pod/makehistory.pod, trunk/expire/makehistory.c: Remove
	  the -e flag because we need to always generate corerct overview
	  (with :bytes and :lines). Proof-read the documentation (and add
	  -S).

2008-09-08  iulius

	* trunk/expire/makehistory.c: Correctly generate metadata
	  information when rebuilding the overview database.

2008-09-07  iulius

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/sasl.c:
	  * Return 503 (and not 501) in case INN is built without SASL,
	  when AUTHINFO SASL is asked. * Check the syntax of a mechanism.

	* trunk/nnrpd/commands.c, trunk/scripts/innreport_inn.pm: Better
	  differentiate IHAVE from POST in logs.

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c: * Fix the behaviour
	  of AUTHINFO PASS my password with spaces which was parsed as
	  AUTHINFO PASS my We now return 501.
	  
	  * The arguments of the program for AUTHINFO GENERIC are optional.

	* trunk/nnrpd/commands.c, trunk/nnrpd/sasl.c: It is 501 and not 500
	  for unknown AUTHINFO variants (RFC 3977 & 4643).

	* trunk/lib/date.c, trunk/lib/sendarticle.c: Clarify the date
	  according to RFC 3977.

	* trunk/nnrpd/commands.c: * Instead of a strcasecmp on each
	  character of the string, use a global strstr. * Missing an answer
	  for AUTHINFO GENERIC: the server did not send a response when the
	  pipe failed. * More user-friendly answers for AUTHINFO commands.

	* trunk/nnrpd/cache.c, trunk/nnrpd/cache.h: BODY is a final lookup
	  (confusion with STAT). Also add (X)HDR and XPAT as final lookups.

	* trunk/nnrpd/nnrpd.c: * XPAT uses a pattern and not a wildmat as
	  the term refers to in RFC 3977. * When the usage is bad, it is
	  always because of a wrong number of arguments.

	* trunk/doc/pod/external-auth.pod, trunk/nnrpd/auth-ext.c:
	  Documentation improvements for external authentication:
	  
	  * Missing ".\r\n" after the output for authenticators. * Mention
	  the nnrpd timeout of 5 seconds. * Mention LocalPort. * User: is
	  case-insensitive. * Example with a domain. * Typo fixes.

2008-09-06  iulius

	* trunk/nnrpd/article.c: Better check of the syntax of
	  ARTICLE/BODY/HEAD/STAT, NEXT/LAST, HDR/XHDR/XPAT and OVER/XOVER.
	  More user-friendly answers too.

	* trunk/MANIFEST, trunk/include/inn/libinn.h, trunk/lib/Makefile,
	  trunk/lib/headers.c, trunk/lib/messageid.c, trunk/lib/numbers.c,
	  trunk/nnrpd/article.c, trunk/nnrpd/group.c: Correctly parse an
	  article number (1 to 16 digits). Otherwise, if a range of length
	  497 was given, it could lead to too long answers!

	* trunk/nnrpd/article.c: Return 501 and not 503 for "HDR :" or "HDR
	  :bad:metadata:name".

	* trunk/MANIFEST, trunk/include/inn/libinn.h, trunk/lib/Makefile,
	  trunk/lib/headers.c, trunk/nnrpd/article.c: Add a (very basic)
	  check of the requested header name.

	* trunk/nnrpd/article.c, trunk/nnrpd/list.c, trunk/nnrpd/nnrpd.c: *
	  Add support for HDR. * Correctly parse the arguments before
	  anything else. * Reject unimplemented metadata requests with 503.
	  * LIST HEADERS is implemented with a different output between
	  RANGE and MSGID. * Homogenize the HELP result with "wildmat"
	  everywhere (instead of "group_pattern" or "pat"). * More
	  user-friendly answers. * XHDR and XPAT were not checking the
	  permissions the user has to read articles when using a
	  message-ID. Now fixed. * Fix calls to ARTclose().

2008-09-05  iulius

	* trunk/nnrpd/article.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h:
	  * Add support for OVER (though not the OVER MSGID capability). *
	  Correctly parse the arguments before anything else. * Fix XOVER
	  which could send empty replies with 224 (not allowed even by RFC
	  2980). * More user-friendly answers. * Also fix a bug in the
	  replies of XOVER/XHDR/XPAT when the group is empty. Two initial
	  replies were sent (420 followed by 224).

2008-09-04  iulius

	* trunk/innd/art.c, trunk/innd/innd.h: Correctly count :bytes
	  (without the first character of dot-stuffed lines). Also save the
	  right :lines value in the overview database.

	* trunk/innd/art.c, trunk/innd/innd.h: Better count of the :bytes
	  metadata: * CRLF counts for 2 octets; * the separating empty line
	  counts.
	  
	  Dot-stuffing is still counted, though it should not.

2008-09-03  iulius

	* trunk/nnrpd/commands.c, trunk/nnrpd/newnews.c: Answer 403 and not
	  503 when there is an internal problem.

2008-09-02  iulius

	* trunk/nnrpd/commands.c, trunk/nnrpd/newnews.c,
	  trunk/nnrpd/nnrpd.c: Correctly parse the last argument of
	  NEWGROUPS and NEWNEWS so as to only allow GMT.

2008-09-01  iulius

	* trunk/nnrpd/article.c: * Use 400 and not 503 before closing the
	  connection after an error with the history. * Do not use %.512s
	  but %.250s to printf a message-ID. * Be more explicit than
	  "Permission denied" when 502. * Use a break instead of a return
	  at one point (it allows to free a variable). * Typos.

	* trunk/nnrpd/commands.c: Improvements for IHAVE:
	  
	  * Check the argument of IHAVE (a message-ID) and return 501 if it
	  is not valid. * In the backoff code, only return codes for POST
	  were used. It now also returns the right codes for IHAVE. * Check
	  whether a message-ID is already in the history, so as to reject
	  it as a duplicate before the client can send it. * Typos.

2008-08-31  iulius

	* trunk/nnrpd/article.c, trunk/nnrpd/group.c: Create a separate
	  function CMDisrange() to check whether a given string is a valid
	  range. Change the order of the checks on arguments in order to
	  answer 501 and not 4xx when the syntax is wrong.

	* trunk/nnrpd/article.c: Remove the final dot for NEXT/LAST
	  answers. Answer 501 (and not 420) when the syntax of the article
	  number is wrong.

	* trunk/nnrpd/article.c, trunk/nnrpd/group.c: If listgroup fails,
	  it must not have changed the selected newsgroup.

	* trunk/nnrpd/article.c: Strictly parse the provided range.

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c: In RFC 3977:
	  
	  o If it advertises the READER capability, it MUST return a 200 or
	  201 response with the same meaning as for the initial greeting;
	  in this case, the command MUST NOT affect the server state in any
	  way.
	  
	  Therefore, we do not answer 502 to such a command. Sorry for my
	  revision 7975 which did that for nnrpd after a successful
	  authentication. Note that the same behaviour for innd is the
	  right thing to do after authentication because innd advertises
	  neither MODE-READER nor READER after that (so my revision 7974 is
	  right for innd).

	* trunk/nnrpd/commands.c, trunk/nnrpd/line.c, trunk/nnrpd/nnrpd.c,
	  trunk/nnrpd/nnrpd.h, trunk/nnrpd/sasl.c: Fix the count of the
	  length of the buffer. Commands whose length was 513 octets were
	  accepted. We now check how many characters are stripped
	  (especially CR which was not in the count).

	* trunk/Makefile.global.in: Tell people they should not do silly
	  things with ${INN_VERSION_STRING}.

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h,
	  trunk/nnrpd/perl.c, trunk/nnrpd/perm.c: Return the "right"
	  200/201 code for the greeting. Well, we do our best to find out
	  whether posting will be allowed. PERMcanpostgreeting is a new
	  global variable (different from PERMcanpost, which is for the
	  current state).
	  
	  200 if (the user can post right now) or (the user can
	  authenticate and there is an access group which provides posting
	  facilities).
	  
	  There is an access group which provides posting facilities when
	  (in an auth group, there is an access or dynamic Perl/Python
	  script) or (a newsgroups:/post: key is in an access group). This
	  check is too wide but at least we will return 201 only if the
	  user will never be able to post.

	* trunk/nnrpd/perm.c: Use the new PERMcanauthenticate global
	  boolean variable instead of a local canauthenticate integer.

2008-08-29  iulius

	* trunk/nnrpd/commands.c: Fix a warning at compilation time because
	  of an unused argument.

2008-08-28  iulius

	* trunk/lib/messageid.c, trunk/storage/overdata.c: Fix a bug for
	  correct printable characters.

	* trunk/MANIFEST, trunk/include/inn/libinn.h, trunk/lib/Makefile,
	  trunk/lib/genid.c, trunk/lib/messageid.c, trunk/nnrpd/article.c:
	  Add a new function IsValidMessageID(char *string) which returns
	  whether a string is a valid message-ID according to RFC 3977.

	* trunk/nnrpd/nnrpd.c: It is even better if we break at the right
	  place in the loop. Note that it could generate a problem only if
	  initial substrings of NNTP commands were real NNTP commands
	  (which is not the case).

	* trunk/nnrpd/nnrpd.c: Fix a subtle parsing issue: when the line is
	  too long, 501 was returned instead of 500 if the base command was
	  not followed by a space.

2008-08-27  iulius

	* trunk/nnrpd/nnrpd.c: Oops... NEWGROUPS of course!

	* trunk/nnrpd/commands.c, trunk/nnrpd/group.c, trunk/nnrpd/list.c,
	  trunk/nnrpd/newnews.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/post.c,
	  trunk/nnrpd/sasl.c: Use upper case letters for NNTP commands. It
	  is clearer. Also put "wildmat" instead of "newsgroups" for
	  NEWNEWS and do not use initial capital letters for arguments in
	  the HELP result.

	* trunk/include/inn/nntp.h, trunk/nnrpd/line.c,
	  trunk/nnrpd/nnrpd.c, trunk/nnrpd/post.c, trunk/nnrpd/sasl.c: The
	  length of arguments is now checked: they do not exceed 497
	  octets. Fix the return code when the line is too long: 500 must
	  be returned when there is no valid command (and not 501).

2008-08-26  iulius

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.h: Remove PERMpass
	  which is never used (dead code).

	* trunk/innd/nc.c, trunk/nnrpd/commands.c: If authentication fails,
	  do not close the connection but allow the user to authenticate
	  again.

	* trunk/nnrpd/commands.c: MODE READER cannot be used after a
	  successful authentication.

	* trunk/innd/nc.c: MODE READER cannot be used after a successful
	  authentication.

	* trunk/doc/pod/readers.conf.pod, trunk/nnrpd/commands.c: Remove
	  AUTHINFO SIMPLE because it has never been implemented the right
	  way. Other capabilities to authenticate are better, specified in
	  RFCs and implemented.

2008-08-25  iulius

	* trunk/innd/innd.h, trunk/innd/nc.c, trunk/innd/rc.c,
	  trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h,
	  trunk/nnrpd/perm.c, trunk/nnrpd/sasl.c: If a user is already
	  authenticated, return 502 if AUTHINFO is sent again, according to
	  RFC 4643.
	  
	  Also fix a bad answer in innd: AUTHINFO subcommands could return
	  480...

2008-08-24  iulius

	* trunk/nnrpd/group.c: Improve LISTGROUP so as to search only
	  within the range and not go through all the articles.
	  
	  Also fix two bugs: * the current group was not set if the group
	  was empty (this bug has always been around); * the new version of
	  LISTGROUP with its third argument (the range) did not work if no
	  group was set.

	* trunk/nnrpd/group.c, trunk/tests/storage/sm.t: Fix a cast to an
	  unsigned int. Fix the test suite because sm now returns real
	  headers (without the empty line at the end): it is the sed "Q"
	  option which should be used, and not "q".

	* trunk/nnrpd/article.c: Missing word in the answer for NEXT and
	  LAST.

	* trunk/nnrpd/group.c: Fix a bug in the result of GROUP for NFS
	  readers: the count could exceed the difference between the high
	  and the low water marks!

	* trunk/include/inn/nntp.h: Update comments for the list of NNTP
	  codes.

	* trunk/nnrpd/article.c, trunk/nnrpd/group.c, trunk/nnrpd/list.c,
	  trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h: Add support for the
	  official LISTGROUP command. A range can be specified as its third
	  argument.
	  
	  The range is now properly parsed: "42-12" is kept as "42-12" and
	  not changed to "42-".

	* trunk/nnrpd/article.c: Do not do useless time computations.

	* trunk/nnrpd/group.c: The lowmark must not be set to 1 if the
	  newsgroup is empty but previously contained articles.

	* trunk/doc/pod/inn.conf.pod, trunk/nnrpd/group.c: Clarify the use
	  of nfsreaderdelay.

	* trunk/nnrpd/group.c: Use 403 instead of 503 if the group
	  disappeared. Also use the preferred way to indicate an empty
	  group: lowmark = highmark + 1.

	* trunk/nnrpd/nnrpd.c: No argument allowed to HELP.

	* trunk/storage/cnfs/cnfs.c, trunk/storage/timecaf/timecaf.c,
	  trunk/storage/timehash/timehash.c,
	  trunk/storage/tradspool/tradspool.c: Article headers do not
	  contain their final \r\n. The result of (at least) HEAD was not
	  RFC-compliant.

	* trunk/include/inn/nntp.h, trunk/innd/nc.c: Return 403 in response
	  to MODE READER when the server is paused or throttled. Do not
	  close the connection. (400 was previously sent.)

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c: Revert changes of
	  revision 7956. MODE is a base command in RFC 3977 so 501 is the
	  right code to return after MODE, MODE FOO and MODE FOO BAR.

2008-08-23  iulius

	* trunk/innd/nc.c: In transit mode, return "401 MODE-READER" if a
	  command only available in reader mode is received. If readers are
	  not allowed, return "502 Permission denied".

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c: Commands like
	  "MODE", "MODE FOO" and "MODE FOO BAR" must return a 500 error
	  code and not a 501 one. It is now fixed.

	* trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h: Add the QUIT command to
	  the list of available commands :-)
	  
	  Also fix a bug causing "QUIT other_argument" to be recognized as
	  QUIT whereas nnrpd must then send a 501 error code.

	* trunk/nnrpd/group.c, trunk/nnrpd/nnrpd.c: * LISTGROUP now returns
	  the right code 412 and not 481. * Specify in HELP that: -
	  "newsgroup" in LISTGROUP is an optional value; - active,
	  active.times and newsgroups in LIST have an optional third value.
	  * NEWGROUPS do not expect a fifth element.

	* trunk/include/inn/nntp.h, trunk/innd/nc.c, trunk/nnrpd/list.c,
	  trunk/nnrpd/nnrpd.c: * Do not display SLAVE in the result of
	  nnrpd's HELP command. * innd now recognizes DATE, LISTGROUP,
	  STARTTLS, XGTITLE, XHDR, XOVER and XPAT as reader commands. *
	  Remove NNTP_OK_EXTENSIONS (202) which is not RFC-compliant. *
	  LIST EXTENSIONS now returns 215 and not 202. * Add
	  NNTP_FAIL_WRONG_MODE (401) but nothing uses it (yet).

2008-08-05  iulius

	* trunk/include/ppport.h, trunk/innd/perl.c: Fix the correct
	  handling of bodies (Perl regexps were sometimes not properly
	  working on SV * bodies). We now use a shared string. For Perl <
	  5.7.1, fall back to a copy of such bodies. At least, that method
	  is reliable, even though it were 17% slower.
	  
	  Add support for PERL_REVISION (default to 5 because if it is not
	  defined, it must be 5 -- Perl 6 defines it).

	* trunk/tests/nnrpd/auth-test: Fix the test suite (collateral issue
	  after the migration to Lenny: not adding "\n" to the end of this
	  line prevents any error to be raised... not even one triggered by
	  "exit 1").

2008-08-03  iulius

	* trunk/innd/perl.c: * Fix a wrong length in hv_store(): "NewMode"
	  counts for 7 and not 4. * Add the lengths in newSVpv() for Perl
	  not to compute them. * Remove comments about work which has
	  already been done.

	* trunk/scripts/innreport_inn.pm: Change '\ ' to '\s' in the two
	  other regexps for timers.

2008-08-02  iulius

	* trunk/doc/pod/install.pod: Clarify the use of the "usenet"
	  account.

	* trunk/CONTRIBUTORS, trunk/MANIFEST, trunk/doc/man,
	  trunk/doc/man/news.daily.8, trunk/doc/pod/Makefile,
	  trunk/doc/pod/install.pod, trunk/doc/pod/news.daily.pod,
	  trunk/scripts/news.daily.in: Add a keyword to news.daily in order
	  to supply another mail address than the one set at configure time
	  for Usenet daily reports.
	  
	  Thanks to James Ralston for having added this nomail option.
	  
	  Also fixed an inconsistency in available keywords (expirectl is
	  in fact expctl), update the documentation and rewrite the
	  news.daily one into POD.

	* trunk/doc/pod/actsync.pod, trunk/doc/pod/ctlinnd.pod,
	  trunk/doc/pod/expireover.pod: Minor typos in POD documentation.

2008-07-20  iulius

	* trunk/lib/perl.c: Fix a compilation warning with Perl 5.10.

	* trunk/lib/perl.c: Use PERL_EXIT_DESTRUCT_END as specified in the
	  perlembed man page. Indeed, it has otherwise been causing
	  problems for applications that never call perl_run since perl
	  5.7.2. This flag enables the running of END blocks if the
	  perl_parse fails; perl_destruct will return the exit value.

	* trunk/CONTRIBUTORS, trunk/innd/art.c: Fix a bug which causes innd
	  not to honour the Ad flag in newsfeeds. Thanks to Andreas
	  Mattheiss for his bug report.

2008-07-12  iulius

	* trunk/samples/innreport.conf.in, trunk/scripts/innreport_inn.pm:
	  Bug-fixes: * Trailing comma after %innfeed_spooled with "Outgoing
	  feeds (innfeed) by Articles"; * Column "Total" of "Outgoing feeds
	  (innfeed) by Volume" tries to add two hashes which evaluates to a
	  constant 0; * Gracefully handle undefined hash elements in "NNRP
	  readership statistics (by domain)"; * Correct handling of
	  undefined values in %innd_time_min, %innd_time_max,
	  %innfeed_time_min, %innfeed_time_max, %nnrpd_time_min and
	  %nnrpd_time_max.
	  
	  Also added two error messages generated by perl-nocem.
	  
	  Thanks again, Alexander Bartolich, for this patch.

2008-07-05  iulius

	* trunk/innd/status.c: Fix a bug in the IP address displayed for
	  localhost in innd's status file. It was not correctly initialized
	  (it is a local connection which does not use any IP address).

	* trunk/nnrpd/python.c: Use the same internal error codes as
	  perl.c.

2008-06-29  iulius

	* trunk/backends/actsync.c, trunk/lib/perl.c: Use xasprintf instead
	  of asprintf.

	* trunk/doc/pod/hook-python.pod: Use initial capital letters in
	  head titles.

	* trunk/doc/pod/news.pod, trunk/lib/perl.c: Fixed a hang in Perl
	  hooks on (at least) HP/PA since Perl 5.10. On such architectures,
	  pthread_mutex_lock() hangs inside perl_parse() if
	  PERL_SYS_INIT3() hasn't been called.
	  
	  Also rewrite "do" and "eval" calls to use perl_eval_pv().

2008-06-27  iulius

	* trunk/scripts/innreport_inn.pm: Because of the imbalance created
	  by collect() the value of nnrpd_connect can get negative. And
	  since negative values are considered true by Perl the delete
	  statement might not be executed in some cases. Thanks to
	  Alexander Bartolich for this patch.

2008-06-25  iulius

	* trunk/samples/innreport.conf.in, trunk/scripts/innreport_inn.pm:
	  * The expressions in innreport.conf don't check whether hash
	  elements exist. Initializing them with 0 in innreport_inn.pm is
	  better.
	  
	  * For two sections in innreport.conf there is a mismatch between
	  sort function and sorted hash.
	  
	  Thanks to Alexander Bartolich for this patch.

2008-06-24  iulius

	* trunk/doc/pod/news.pod, trunk/scripts/innreport_inn.pm: Fix
	  another long-standing bug in innreport which prevented it from
	  correctly reporting innfeed log messages.

	* trunk/scripts/innreport_inn.pm: Suppress a few other nnrpd and
	  controlchan notices in innreport.

2008-06-23  iulius

	* trunk/doc/pod/news.pod: Add changelog for innreport.

	* trunk/doc/pod/news.pod: Update the changelog for INN 2.4.5.

	* trunk/scripts/innreport_inn.pm: Suppress a few warnings in
	  innreport (especially from Python hooks and nnrpd).

	* trunk/scripts/innreport_inn.pm: Fix a long-standing bug in
	  innreport which prevented it from correctly reporting nnrpd log
	  messages.

2008-06-22  iulius

	* trunk/site, trunk/site/Makefile, trunk/support/mkmanifest: Add
	  nnrpd_*.py from previous commit. Also fix nnrpd.py which was not
	  installed.

	* trunk/MANIFEST, trunk/samples/nnrpd_access.py,
	  trunk/samples/nnrpd_auth.py, trunk/samples/nnrpd_dynamic.py,
	  trunk/site, trunk/site/Makefile, trunk/support/mkmanifest: Update
	  the Python nnrpd filter. New samples for access and dynamic
	  hooks.

	* trunk/samples/filter_innd.py: Update the Python innd filter.

	* trunk/doc/man/inndcomm.3, trunk/doc/man/libstorage.3,
	  trunk/doc/pod/hook-python.pod, trunk/include/inn/storage.h,
	  trunk/innd/art.c, trunk/storage/timecaf/timecaf.c: Typo (canceled
	  -> cancelled).

	* trunk/samples/nnrpd_access_wrapper.py,
	  trunk/samples/nnrpd_auth_wrapper.py,
	  trunk/samples/nnrpd_dynamic_wrapper.py: Update old Python
	  wrappers.

	* trunk/samples/INN.py, trunk/samples/nnrpd.py: Update stub Python
	  scripts. Fix a compilation problem with INN.py (undefined
	  variable) and add missing methods.

	* trunk/doc/pod/hook-python.pod, trunk/doc/pod/nnrpd.pod,
	  trunk/doc/pod/readers.conf.pod: Update POD documentation for
	  Python hooks. It is a complete proof-reading.

	* trunk/innd/python.c, trunk/nnrpd/python.c: No need to check the
	  existence of methods not used by the hooked script.

	* trunk/innd/python.c, trunk/nnrpd/python.c: Fix an issue with
	  Python exception handling.

	* trunk/innd/python.c, trunk/nnrpd/python.c: Add more comments and
	  prettify existing ones. Fix a few typos.

	* trunk/nnrpd/python.c: And also dynamic_file!

	* trunk/nnrpd/python.c: Fix a segfault when one closes and then
	  reopens Python in the same process. files is still pointing to
	  the old freed memory and INN blithely tries to write to it.
	  Thanks to Russ Allbery for the patch.

2008-06-21  iulius

	* trunk/innd/python.c: Better be more careful when decrementing the
	  reference count for these objects.

	* trunk/tests/storage/makehistory.t: On some systems, the overview
	  data is not generated in order. Fix the test suite for that.

	* trunk/doc/pod/readers.conf.pod: Better explanation of
	  virtualhost: in readers.conf.

2008-06-12  iulius

	* trunk/scripts/innreport_inn.pm: Fix Perl warnings in the
	  innreport Perl module. Thanks, Alexander Bartolich, for the
	  patch.

2008-06-11  iulius

	* trunk/support/config.guess, trunk/support/config.sub: Update
	  support files for autoconf to their last stable version.

2008-06-10  iulius

	* trunk/perl/Makefile: Use the same section name as the extension
	  of the Perl module man page.

	* trunk/MANIFEST, trunk/Makefile, trunk/Makefile.global.in,
	  trunk/doc/man, trunk/doc/man/Makefile, trunk/perl/Makefile:
	  Generate INN::Config man page.

2008-06-09  iulius

	* trunk/doc/man/Makefile: Use relative symbolic links when
	  possible.

	* trunk/innd/python.c: Fix a bug when reloading Python filters.
	  They might not be correctly reloaded. They must be reimported
	  before being reloaded.

	* trunk/nnrpd/python.c: I should not have committed this debugging
	  information. Sorry!

	* trunk/CONTRIBUTORS, trunk/nnrpd/python.c: Fix a segfault when
	  generating access groups with embedded Python filters for nnrpd.
	  Thanks to David Hlacik for the bug report.

	* trunk/CONTRIBUTORS, trunk/samples/innreport.conf.in,
	  trunk/scripts/innreport.in: Add support for XSL and the choice of
	  the extension for generated pages. Patch by Alexander Bartolich

	* trunk/scripts/innreport_inn.pm: Exclude some Python notices from
	  reports.

	* trunk/scripts/innreport_inn.pm: Declare some variables for Perl
	  warnings. Thanks, Alexander Bartolich.

	* trunk/scripts/innreport.in: Update the beginning of this file.

2008-06-08  iulius

	* trunk/samples/innreport.conf.in, trunk/scripts/innreport.in:
	  innreport now generates XHTML 1.1 using a CSS. - checked standard
	  conformance with http://validator.w3.org/ and
	  http://jigsaw.w3.org/css-validator/ - checked visual appearance
	  with Firefox 2.0.0.14
	  
	  Added four optional parameters to innreport.conf: -
	  html_xhtml11_icon (default: http://www.w3.org/Icons/valid-xhtml11
	  - html_vcss_icon (default:
	  http://jigsaw.w3.org/css-validator/images/vcss) - html_encoding
	  (default: ISO-8859-1) - html_css_url
	  
	  If html_css_url is not specified then a style sheet is embedded
	  into HTML. This default CSS keeps the old arrangement of elements
	  but gives tables a cleaner appearance because of
	  "border-collapse:collapse". Header cells, line numbers and
	  odd/even lines are formatted with different background.
	  
	  Thanks a lot to Alexander Bartolich for this patch.

	* trunk/frontends/pullnews.in: Two minor issues resolved with this
	  patch by Geraint Edwards: * an off-by-one error on the limit to
	  the amount of articles to get; * when an article is not
	  available, we may have redundantly retried that article.

2008-06-07  iulius

	* trunk/doc/pod/cycbuff.conf.pod, trunk/doc/pod/hook-perl.pod,
	  trunk/doc/pod/hook-python.pod, trunk/innd/python.c,
	  trunk/samples/filter_innd.pl: Fix the use of "ctlinnd reload
	  something 'reason'" in documentation.

2008-06-05  iulius

	* trunk/doc/pod/hook-perl.pod, trunk/doc/pod/hook-python.pod,
	  trunk/innd/innd.c, trunk/innd/innd.h,
	  trunk/samples/filter_innd.py, trunk/tests/innd/fakeinnd.c: Add
	  access to several new headers within Perl and Python hooks for
	  innd. Thanks to Matija Nalis for the patch.
	  
	  Also update the POD documentation and the Python sample.

2008-05-28  iulius

	* trunk/frontends/pullnews.in: Fix '-r -' check. Fix POSIX floor
	  include. Three typo/doc changes.
	  
	  Thanks again, Geraint A. Edwards.

2008-05-27  iulius

	* trunk/doc/man/Makefile: Use relative links again for symbolic
	  links.

	* trunk/CONTRIBUTORS, trunk/MANIFEST, trunk/TODO, trunk/contrib,
	  trunk/contrib/Makefile, trunk/contrib/README,
	  trunk/contrib/backupfeed.in, trunk/doc/pod/pullnews.pod,
	  trunk/frontends/pullnews.in, trunk/support/mkmanifest: A new
	  improved version of pullnews. Great thanks to Geraint A. Edwards
	  for all his work. He added no more than 16 flags, fixed some bugs
	  and integrated the backupfeed contrib script by Kai Henningsen,
	  adding again 6 other flags.
	  
	  A long-standing but very minor bug in the -g option was
	  especially fixed and items from the to-do list implemented.
	  
	  From TODO:
	  
	  + reset highwater mark to match server (-w) + reset highwater
	  mark to zero (also -w) + add group to config (-G) + drop articles
	  with headers matching (or not matching) regexp (-m)
	  
	  From backupfeed:
	  
	  + pull only a proportion (factor) of articles (-f) + sleeps
	  between articles/groups (-z/-Z) + Path: fake hop insert (-F) +
	  NNTP connection timeout (-N) + overall session timeout (-S)
	  
	  Other new flags/features:
	  
	  -l logfile log to logfile (rather than /dev/null when rnews'ing!)
	  -s host:port add local port option (can use -p already) -t
	  retries attempt connect to upstream retries times -T retry_pause
	  wait between retries -k checkpt checkpoint the config file every
	  checkpt arts -C width when writing the progress bar - use width
	  columns -d debug_level self-explanatory -M max_arts only process
	  max_arts articles per run -H headers remove these headers from
	  articles -Q quietness set how quiet we are -R be a reader -n
	  no-op -P paths feed articles depending on number of hops in Path:

2008-05-26  iulius

	* trunk/frontends/Makefile: clobber and distclean should not remove
	  man pages.

	* trunk/doc/pod/actsync.pod, trunk/doc/pod/archive.pod,
	  trunk/doc/pod/buffchan.pod, trunk/doc/pod/buffindexed.conf.pod,
	  trunk/doc/pod/checklist.pod, trunk/doc/pod/ctlinnd.pod,
	  trunk/doc/pod/distrib.pats.pod, trunk/doc/pod/distributions.pod,
	  trunk/doc/pod/expire.ctl.pod, trunk/doc/pod/external-auth.pod,
	  trunk/doc/pod/fastrm.pod, trunk/doc/pod/getlist.pod,
	  trunk/doc/pod/hacking.pod, trunk/doc/pod/hook-perl.pod,
	  trunk/doc/pod/hook-python.pod, trunk/doc/pod/inews.pod,
	  trunk/doc/pod/inn.conf.pod, trunk/doc/pod/inndf.pod,
	  trunk/doc/pod/innmail.pod, trunk/doc/pod/install.pod,
	  trunk/doc/pod/libinnhist.pod, trunk/doc/pod/list.pod,
	  trunk/doc/pod/moderators.pod, trunk/doc/pod/motd.news.pod,
	  trunk/doc/pod/news.pod, trunk/doc/pod/ninpaths.pod,
	  trunk/doc/pod/nnrpd.pod, trunk/doc/pod/ovdb.pod,
	  trunk/doc/pod/ovdb_init.pod, trunk/doc/pod/ovdb_monitor.pod,
	  trunk/doc/pod/ovdb_server.pod, trunk/doc/pod/ovdb_stat.pod,
	  trunk/doc/pod/overchan.pod, trunk/doc/pod/passwd.nntp.pod,
	  trunk/doc/pod/pullnews.pod, trunk/doc/pod/qio.pod,
	  trunk/doc/pod/rc.news.pod, trunk/doc/pod/readers.conf.pod,
	  trunk/doc/pod/readme.pod, trunk/doc/pod/rnews.pod,
	  trunk/doc/pod/sendinpaths.pod, trunk/doc/pod/subscriptions.pod,
	  trunk/doc/pod/tdx-util.pod, trunk/doc/pod/tst.pod: Add Id's and
	  =cut. Also fix some extra spaces.

2008-05-25  iulius

	* trunk/control/modules/newgroup.pl: Fix a Perl warning.

	* trunk/backends/actsync.c: Hmm, it was only a problem of quietness
	  (it prints the problem but ignores the newsgroup).

	* trunk/backends/actsync.c: Fix a bug in actsync: the behaviour of
	  the -t flag was the opposite of what it should have been.

2008-05-24  iulius

	* trunk/doc/man/Makefile: Fix dangling symlinks, at last!

	* trunk/doc/man/Makefile: Use a relative symlink instead of an
	  absolute one.

2008-05-23  iulius

	* trunk/doc/pod/install.pod: Specify that it is possible for files
	  not to be backuped on update. Moreover, man pages are no longer
	  backuped.

	* trunk/Makefile.global.in: Add a variable for .OLD suffix.

	* trunk/Makefile, trunk/doc/man/Makefile, trunk/site/Makefile: Fix
	  DESTDIR support thanks to Ivan Shmakov.

2008-05-22  iulius

	* trunk/nnrpd/Makefile, trunk/nnrpd/tls.c: When an article of a
	  size greater than remaining stack is retrieved via SSL, a
	  segmentation fault will occur due to the use of alloca(). The
	  below patch uses heap based realloc() instead of stack based
	  alloca(), with a static buffer growing as needed. It uses
	  realloc() instead of malloc() for performance reasons since this
	  function is called frequently. The caveat is that the memory is
	  never free()'ed, so if more correct code is desired, it should be
	  adjusted.
	  
	  Thanks to Chris for this patch.

2008-05-20  iulius

	* trunk/nnrpd/line.c: Mark a variable UNUSED to silence gcc
	  warnings.

2008-05-19  iulius

	* trunk/doc/pod/inn.conf.pod: Missing change for revision 7823.

	* trunk/CONTRIBUTORS, trunk/nnrpd/line.c: Implementation of the
	  "alarm signal" around SSL_read so that to prevent dead
	  connections from leading nnrpd processes to wait forever in
	  SSL_read(). "clienttimeout" now also works on SSL connections.
	  
	  Thanks to Matija Nalis for the patch.

	* trunk/nnrpd/tls.c: Implementation on systems that support it of
	  SO_KEEPALIVE in SSL TCP connections, allowing system detection
	  and closing the dead TCP SSL connections automatically after
	  system-specified time (usually at least 2 hours as recommended by
	  RFC (on Linux, see /proc/sys/net/ipv4/tcp_keepalive_*).
	  
	  Thanks to Matija Nalis for the patch.

2008-05-14  iulius

	* trunk/innfeed/connection.c: Typo.

2008-05-07  iulius

	* trunk/samples/incoming.conf, trunk/samples/readers.conf: Add IPv6
	  localhost address ::1 to incoming.conf and readers.conf.

	* trunk/doc/pod/pullnews.pod, trunk/tests/overview/xref-t.c: $Id$
	  was not recognized.

	* trunk/doc/pod/inn.conf.pod, trunk/include/inn/innconf.h,
	  trunk/innd/nc.c, trunk/lib/innconf.c, trunk/samples/inn.conf.in,
	  trunk/scripts/innupgrade.in, trunk/tests/overview/xref-t.c:
	  Change three inn.conf settings:
	  
	  articlemmap: false -> true hiscachesize: 0 -> 256 nntpactsync
	  renamed to incominglogfrequency
	  
	  innupgrade handles this renaming.

	* trunk/doc/pod/news.pod, trunk/doc/pod/ovdb.pod,
	  trunk/doc/pod/ovdb_init.pod: Generic boolean values are not
	  inside C<> in POD documentation.

2008-05-06  iulius

	* trunk/configure.ac: Check for sys/select.h at configure time.

	* trunk/doc/pod/inn.conf.pod, trunk/lib/innconf.c,
	  trunk/samples/inn.conf.in, trunk/samples/innwatch.ctl,
	  trunk/scripts/innwatch.in: Change three inn.conf settings:
	  
	  clienttimeout: 600 -> 1800 innwatchbatchspace: 800 -> 4000
	  innwatchspoolspace: 8000 -> 25000

2008-05-05  iulius

	* trunk/doc/pod/install.pod, trunk/doc/pod/ovdb.pod,
	  trunk/samples/ovdb.conf: Remove old occurrences of Berkeley DB <
	  4.4 in documentation.

	* trunk/TODO, trunk/configure.ac, trunk/frontends/ovdb_server.c,
	  trunk/m4/zlib.m4: It is "Berkeley DB" and not "BerkeleyDB".

	* trunk/frontends/ovdb_init.c, trunk/frontends/ovdb_monitor.c,
	  trunk/frontends/ovdb_stat.c, trunk/storage/ovdb/ovdb-private.h,
	  trunk/storage/ovdb/ovdb.c: Remove support for Berkeley DB < 4.4.
	  The code will now we cleaner!

	* trunk/m4/berkeleydb.m4: Check for Berkeley DB in regular system
	  locations.

	* trunk/control/signcontrol.in, trunk/frontends/cnfsheadconf.in:
	  Fix a Perl warning in signcontrol. Remove warnings for
	  cnfsheadconf because there is one in a Perl module:
	  
	  Use of uninitialized value in addition (+) at
	  /usr/share/perl/5.8/bigint.pl line 220, <STOR> line 48.

	* trunk/doc/pod/news.pod: Update the ChangeLog for Perl 5.10
	  support.

	* trunk/CONTRIBUTORS, trunk/innd/perl.c, trunk/lib/perl.c,
	  trunk/nnrpd/perl.c: Perl 5.10 support for INN. Thanks, Jakub
	  Bogusz, for the patch.

2008-04-30  iulius

	* trunk/doc/pod/news.pod: Update the ChangeLog for Berkeley DB 4.5
	  (which works).

2008-04-28  iulius

	* trunk/frontends/pullnews.in: Remove the redefinition of
	  Net::NNTP::new() so as to use the function provided by Net::NNTP
	  >= 2.18 since 1998. Also fix some warnings.

	* trunk/doc/pod/getlist.pod, trunk/frontends/getlist.c: Add a -R
	  flag to getlist in order to issue MODE READER.

	* trunk/MANIFEST, trunk/TODO, trunk/doc/man,
	  trunk/doc/man/Makefile, trunk/doc/pod/Makefile,
	  trunk/doc/pod/distributions.pod, trunk/samples/distributions,
	  trunk/site, trunk/site/Makefile, trunk/support/mkmanifest: Add
	  POD documentation for distributions(5) and a corresponding sample
	  file.

	* trunk/doc/pod/distrib.pats.pod, trunk/doc/pod/nnrpd.pod: Typos
	  and mention the distributions file.

	* trunk/doc/pod/getlist.pod: Mention that LIST ACTIVE is the
	  default value.

	* trunk/doc/pod/getlist.pod: * Add documentation for the -p flag; *
	  Mention more listing files.

	* trunk/doc/pod/convdate.pod: Specify the default behaviour of
	  convdate.

	* trunk/doc/pod/pullnews.pod, trunk/frontends/pullnews.in: Improve
	  documentation (especially a FILES section) and fix typos.

	* trunk/doc/pod/hacking.pod, trunk/doc/pod/hook-perl.pod,
	  trunk/doc/pod/install.pod, trunk/doc/pod/newslog.pod,
	  trunk/doc/pod/simpleftp.pod: Better PODification of the names of
	  Perl modules.

2008-04-26  iulius

	* trunk/innfeed/host.c: Fix a bug in hostDeleteIpv4Addr(): after
	  innfeed has called that function, host->nextIpAddr can point
	  outside the host->ipAddrs[] array.

	* trunk/doc/man/innfeed.1, trunk/doc/pod/news.pod,
	  trunk/doc/pod/pullnews.pod: * Update the changelog for INN 2.4.4;
	  * Add documentation for -x to pullnews; * Fix a typo in the
	  documentation of innfeed.

	* trunk/frontends/mailpost.in, trunk/frontends/pullnews.in: Add
	  some more parenthesis. Both mailpost and pullnews were affected
	  by this bug.

	* trunk/MANIFEST, trunk/frontends/mailpost.in: Add inews(1) in the
	  "see also" section. Update the manifest.

2008-04-25  iulius

	* trunk/doc/pod/Makefile, trunk/doc/pod/mailpost.pod,
	  trunk/frontends/Makefile, trunk/frontends/mailpost.in: Generate
	  the documentation of mailpost directly from its source.

	* trunk/CONTRIBUTORS, trunk/frontends/mailpost.in: Fix a bug when
	  mailpost either couldn't find the pathtmp directory or couldn't
	  write to it. Thanks, Nick Couchman, for having reported the bug.

	* trunk/doc/man/news2mail.8, trunk/doc/pod/install.pod,
	  trunk/doc/pod/rc.news.pod, trunk/innd/art.c, trunk/lib/innconf.c,
	  trunk/nnrpd/commands.c, trunk/scripts/inncheck.in,
	  trunk/scripts/innreport_inn.pm: Write "e-mail" instead of
	  "email". Also fix indentations.

	* trunk/doc/pod/mailpost.pod, trunk/frontends/mailpost.in: * Add
	  documentation for -h, -n and -o; * Add a list of known headers; *
	  Clarify the use of -b; * Fix <pathdb>/mailpost-msgid.db which is
	  <pathtmp>/mailpost-msgid.dir and <pathtmp>/mailpost-msgid.pag; *
	  Fix the usage of [newsgroups] which is not optional; * It is
	  $Database and not $lockfile in dbmopen/close; * Better formatting
	  of error mails; * Typos.

	* trunk/doc/man/innfeed.conf.5, trunk/innfeed/connection.c,
	  trunk/innfeed/host.c, trunk/innfeed/host.h, trunk/innfeed/main.c,
	  trunk/lib/network.c: bindaddress/bindaddress6 keys can now be set
	  on a per-peer basis in innfeed.conf.
	  
	  Setting "bindaddress6: none" is equivalent to "force-ipv4: true".
	  
	  Both bindaddress and bindaddress6 work simultaneously, using
	  bindaddress for IPv4 peer addresses and bindaddress6 for IPv6
	  peer addresses. If a peer has IPv6 addresses, and at least one of
	  them works, it never falls back to IPv4. If none of the IPv6
	  addresses works, it falls back to IPv4.
	  
	  Since the server cannot connect to an IPv4 address if it binds to
	  an IPv6 address and the other way around, hostIpAddr() has been
	  changed to take an extra "family" argument, so that IPv4
	  addresses are skipped for IPv6 sockets and vice versa.
	  
	  Thanks to Miquel van Smoorenburg for this patch.

2008-04-23  iulius

	* trunk/tests/util/inndf.t: Fix the test of inndf for IRIX.

	* trunk/storage/ovdb/ovdb.c: Remove an unnecessary variable (sequel
	  to the patch for the runasuser user).

2008-04-18  iulius

	* trunk/LICENSE: Clarify RSA's license for lib/md5.c.

	* trunk/m4/mmap.m4: INN 2.5 did not build on some systems because
	  of HAVE_MSYNC_3_ARG not being set at configure time. malloc was
	  not found and a script failed.

	* trunk/configure.ac: Fix warnings at configure time when libtool
	  is not used. (libtool 2.2.2 added some tests.)

2008-04-17  iulius

	* trunk/doc/pod/news.pod: Update the ChangeLog for INN 2.4.4 (new
	  features for bindaddress and bindaddress6, instead of
	  force-ipv4).

2008-04-16  iulius

	* trunk/frontends/getlist.c: Print usage information instead of
	  exiting(1).

	* trunk/storage/ov.c: Fix a bug in OVcancel (undefined variable).

	* trunk/lib/dbz.c: This variable is used only if the system has
	  mmap.

2008-04-15  iulius

	* trunk/CONTRIBUTORS, trunk/doc/history-innfeed,
	  trunk/doc/pod/hook-perl.pod: It is "ISC" and not "the ISC".

2008-04-13  iulius

	* trunk/backends/Makefile, trunk/control/Makefile: Fix the name of
	  the man pages generated from ".in" files.

	* trunk/CONTRIBUTORS, trunk/doc/pod/news.pod: Changelog for INN
	  2.4.4.

	* trunk/CONTRIBUTORS, trunk/frontends/inews.c: inews now tries to
	  authenticate if it does not receive a 200 return code after MODE
	  READER. Indeed, it might be able to post even with a 201 return
	  code (and also with another codes like 440 or 480 but such codes
	  are not RFC compliant in reply to MODE READER).
	  
	  Thanks to Alan Schwartz for the bug report.

	* trunk/doc/man/innfeed.conf.5: Fix escape characters in the
	  innfeed.conf man page.

2008-04-12  iulius

	* trunk/m4/berkeleydb.m4, trunk/storage/ovdb/ovdb.c: INN now
	  supports Berkeley DB 4.6. Thanks to Marco d'Itri for the patch.

	* trunk/MANIFEST, trunk/Makefile.global.in, trunk/configure.ac,
	  trunk/m4/libtool.m4, trunk/m4/ltoptions.m4, trunk/m4/ltsugar.m4,
	  trunk/m4/ltversion.m4, trunk/m4/lt~obsolete.m4,
	  trunk/support/ltmain.sh: * Update libtool to version 2.2.2 with
	  the necessary support for the -B flag in ltmain.sh. * Add
	  LIBTOOLINST in order to use "mode=install" in the same way as
	  LIBTOOLCC and LIBTOOLLD.

	* trunk/tests/Makefile, trunk/tests/authprogs, trunk/tests/innd,
	  trunk/tests/nnrpd, trunk/tests/util: Fix compilation issues with
	  libtool: the right mode (link) should be specified. Ignore .libs
	  subdirectories in Subversion.

	* trunk/doc/pod/hacking.pod, trunk/support/ltmain.sh: Fix the
	  installation when compiling with libtool. The ltmain.sh script
	  needs a specific modification.

	* trunk/doc/pod/install.pod: Mention the start-stop-daemon utility.
	  Thanks, Marco d'Itri for this better command.

	* trunk/CONTRIBUTORS: Sorry for the typo.

2008-04-11  iulius

	* trunk/TODO, trunk/authprogs/auth_krb5.c, trunk/contrib/README,
	  trunk/control/gpgverify.in, trunk/control/signcontrol.in,
	  trunk/doc/history-innfeed, trunk/doc/pod/fastrm.pod,
	  trunk/doc/pod/hook-perl.pod, trunk/doc/pod/hook-python.pod,
	  trunk/doc/pod/moderators.pod, trunk/samples/moderators,
	  trunk/support/mksnapshot: Add brackets around mail addresses.

	* trunk/CONTRIBUTORS: Update the list of contributors.

2008-04-10  iulius

	* trunk/nnrpd/line.c: It seems that the SSL_read cannot be mixed
	  with select() as in the current code. SSL communicates in its own
	  data blocks and hand shaking. The do_readline using SSL_read
	  could return, but still with a partial line in the SSL_read
	  buffer. Then the server SSL routine would sit there waiting for
	  completion of that data block while nnrpd sat at the select()
	  routine waiting for more data from the server.
	  
	  (Without this patch, clients like Thunderbird, SeaMonkey or slrn
	  sometimes hang when posting using a SSL connection.)
	  
	  Here, we decide to just bypass the select() wait. Unlike innd
	  with multiple threads, the select on nnrpd is just waiting on a
	  single file descriptor, so it is not really essential with
	  blocked read like SSL_read. Using an alarm signal around SSL_read
	  for non active timeout, SSL works without dead locks. However,
	  without the select() wait, the IDLE timer stat won't be
	  collected...
	  
	  Patch from Kachun Lee.

2008-04-09  iulius

	* trunk/innd/art.c: Use size_t instead of casting.

2008-04-06  iulius

	* trunk/doc/pod/news.pod: Update changes for INN 2.5.0.

	* trunk/doc/pod/inn.conf.pod, trunk/doc/pod/innd.pod,
	  trunk/include/inn/innconf.h, trunk/innd/art.c, trunk/innd/cc.c,
	  trunk/innd/innd.c, trunk/innd/innd.h, trunk/innd/site.c,
	  trunk/lib/innconf.c, trunk/samples/inn.conf.in,
	  trunk/scripts/inncheck.in, trunk/tests/lib/innconf-t.c: This
	  patch adds a new inn.conf parameter called "pathcluster" which
	  allows to append a common name to the Path: header on all
	  incoming articles. "pathhost" and "pathalias" (if set) are still
	  appended to the path as usual, but "pathcluster" is always
	  appended as the last element (e.g. on the leftmost side of the
	  Path: header).
	  
	  If the last pathname of the incoming article is the same as
	  "pathcluster", it is stripped from the path.
	  
	  Thanks to Miquel van Smoorenburg for this patch.

	* trunk/LICENSE: Update license information.

	* trunk/backends/innbind.c, trunk/lib/network.c: This patch makes
	  innd listen on separate sockets for IPv4 and IPv6 connections if
	  the IPV6_V6ONLY socket option is available.
	  
	  There might also be operating systems that still have separate
	  IPv4 and IPv6 TCP implementations, and advanced features like TCP
	  SACK might not be available on v6 sockets.
	  
	  Thanks to Miquel van Smoorenburg for this patch.

2008-04-03  iulius

	* trunk/samples/control.ctl: A more up-to-date control.ctl file
	  from the ISC.

	* trunk/m4/libtool.m4, trunk/support/config.guess,
	  trunk/support/config.sub, trunk/support/ltmain.sh: Update support
	  files for autoconf to their last stable version. Also update to
	  libtool 1.5.26.

	* trunk/doc/pod/news.pod: Fix some typos and podify the file. A bug
	  noted in 2.5 was fixed in 2.4.2.

	* trunk/doc/pod/hook-perl.pod, trunk/doc/pod/install.pod: Typos.

2008-03-24  iulius

	* trunk/innd/Makefile, trunk/lib/Makefile: Update dependencies.

	* trunk/doc/pod/newsfeeds.pod, trunk/innd/art.c, trunk/innd/innd.h,
	  trunk/innd/newsfeeds.c, trunk/innd/site.c,
	  trunk/scripts/inncheck.in: Implementation of the Diablo hashfeed
	  algorithm. It allows to distribute the messages among several
	  peers (new Q flag for newsfeeds).
	  
	  Thanks to Miquel van Smoorenburg for this implementation in INN.
	  
	  Also fix inncheck after commit 7713 for the legacy Diablo
	  quickhash (which uses the Q flag too).

2008-03-23  iulius

	* trunk/nnrpd/list.c: In response to a LIST [file] command, if the
	  file does not exist, we assume it is not maintained and return
	  503 instead of 215 and an empty file.

2008-03-22  iulius

	* trunk/nnrpd/list.c, trunk/nnrpd/nnrpd.c: * Typo in the answer for
	  LIST MOTD (two final dots). * Add capability to LIST ACTIVE.TIMES
	  for a wildmat pattern as its third argument (LIST ACTIVE.TIMES
	  *nntp). * The "moderators" keyword was missing in the answer for
	  HELP. * Add more comments in the source code.

2008-03-20  iulius

	* trunk/scripts/innreport_inn.pm: Suppress the report of the reload
	  of bad files for the new Cleanfeed version by Steve Crook.

	* trunk/doc/pod/checklist.pod, trunk/doc/pod/install.pod,
	  trunk/doc/pod/nnrpd.pod, trunk/doc/pod/readers.conf.pod: Clarify
	  the use of NNTPS (563) and NNTP (119) with STARTTLS.

	* trunk/doc/pod/newsfeeds.pod, trunk/innd/art.c, trunk/innd/innd.h,
	  trunk/innd/newsfeeds.c, trunk/innd/site.c: Implementation of the
	  Diablo Quickhash algorithm. It allows to distribute the messages
	  among several peers (new Q flag for newsfeeds).
	  
	  Thanks to Miquel van Smoorenburg for this implementation in INN.

2008-02-05  eagle

	* trunk/innfeed/connection.c: Cycle remote addresses if creating a
	  socket failed, since we may have been trying to create an
	  AF_INET6 socket on a system that doesn't support IPv6. Thanks, D.
	  Stussy.

2008-02-03  jeff

	* trunk/frontends/cnfsstat.in: Use "!" instead of "==0" to prevent
	  uninitialized variable warnings.

2008-01-25  iulius

	* trunk/frontends/cnfsstat.in: Fix the warning of the use of an
	  uninitialized value in cnfsstat.

2008-01-19  eagle

	* trunk/innd/innd.c: Fix a variable reference in catch_terminate in
	  the non-sigaction case.

2008-01-15  iulius

	* trunk/expire/makehistory.c: Fix the inndf test (makehistory
	  should not check whether the news user is "news" for the test
	  suite).

	* trunk/MANIFEST, trunk/Makefile, trunk/doc/pod/hacking.pod,
	  trunk/doc/pod/install.pod, trunk/doc/pod/readme.pod,
	  trunk/support/mksnapshot: Subversion is currently used for INN
	  development. Remove references to CVS.

2008-01-14  iulius

	* trunk/backends/innbind.c, trunk/frontends/inews.c,
	  trunk/lib/newsuser.c: Fix compilation errors when warnings are
	  on. (Following commit 7703 for runasnews/runasgroup.)

2008-01-12  iulius

	* trunk/scripts/innreport_inn.pm: Do not report an unknown line
	  when a cancel feed is closed. Innreport does not (currently)
	  count such cancels.

	* trunk/MANIFEST, trunk/Makefile, trunk/Makefile.global.in,
	  trunk/backends/Makefile, trunk/backends/innbind.c,
	  trunk/doc/pod/inn.conf.pod, trunk/expire/Makefile,
	  trunk/expire/expire.c, trunk/expire/expireover.c,
	  trunk/expire/makedbz.c, trunk/expire/makehistory.c,
	  trunk/frontends/Makefile, trunk/frontends/inews.c,
	  trunk/frontends/ovdb_init.c, trunk/frontends/ovdb_monitor.c,
	  trunk/frontends/ovdb_stat.c, trunk/frontends/rnews.c,
	  trunk/include/inn/innconf.h, trunk/include/inn/newsuser.h,
	  trunk/innd/Makefile, trunk/innd/innd.c, trunk/lib/Makefile,
	  trunk/lib/innconf.c, trunk/lib/newsuser.c, trunk/m4/modes.m4,
	  trunk/m4/users.m4, trunk/nnrpd/Makefile, trunk/nnrpd/nnrpd.c,
	  trunk/nnrpd/tls.c, trunk/perl/INN/Config.pm.in,
	  trunk/samples/inn.conf.in, trunk/scripts/inncheck.in,
	  trunk/scripts/innshellvars.in, trunk/scripts/innshellvars.pl.in,
	  trunk/scripts/innshellvars.tcl.in, trunk/site/Makefile,
	  trunk/storage/Makefile, trunk/storage/ovdb/ovdb.c,
	  trunk/storage/tradindexed/tdx-util.c: Support for "runasuser" and
	  "runasgroup" options within inn.conf in order to set the news
	  user and the news group under which the news server runs.
	  
	  Remove all the occurrences of previous NEWSUSER and NEWSGRP in
	  the source code. Instead of them, a new library "newsuser.h" is
	  called whenever we have to ensure that the program is running as
	  the right news user/group (ensure_news_* functions).
	  
	  Many thanks to Ivan Shmakov for this patch.

2007-12-26  jeff

	* trunk/doc/man/innfeed.conf.5, trunk/doc/pod/inn.conf.pod: Clarify
	  the new behavior where innfeed.conf's binaddress/bindaddress6
	  inherit from inn.conf's sourceaddress/sourceaddress6 if unset.

2007-12-13  eagle

	* trunk/doc/pod/install.pod: Add a trailing slash to the snapshots
	  URL to avoid HTML checker warnings.

2007-12-12  iulius

	* trunk/frontends/ovdb_init.c: Patch daemonize-ovdb_init to make
	  ovdb_init properly close stdin/out/err when it becomes a daemon.
	  The issue was reported by Viktor Pilpenok and fixed by Marco
	  d'Itri. Thanks to both of them.

2007-11-04  iulius

	* trunk/control/perl-nocem.in: * Typos. * Fix the count of the time
	  spent in do_nocem(): the $start and $diff variables were
	  consecutive. * Use "%d" instead of "$nr" in sprintf. *
	  Documentation fixes: * perl-nocem does not expect a message but a
	  token. * Add "--no-default-keyring" because gpg otherwise uses
	  the one in ~/.gnupg (strange). * It is news.lists.filters and not
	  news.lists.filter.

2007-10-05  iulius

	* trunk/innd/Makefile, trunk/samples/inn.conf.in: Update
	  dependencies for compilation. Detabify inn.conf.

2007-10-05  jeff

	* trunk/samples/inn.conf.in: Add example use of "nnrpdflags" (set
	  to empty string)

	* trunk/doc/pod/inn.conf.pod, trunk/doc/pod/nnrpd.pod,
	  trunk/include/inn/innconf.h, trunk/innd/rc.c,
	  trunk/lib/innconf.c: Add a "nnrpdflags" parameter to inn.conf
	  (modeled on the concept of "innflags") to permit passing of
	  commandline arguments to instances of nnrpd spawned from innd.

2007-10-04  iulius

	* trunk/innfeed/procbatch.in: Initialize the value of $missing
	  (perl -w...). Fix some typos at the same time.

2007-10-01  iulius

	* trunk/backends/send-uucp.in: Fix a bug in the display of the used
	  compressor (cunbatch was put if arguments were passed to gzip or
	  bzip2).

2007-09-22  iulius

	* trunk/tests/util/inndf.t: df has special output on FreeBSD:
	  
	  # df -i . Filesystem 1K-blocks Used Avail Capacity iused ifree
	  %iused Mounted on /dev/da5s1d 69319818 55460910 8313324 87%
	  131509 8841801 1% /
	  
	  Maybe on other systems too (but, well, let's wait for someone's
	  complaining about the test suite not working on its system).

	* trunk/tests/authprogs/ident-t.c, trunk/tests/lib/network-t.c: Fix
	  some types in the test suite (socklen_t is not necessarily
	  size_t).

	* trunk/tests/lib/xmalloc.t: Wrong lines in xmalloc's test.

	* trunk/lib/inet_ntop.c, trunk/tests/lib/inet_ntop-t.c: AF_INET was
	  undeclared in lib/inet_ntop.c (which broke the build of the test
	  suite).

2007-09-21  iulius

	* trunk/innfeed/endpoint.c: Fix a problem with innfeed continuously
	  segfaulting on amd64 hardware (and possibly on lots of 64 bits
	  platforms); sig_atomic_t is indeed a long and not an integer
	  there.
	  
	  Patch from Ollivier Robert. Many thanks to him and also to Kai
	  Gallasch for having reported the problem and provided the FreeBSD
	  server to debug it.

2007-09-20  iulius

	* trunk/configure.ac, trunk/perl/INN/Config.pm.in,
	  trunk/scripts/Makefile, trunk/scripts/inncheck.in,
	  trunk/scripts/innshellvars.in, trunk/scripts/innshellvars.pl.in,
	  trunk/scripts/innshellvars.tcl.in, trunk/scripts/news.daily.in: *
	  news.daily and inncheck are no longer generated at configure
	  time. * Fix a problem of uninitialized value in inncheck.

	* trunk/backends/news2mail.in, trunk/control/controlbatch.in,
	  trunk/control/controlchan.in, trunk/frontends/scanspool.in:
	  Change @bindir@ to <pathbin> (or equivalent) in comments. It will
	  be more homogeneous with the rest of INN.

	* trunk/backends/send-uucp.in, trunk/configure.ac,
	  trunk/perl/INN/Config.pm.in, trunk/scripts/innshellvars.in,
	  trunk/scripts/innshellvars.pl.in,
	  trunk/scripts/innshellvars.tcl.in: Fix the use of uustat in
	  send-uucp(8). The program is now searched at configure time and a
	  $uustat variable is provided by innshellvars and INN::Config.

	* trunk/doc/pod/simpleftp.pod, trunk/scripts/Makefile,
	  trunk/scripts/simpleftp.in: Rewrite simpleftp to use Net::FTP.
	  Indeed, ftp.pl is no longer shipped with Perl 5 and the script
	  does not work.
	  
	  * Add support for usernames, passwords and ports. * Fix typos in
	  the documentation. * Remove the use of fixscript on simpleftp. *
	  Perl warnings are now on.

2007-09-19  iulius

	* trunk/innd/Makefile, trunk/lib/Makefile, trunk/nnrpd/Makefile,
	  trunk/support/makedepend: Better print of dependencies (there
	  were sometimes too many spaces).

2007-09-18  iulius

	* trunk/MANIFEST, trunk/Makefile, trunk/Makefile.global.in,
	  trunk/backends/mod-active.in, trunk/backends/news2mail.in,
	  trunk/backends/send-uucp.in, trunk/configure.ac,
	  trunk/contrib/backlogstat.in, trunk/contrib/cleannewsgroups.in,
	  trunk/contrib/findreadgroups.in, trunk/contrib/makeexpctl.in,
	  trunk/contrib/makestorconf.in, trunk/contrib/thdexpire.in,
	  trunk/control/controlchan.in, trunk/control/gpgverify.in,
	  trunk/control/modules/checkgroups.pl,
	  trunk/control/modules/ihave.pl,
	  trunk/control/modules/newgroup.pl,
	  trunk/control/modules/rmgroup.pl,
	  trunk/control/modules/sendme.pl,
	  trunk/control/modules/sendsys.pl,
	  trunk/control/modules/senduuname.pl,
	  trunk/control/modules/version.pl, trunk/control/perl-nocem.in,
	  trunk/control/pgpverify.in, trunk/doc/pod/hacking.pod,
	  trunk/frontends/cnfsheadconf.in, trunk/frontends/cnfsstat.in,
	  trunk/frontends/mailpost.in, trunk/frontends/scanspool.in,
	  trunk/innfeed/procbatch.in, trunk/m4/paths.m4, trunk/perl,
	  trunk/perl/INN, trunk/perl/INN/Config.pm.in, trunk/perl/Makefile,
	  trunk/samples/nnrpd_access.pl.in,
	  trunk/samples/nnrpd_access_wrapper.pl.in,
	  trunk/samples/nnrpd_auth.pl.in,
	  trunk/samples/nnrpd_auth_wrapper.pl.in,
	  trunk/scripts/inncheck.in, trunk/scripts/innmail.in,
	  trunk/scripts/innreport.in, trunk/scripts/innshellvars.in,
	  trunk/scripts/innshellvars.pl.in, trunk/scripts/innupgrade.in,
	  trunk/scripts/simpleftp.in, trunk/support/fixconfig.in,
	  trunk/support/fixscript.in, trunk/support/mkmanifest: * Add a new
	  "perl" top-level directory to host, to start with, the module
	  INN::Config. * Convert all Perl scripts to use that module. * Add
	  a new --libperldir configure option to specify the installation
	  directory (by default @libdir@/perl). * Fix some declarations of
	  variables for "perl -w" not to complain. * Remove "lint food"
	  stuff. * Specify that innshellvars.pl is deprecated.
	  
	  Feel free to improve the first version of Config.pm and its
	  documentation. And do not hesitate to blame me in case I have
	  broken something (I hope not!).

	* trunk/backends/send-uucp.in, trunk/frontends/scanspool.in: Remove
	  unused variables, fix paths and another unaccurate newsfeeds
	  entry for control newsgroups.

	* trunk/contrib/makeexpctl.in: The $oldtime variable was not
	  defined.

	* trunk/control/pgpverify.in: Only fix typos. The new version using
	  INN::Config will soon be committed. This commit is only an
	  intermediate one so as to make changes easier to backport on the
	  STABLE pgpverify script, if need be.

2007-09-17  iulius

	* trunk/scripts/innreport_inn.pm: Fix a typo which was preventing
	  innreport from counting the rejected size of articles.

2007-09-17  eagle

	* trunk/tests/lib/innconf-t.c: Adjust for additional parameters in
	  inn.conf.

2007-09-16  iulius

	* trunk/frontends/sys2nf.c: This file should also correctly convert
	  "*" (no need to feed control newsgroups). [Following revision
	  7675.]

	* trunk/doc/man/Makefile: Add symlinks to localgroups(5) and
	  nocem.ctl(5).

	* trunk/doc/pod/innd.pod, trunk/doc/pod/newsfeeds.pod,
	  trunk/innd/art.c, trunk/samples/newsfeeds.in: * Checkgroups are
	  now properly propagated even though the news server does not
	  carry the groups they are posted to. * Improve documentation as
	  for the use of "!control,!control.*" regarding the propagation of
	  control articles. * Expand "control*" to "control,control.*" in
	  documentation and samples for more accuracy. * control.cancel is
	  mandatory for innd to start so cancel messages are not fed to
	  control.

2007-09-15  iulius

	* trunk/doc/pod/active.pod, trunk/doc/pod/active.times.pod,
	  trunk/doc/pod/ckpasswd.pod, trunk/doc/pod/convdate.pod,
	  trunk/doc/pod/readers.conf.pod: Update "SEE ALSO" references and
	  add a word about docheckgroups and mod-active in active(5) and
	  active.times(5).

	* trunk/doc/pod/ctlinnd.pod, trunk/doc/pod/newslog.pod: * Clarify
	  the cancellation of articles before they arrive. * Add a
	  reference to innd logging in newslog(5).

	* trunk/doc/pod/inn.conf.pod, trunk/include/inn/innconf.h,
	  trunk/samples/inn.conf.in: * Sync the order of the parameters in
	  innconf.h and inn.conf.pod. * Remove nnrp*auth from the list of
	  parameters. They are now only mentioned as obsolete in the
	  beginning of the section. * Add a history section in
	  inn.conf.pod. * Add a subsection for SSL and TLS support since it
	  affects both reading and posting.

2007-09-14  iulius

	* trunk/doc/pod/inn.conf.pod, trunk/lib/innconf.c,
	  trunk/samples/inn.conf.in: * Add stathist, tlscafile, tlscapath,
	  tlscertfile and tlskeyfile entries to the inn.conf sample. *
	  Little alphabetical reorganization of the inn.conf sample. *
	  Change the default value of tlskeyfile (key.pem instead of
	  cert.pem since it is what "make cert" generates). * Add an
	  innconf->pathcontrol default value in the innconf structure. *
	  Fix typos. * There is no longer a newsrequeue program. * NNTP
	  draft (15) gave birth to NNTP RFC 3977.

2007-09-05  iulius

	* trunk/MANIFEST, trunk/control/docheckgroups.in, trunk/doc/man,
	  trunk/doc/man/Makefile, trunk/doc/pod/Makefile,
	  trunk/doc/pod/docheckgroups.pod, trunk/samples/localgroups,
	  trunk/site, trunk/site/Makefile, trunk/support/mkmanifest: First
	  step towards a better handling of checkgroups: an improved
	  version of docheckgroups. Hopefully it is backward compatible.
	  
	  * The -u flag permits to update the newsgroups file (with the
	  proper number of tabulations and an alphabetical sort), removing
	  obsolete descriptions and adding new ones.
	  
	  * A second argument on command-line permits to specify which
	  newsgroups should not be checked (it is pretty useful and will be
	  used to handle drops in control.ctl as for checkgroups
	  processing).
	  
	  * Detabify the script, use innshellvars' "${SORT}" instead of
	  "sort" and add more comments inside the script.
	  
	  * The output is displayed better (more spaces and rewording) and
	  mentions the possibility to use the -u flag and mod-active.
	  
	  * Fix a bug for moderated groups (" (Moderated)" should be
	  searched, and not "(Moderated)").
	  
	  * A documentation (I hope enough detailed) for docheckgroups. It
	  was greatly missing.
	  
	  * A sample file for localgroups (with documentation).

2007-09-04  iulius

	* trunk/backends/mod-active.in: Do not pause the news server when
	  there is no changes to do. Add a count (and display it) of the
	  number of changes to do.

	* trunk/backends/mod-active.in: Do not forget to chmod 0664 active
	  after having edited it. Otherwise, inncheck complains.

2007-09-03  iulius

	* trunk/backends/actsyncd.in, trunk/doc/pod/actsync.pod: There is
	  no -x flag for actsyncd. Update the documentation accordingly.

	* trunk/backends/mod-active.in, trunk/doc/pod/hook-perl.pod,
	  trunk/doc/pod/newslog.pod, trunk/frontends/scanspool.in,
	  trunk/scripts/inncheck.in, trunk/scripts/scanlogs.in: * Add three
	  log files to scanlogs (controlbatch.log, perl-nocem.log and
	  send-ihave.log). * Change syslog(2) to syslog(3). * Use files
	  from innshellvars ($inn::activetimes instead of
	  $inn:pathdb/active.times for instance).

	* trunk/control/perl-nocem.in, trunk/doc/pod/actsync.pod,
	  trunk/doc/pod/buffindexed.conf.pod,
	  trunk/doc/pod/cycbuff.conf.pod, trunk/doc/pod/expireover.pod,
	  trunk/doc/pod/fastrm.pod, trunk/doc/pod/hook-perl.pod,
	  trunk/doc/pod/inndf.pod, trunk/doc/pod/makehistory.pod,
	  trunk/doc/pod/news.pod, trunk/doc/pod/newsfeeds.pod,
	  trunk/doc/pod/nnrpd.pod, trunk/doc/pod/ovdb_init.pod,
	  trunk/doc/pod/rc.news.pod, trunk/doc/pod/readers.conf.pod,
	  trunk/doc/pod/tdx-util.pod, trunk/doc/pod/tinyleaf.pod: * Mention
	  that actsyncd uses mod-active if there are commands for ctlinnd.
	  * Add a warning in buffindexed.conf.pod not to mistake
	  group.index in pathdb for group.index in pathoverview! * Detabify
	  perl-nocem. * Fix almost all occurrences of hard-written paths
	  (it is better to refer to inn.conf).

2007-09-02  iulius

	* trunk/backends/send-uucp.in, trunk/control/perl-nocem.in,
	  trunk/doc/pod/active.times.pod, trunk/doc/pod/actsync.pod,
	  trunk/doc/pod/archive.pod, trunk/doc/pod/auth_krb5.pod,
	  trunk/doc/pod/batcher.pod, trunk/doc/pod/buffindexed.conf.pod,
	  trunk/doc/pod/checklist.pod, trunk/doc/pod/convdate.pod,
	  trunk/doc/pod/ctlinnd.pod, trunk/doc/pod/cycbuff.conf.pod,
	  trunk/doc/pod/fastrm.pod, trunk/doc/pod/hacking.pod,
	  trunk/doc/pod/hook-perl.pod, trunk/doc/pod/hook-python.pod,
	  trunk/doc/pod/inn.conf.pod, trunk/doc/pod/innbind.pod,
	  trunk/doc/pod/innd.pod, trunk/doc/pod/innupgrade.pod,
	  trunk/doc/pod/install.pod, trunk/doc/pod/libinnhist.pod,
	  trunk/doc/pod/list.pod, trunk/doc/pod/news.pod,
	  trunk/doc/pod/newsfeeds.pod, trunk/doc/pod/newsgroups.pod,
	  trunk/doc/pod/newslog.pod, trunk/doc/pod/nnrpd.pod,
	  trunk/doc/pod/ovdb.pod, trunk/doc/pod/ovdb_init.pod,
	  trunk/doc/pod/ovdb_stat.pod, trunk/doc/pod/passwd.nntp.pod,
	  trunk/doc/pod/qio.pod, trunk/doc/pod/radius.pod,
	  trunk/doc/pod/readme.pod, trunk/doc/pod/simpleftp.pod,
	  trunk/doc/pod/storage.conf.pod, trunk/doc/pod/tdx-util.pod,
	  trunk/doc/pod/tinyleaf.pod, trunk/samples/actsync.ign: Improve
	  paths in checklist. Improve the items list in cycbuff.conf,
	  INSTALL and storage.conf. Add a FILES section and "cd <pathdb>"
	  in actsync. Add a warning for tab-delimitation in newsgroups and
	  newslog. No space in a uwildmat pattern for clarity in INSTALL.
	  Use B<--xxx> instead of C<--xxx> for configure options in several
	  files.
	  
	  Add unbreakable spaces (S<xxx>) to the following expressions:
	  ANSI C K&R C autoconf 2.59 podlators 1.25 RFC xxx Kerberos v5
	  <size> * 1024 bytes Perl xxx Python xxx INN 2.x option #x Solaris
	  x Berkeley DB xxx -- (starting and ending clauses between dashes)
	  xxx GB/MB/KB
	  
	  It really improves the reading (especially in HTML and man
	  pages).

2007-08-31  iulius

	* trunk/support/mkmanifest: Exclude site/nocem.ctl from the
	  manifest.

2007-08-30  iulius

	* trunk/MANIFEST, trunk/samples/newsfeeds.in,
	  trunk/samples/nocem.ctl, trunk/site, trunk/site/Makefile: Add a
	  sample file for nocem.ctl. Update the description for the UUCP
	  feed in newsfeeds.

	* trunk/backends/send-uucp.in, trunk/control/perl-nocem.in: Improve
	  POD documentation (FILES section, paths and a typo).

2007-08-26  iulius

	* trunk/Makefile.global.in: Do not back up man pages during an
	  update since man complains about invalid file names:
	  
	  man: warning: /usr/share/man/man5/newslog.5.OLD: ignoring bogus
	  filename

	* trunk/MANIFEST, trunk/doc/man, trunk/doc/man/Makefile,
	  trunk/doc/man/newslog.5, trunk/doc/man/scanlogs.8,
	  trunk/doc/man/tally.control.8, trunk/doc/pod/Makefile,
	  trunk/doc/pod/newslog.pod, trunk/doc/pod/scanlogs.pod,
	  trunk/doc/pod/tally.control.pod: New POD documentation for
	  newslog(5), scanlogs(8) and tally.control(8) based upon previous
	  nroff documentation. Proof-reading, bunch of updates and new
	  presentation.

	* trunk/scripts/scanlogs.in, trunk/scripts/tally.control.in: Clean
	  out scanlogs a little: * definition of LOG and ERRLOG for
	  clarity; * remove two obsolete variables (TOP and NN); * remove
	  an obsolete program (tally.unwanted); * process innfeed log file
	  with a regexp to find its name; * fix the rotation of
	  send-nntp.log and send-uucp.log; * typos.

	* trunk/scripts/news.daily.in, trunk/storage/expire.c: More
	  consistent output from expiry programs, as said in newslog(5): no
	  indentation before "/program/ start" and "/program/ end" but four
	  spaces before the output from run programs.

	* trunk/innfeed/host.c, trunk/samples/innfeed.conf: If gen-html is
	  true in innfeed.conf, write the status file in pathhttp
	  (otherwise, write it in the pathlog directory, the previous
	  default behaviour). It is indeed more consistent with innd status
	  file written in HTML in pathhttp.

2007-08-23  iulius

	* trunk/backends/batcher.c, trunk/innd/innd.c, trunk/innd/nc.c,
	  trunk/innfeed/endpoint.c, trunk/lib/innconf.c,
	  trunk/storage/timecaf/caf.c: Convert some size_t values to
	  properly compile on FreeBSD amd64.

2007-08-22  iulius

	* trunk/authprogs/Makefile, trunk/backends/Makefile,
	  trunk/frontends/Makefile, trunk/innd/Makefile,
	  trunk/innfeed/Makefile, trunk/lib/Makefile, trunk/nnrpd/Makefile:
	  Update dependencies (make depend). Especially include/inn/nntp.h
	  and include/inn/hashtab.h.

	* trunk/tests/innd/chan-t.c, trunk/tests/lib/vector-t.c,
	  trunk/tests/overview/api-t.c, trunk/tests/overview/overview-t.c,
	  trunk/tests/overview/xref-t.c: Fix the remaining conditional
	  jumps or moves which depend on uninitialised values. The test
	  suite is now free from such problems.

2007-08-21  iulius

	* trunk/tests/innd/artparse-t.c, trunk/tests/innd/chan-t.c: Fix the
	  initialization of Path in artparse.t and the NULL-ending of
	  cp->In.data in chan.t.
	  
	  Note that the behaviour of In buffers should be reviewed (the
	  meaning of .used and .left differs).

2007-08-20  iulius

	* trunk/TODO, trunk/doc/pod/actsync.pod,
	  trunk/doc/pod/checklist.pod, trunk/doc/pod/install.pod,
	  trunk/innd/cc.c, trunk/lib/snprintf.c, trunk/samples/actsync.cfg,
	  trunk/samples/actsync.ign, trunk/samples/buffindexed.conf.in,
	  trunk/samples/cycbuff.conf, trunk/samples/storage.conf: Use "man
	  page" instead of "manpage" since it seems to be the default
	  spelling everywhere except for the ones I introduced in samples
	  and documentation. Also fix it in three other files.

	* trunk/MANIFEST, trunk/backends/send-uucp.in,
	  trunk/samples/Makefile, trunk/samples/newsfeeds.in,
	  trunk/samples/send-uucp.cf, trunk/site, trunk/site/Makefile,
	  trunk/support/mkmanifest: Improve POD documentation for
	  send-uucp(8): fix typos, mention the same Tf,Wnb flags as
	  newsfeeds does (and mention send-uucp in the newsfeeds sample),
	  bzip2 is now usable, fix an error in the batch hours in the
	  example, maxsize should not be '500,000' but '500000'.
	  
	  Add a sample configuration send-uucp.cf (based upon the work of
	  Marco d'Itri).

	* trunk/backends/Makefile, trunk/control/Makefile: Generate man
	  pages directly from perl-nocem.in, pgpverify.in and send-uucp.in.

2007-08-19  iulius

	* trunk/control/perl-nocem.in: Free an unusable socket after the
	  timeout. Thanks to Christoph Biedl for the patch. Mention the
	  keyring in the documentation.

2007-08-14  iulius

	* trunk/MANIFEST, trunk/samples, trunk/samples/Makefile,
	  trunk/samples/actsync.cfg, trunk/samples/actsync.ign,
	  trunk/samples/buffindexed.conf,
	  trunk/samples/buffindexed.conf.in, trunk/samples/cycbuff.conf,
	  trunk/samples/storage.conf, trunk/support/mkmanifest: Improve
	  some samples (especially documentation inside). buffindex.conf
	  has now a correct path to overview. Fix the sample cycbuff name
	  whose length was higher than 8 characters.

	* trunk/doc/pod/buffindexed.conf.pod, trunk/doc/pod/ckpasswd.pod,
	  trunk/doc/pod/ctlinnd.pod, trunk/doc/pod/cycbuff.conf.pod:
	  Improve POD documentation and correct typos. Add a note regarding
	  2 GB cycbuffs. The length of a buffer name cannot be higher than
	  8 characters.

	* trunk/backends/news2mail.in, trunk/control/controlbatch.in,
	  trunk/control/controlchan.in: Use @bindir@ and @sysconfdir@
	  instead of @prefix@/bin and @prefix@/etc which may be different.

2007-08-13  iulius

	* trunk/doc/pod/checklist.pod, trunk/doc/pod/install.pod: Improve
	  POD documentation for checklist and INSTALL. Amongst a lot of
	  other things: * typos; * mention the mail alias for usenet; *
	  make install should be done as root and maintenance work as news;
	  * manpages are in ~news/share/man (Autoconf changed the default
	  datarootdir); * SSL documentation (make cert, OpenSSL,
	  nnrpd/SSL); * a little more verbose checklist; * a section for
	  overview in INSTALL; * no need to run makedbz after a make
	  install; * clarify information about active; * new cron jobs
	  (rnews and flush the IP cache); * fix the URL to GNU make, and
	  add one for GnuPG; * improve the documentation for control
	  messages processing.

2007-08-10  iulius

	* trunk/doc/pod/buffchan.pod, trunk/doc/pod/buffindexed.conf.pod,
	  trunk/doc/pod/storage.conf.pod: Typos.

	* trunk/Makefile.global.in, trunk/doc/pod/batcher.pod,
	  trunk/doc/pod/rnews.pod, trunk/frontends,
	  trunk/frontends/Makefile, trunk/m4/compress.m4,
	  trunk/scripts/inncheck.in, trunk/scripts/innshellvars.in,
	  trunk/scripts/innshellvars.pl.in,
	  trunk/scripts/innshellvars.tcl.in, trunk/support/mkmanifest: Add
	  support for bzip2-compressed batches (with bunbatch) and
	  documentation update.

	* trunk/frontends/feedone.c, trunk/innd/cc.c, trunk/innd/nc.c,
	  trunk/innfeed/imap_connection.c, trunk/innfeed/innlistener.c,
	  trunk/lib/confparse.c: Use x(v)asprintf instead of (v)asprintf in
	  previous commit.

2007-08-09  iulius

	* trunk/lib/confparse.c: Missing va_end.

	* trunk/frontends/feedone.c, trunk/innd/cc.c, trunk/innd/nc.c,
	  trunk/innfeed/imap_connection.c, trunk/innfeed/innlistener.c,
	  trunk/lib/confparse.c: Use (v)asprintf instead of (v)snprintf.

	* trunk/backends/actsync.c: Use asprintf instead of snprintf twice.
	  Fix the count of ignored groups.

2007-08-08  iulius

	* trunk/backends/actsync.c, trunk/doc/pod/actsync.pod: Add the <-w>
	  flag to actsync. It permits to pass a time out option to ctlinnd.

2007-08-06  eagle

	* trunk/innd/chan.c: Helps to allocate the same amount of memory we
	  claim we're going to allocate.

2007-08-06  iulius

	* trunk/scripts/innreport_inn.pm: Better innreport processing of
	  log files (especially for Python filtering and Cleanfeed
	  rejects). Add a NoCeM entry for perl-nocem. Only ncmspool was
	  previously parsed.

	* trunk/scripts/innreport_inn.pm: Update innreport to ignore the
	  new innd logstatus.

	* trunk/doc/pod/inn.conf.pod, trunk/include/inn/innconf.h,
	  trunk/innd/status.c, trunk/lib/innconf.c,
	  trunk/samples/inn.conf.in: Add a config directive (logstats) that
	  makes innd send its incoming stats to syslog, in the same format
	  as the channel closing message (and including a 'ME' line with
	  the totals), every <status> seconds.
	  
	  It is indeed easier to process after than the inn_status.html
	  where the prettified sizes lack precision.
	  
	  Thanks to Fred Senault for the patch.

2007-08-05  iulius

	* trunk/control/docheckgroups.in,
	  trunk/control/modules/checkgroups.pl,
	  trunk/control/modules/newgroup.pl,
	  trunk/control/modules/rmgroup.pl: docheckgroups now handles
	  wireformat articles (for using it manually from the spool) and
	  warns when there are missing or obsolete descriptions.
	  
	  Newgroup control messages for existing groups now change their
	  description. If a mail is sent to administrators, it reminds them
	  to update their newsgroups file. Now pretty print the newsgroups
	  file (from one to three tabulations between the name of the group
	  and its short description). Refuse the creation of to. groups.
	  
	  Checkgroups when there is nothing to change no longer result in
	  sending a blank mail to administrators.

	* trunk/control/perl-nocem.in, trunk/samples/newsfeeds.in: Improve
	  POD documentation for perl-nocem(8). Add a sample entry in
	  newsfeeds for the NoCeM channel feed. (Also fix @bindir@ for
	  controlchan in newsfeeds.)

2007-08-04  iulius

	* trunk/control/perl-nocem.in: perl-nocem will now check for a
	  timeout and re-open the socket if required. Additionally,
	  perl-nocem will switch to cancel_ctlinnd in case cancel_nntp
	  fails after sending the Message-ID. Thanks to Christoph Biedl for
	  the patch.

	* trunk/scripts/inncheck.in: Update newsfeeds and nntpsend allowed
	  flags. Fix the @libdir@ variable and permissions on some files.

2007-08-02  iulius

	* trunk/doc/GPL, trunk/doc/history: Revert changes made by revision
	  7625 for doc/history and doc/GPL.

	* trunk/MANIFEST, trunk/doc/man, trunk/doc/pod/Makefile,
	  trunk/doc/pod/active.pod, trunk/doc/pod/active.times.pod,
	  trunk/doc/pod/getlist.pod, trunk/doc/pod/newsgroups.pod: Add new
	  documentation for newsgroups(5).

	* trunk/backends/innbind.c, trunk/configure.ac,
	  trunk/doc/pod/innbind.pod, trunk/doc/pod/innd.pod,
	  trunk/doc/pod/install.pod: Allow innbind to bind port 563
	  (NNTP/SSL for nnrpd).

	* trunk/backends/innxmit.c, trunk/backends/nntpget.c,
	  trunk/contrib/auth_pass.c, trunk/doc/GPL, trunk/doc/history,
	  trunk/expire/expire.c, trunk/frontends/ctlinnd.c,
	  trunk/frontends/inews.c, trunk/frontends/rnews.c,
	  trunk/innd/art.c, trunk/innd/cc.c, trunk/innd/icd.c,
	  trunk/innd/innd.c, trunk/innd/innd.h, trunk/innd/nc.c,
	  trunk/innd/ng.c, trunk/innfeed/connection.c,
	  trunk/innfeed/host.c, trunk/nnrpd/post.c,
	  trunk/scripts/inncheck.in, trunk/storage/timecaf/README.CAF:
	  Remove all occurrences of the control character FORM FEED
	  (Ctrl-L).

	* trunk/doc/pod/install.pod, trunk/doc/pod/storage.conf.pod,
	  trunk/samples/storage.conf: Mention the exactbool parameter in
	  INSTALL and the storage.conf sample. (And add the right
	  svn:keywords to the POD documentation.)

	* trunk/MANIFEST, trunk/doc/man, trunk/doc/man/storage.conf.5,
	  trunk/doc/pod/Makefile, trunk/doc/pod/storage.conf.pod: Convert
	  into POD and improve the storage.conf(5) man page.

	* trunk/doc/pod/active.times.pod, trunk/doc/pod/archive.pod,
	  trunk/doc/pod/auth_krb5.pod, trunk/doc/pod/auth_smb.pod: Improve
	  POD documentation and correct typos.

2007-08-01  iulius

	* trunk/doc/pod/active.times.pod: convdate(1) can be useful here.

	* trunk/doc/pod/active.pod, trunk/doc/pod/active.times.pod,
	  trunk/doc/pod/install.pod: Improve POD documentation for
	  active(5) and active.times(5), adding more examples (a minimal
	  active file and an active.times line) and mentioning active.old.
	  The pseudogroup control.cancel is needed for INN to start.

	* trunk/tests/lib/hstrerror-t.c: Remove two unsuitable tests for
	  hstrerror.c.

	* trunk/doc/pod/buffindexed.conf.pod, trunk/doc/pod/checklist.pod,
	  trunk/doc/pod/ckpasswd.pod, trunk/doc/pod/grephistory.pod,
	  trunk/doc/pod/hook-python.pod, trunk/doc/pod/inn.conf.pod,
	  trunk/doc/pod/install.pod, trunk/doc/pod/libinnhist.pod,
	  trunk/doc/pod/news.pod, trunk/doc/pod/rc.news.pod: Fix errors and
	  warnings returned by podchecker().

	* trunk/backends/actsync.c, trunk/doc/pod/actsync.pod,
	  trunk/samples/actsync.ign: Improve POD documentation for
	  actsync(8) and correct various typos. Add a new example (using
	  the type of a newsgroup) in actsync.ign sample.

	* trunk/tests/TESTS, trunk/tests/lib/hstrerror-t.c,
	  trunk/tests/overview/api-t.c, trunk/tests/overview/overview-t.c,
	  trunk/tests/overview/xref-t.c, trunk/tests/util/inndf.t: Add
	  existing lib/hstrerror.t and overview/overchan.t tests to the
	  list of tests to be executed. Fix two tests in lib/hstrerror.t
	  and add some clean up to other tests.

	* trunk/Makefile, trunk/Makefile.global.in, trunk/configure.ac: Fix
	  the path to OpenSSL binary (used by make cert).

	* trunk/configure.ac: Fix the setting of DO_PGPVERIFY (it was
	  always set to false at configure time).

	* trunk/BOOTSTRAP, trunk/CONTRIBUTORS, trunk/LICENSE,
	  trunk/configure.ac: Typos.

2007-07-31  iulius

	* trunk/innd/rc.c: Group blocks in incoming.conf are now correctly
	  parsed and no longer cause segfaults.

	* trunk/MANIFEST, trunk/support/mkmanifest: Fix the pattern which
	  matches excluded files.

2007-07-22  eagle

	* trunk/expire/makehistory.c: Revert a change that wasn't fully
	  tested yet.

	* trunk/expire/makehistory.c, trunk/innd/art.c,
	  trunk/storage/cnfs/cnfs.c, trunk/storage/interface.c,
	  trunk/storage/overview.c, trunk/storage/timecaf/timecaf.c,
	  trunk/storage/timehash/timehash.c,
	  trunk/storage/tradspool/tradspool.c: Initialize tokens before
	  returning them, even if we're setting the type to TOKEN_EMPTY.

	* trunk/m4/krb5.m4: Update for MIT Kerberos 1.6 and its
	  requirements for krb5support. Restructure the library probes to
	  reduce the number of checks required with Heimdal.

2007-04-13  jeff

	* trunk/authprogs/radius.c: Switch xmalloc to xcalloc. Bug reported
	  by Erik Klavon.

2007-02-10  eagle

	* trunk/innd/art.c, trunk/innd/innd.h, trunk/innd/nc.c: Improve
	  rejection logging. Catch several places where we rejected
	  articles without incrementing the rejected size count, uniformly
	  use ARTreject to increment the statistics, and count rejected
	  duplicates as part of the rejected article size since they're
	  also included in the count.
	  
	  Drop the unused third parameter to ARTreject.

	* trunk/lib/dbz.c: Use a temporary variable to be more careful
	  about signed to unsigned comparison with offsets.

	* trunk/lib/dbz.c: Don't use ints; we lose with large files on many
	  systems. Use xpwrite instead of pwrite to get complete writes.
	  Based on a patch by Chris Caputo.

	* trunk/storage/buffindexed/buffindexed.c: When calculating the
	  length of a buffer, cast the calculation to off_t since it may be
	  longer than unsigned long. Thanks, Kirill Berezin.

2007-02-09  eagle

	* trunk/include/portable/getnameinfo.h: Add NI_MAXHOST and
	  NI_MAXSERV constants, which are part of the documented API.

	* trunk/include/inn/mmap.h, trunk/innd/icd.c, trunk/lib/dbz.c,
	  trunk/lib/mmap.c, trunk/storage/tradindexed/tdx-data.c,
	  trunk/storage/tradindexed/tdx-group.c: Rename msync_page to
	  inn_msync_page and use a #define wrapper with a different name
	  from the function so that we don't confuse the compiler.

2007-01-16  eagle

	* trunk/innd/cc.c, trunk/lib/inndcomm.c: Fix incomplete checking of
	  packet sizes in the ctlinnd interface in the
	  no-Unix-domain-sockets case. This is a potential buffer overflow
	  in dead code since basically all systems INN builds on support
	  Unix domain sockets these days, but let's not have that code
	  sitting around anyway.
	  
	  Also track the buffer size more correctly in the client side of
	  this interface for the Unix domain socket case (we were thinking
	  it was smaller than it actually was).
	  
	  Thanks to zybadawg333@hushmail.com for the report.

2006-12-19  eagle

	* trunk/samples/innreport.conf.in, trunk/scripts/innreport_inn.pm:
	  Fix a syntax error in the previous innreport work. Allow for both
	  the current logs with rejected size and the older logs without
	  it. Remove an extraneous column from the incoming volume report.
	  Fix a logic bug that caused none of the incoming sum variables to
	  be populated.

2006-12-13  eagle

	* trunk/backends/innxbatch.c, trunk/backends/innxmit.c,
	  trunk/backends/nntpget.c, trunk/frontends/feedone.c,
	  trunk/frontends/inews.c, trunk/frontends/rnews.c,
	  trunk/include/nntp.h, trunk/innd/art.c, trunk/innd/nc.c,
	  trunk/innd/rc.c, trunk/innd/status.c, trunk/lib/clientlib.c,
	  trunk/lib/localopen.c, trunk/lib/remopen.c, trunk/lib/sendpass.c,
	  trunk/nnrpd/article.c, trunk/nnrpd/commands.c,
	  trunk/nnrpd/group.c, trunk/nnrpd/list.c, trunk/nnrpd/misc.c,
	  trunk/nnrpd/newnews.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/perl.c,
	  trunk/nnrpd/perm.c, trunk/nnrpd/post.c, trunk/nnrpd/python.c,
	  trunk/nnrpd/sasl.c, trunk/nnrpd/tls.c: Switch from the old
	  numeric constants for NNTP status codes to the new ones supplied
	  by include/inn/nntp.h. Patch from Adam J. Richter.

2006-11-22  eagle

	* trunk/Makefile.global.in: Autoconf 2.60 likes to make some
	  variables relative to datarootdir, so set it as well; it will be
	  harmless with older versions of Autoconf.

	* trunk/CONTRIBUTORS, trunk/samples/innreport.conf.in,
	  trunk/scripts/innreport.in, trunk/scripts/innreport_inn.pm: Track
	  statistics separately for every connection in innreport and only
	  sum them together at the end of log processing. This allows us to
	  also track checkpoints and add checkpoint numbers to the totals
	  at the end of log processing if no intervening close was seen.
	  Based on work by Jim Dutton and Julien ÉLIE.

	* trunk/control/controlchan.in: Pring the newline and not $_, not
	  the other way around.

	* trunk/control/controlchan.in: When printing the blank line
	  between headers, don't also try to print $_; it's undefined at
	  that point.

	* trunk/include/inn/inndcomm.h, trunk/include/inn/ov.h,
	  trunk/include/inn/storage.h: Add header guards to headers that
	  were missing them. Patch from Adam J. Richter.

2006-11-21  eagle

	* trunk/lib/network.c: The final argument to inet_pton should be a
	  pointer to an in6_addr, not to a sockaddr_in6. Fix network_source
	  for IPv6 bind addresses.

	* trunk/CONTRIBUTORS, trunk/MANIFEST, trunk/Makefile.global.in,
	  trunk/TODO, trunk/authprogs/Makefile,
	  trunk/authprogs/auth_krb5.c, trunk/authprogs/ckpasswd.c,
	  trunk/authprogs/domain.c, trunk/authprogs/ident.c,
	  trunk/authprogs/libauth.c, trunk/authprogs/radius.c,
	  trunk/backends/Makefile, trunk/backends/actsync.c,
	  trunk/backends/archive.c, trunk/backends/batcher.c,
	  trunk/backends/buffchan.c, trunk/backends/crosspost.c,
	  trunk/backends/cvtbatch.c, trunk/backends/filechan.c,
	  trunk/backends/innbind.c, trunk/backends/inndf.c,
	  trunk/backends/innxbatch.c, trunk/backends/innxmit.c,
	  trunk/backends/map.c, trunk/backends/nntpget.c,
	  trunk/backends/overchan.c, trunk/backends/shrinkfile.c,
	  trunk/configure.ac, trunk/contrib/respool.c,
	  trunk/doc/man/inndcomm.3, trunk/doc/man/libinn.3,
	  trunk/doc/man/libstorage.3, trunk/doc/pod/hacking.pod,
	  trunk/doc/pod/hook-perl.pod, trunk/doc/pod/uwildmat.pod,
	  trunk/expire/Makefile, trunk/expire/convdate.c,
	  trunk/expire/expire.c, trunk/expire/expireover.c,
	  trunk/expire/fastrm.c, trunk/expire/grephistory.c,
	  trunk/expire/makedbz.c, trunk/expire/makehistory.c,
	  trunk/expire/prunehistory.c, trunk/frontends/Makefile,
	  trunk/frontends/ctlinnd.c, trunk/frontends/feedone.c,
	  trunk/frontends/getlist.c, trunk/frontends/inews.c,
	  trunk/frontends/innconfval.c, trunk/frontends/ovdb_init.c,
	  trunk/frontends/ovdb_monitor.c, trunk/frontends/ovdb_server.c,
	  trunk/frontends/ovdb_stat.c, trunk/frontends/rnews.c,
	  trunk/frontends/sm.c, trunk/frontends/sys2nf.c,
	  trunk/history/Makefile, trunk/history/his.c,
	  trunk/history/hisv6/hisv6-private.h, trunk/history/hisv6/hisv6.c,
	  trunk/include, trunk/include/Makefile, trunk/include/dbz.h,
	  trunk/include/inn, trunk/include/inn/inndcomm.h,
	  trunk/include/inn/libinn.h, trunk/include/inn/options.h,
	  trunk/include/inn/ov.h, trunk/include/inn/overview.h,
	  trunk/include/inn/paths.h.in, trunk/include/inn/storage.h,
	  trunk/include/inndcomm.h, trunk/include/libinn.h,
	  trunk/include/ov.h, trunk/include/paths.h.in,
	  trunk/include/storage.h, trunk/innd/Makefile, trunk/innd/art.c,
	  trunk/innd/cc.c, trunk/innd/icd.c, trunk/innd/innd.c,
	  trunk/innd/innd.h, trunk/innd/keywords.c, trunk/innd/lc.c,
	  trunk/innd/nc.c, trunk/innd/newsfeeds.c, trunk/innd/ng.c,
	  trunk/innd/python.c, trunk/innd/rc.c, trunk/innd/status.c,
	  trunk/innd/tinyleaf.c, trunk/innd/util.c, trunk/innfeed/Makefile,
	  trunk/innfeed/article.c, trunk/innfeed/buffer.c,
	  trunk/innfeed/configfile.l, trunk/innfeed/configfile.y,
	  trunk/innfeed/connection.c, trunk/innfeed/endpoint.c,
	  trunk/innfeed/host.c, trunk/innfeed/imap_connection.c,
	  trunk/innfeed/innlistener.c, trunk/innfeed/main.c,
	  trunk/innfeed/misc.c, trunk/innfeed/tape.c, trunk/lib/Makefile,
	  trunk/lib/buffer.c, trunk/lib/cleanfrom.c,
	  trunk/lib/clientactive.c, trunk/lib/clientlib.c,
	  trunk/lib/concat.c, trunk/lib/conffile.c, trunk/lib/confparse.c,
	  trunk/lib/daemonize.c, trunk/lib/date.c, trunk/lib/dbz.c,
	  trunk/lib/defdist.c, trunk/lib/fdflags.c, trunk/lib/fdlimit.c,
	  trunk/lib/genid.c, trunk/lib/getfqdn.c, trunk/lib/getmodaddr.c,
	  trunk/lib/hash.c, trunk/lib/hashtab.c, trunk/lib/innconf.c,
	  trunk/lib/inndcomm.c, trunk/lib/localopen.c,
	  trunk/lib/lockfile.c, trunk/lib/makedir.c, trunk/lib/messages.c,
	  trunk/lib/network.c, trunk/lib/nntp.c, trunk/lib/perl.c,
	  trunk/lib/qio.c, trunk/lib/radix32.c, trunk/lib/readin.c,
	  trunk/lib/remopen.c, trunk/lib/reservedfd.c,
	  trunk/lib/resource.c, trunk/lib/sendarticle.c,
	  trunk/lib/sendpass.c, trunk/lib/timer.c, trunk/lib/tst.c,
	  trunk/lib/uwildmat.c, trunk/lib/vector.c, trunk/lib/wire.c,
	  trunk/lib/xfopena.c, trunk/lib/xmalloc.c, trunk/lib/xsignal.c,
	  trunk/lib/xwrite.c, trunk/m4/paths.m4, trunk/nnrpd/Makefile,
	  trunk/nnrpd/article.c, trunk/nnrpd/cache.c, trunk/nnrpd/cache.h,
	  trunk/nnrpd/commands.c, trunk/nnrpd/group.c, trunk/nnrpd/list.c,
	  trunk/nnrpd/newnews.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h,
	  trunk/nnrpd/perl.c, trunk/nnrpd/perm.c, trunk/nnrpd/post.c,
	  trunk/storage/Makefile, trunk/storage/buffindexed/buffindexed.c,
	  trunk/storage/buffindexed/shmem.c, trunk/storage/cnfs/cnfs.c,
	  trunk/storage/expire.c, trunk/storage/interface.c,
	  trunk/storage/interface.h, trunk/storage/ov.c,
	  trunk/storage/ovdb/ovdb.c, trunk/storage/overdata.c,
	  trunk/storage/overview.c, trunk/storage/ovinterface.h,
	  trunk/storage/timecaf/caf.c, trunk/storage/timecaf/timecaf.c,
	  trunk/storage/timehash/timehash.c,
	  trunk/storage/tradindexed/tdx-cache.c,
	  trunk/storage/tradindexed/tdx-data.c,
	  trunk/storage/tradindexed/tdx-group.c,
	  trunk/storage/tradindexed/tdx-private.h,
	  trunk/storage/tradindexed/tdx-structure.h,
	  trunk/storage/tradindexed/tdx-util.c,
	  trunk/storage/tradindexed/tradindexed.c,
	  trunk/storage/tradindexed/tradindexed.h,
	  trunk/storage/tradspool/tradspool.c, trunk/storage/trash/trash.c,
	  trunk/support/mkmanifest, trunk/tests/innd/artparse-t.c,
	  trunk/tests/innd/chan-t.c, trunk/tests/lib/buffer-t.c,
	  trunk/tests/lib/concat-t.c, trunk/tests/lib/confparse-t.c,
	  trunk/tests/lib/date-t.c, trunk/tests/lib/fakewrite.c,
	  trunk/tests/lib/getnameinfo-t.c, trunk/tests/lib/hash-t.c,
	  trunk/tests/lib/hashtab-t.c, trunk/tests/lib/list-t.c,
	  trunk/tests/lib/md5-t.c, trunk/tests/lib/messages-t.c,
	  trunk/tests/lib/network-t.c, trunk/tests/lib/pread-t.c,
	  trunk/tests/lib/qio-t.c, trunk/tests/lib/setenv-t.c,
	  trunk/tests/lib/tst-t.c, trunk/tests/lib/uwildmat-t.c,
	  trunk/tests/lib/vector-t.c, trunk/tests/lib/wire-t.c,
	  trunk/tests/lib/xmalloc.c, trunk/tests/lib/xwrite-t.c,
	  trunk/tests/libtest.c, trunk/tests/overview/api-t.c,
	  trunk/tests/overview/overview-t.c, trunk/tests/overview/xref-t.c:
	  Move the remaining public headers in include into include/inn and
	  adjust all includes appropriately. Rename the macros defined in
	  paths.h to start with an INN prefix and adjust all code that uses
	  them. Clean up the remaining includes of config.h in public
	  headers and have them include inn/defines.h instead. Add a header
	  guard for paths.h. Stop installing non-public headers.
	  
	  Based on the corrections made by a script contributed by Adam J.
	  Richter.

	* trunk/contrib/README: Various updates for new files and verb
	  tense. Remove ninpaths, which is now included in the main part of
	  INN. Patch from Julien ÉLIE.

	* trunk/control/modules/newgroup.pl: Don't send mail if the action
	  is no change. Patch from Julien ÉLIE.

	* trunk/TODO: Note rnews error handling problem.

2006-10-17  jeff

	* trunk/backends/actsync.c: Fix bug in which -T flag could not work
	  with the storage API. Reported by Mike Brudenell.
	  
	  The previous implementation required the on-disk representation
	  of the spool to check for the existence of a top-level hierarchy;
	  this was fundamentally insufficient at best, and broke completely
	  with the storage API.
	  
	  The new implementation uses a hash table to keep track of which
	  top-level hierarchies exist in the host1 active file, and thus
	  can detect new hierarchy creation (when -T is used).

2006-09-11  eagle

	* trunk/tests/runtests.c: Work around a bad interaction between the
	  glibc headers and gcc 4.1 that causes the sys/wait.h W* macros to
	  fail to compile when run on an int member of a const struct.

	* trunk/TODO: Remove the link to Dave Barr's old INN site; that
	  page seems to have gone away.

2006-09-08  eagle

	* trunk/innd/art.c: ARTparsebody can set the state to
	  CSgotlargearticle as well as CSgotarticle, so don't set
	  CSgotlargearticle back to CSeatarticle in ARTchecksize. When we
	  do that, we time out waiting for the remote host to send more
	  data, when it's actually finished.
	  
	  Thanks very much to Fred Senault for tracking this down.

2006-09-07  eagle

	* trunk/samples/control.ctl: Update to new upstream version.

2006-09-04  eagle

	* trunk/samples/control.ctl: Update to current upstream version.

2006-08-30  eagle

	* trunk/doc/pod/control.ctl.pod: Clarify the differences between
	  verify-*, verify-*=mail, doit, and doit=mail and correct some
	  inaccuracies noted by Iulius.

	* trunk/control/controlchan.in: Handle wire format messages.

2006-08-28  eagle

	* trunk/Makefile.global.in, trunk/authprogs/Makefile,
	  trunk/authprogs/ckpasswd.c, trunk/configure.ac,
	  trunk/m4/berkeleydb.m4: If compiling with BerkeleyDB, use its
	  ndbm compatibility layer for ckpasswd in preference to searching
	  for a traditional dbm library. Based on a proposal by Marco
	  d'Itri.

	* trunk/frontends/ovdb_stat.c: Support for BerkeleyDB 4.4. Patch
	  from Marco d'Itri.

	* trunk/doc/man/innfeed.conf.5, trunk/innfeed/host.c,
	  trunk/innfeed/innfeed.h, trunk/samples/innfeed.conf: Add a
	  force-ipv4 peer configuration option for innfeed that, if set,
	  tells innfeed to never attempt an IPv6 connection to that host.
	  Patch from Marco d'Itri.

	* trunk/samples/radius.conf: The RADIUS configuration has to be
	  wrapped in a server {} block. Thanks to Marco d'Itri for the
	  patch.

2006-08-27  eagle

	* trunk/doc/man/innfeed.conf.5: Fix a mistaken backlog-limit-high
	  instead of backlog-limit-highwater and document
	  backlog-rotate-period.

2006-08-26  eagle

	* trunk/control/perl-nocem.in: Update the documentation to use
	  --primary-keyring for importing keys and to drop
	  --allow-non-selfsigned-uid from the default options but describe
	  when it might be necessary.

	* trunk/TODO: Add the need to not remember rejections for
	  duplicated Xref headers.

	* trunk/control/perl-nocem.in: "error" is not a syslog level.
	  Replace with "err" instead. Reported by various people, including
	  Christoph Biedl.

	* trunk/innd/status.c: Report an error if we can't open the status
	  file. Reported by Bjoern A Zeeb.

	* trunk/Makefile.global.in: make warnings needs to run at -O2 or
	  some of the gcc errors don't turn up.

	* trunk/nnrpd/commands.c, trunk/nnrpd/list.c: Fix more places where
	  we weren't using ARTNUM for article numbers.

	* trunk/nnrpd/article.c, trunk/nnrpd/group.c,
	  trunk/nnrpd/newnews.c, trunk/nnrpd/nnrpd.h: Article numbers
	  should be stored in variables of type ARTNUM rather than ints.
	  Article numbers are unsigned, so print them appropriately. Work
	  around the broken overview API for right now.
	  
	  Thanks to Piotr Meyer for pointing out the problem.

	* trunk/nnrpd/nnrpd.c: Add a missing brace from the last commit.

	* trunk/nnrpd/nnrpd.c: Downcase the name of the connecting host
	  like we used to before the IPv6 restructuring. Thanks to Brandon
	  Hume for pointing out this problem.

	* trunk/nnrpd/group.c: Empty LISTGROUP replies need to be
	  terminated. Thanks to David Canzi for the patch.

	* trunk/scripts/innreport_inn.pm: Properly stop after finding a new
	  ctlinnd message. Make the -sm at the end of CNFS-sm optional,
	  since we no longer append it. Thanks to Christoph Biedl for the
	  patch.

	* trunk/support/fixconfig.in: Substitute @libdir@ as well, for
	  innreport.conf. Thanks, Christoph Biedl.

	* trunk/innd/chan.c: Reset the left offset properly in CHANresize.
	  Thanks, Christoph Biedl.

	* trunk/nnrpd/perm.c: A stupid data structure combined with C's
	  annoying type system and new, strict gcc produced warnings on
	  struct *** pointers converted to void ***. So destroy the type
	  system completely and pass them as void * and then convert them
	  later.
	  
	  This will get cleaned up when we replace the configuration parser
	  with something a bit saner.

	* trunk/samples/control.ctl: Update chi.* and the alt.* comment.

2006-08-18  eagle

	* trunk/storage/timehash/timehash.c: BreakToken should now take a
	  time_t, since the ARTHANDLE struct uses the correct data type for
	  times.

2006-08-12  eagle

	* trunk/doc/pod/ckpasswd.pod: Update URL for the Linux-PAM System
	  Administrator's Guide.

2006-07-06  jeff

	* trunk/doc/pod/expire.ctl.pod: Typo

2006-04-20  eagle

	* trunk/configure.ac: Unconditionally define _GNU_SOURCE on Linux
	  so that we can get asprintf as well as pread and pwrite.

2006-04-18  eagle

	* trunk/lib/xmalloc.c: The data type is va_list, not va_arg.

	* trunk/include/clibrary.h: We only check for asprintf and provide
	  both asprintf and vasprintf if asprintf is missing. The chances
	  of having one and not the other are miniscule.

	* trunk/support/mkmanifest: Exclude the new asprintf test from the
	  distribution.

2006-04-17  eagle

	* trunk/MANIFEST, trunk/configure.ac, trunk/include/clibrary.h,
	  trunk/include/libinn.h, trunk/lib/asprintf.c,
	  trunk/lib/xmalloc.c, trunk/tests/Makefile, trunk/tests/TESTS,
	  trunk/tests/lib, trunk/tests/lib/asprintf-t.c,
	  trunk/tests/lib/xmalloc.c, trunk/tests/lib/xmalloc.t: Add an
	  asprintf replacement for systems that don't have it.

2006-04-15  eagle

	* trunk/doc/pod/hacking.pod: Document the required version of
	  svn2cl.

	* trunk/support/mkchangelog: Use new svn2cl options from 0.7.

2006-04-10  eagle

	* trunk/Makefile, trunk/backends/Makefile,
	  trunk/doc/pod/install.pod: Add a make install-root target that
	  only installs the setuid innbind helper program.

	* trunk/support/mkchangelog: Add --reparagraph to generate nicer
	  ChangeLog files (only works with the current development version
	  of svn2cl).

	* trunk/site/Makefile: If creating a new history file, set the
	  ownership and mode appropriately. Reported by Ernst Boetsch.

2006-04-02  eagle

	* trunk/tests/lib/snprintf-t.c: The %n test was written incorrectly
	  on AMD64. Thanks, Ernst Boetsch.

2006-03-31  eagle

	* trunk/samples/newsfeeds.in: Clarify the comment about the ME
	  line.

2006-03-27  eagle

	* trunk/LICENSE: Update copyright dates.

2006-03-20  eagle

	* trunk/nnrpd/group.c: Return the correct 0 0 0 response to
	  LISTGROUP when the group is empty rather than returning no such
	  group.

	* trunk/MANIFEST, trunk/Makefile.global.in, trunk/configure.ac,
	  trunk/m4/cc-flags.m4, trunk/m4/perl.m4: Probe for -Wno-extra and
	  only include it in the Perl compiler flags if the compiler
	  supports it. This lets CURRENT build with gcc < 3.3 again (and
	  with non-gcc compilers; I really wasn't thinking through that
	  change).

2006-03-19  eagle

	* trunk/lib/dbz.c: Various fixes from Heiko Schlichting for DBZTEST
	  mode:
	  
	  Remove the right file in RemoveDBZ and use concat instead of a
	  static buffer for filenames. Add a command-line option to set
	  nfswriter if desired and avoid a core dump from a missing
	  innconf. Fix debugging output from dbzclose and return checking
	  from dbzstore. Fix an off-by-one error in the line counter. Fix a
	  typo in usage.

	* trunk/samples/control.ctl: Remove abg.* entry. That maintainer is
	  no longer active. Update the sfnet.* key fingerprint.

2006-01-26  jeff

	* trunk/doc/pod/inn.conf.pod: Typo fixes

2005-12-25  eagle

	* trunk/Makefile: Fix the code to remove prerelease in
	  Makefile.global.

2005-12-24  eagle

	* trunk/doc/pod/hacking.pod: Update the references section.

	* trunk/MANIFEST: Remove fixlog.

	* trunk/doc/pod/news.pod: Add changes for INN 2.4.3.

	* trunk/m4/libtool.m4, trunk/support/ltmain.sh: Update to the
	  latest Debian libtool.

	* trunk/support/config.guess, trunk/support/config.sub: Update
	  config.guess and config.sub to the latest Debian versions.

	* trunk/doc/pod/hacking.pod: Add some additional make release
	  instructions.

	* trunk/doc/pod/hacking.pod: Update make release instructions for
	  svn2cl.

	* trunk/support/fixlog, trunk/support/mkchangelog: Use svn2cl to
	  generate the ChangeLog for the release.

2005-12-15  eagle

	* trunk/doc/pod/inn.conf.pod, trunk/lib/innconf.c,
	  trunk/nnrpd/line.c, trunk/storage/overdata.c: Actually, don't
	  impose a minimum size on maxartsize and localmaxartsize. That
	  isn't necessary. Just adjust the nnrpd code so that it doesn't
	  use localmaxartsize for the max buffer size without checking it
	  first.

2005-12-12  eagle

	* trunk/lib/innconf.c: Include inn/nntp.h for NNTP_STRLEN.

	* trunk/expire/makehistory.c: If there are multiple Xref headers in
	  an article, use the last one to get article data. This works
	  around a combination of a bug in other servers that caused them
	  to add multiple Xref headers and a bug in INN that caused it to
	  accept such articles and just add yet another Xref header.

	* trunk/backends/send-uucp.in, trunk/configure.ac,
	  trunk/scripts/innshellvars.in, trunk/scripts/innshellvars.pl.in,
	  trunk/scripts/innshellvars.tcl.in: Search the user's path for uux
	  at configure time and encode the path in innshellvars, using that
	  path in send-uucp, since apparently there are different uux's
	  with different options and the administrator needs a way to be
	  sure that the right one is used.

	* trunk/TODO: Add a note about a needed improvement to the Perl
	  authentication hooks.

	* trunk/TODO: Kerberos authentication needs some attention.

	* trunk/authprogs/auth_krb5.c, trunk/m4/krb5.m4: Check for
	  et/com_err.h before com_err.h; that's where Linux appears to be
	  moving it to when com_err.h comes from e2fsprogs.

	* trunk/TODO: It would be nice to allow deleting headers in the
	  Perl filtering code in nnrpd.

	* trunk/MANIFEST, trunk/doc/man, trunk/doc/man/Makefile,
	  trunk/doc/man/pullnews.8, trunk/doc/pod/Makefile,
	  trunk/doc/pod/pullnews.pod: Convert the pullnews documentation to
	  POD. Document the ability to specify a username and password in
	  the configuration file.

2005-12-11  eagle

	* trunk/include/inn/nntp.h, trunk/lib/nntp.c: Add an nntp_write()
	  function that sends a verbatim block of data.

	* trunk/doc/pod/inn.conf.pod, trunk/lib/innconf.c: Sanity-check the
	  settings of maxartsize and localmaxartsize. (Setting the latter
	  too low causes bizarre behavior in nnrpd.)

	* trunk/doc/pod/inn.conf.pod, trunk/nnrpd/line.c: Allow
	  localmaxartsize of 0 in nnrpd and update the documentation for
	  both it and maxartsize to document the 0 setting and note that,
	  if set to zero, large articles can crash innd or nnrpd by running
	  them out of system memory.

	* trunk/include/inn/nntp.h, trunk/lib/nntp.c: Allow maxsize to be
	  0, indicating that article size should be limited only by
	  available memory. Grow the buffer only 1MB at a time if it gets
	  to be 1MB or larger in size.

	* trunk/nnrpd/post.c: Yet *another* problem checking permission to
	  post to moderated groups. We were clearing the error flag right
	  after setting it. Reported by Jens Schlegel.

	* trunk/samples/moderators: Update nl.* moderation forwarding.

	* trunk/TODO, trunk/scripts/innstat.in: Run inndf -no in innstat if
	  we're using the buffindexed overview method. Patch from Andrey
	  Yakovlev.

	* trunk/CONTRIBUTORS, trunk/doc/pod/news.pod: Document improvements
	  by Thomas Parmelan to send-uucp.

	* trunk/backends/send-uucp.in: If there is a stray .work file,
	  append it to the new .work file after flushing and renaming,
	  rather than before. Patch from Thomas Parmelan.

	* trunk/backends/send-uucp.in: Add a way to specify the funnel or
	  exploder to flush for a site managed via one. Patch from Thomas
	  Parmelan.

	* trunk/TODO: Note that CNFS is insufficiently robust.

	* trunk/innd/rc.c: Close the socket for ident callbacks on errors.

	* trunk/doc/pod/hook-perl.pod, trunk/doc/pod/hook-python.pod,
	  trunk/doc/pod/news.pod, trunk/innd/cc.c, trunk/innd/innd.h,
	  trunk/innd/perl.c, trunk/innd/python.c: Call filter_mode before
	  shutdown or xexec with "shutdown" as a new possible mode value.
	  Add OMshutdown for this purpose and handle it in a few case
	  statements, even though it will never be seen there.

	* trunk/nnrpd/post.c: Remove write-only WasMailed variable.

	* trunk/samples/innreport.conf.in, trunk/scripts/innreport_inn.pm:
	  Report on the Python filter the same as we do on the Perl filter.

	* trunk/samples/control.ctl: Resync with upstream version.

2005-10-09  eagle

	* trunk/scripts/innshellvars.in, trunk/scripts/innshellvars.pl.in,
	  trunk/scripts/innshellvars.tcl.in: configure now sets
	  PATH_GETFTP, not GETFTP.

	* trunk/frontends/rnews.c: Burn three file descriptors if running
	  privileged to avoid a strange situation where starting rnews with
	  closed file descriptors could force error messages to be written
	  to unexpected places, such as network streams or article files.
	  Only bother if running privileged; otherwise, the user is just
	  creating a bizarre bug by doing strange things, which isn't worth
	  worrying about.

	* trunk/doc/pod/fastrm.pod: Warn that fastrm doesn't care about
	  security.

	* trunk/innfeed/misc.c: Fix format string vulnerability in
	  logOrPrint (which is only used for configuration data, so not an
	  exploitable hole).

	* trunk/innd/nc.c: Fix an oddity that I found a while back when
	  auditing uses of the buffer code in innd but never returned to.
	  If NCwritereply sends its reply immediately but can only send a
	  part of it, the count of bytes remaining to send wasn't
	  decremented. We could then send random junk at the end of the
	  buffer to the peer later on.

	* trunk/innd/cc.c: Fix an input validation bug that could allow a
	  stack overwrite on a system that didn't support Unix domain
	  sockets (do any of those exist any more?).

	* trunk/innd/cc.c, trunk/lib/inndcomm.c: Increase the send and
	  receive buffer sizes of the Unix domain socket used by the
	  control channel, allowing longer replies on platforms with a low
	  default buffer size. Patch from MKI.

	* trunk/storage/cnfs/cnfs.c, trunk/storage/timecaf/timecaf.c,
	  trunk/storage/timehash/timehash.c,
	  trunk/storage/tradspool/tradspool.c: When retrieving an entire
	  article, use MADV_WILLNEED rather than MADV_SEQUENTIAL or no
	  madvise hint at all. The performance is apparently noticably
	  better per MKI.

	* trunk/innd/art.c: Correctly detect headers duplicated an odd
	  number of times (3 copies, 5 copies, etc.) and distinguish
	  between missing and duplicated headers when reporting errors.

	* trunk/samples/control.ctl: Update to latest upstream version.

	* trunk/TODO: Add detection and fixing of hash chain loops of
	  length longer than one in tradindexed.

	* trunk/scripts/innshellvars.in, trunk/scripts/innshellvars.pl.in,
	  trunk/scripts/innshellvars.tcl.in: Set HOME to pathnews. This
	  should resolve Debian Bug#307765.

	* trunk/scripts/innshellvars.pl.in: Avoid a warning if PATH is not
	  defined in the environment.

2005-10-08  eagle

	* trunk/lib/snprintf.c, trunk/tests/lib/messages-t.c,
	  trunk/tests/lib/tst-t.c: Clean up test suite warnings for gcc
	  4.0.

	* trunk/lib/getaddrinfo.c: glibc 2.3.5 uses flag values up to
	  0x0400 for getaddrinfo, which was causing tests to fail since the
	  value of AI_NUMERICSERV was out of bounds. Use a broader
	  allowable range for flag values when testing on a platform that
	  has getaddrinfo.

2005-08-26  eagle

	* trunk/Makefile.global.in, trunk/authprogs/smbval/rfcnb-priv.h,
	  trunk/backends/ninpaths.c, trunk/innd/rc.c, trunk/nnrpd/perl.c,
	  trunk/nnrpd/post.c, trunk/nnrpd/post.h, trunk/nnrpd/sasl.c,
	  trunk/storage/cnfs/cnfs.c: Clean up gcc 4.0 warnings, which were
	  causing snapshot generation to fail.

	* trunk/innfeed/innfeed.h, trunk/innfeed/misc.c: Remove the
	  CORE_DIRECTORY define in innfeed.h. I'm eventually going to clean
	  up all of these unused side features in innfeed, but this one in
	  particular is causing gcc 4.0 warnings (not legitimate warnings,
	  but it's not worth fighting with gcc over this).

	* trunk/doc/man: Ignore overchan.8.

	* trunk/lib/hash.c: Cast the hash to unsigned char before passing
	  to inn_encode_hex.

2005-07-31  eagle

	* trunk/samples/control.ctl: Update to the current ftp.isc.org
	  version.

2005-07-18  eagle

	* trunk/doc/pod/nnrpd.pod: -p instead of -P to specify a port in
	  the default port description.

2005-07-09  eagle

	* trunk/TODO: Add the TLS rewrite, update the status of the
	  overview API conversion.

	* trunk/innfeed/main.c, trunk/innfeed/misc.c, trunk/innfeed/misc.h,
	  trunk/innfeed/tape.c: Use concatpath instead of buildFilename.

	* trunk/lib/concat.c, trunk/tests/lib/concat-t.c: Let the first
	  argument to concatpath be NULL.

2005-07-05  eagle

	* trunk/innd/art.c: When logipaddr is set, we also need the Path
	  header in order to be able to log a reject.

	* trunk/MANIFEST, trunk/include/inn/overview.h, trunk/innd/art.c,
	  trunk/storage/buffindexed/buffindexed.c,
	  trunk/storage/buffindexed/buffindexed.h, trunk/storage/ov.c,
	  trunk/storage/ovdb/ovdb.c, trunk/storage/ovdb/ovdb.h,
	  trunk/storage/overview.c, trunk/storage/ovinterface.h,
	  trunk/storage/tradindexed/tdx-data.c,
	  trunk/storage/tradindexed/tdx-private.h,
	  trunk/storage/tradindexed/tradindexed.c,
	  trunk/storage/tradindexed/tradindexed.h,
	  trunk/tests/data/articles/xref, trunk/tests/overview/api-t.c,
	  trunk/tests/overview/xref-t.c: Add an overview_cancel (which
	  takes group and article number) and overview_cancel_xref (which
	  takes a token and retrieves the Xref header from the article to
	  find groups and article numbers) interfaces to the new overview
	  API.
	  
	  Change the underlying cancel method of overview backends to take
	  a group and article number rather than a token, since an overview
	  backend is never going to know what to do with a token.
	  
	  Modify OVcancel, copying the new overview_cancel_xref
	  implementation, to retrieve the article and parse the Xref header
	  to find groups and article numbers and then call the cancel
	  method for each pair.
	  
	  Implement the new cancel method for tradindexed. buffindexed and
	  ovdb still have stub implementations at this point.
	  
	  Modify innd to cancel the overview data for an article whenever
	  cancelling an article.

	* trunk/innfeed/main.c: Log the configured bind address to
	  innfeed.status, since we had one request for it.

	* trunk/TODO: Note that actsyncd's ftp mode needs to support
	  debugging.

	* trunk/doc/pod/readers.conf.pod: Document that at least one of
	  res, auth, perl_auth, python_auth, or default should be set in
	  any auth group.

	* trunk/innfeed/connection.c: In all of the response handlers that
	  idle the connection if there's nothing left in the queue, don't
	  idle if there are writes pending. The cases where this could
	  possibly trigger are obscure and involve the remote peer doing
	  evil things, but the rest of the code handles it correctly and we
	  were still seeing assertion failures, indicating that evil may be
	  happening.
	  
	  In issueStreamingCommands, make certain that there are no pending
	  writes before idling the connection.
	  
	  Add the code to ihaveBodyDone that was already in
	  commandWriteDone to idle the connection if the queue is empty in
	  case we'd had to defer the idle in the response handler due to an
	  unfinished write.
	  
	  Whenever doSomeWrites is called with writes still pending, add a
	  work callback to do the write at the next opportunity. This
	  should eliminate a temporary connection deadlock state on
	  flushing, where the response to the IHAVE body arrived before we
	  finished writing it. Before, doSomeWrites would have failed to
	  call issueQUIT because writes were still pending, and then after
	  the writes complete, there's no code to go back and issue it
	  until the read timeout expires.

2005-07-04  eagle

	* trunk/doc/man/innfeed.1, trunk/doc/pod/ctlinnd.pod: Document
	  ctlinnd flush as the recommended way of cleanly shutting down and
	  respawning innfeed.

	* trunk/doc/man/innfeed.conf.5: Clarify that the SIGHUP re-read and
	  bindaddress changes won't affect existing connections.

	* trunk/TODO: Add innfeed's bindaddress as a peer block parameter.

	* trunk/TODO: Remove various things that have either been done or
	  that no longer look like good ideas.

	* trunk/MANIFEST, trunk/doc/man/makeactive.8: This was just a "this
	  command is obsolete" placeholder that can go now.

	* trunk/MANIFEST, trunk/doc/man/overchan.8, trunk/doc/pod/Makefile,
	  trunk/doc/pod/overchan.pod: Convert the overchan man page to POD.

	* trunk/MANIFEST, trunk/backends/overchan.c,
	  trunk/tests/overview/overchan.t: Convert overchan to the new
	  overview API and clean up the code quite a bit in the process. Be
	  more careful about parsing the input data. Add a basic test
	  suite.

	* trunk/tests/data/etc/inn-tdx.conf: Fix the initial comment and
	  set useoverchan since we're using this config to test overchan as
	  well.

	* trunk/doc/pod/tdx-util.pod, trunk/storage/tradindexed/tdx-util.c:
	  Add some more functions that are useful for the test suite and
	  may be useful in practice as well.
	  
	  -c creates a new newsgroup in the overview database. -f has also
	  been added to specify the group flag.
	  
	  -O dumps the database in the same format as overchan expects for
	  input, rather than in the format expected by a news client the
	  way that -o does.
	  
	  Also, don't try to setuid to news if INN_TESTSUITE is set in the
	  environment.

	* trunk/tests/data/etc/inn-bfx.conf: Fix the initial comment.

2005-07-03  eagle

	* trunk/backends/archive.c, trunk/backends/batcher.c,
	  trunk/backends/innxmit.c, trunk/frontends/rnews.c,
	  trunk/frontends/sm.c, trunk/include/storage.h, trunk/innd/perl.c,
	  trunk/innd/python.c, trunk/storage/interface.c,
	  trunk/storage/tradindexed/tdx-util.c,
	  trunk/storage/tradspool/tradspool.c,
	  trunk/tests/innd/artparse-t.c: Use wire_to_native and
	  wire_from_native instead of FromWireFmt and ToWireFmt everywhere.

	* trunk/frontends/rnews.c: Maintain and pass around the length of
	  the article and never run strlen on the article. This should fix
	  the truncationproblems rnews was having with articles that
	  contained nul characters.

	* trunk/MANIFEST, trunk/include/inn/wire.h, trunk/lib/wire.c,
	  trunk/tests/data/articles/7, trunk/tests/data/articles/wire-7,
	  trunk/tests/lib/wire-t.c: Add wire_from_native and wire_to_native
	  conversion functions to libinn that will replace the FromWireFmt
	  and ToWireFmt functions currently in libstorage.

	* trunk/tests/authprogs/ident-t.c, trunk/tests/lib/network-t.c: Fix
	  a few warnings that showed up when building without IPv6 support.

	* trunk/frontends/rnews.c: Make unknown NNTP replies equivalent to
	  failure to connect (resulting in a deferral) instead of an
	  article rejection.

	* trunk/frontends/rnews.c, trunk/include/inn/options.h: Remove
	  unneeded variables from rnews, change #if 0 code around short
	  article reads into a comment, and remove DO_RNEWSLOCALCONNECT
	  completely, making it unconditional. There's no reason not to do
	  this any more.

	* trunk/frontends/rnews.c: When we fail to feed articles to the
	  server when unspooling with -U, don't move the articles off into
	  the bad directory. Just leave them in place in the spool
	  directory. Articles that should be rejected aren't handled as
	  failures and the right thing already happens with them, and
	  retrying later is exactly what we want for deferrals and 400
	  errors.

	* trunk/control/pgpverify.in: Import upstream version 1.27, which
	  falls back on pubring.gpg in the default keyring location if
	  trustedkeys.gpg isn't present.

	* trunk/TODO: Remove the CVS to Subversion conversion and some of
	  the code reorganization projects that have already been done.

	* trunk/doc/pod/news.pod: Add missing changes for 2.3.1.

	* trunk/doc/pod/news.pod: Missing =over as well. *sigh*.

	* trunk/doc/pod/news.pod: Missing =back.

	* trunk/doc/pod/news.pod: Merge in all of the changes to stable
	  branches so that the NEWS file is actually comprehensive. Remove
	  entries that were duplicated between major version releases and
	  stable releases now that everything is in the same place. Remove
	  the unhelpful notes that all stable fixes have been included in
	  new major releases (they didn't say what those changes were).
	  Identify 2.5, 2.4, and 2.3 as 2.5.0, 2.4.0, and 2.3.0
	  respectively, since that's what we actually called them.

2005-07-02  eagle

	* trunk/innd/art.c: NULL-terminate GroupPointers when replacing it
	  while doing Xref slaving. Patch from Chris Caputo.

	* trunk, trunk/support/mkmanifest: Ignore snapshot.log.

	* trunk/lib/network.c: Move a variable declaration that's only used
	  for IPv6 support.

	* trunk/Makefile, trunk/authprogs/Makefile,
	  trunk/backends/Makefile, trunk/contrib/Makefile,
	  trunk/control/Makefile, trunk/doc/Makefile,
	  trunk/doc/pod/Makefile, trunk/expire/Makefile,
	  trunk/frontends/Makefile, trunk/history/Makefile,
	  trunk/include/Makefile, trunk/innd/Makefile,
	  trunk/innfeed/Makefile, trunk/lib/Makefile, trunk/nnrpd/Makefile,
	  trunk/samples/Makefile, trunk/scripts/Makefile,
	  trunk/site/Makefile, trunk/storage/Makefile,
	  trunk/tests/Makefile: Build system fixes around maintclean and
	  generated files. The all target will now also update any
	  POD-generated files or other files that ship with the
	  distribution, and we'll rely on the timestamps created by the
	  make dist process to not cause pod2man to run for regular users.
	  maintclean now removes every generated file in the tree and
	  returns everything to a virgin svn checkout, checked with svn
	  status --no-ignore. Fix error detection on make distclean as
	  well.

2005-06-20  eagle

	* trunk/nnrpd/nnrpd.h: ARTreadschema is no more.

	* trunk/storage/overdata.c: Free resources properly in
	  overview_extra_fields. Patch from Chris Caputo.

	* trunk/history/hisv6/hisv6.c: Pass HIS_CREAT to hisv6_new when
	  opening it for expiration. This fixes expire failing to create a
	  new history file and also addresses a long- standing problem
	  where rerunning expire after a failure would cause tons of
	  duplicate history lines. Patch from Chris Caputo.

2005-06-13  eagle

	* trunk/MANIFEST, trunk/include/inn/overview.h,
	  trunk/storage/overview.c, trunk/support/mkmanifest,
	  trunk/tests/Makefile, trunk/tests/TESTS,
	  trunk/tests/data/overview/xref, trunk/tests/overview,
	  trunk/tests/overview/xref-t.c: Add a function to the new overview
	  API to store overview data based on an Xref string (but require
	  that the string be passed separately, unlike the existing API).

	* trunk/tests/lib/network-t.c: Fix some bogosities with test
	  numbering.

	* trunk/tests/overview/api-t.c, trunk/tests/overview/overview-t.c:
	  Remove code for finding the right working directory that's no
	  longer relevant.

	* trunk/tests/overview/api-t.c: Update comments to be a bit more
	  accurate.

	* trunk/MANIFEST, trunk/support/mkmanifest: Manifest updates for
	  recent additions, removals, and moves.

	* trunk/MANIFEST, trunk/innd/README: Add the beginnings of innd
	  internals documentation.

	* trunk/nnrpd/perm.c: Call network_addr_match instead of doing the
	  work directly. Also take advantage of uwildmat's internal support
	  of !.

	* trunk/include/inn/network.h, trunk/lib/network.c,
	  trunk/tests/lib/network-t.c: Add network_addr_match to compare
	  the textual representations of two addresses, taking into account
	  an optional mask. This will be used in nnrpd for permission
	  matching.

2005-06-12  eagle

	* trunk/include/inn/network.h, trunk/innd/chan.c, trunk/innd/rc.c,
	  trunk/innd/status.c, trunk/lib/network.c, trunk/nnrpd/nnrpd.c,
	  trunk/tests/lib/network-t.c: Rename network_sprint_sockaddr to
	  network_sockaddr_sprint for general consistency.

	* trunk/include/libinn.h, trunk/lib/Makefile, trunk/lib/sockaddr.c:
	  Remove sprint_sockaddr and make_sin; they're no longer used.

	* trunk/nnrpd/nnrpd.c: Completely rewrite the code that gets the
	  client's and server's identity on connection. Use getnameinfo
	  unconditionally and use the new network_sprint_sockaddr,
	  network_sockaddr_port, and network_sockaddr_equal functions to
	  make the code far easier to read.
	  
	  Do some conversion of syslog calls to notice/warn calls too while
	  I'm here.

	* trunk/innd/rc.c, trunk/innd/status.c: Use network_sprint_sockaddr
	  instead of sprint_sockaddr and avoid make_sin in favor of just
	  using getaddrinfo. It's a bit more cumbersome, but it saves
	  creating another utility function.

	* trunk/include/inn/network.h, trunk/lib/network.c,
	  trunk/tests/lib/network-t.c: Add network_sockaddr_port to get the
	  port number from a sockaddr.

	* trunk/include/portable/socket.h: If configure set
	  HAVE_BROKEN_IN6_ARE_ADDR_EQUAL, undefine the system
	  IN6_ARE_ADDR_EQUAL macro and replace it with one that works.

	* trunk/include/inn/network.h, trunk/lib/network.c,
	  trunk/tests/lib/network-t.c: Add network_sockaddr_equal to
	  compare the addresses of two sockaddrs, handling such thing as
	  IPv6 addresses that are mapped IPv4. This will be used in nnrpd
	  when checking reverse name resolution.

	* trunk/MANIFEST, trunk/innd/chan.c, trunk/innd/innd.h,
	  trunk/innd/nc.c, trunk/innd/rc.c, trunk/tests/Makefile,
	  trunk/tests/TESTS, trunk/tests/innd,
	  trunk/tests/innd/artparse-t.c, trunk/tests/innd/chan-t.c: Go
	  through innd/chan.c thoroughly, since I needed to take some time
	  to learn exactly how it worked anyway. Reformat all of the code,
	  collect all of the global variables into a single struct, and
	  break apart some excessively long functions into multiple
	  functions. The code doesn't wander way off to the side any more.
	  
	  In the process, clean up and simplify a few things. Resizing the
	  input buffer is now a separate function rather than being
	  repeated three times. There is now a single facility for handling
	  prioritized channels that is used for the control channel and the
	  remconn channels. The remconn channel is always prioritized now;
	  there is no longer a hidden #define that can be changed. Always
	  process at least four channels, instead of three, so that the
	  control channel and two remconn channels cannot starve the rest
	  of innd.
	  
	  Add a fairly simple test suite for the channel handling portion
	  of innd, as a sanity check and a base to expand upon later.

	* trunk/lib/network.c, trunk/tests/lib/network-t.c: Teach
	  network_sprint_sockaddr to deal with IPv6 mapped IPv4 addresses.

	* trunk/include/inn/network.h, trunk/lib/network.c,
	  trunk/tests/lib/network-t.c: Add a network_sprint_sockaddr
	  function that's thread-safe and uses inet_ntop and will
	  eventually replace sprint_sockaddr.

	* trunk/MANIFEST, trunk/configure.ac,
	  trunk/include/portable/socket.h, trunk/lib/inet_ntop.c,
	  trunk/tests/Makefile, trunk/tests/TESTS, trunk/tests/lib,
	  trunk/tests/lib/inet_ntop-t.c: Add a replacement inet_ntop
	  function for platforms that don't have it.

2005-06-11  eagle

	* trunk/innfeed/connection.c, trunk/innfeed/host.c: Let getaddrinfo
	  fill in the port number for outgoing connections, and use
	  network_client_create to deal with the source address. Removes
	  all the code conditional on HAVE_INET6 in innfeed; IPv4 and IPv6
	  now use the same code path everywhere.

	* trunk/include/inn/network.h, trunk/lib/network.c,
	  trunk/tests/lib/network-t.c: On second thought, rather than
	  providing a network_connect_sockaddr, what's really needed is a
	  socket creation function that does all the setup (including
	  setting the bind address as needed) and then returns the file
	  descriptor so that the caller can do their own non-blocking
	  connect. Change the implementation to do that instead.

	* trunk/include/inn/network.h, trunk/lib/network.c,
	  trunk/tests/lib/network-t.c: Add network_connect_sockaddr, which
	  will be used in innfeed since it wants fine-grained control over
	  each connection attempt for hosts with multiple IP addresses.

	* trunk/doc/Makefile, trunk/doc/history-innfeed,
	  trunk/innfeed/README: The innfeed README is very out of date at
	  this point, but it still contains useful historical information.
	  Move it into the doc directory and install it as innfeed-history
	  in doc.

	* trunk/doc/pod/news.pod, trunk/nnrpd/post.c: strippath now strips
	  the entire user-supplied Path rather than retaining the last
	  component.

	* trunk/Makefile, trunk/Makefile.global.in,
	  trunk/support/mkversion: Use "prerelease" for direct checkouts
	  rather than "CVS prerelease" now that we're no longer using CVS.

	* trunk/MANIFEST, trunk/innfeed/Makefile,
	  trunk/innfeed/innfeed-convcfg.in: The configuration file that
	  innfeed-convcfg used to convert is now so old that this script
	  isn't relevant to anything.

	* trunk/innfeed/Makefile, trunk/innfeed/host.c,
	  trunk/innfeed/main.c, trunk/scripts/innreport_inn.pm: Convert
	  innfeed to use the standard inn/version.h file rather than
	  building its own separate version string.

	* trunk/innfeed/Makefile: Don't remove the bison parser on make
	  distclean.

	* trunk/nnrpd/perm.c: Add back in the variables used with DO_PERL
	  and DO_PYTHON, but only in the blocks those definitions make
	  active.

	* trunk/MANIFEST, trunk/Makefile, trunk/support/mkmanifest,
	  trunk/support/mksnapshot: Add support/mksnapshot to generate a
	  snapshot of the current tree after making sure it compiles and
	  passes the automated test suite.

	* trunk/MANIFEST: Include the generated method interfaces in the
	  distribution.

	* trunk/innfeed/configfile.l: Prototype various accessor functions
	  generated by flex to avoid warnings.

	* trunk/MANIFEST: Include the pre-built innfeed config parser in
	  the distribution.

	* trunk/nnrpd/perm.c: Missed some unused variables in the external
	  authenticator rewrite.

	* trunk/lib/dbz.c: Cast file length to off_t before comparing to
	  st_size in case off_t is larger.

	* trunk/.cvsignore, trunk/authprogs/.cvsignore,
	  trunk/authprogs/smbval/.cvsignore, trunk/backends/.cvsignore,
	  trunk/contrib/.cvsignore, trunk/control/.cvsignore,
	  trunk/doc/man/.cvsignore, trunk/expire/.cvsignore,
	  trunk/frontends/.cvsignore, trunk/history/.cvsignore,
	  trunk/history/hisv6/.cvsignore, trunk/include/.cvsignore,
	  trunk/include/inn/.cvsignore, trunk/innd/.cvsignore,
	  trunk/innfeed/.cvsignore, trunk/lib/.cvsignore,
	  trunk/nnrpd/.cvsignore, trunk/samples/.cvsignore,
	  trunk/scripts/.cvsignore, trunk/site/.cvsignore,
	  trunk/storage/.cvsignore, trunk/storage/buffindexed/.cvsignore,
	  trunk/storage/cnfs/.cvsignore, trunk/storage/ovdb/.cvsignore,
	  trunk/storage/timecaf/.cvsignore,
	  trunk/storage/timehash/.cvsignore,
	  trunk/storage/tradindexed/.cvsignore,
	  trunk/storage/tradspool/.cvsignore,
	  trunk/storage/trash/.cvsignore, trunk/support/.cvsignore,
	  trunk/tests/.cvsignore, trunk/tests/authprogs/.cvsignore,
	  trunk/tests/clients/.cvsignore, trunk/tests/innd/.cvsignore,
	  trunk/tests/lib/.cvsignore, trunk/tests/nnrpd/.cvsignore,
	  trunk/tests/overview/.cvsignore, trunk/tests/util/.cvsignore: We
	  don't need .cvsignore files any more.

	* trunk/MANIFEST: Fix remaining missing files and other
	  inconsistencies.

	* trunk/authprogs/pam.conf.example, trunk/doc/man,
	  trunk/doc/man/actsyncd.8, trunk/doc/man/parsedate.3,
	  trunk/doc/man/pgpverify.8, trunk/doc/man/putman.sh,
	  trunk/doc/pod/Makefile, trunk/doc/pod/sasl.conf.pod,
	  trunk/lib/gettime.c, trunk/lib/version.c,
	  trunk/nnrpd/sasl_config.c, trunk/nnrpd/sasl_config.h,
	  trunk/samples/sasl.conf.in, trunk/tests/authprogs/passwd,
	  trunk/tests/lib/articles, trunk/tests/lib/config,
	  trunk/tests/overview/data, trunk/tests/overview/etc,
	  trunk/tests/overview/munge-data, trunk/tests/storage/articles,
	  trunk/tests/storage/db, trunk/tests/storage/etc,
	  trunk/tests/storage/overview, trunk/tests/util/upgrade: Remove a
	  bunch of files that had previously been removed in CVS, but which
	  cvs2svn had gotten confused about.

	* trunk/support/mkmanifest: Redo how this works. Add a list of all
	  the generated files that should be ignored when creating the
	  manifest, rather than parsing .cvsignore files, since the list of
	  ignored files for the manifest doesn't match the list of files
	  the version control system ignores. I'm not positive this will be
	  the easiest system to maintain going forward -- we might have to
	  invert the sense of the check -- but it works for now.

2005-06-08  eagle

	* trunk/Makefile: Add a snapshot target that will be used by the
	  new snapshot script.

	* trunk, trunk/doc, trunk/doc/man, trunk/history, trunk/innfeed,
	  trunk/storage: Ignore the generated files that are no longer in
	  Subversion.

	* trunk/doc/man/send-uucp.8: Another generated man page.

	* trunk/innfeed/config_l.c: Remove generated file.

	* trunk/include/Makefile: Add an empty bootstrap target.

	* trunk/Makefile: CLEANDIRS doesn't need to contain include twice.

	* trunk/BOOTSTRAP, trunk/HACKING, trunk/INSTALL, trunk/Makefile,
	  trunk/NEWS, trunk/README, trunk/authprogs/Makefile,
	  trunk/backends/Makefile, trunk/control/Makefile,
	  trunk/doc/Makefile, trunk/doc/checklist, trunk/doc/external-auth,
	  trunk/doc/hook-perl, trunk/doc/hook-python,
	  trunk/doc/man/active.5, trunk/doc/man/active.times.5,
	  trunk/doc/man/actsync.8, trunk/doc/man/archive.8,
	  trunk/doc/man/auth_krb5.8, trunk/doc/man/auth_smb.8,
	  trunk/doc/man/batcher.8, trunk/doc/man/buffchan.8,
	  trunk/doc/man/buffindexed.conf.5, trunk/doc/man/ckpasswd.8,
	  trunk/doc/man/control.ctl.5, trunk/doc/man/convdate.1,
	  trunk/doc/man/ctlinnd.8, trunk/doc/man/cycbuff.conf.5,
	  trunk/doc/man/distrib.pats.5, trunk/doc/man/domain.8,
	  trunk/doc/man/expire.ctl.5, trunk/doc/man/expireover.8,
	  trunk/doc/man/fastrm.1, trunk/doc/man/getlist.1,
	  trunk/doc/man/grephistory.1, trunk/doc/man/ident.8,
	  trunk/doc/man/inews.1, trunk/doc/man/inn.conf.5,
	  trunk/doc/man/innbind.8, trunk/doc/man/innconfval.1,
	  trunk/doc/man/innd.8, trunk/doc/man/inndf.8,
	  trunk/doc/man/innmail.1, trunk/doc/man/innupgrade.8,
	  trunk/doc/man/libauth.3, trunk/doc/man/libinnhist.3,
	  trunk/doc/man/list.3, trunk/doc/man/mailpost.8,
	  trunk/doc/man/makehistory.8, trunk/doc/man/moderators.5,
	  trunk/doc/man/motd.news.5, trunk/doc/man/newsfeeds.5,
	  trunk/doc/man/ninpaths.8, trunk/doc/man/nnrpd.8,
	  trunk/doc/man/ovdb.5, trunk/doc/man/ovdb_init.8,
	  trunk/doc/man/ovdb_monitor.8, trunk/doc/man/ovdb_server.8,
	  trunk/doc/man/ovdb_stat.8, trunk/doc/man/passwd.nntp.5,
	  trunk/doc/man/perl-nocem.8, trunk/doc/man/pgpverify.1,
	  trunk/doc/man/qio.3, trunk/doc/man/radius.8,
	  trunk/doc/man/radius.conf.5, trunk/doc/man/rc.news.8,
	  trunk/doc/man/readers.conf.5, trunk/doc/man/rnews.1,
	  trunk/doc/man/sasl.conf.5, trunk/doc/man/sendinpaths.8,
	  trunk/doc/man/simpleftp.1, trunk/doc/man/sm.1,
	  trunk/doc/man/subscriptions.5, trunk/doc/man/tdx-util.8,
	  trunk/doc/man/tinyleaf.8, trunk/doc/man/tst.3,
	  trunk/doc/man/uwildmat.3, trunk/doc/pod/Makefile,
	  trunk/expire/Makefile, trunk/frontends/Makefile,
	  trunk/history/Make.methods, trunk/history/Makefile,
	  trunk/innd/Makefile, trunk/innfeed/Makefile, trunk/lib/Makefile,
	  trunk/nnrpd/Makefile, trunk/samples/Makefile,
	  trunk/scripts/Makefile, trunk/site/Makefile,
	  trunk/storage/Make.methods, trunk/storage/Makefile,
	  trunk/support/mkmanifest: First pass at removing all generated
	  files from Subversion in favor of generating them with a
	  post-checkout bootstrap. Added BOOTSTRAP documenting how to do
	  this (and not included in releases). Added a bootstrap target to
	  all of the makefiles that does whatever boostrapping is required
	  in those directories.
	  
	  Update the mkmanifest script to exclude .svn directories.

	* trunk/.cvsignore, trunk/include/.cvsignore: Update these as well
	  for the removal of configure and config.h.in from Subversion,
	  since right now make check-manifest uses .cvsignore. I should
	  probably come up with some other scheme for it.

	* trunk/doc/pod/Makefile: Add a rule for building sasl.conf.5,
	  which was missing before.

	* trunk/Makefile: Remove configure and include/config.h.in on
	  maintclean.

	* trunk, trunk/HACKING, trunk/autogen, trunk/configure,
	  trunk/doc/pod/hacking.pod, trunk/include,
	  trunk/include/config.h.in: Remove configure and config.h.in. Add
	  an autogen script to run Autoconf after a Subversion checkout.
	  Significantly update HACKING, including the new Subversion
	  details, the new autogen details, and lots of other updates to
	  the test suite portions, the error reporting section, and
	  elsewhere.

2005-06-07  eagle

	* trunk/innfeed/article.c, trunk/innfeed/buffer.c,
	  trunk/innfeed/buffer.h: Reference-count the buffers in articles
	  we're sending, since the article holding a reference to them may
	  be deleted before we finish sending the article if the peer sends
	  the rejection message immediately (like Diablo does). Patch from
	  Miquel van Smoorenburg.

	* trunk/authprogs/smbval, trunk/history, trunk/lib, trunk/storage:
	  Also ignore the *.a library files; Subversion doesn't ignore
	  those by default the way that CVS does.

	* trunk/scripts/innreport.in: Remove the ftp.sofaraway.org
	  references, as the FTP site appears to be no more.

	* trunk/storage/cnfs/cnfs.c: Write out a multiple of CNFS_BLOCKSIZE
	  to disk by zero-padding the end of the article. We don't use that
	  data anyway, since we always align the start of articles, and
	  this saves an unnecessary read if CNFS_BLOCKSIZE matches the file
	  system block size (writing a partial block requires a disk read).
	  Patch from Miquel van Smoorenburg.

	* trunk/storage/interface.c: Don't allow storage classes larger
	  than 255; they can't be represented in tokens. Reported by
	  Sebastian Wiesinger.

	* trunk/doc/man/innfeed.1: The batch files now normally contain
	  storage tokens rather than file names. Reported by Todd Olson.

	* trunk/history/hisv6/hisv6.c: Fix hisv6_replace so that it
	  actually works. Open the history file in r+ mode rather than a
	  mode, since otherwise we can't write to arbitrary locations in
	  the file. Fix the length check for the new line, and space-fill
	  the new line at the right offset. Patch from Chris Caputo.

	* trunk/CONTRIBUTORS, trunk/history/hisv6/hisv6-private.h,
	  trunk/history/hisv6/hisv6.c: Calling fseeko or ftello does
	  fflush, at least on Linux, which meant that we were flushing the
	  history file after every write and not gaining the advantage of
	  stdio buffering. Stop using fseeko/ftello in favor of using an
	  internally maintained offset.
	  
	  This breaks multiple processes writing to the history file at the
	  same time, but in practice we don't support that right now
	  anyway. We save a significant number of write and seek syscalls
	  this way.
	  
	  Patch from Chris Caputo.

	* trunk/doc/man/inn.conf.5, trunk/doc/pod/inn.conf.pod,
	  trunk/nnrpd/nnrpd.c: Setting timer to 0 in inn.conf should also
	  disable the timing support in nnrpd.

2005-06-06  eagle

	* trunk/nnrpd/article.c: GetHeader was giving up a bit short of the
	  end of the article due to using the same limit both for searching
	  for the header and for searching for the end of the header. Use
	  separate limits instead. Patch from Chris Caputo.

	* trunk/lib/dbz.c: Fix the length specification for madvise in
	  getcore. The incorrect value was causing it to pessimize things
	  rather than optimize. Also factor out the file length calculation
	  to a separate variable rather than constantly repeating the same
	  multiplication. Patch from Chris Caputo.

	* trunk/lib/parsedate.y: parsedate has been phased out in favor of
	  date.c, but this file was still hanging around (at least from
	  cvs2svn's perspective).

	* trunk/tests/data/config/errors,
	  trunk/tests/data/config/line-endings,
	  trunk/tests/data/config/warnings: Restore CRLF line endings and
	  other stray CRs lost in the Subversion conversion.

	* trunk/tests/data/articles/4, trunk/tests/data/articles/5,
	  trunk/tests/data/articles/bad-msgid,
	  trunk/tests/data/articles/wire-no-body,
	  trunk/tests/data/articles/wire-strange,
	  trunk/tests/data/articles/wire-truncated: Restore the CRLF line
	  endings and other stray CRs lost in the Subversion conversion.

	* trunk/innd/tinyleaf.c: Send notice, warn, and die messages to
	  syslog rather than to standard error, since inetd sends standard
	  error to the network connection.

2005-05-25  rra

	* trunk/tests/lib/snprintf-t.c: Add additional tests for %s with
	  NULL and floating point numbers that didn't work properly
	  previously.

	* trunk/lib/snprintf.c: Add various patches from Hrvoje Niksic that
	  improve floating point and fix various other bugs.

2005-04-16  rra

	* trunk/lib/snprintf.c: Add miscellaneous fixes pointed out by
	  Hrvoje Niksic.

	* trunk/innd/tinyleaf.c: Try to unlink the file left behind by a
	  failed article write (idea from Christoph Biedl). Use the new
	  nntp_send_line_noflush API, since just using printf won't work
	  any more; the nntp library now does its own buffering rather than
	  using stdio.

	* trunk/include/inn/nntp.h, trunk/lib/nntp.c: Fix
	  nntp_read_command. Add nntp_send_line_noflush, although I'm still
	  not happy with the API here for handling multiline responses.

2005-04-14  rra

	* trunk/innd/rc.c: Remove the IPv4 case for host lookup and use the
	  IPv6 code everywhere, since we can now rely on getaddrinfo being
	  available even on IPv4 hosts.

	* trunk/tests/lib/network-t.c, trunk/tests/util/innbind-t.c:
	  Compilation and warning fixes for the IPv4-only case.

2005-04-13  rra

	* trunk/tests/lib/getnameinfo-t.c: Test with a bad protocol family.

	* trunk/lib/getaddrinfo.c: Fix a missing comma.

2005-04-12  rra

	* trunk/MANIFEST, trunk/configure, trunk/configure.ac,
	  trunk/include/config.h.in, trunk/include/portable/getaddrinfo.h,
	  trunk/include/portable/getnameinfo.h,
	  trunk/include/portable/socket.h, trunk/lib/Makefile,
	  trunk/lib/getaddrinfo.c, trunk/lib/getnameinfo.c,
	  trunk/tests/Makefile, trunk/tests/TESTS, trunk/tests/lib,
	  trunk/tests/lib/.cvsignore, trunk/tests/lib/getnameinfo-t.c: Add
	  a replacement for getnameinfo for systems that don't have it.
	  This will let us use getnameinfo without wrapping it in
	  HAVE_INET6 and duplicating code.

	* trunk/lib/getaddrinfo.c: Comment fix.

2005-04-11  rra

	* trunk/innfeed/host.c: We can always use getaddrinfo now, since we
	  have a substitute on hosts that don't have it.

	* trunk/INSTALL, trunk/doc/pod/install.pod: Note that running cron
	  jobs is incompatible, on Solaris, with having a locked account.

	* trunk/INSTALL, trunk/doc/pod/install.pod: Document the configure
	  flags to change the INN user and document the use of the usenet
	  user and --with-news-master.

	* trunk/MANIFEST, trunk/doc/man/ckpasswd.8,
	  trunk/doc/man/readers.conf.5, trunk/doc/pod/ckpasswd.pod,
	  trunk/doc/pod/readers.conf.pod: Move the documentation for PAM
	  configuration with ckpasswd into its man page and remove the (not
	  incredibly helpful) example file. Add more cross-references to
	  ckpasswd to the readers.conf man page.

	* trunk/nnrpd/post.c: If nnrpdauthsender is set and the user
	  identity assigned is empty, don't use UNKNOWN@hostname; instead,
	  strip the Sender header completely as the documentation says.

	* trunk/doc/man/readers.conf.5, trunk/doc/pod/readers.conf.pod:
	  Note that the user identity is also used by nnrpdauthsender.

	* trunk/doc/man/inn.conf.5, trunk/doc/pod/inn.conf.pod: Typo fix.

	* trunk/doc/man/expire.ctl.5, trunk/doc/pod/expire.ctl.pod: Improve
	  the documentation of the X flag and try to clarify that
	  expiration rules are applied to newsgroups one carries, not the
	  Newsgroups header of articles.

	* trunk/doc/man/nnrpd.8, trunk/doc/pod/nnrpd.pod,
	  trunk/nnrpd/nnrpd.c: Looks like -R (force read-only) hasn't done
	  anything in quite a while. Since no one has complained, just
	  remove the option rather than trying to fix it.

	* trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h: Eliminate a few more
	  write-only variables.

	* trunk/nnrpd/article.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h:
	  It's kind of silly to have our own copy of NNTP_ACCESS.

	* trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h: Remove INADDR. Call
	  things what they really are rather than using typedefs. Also
	  remove the setting of INADDR_LOOPBACK, since portable/socket.h
	  takes care of that.

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.h: Resize by 4KB at a
	  time when reading posts rather than 1KB. (I can hardly wait until
	  I can use the new NNTP library for all this stuff.) Delete some
	  more write-only constants.

	* trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h, trunk/nnrpd/perl.c:
	  Remove the write-only LogName variable.

	* trunk/NEWS, trunk/doc/man/nnrpd.8, trunk/doc/pod/news.pod,
	  trunk/doc/pod/nnrpd.pod, trunk/nnrpd/nnrpd.c: Drop all of the
	  ugly user switching and code for handling the -g option from
	  nnrpd. If people need special permissions for ckpasswd -s, they
	  now need to set up ckpasswd accordingly, as described in the man
	  page. nnrpd no longer looks at the ownership of pathrun or other
	  strange things and just switches to the news user if run as root.
	  Since it now uses innbind, it can do this even in daemon mode
	  before binding to a port.

	* trunk/TODO: Add a note about Xref slave without a complete group
	  list.

	* trunk/include/Makefile: Allow make warnings.

	* trunk/INSTALL, trunk/doc/pod/install.pod: Add more information
	  about software dependencies and tips for building against shared
	  libraries.

	* trunk/TODO: Add a note about limiting auth blocks to particular
	  users.

	* trunk/nnrpd/auth-ext.c: More correctly handle read errors from
	  external authenticators.

	* trunk/MANIFEST, trunk/nnrpd/Makefile, trunk/nnrpd/auth-ext.c,
	  trunk/nnrpd/nnrpd.h, trunk/nnrpd/perm.c, trunk/tests/Makefile,
	  trunk/tests/TESTS, trunk/tests/libtest.c, trunk/tests/nnrpd,
	  trunk/tests/nnrpd/.cvsignore, trunk/tests/nnrpd/auth-ext-t.c,
	  trunk/tests/nnrpd/auth-test: Completely rewrite the interface
	  between nnrpd and external auth programs, cleaning it up
	  considerably and isolating it so that it's easier to test. Deal
	  correctly with a whole bunch of edge cases that the previous code
	  couldn't deal with. Fix the API to avoid global variables and
	  more static buffers. Add a comprehensive test suite.

	* trunk/include/inn/vector.h, trunk/lib/vector.c,
	  trunk/tests/lib/vector-t.c: Add vector_exec and cvector_exec
	  functions to exec a program, taking its arguments from a vector.

	* trunk/include/portable/alloca.h: Update to the current Autoconf
	  recommended boilerplate.

	* trunk/include/portable/socket.h: Make INET_ADDRSTRLEN and
	  INET6_ADDRSTRLEN available.

	* trunk/nnrpd/article.c, trunk/nnrpd/commands.c,
	  trunk/nnrpd/group.c, trunk/nnrpd/line.c, trunk/nnrpd/list.c,
	  trunk/nnrpd/misc.c, trunk/nnrpd/newnews.c, trunk/nnrpd/nnrpd.c,
	  trunk/nnrpd/nnrpd.h, trunk/nnrpd/perl.c, trunk/nnrpd/perm.c,
	  trunk/nnrpd/post.c, trunk/nnrpd/python.c, trunk/nnrpd/sasl.c,
	  trunk/nnrpd/track.c: Start pulling client information into a
	  struct. This will be painful, but it will make some internal APIs
	  much simpler and will reduce the number of global variables.

	* trunk/nnrpd/perm.c: Remove support for the undocumented header:
	  directive in auth blocks. This just sends more static information
	  on standard input to the authenticators and resolvers, something
	  that none of the existing ones depend on and which is better
	  handled through command-line parameters. Allowing this
	  complicates the running of authenticators and resolvers.

2005-04-10  rra

	* trunk/authprogs/auth_krb5.c, trunk/authprogs/auth_smb.c,
	  trunk/authprogs/ckpasswd.c, trunk/authprogs/domain.c,
	  trunk/authprogs/ident.c, trunk/authprogs/libauth.c,
	  trunk/authprogs/libauth.h, trunk/authprogs/radius.c,
	  trunk/tests/authprogs/ckpasswd.t, trunk/tests/authprogs/domain.t,
	  trunk/tests/authprogs/ident-t.c: Add a function to libauth to
	  print out the user and use it in all of the authenticators and
	  resolvers. Update the test suite to check whitespace as well as
	  content in the output from the resolvers to make sure CRLF is
	  always used. Many of the programs were only using LF before.

	* trunk/MANIFEST, trunk/authprogs/Makefile,
	  trunk/authprogs/ident.c, trunk/authprogs/libauth.c,
	  trunk/authprogs/libauth.h, trunk/tests/Makefile,
	  trunk/tests/TESTS, trunk/tests/authprogs,
	  trunk/tests/authprogs/.cvsignore,
	  trunk/tests/authprogs/ident-t.c: Clean up all the IPv6 cruft in
	  the ident resolver and use the new network library to handle the
	  connection. It turns out that returning the client and server
	  addresses as sockaddrs is not particularly useful, so since this
	  resolver was the main reason that was done, just return the
	  client and local IPs and ports as strings, simplifying the
	  authenticator library. Fix a bug where trailing whitespace after
	  the username returned by the ident responder wasn't stripped. Add
	  a test suite.

	* trunk/tests/util/innbind-t.c: Set SO_REUSEADDR in a few places
	  where it wasn't set already.

	* trunk/frontends/getlist.c: Close down the connection cleanly,
	  just 'cause.

	* trunk/lib/network.c: Comment fixes.

	* trunk/include/inn/network.h, trunk/lib/network.c,
	  trunk/lib/nntp.c, trunk/lib/remopen.c,
	  trunk/tests/lib/network-t.c: Add an optional source address
	  parameter to network_connect, primarily for the use of the ident
	  resolver. Add network_connect_host that takes a host and port
	  instead of an addrinfo struct.

	* trunk/lib/network.c: Allow innconf to be NULL. Assume no source
	  address configuration and always fail if we needed to run
	  innbind.

	* trunk/authprogs/libauth.h: Reformat to match the INN formatting
	  standard, add an include guard, and add C++ compilation
	  protection.

	* trunk/tests/libtest.h: Use the standard include guard for the
	  name of the header.

	* trunk/NEWS, trunk/doc/pod/news.pod: Remove the optimization that
	  answers XHDR Newsgroups and XPAT Newsgroups out of the overview
	  Xref data. It makes things faster, but it breaks the NNTP
	  protocol specification.
	  
	  Add additional news items of interest from the 2.4 series that
	  were also applied to 2.5.

	* branches/STABLE-2_4/NEWS, trunk/nnrpd/article.c: Remove the
	  optimization that answers XHDR Newsgroups and XPAT Newsgroups out
	  of the overview Xref data. It makes things faster, but it breaks
	  the NNTP protocol specification.

	* trunk/include/inn/nntp.h: Wrap declarations in BEGIN_DECLS /
	  END_DECLS.

	* trunk/tests/clients/server-list.in: Use select rather than
	  busy-waiting on the child process. Exit the child process cleanly
	  on SIGTERM to avoid address reusing problems.

	* trunk/MANIFEST, trunk/tests/Makefile, trunk/tests/TESTS,
	  trunk/tests/clients, trunk/tests/clients/.cvsignore,
	  trunk/tests/clients/getlist.t,
	  trunk/tests/clients/server-list.in, trunk/tests/data/db/active,
	  trunk/tests/data/db/active.times,
	  trunk/tests/data/db/distributions,
	  trunk/tests/data/db/newsgroups: Add a test suite for getlist and
	  start putting together an infrastructure for client testing.

	* trunk/tests/lib/confparse-t.c, trunk/tests/lib/date-t.c,
	  trunk/tests/lib/getaddrinfo-t.c, trunk/tests/lib/hashtab-t.c,
	  trunk/tests/lib/network-t.c, trunk/tests/lib/setenv-t.c,
	  trunk/tests/lib/tst-t.c, trunk/tests/util/innbind-t.c: Use the
	  new skip, ok_block, and skip_block functions.

	* trunk/tests/libtest.c, trunk/tests/libtest.h: Take a reason for
	  skipped tests and print that out as well.

	* trunk/tests/TESTS: Add lib/network.

	* trunk/tests/libtest.c, trunk/tests/libtest.h: Add skip to skip a
	  test and ok_block and skip_block to fail or skip a whole block of
	  tests at once.

	* trunk/MANIFEST, trunk/tests/Makefile, trunk/tests/lib,
	  trunk/tests/lib/.cvsignore, trunk/tests/lib/network-t.c: Add
	  tests for lib/network.c.

	* trunk/NEWS, trunk/doc/pod/news.pod: Add a mention of tinyleaf.
	  The Autoconf used is now 2.59 not 2.57.

	* trunk/MANIFEST: Add tinyleaf.

	* trunk/doc/man/Makefile, trunk/doc/man/tinyleaf.8,
	  trunk/doc/pod/Makefile, trunk/doc/pod/tinyleaf.pod, trunk/innd,
	  trunk/innd/.cvsignore, trunk/innd/Makefile,
	  trunk/innd/tinyleaf.c: Add tinyleaf, the simplest possible
	  transit news server.

	* trunk/MANIFEST, trunk/frontends/innconfval.c,
	  trunk/include/libinn.h, trunk/innd/nc.c, trunk/innd/status.c,
	  trunk/lib/Makefile, trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c:
	  Eliminate the inn_version* variables in libinn in favor of using
	  the compile-time constants in include/inn/version.h. Not only
	  does this eliminate a redundant location for the same information
	  but it produces more accurate results; now the version strings
	  will be fixed at compile time rather than changing based on what
	  shared libinn library is used.

	* trunk/lib/xmalloc.c: For the xmalloc_handler, avoid the _t
	  extension (reserved by POSIX). Use _type instead.

	* trunk/include/libinn.h: For the xmalloc_handler, avoid the _t
	  extension (reserved by POSIX). Use _type instead.

	* trunk/frontends/getlist.c, trunk/include/inn/nntp.h,
	  trunk/lib/nntp.c: Change the NNTP library API to take the read
	  timeout as an argument to the constructor rather than an argument
	  to every single read call, since it usually won't change for a
	  given program or will change only rarely. Add a function to
	  change the current read timeout. Adjust callers accordingly.

	* trunk/lib/hash.c: Use the new inn_encode_hex and inn_decode_hex
	  functions.

	* trunk/MANIFEST, trunk/include/inn/utility.h, trunk/lib/Makefile,
	  trunk/lib/hex.c, trunk/tests/Makefile, trunk/tests/TESTS,
	  trunk/tests/lib, trunk/tests/lib/.cvsignore,
	  trunk/tests/lib/hex-t.c: Add library functions for converting
	  data to hex and back, pulling those functions out of lib/hash.c
	  and nailing down the input and output properties better. These
	  may also be useful for debugging elsewhere, plus the Hash API
	  needs to eventually move farther inside the history API but these
	  functions will still be useful.
	  
	  In the process, make a start on include/inn/utility.h, which will
	  eventually pick up the rest of libinn.h.

	* trunk/include/inn/wire.h: Include sys/types.h for size_t.

	* trunk/tests/lib/hash-t.c: Add some HashToText and TextToHash
	  tests.

	* trunk/TODO: Reorder the 2.5 goals and add a few new items.

	* trunk/nnrpd/perm.c: When Perl and Python were both enabled, nnrpd
	  was attempting to parse Python access hooks as Perl scripts.
	  Fixed by checking the access type. Reported by Ken Bass.

	* trunk/INSTALL, trunk/doc/pod/install.pod: Add NetBSD to the list
	  of confirmed platforms.

	* trunk/control/perl-nocem.in: Add a SYNOPSIS to the documentation,
	  change the existing SYNOPSIS section to DESCRIPTION, and reformat
	  a little bit.

	* trunk/lib/sendpass.c: If called with a NULL server argument and
	  innconf->server not set, set errno to something vaguely
	  appropriate before returning since some callers use errno in
	  error reporting.

2005-04-07  rra

	* trunk/doc/man/expire.ctl.5, trunk/doc/pod/expire.ctl.pod,
	  trunk/samples/expire.ctl: Change the terminology to
	  <min>:<default>:<max> from <keep> and <purge>.

2005-03-17  vinocur

	* trunk/authprogs/domain.c, trunk/doc/external-auth,
	  trunk/doc/pod/external-auth.pod: Fix inconsistencies between code
	  and documentation about newline handling for external-auth.
	  Reported by Todd Olson.

2005-03-16  hkehoe

	* trunk/storage/tradindexed/tradindexed.c: tradindexed_add should
	  return "true" if the group doesn't exist, like the other OV
	  methods

2005-03-05  vinocur

	* trunk/doc/hook-python, trunk/doc/man/newsfeeds.5,
	  trunk/doc/pod/hook-python.pod, trunk/doc/pod/newsfeeds.pod:
	  Correct typos.

	* branches/STABLE-2_4/doc/hook-python,
	  branches/STABLE-2_4/doc/man/newsfeeds.5,
	  branches/STABLE-2_4/doc/pod/hook-python.pod,
	  branches/STABLE-2_4/doc/pod/newsfeeds.pod, trunk/doc/hook-perl:
	  Correct typos.

2005-02-03  rra

	* trunk/m4/int32.m4: Fix initial comment to be more accurate.

2005-01-18  rra

	* trunk/control/pgpverify.in: Return the correct exit status in the
	  event of known failures instead of always returning 255. Reported
	  by Awais Riaz.

2005-01-09  rra

	* trunk/include/inn/md5.h: Fix a miswrapped hyphen in the license
	  statement.

	* trunk/backends/inndf.c, trunk/tests/util/inndf.t: Switch inndf
	  over to the new overview API.

	* trunk/LICENSE: Add 2005 to copyright.

	* trunk/MANIFEST, trunk/tests/TESTS,
	  trunk/tests/data/etc/inn-bfx.conf,
	  trunk/tests/data/etc/inn-tdx.conf, trunk/tests/util/inndf.t: Add
	  a test suite for inndf.

	* trunk/expire/makehistory.c: Don't require that we be running as
	  the news user if INN_TESTSUITE is set in the environment. This is
	  an idiom that we should be using everywhere.

	* trunk/storage/buffindexed/shmem.c: Only print out the messages
	  about shmem segments created and removed when debugging.

	* trunk/CONTRIBUTORS: Add F. Senault.

	* trunk/doc/man/tdx-util.8, trunk/doc/pod/tdx-util.pod,
	  trunk/storage/tradindexed/tdx-util.c: Add support for article
	  ranges in the -a option to tdx-util. Based on a patch by F.
	  Senault.

2005-01-08  rra

	* trunk/tests/lib/date-t.c: Remove the other ambiguous daylight
	  savings time tests from the regular NNTP date parsing tests and
	  handle them separately. Should correct the test failures on
	  HP-UX, which was using the other interpretation of the ambiguous
	  dates.

2005-01-06  rra

	* trunk/configure, trunk/configure.ac, trunk/include/clibrary.h,
	  trunk/include/config.h.in: Use AC_FUNC_FSEEKO if building with
	  large file support. Otherwise, just define fseeko and ftello to
	  fseek and ftell if fseeko isn't declared (without defining any
	  other special macros).

	* trunk/configure, trunk/configure.ac, trunk/include/clibrary.h,
	  trunk/include/config.h.in: Use AC_FUNC_FSEEKO rather than using
	  AC_REPLACE_FUNCS, and don't check for declarations until after
	  doing so.

	* trunk/nnrpd/nnrpd.c: Add a missing variable declaration for the
	  SASL case.

2004-12-26  rra

	* trunk/MANIFEST, trunk/doc/man/getlist.1, trunk/doc/pod/Makefile,
	  trunk/doc/pod/getlist.pod: Convert the getlist man page to POD.

2004-12-25  rra

	* trunk/MANIFEST, trunk/doc/man/moderators.5,
	  trunk/doc/pod/Makefile, trunk/doc/pod/moderators.pod: Convert the
	  moderators man page to POD.

	* trunk/MANIFEST, trunk/doc/man/rnews.1, trunk/doc/pod/Makefile,
	  trunk/doc/pod/rnews.pod: Convert the rnews documentation to POD
	  and update it.

	* trunk/INSTALL, trunk/doc/pod/install.pod: --enable-uucp-rnews
	  only installs rnews setuid news, not setuid root.

	* trunk/m4/modes.m4: Fix the comment; rnews is never more than
	  setuid news.

	* trunk/TODO: SASL support has been integrated, update the status
	  of alloca support.

	* trunk/LICENSE: Add information about lib/snprintf.c.

	* trunk/LICENSE: The MIT/X Consortium license is no longer less
	  restrictive than INN's license.

2004-12-24  rra

	* trunk/doc/man/inews.1, trunk/doc/pod/inews.pod: NAME, not NEWS.

	* trunk/storage/overview.c: Add the implementation of
	  overview_free_space.

2004-12-23  rra

	* trunk/innfeed/imap_connection.c: Rework imap_sendAuthenticate to
	  avoid warnings when building without SASL.

	* trunk/nnrpd/nnrpd.c: Move an unused variable inside HAVE_SASL.

	* trunk/storage/ovdb/ovdb.c: Constify the stub implementations when
	  BerkeleyDB isn't supported.

	* trunk/backends/mod-active.in: GNU diff wants -U0 rather than -u0
	  these days. This seems to be supported for a while into the past,
	  so let's hope that this doesn't just create other compatibility
	  problems.

	* trunk/MANIFEST: Add various missing files and fix ordering.

	* trunk/MANIFEST, trunk/tests/authprogs/ckpasswd.t,
	  trunk/tests/data, trunk/tests/data/articles,
	  trunk/tests/data/articles/1, trunk/tests/data/articles/2,
	  trunk/tests/data/articles/3, trunk/tests/data/articles/4,
	  trunk/tests/data/articles/5, trunk/tests/data/articles/6,
	  trunk/tests/data/articles/bad-empty,
	  trunk/tests/data/articles/bad-hdr-empty,
	  trunk/tests/data/articles/bad-hdr-nospc,
	  trunk/tests/data/articles/bad-hdr-space,
	  trunk/tests/data/articles/bad-hdr-trunc,
	  trunk/tests/data/articles/bad-long-cont,
	  trunk/tests/data/articles/bad-long-hdr,
	  trunk/tests/data/articles/bad-msgid,
	  trunk/tests/data/articles/bad-no-body,
	  trunk/tests/data/articles/bad-no-header,
	  trunk/tests/data/articles/bad-nul-body,
	  trunk/tests/data/articles/bad-nul-header,
	  trunk/tests/data/articles/bad-subj,
	  trunk/tests/data/articles/wire-no-body,
	  trunk/tests/data/articles/wire-strange,
	  trunk/tests/data/articles/wire-truncated,
	  trunk/tests/data/config, trunk/tests/data/config/errors,
	  trunk/tests/data/config/groups, trunk/tests/data/config/include,
	  trunk/tests/data/config/line-endings,
	  trunk/tests/data/config/lists,
	  trunk/tests/data/config/no-newline, trunk/tests/data/config/null,
	  trunk/tests/data/config/reals, trunk/tests/data/config/recurse,
	  trunk/tests/data/config/simple, trunk/tests/data/config/symlink,
	  trunk/tests/data/config/valid, trunk/tests/data/config/warn-bool,
	  trunk/tests/data/config/warn-int,
	  trunk/tests/data/config/warn-real,
	  trunk/tests/data/config/warn-string,
	  trunk/tests/data/config/warnings, trunk/tests/data/db,
	  trunk/tests/data/db/active, trunk/tests/data/etc,
	  trunk/tests/data/etc/buffindexed.conf,
	  trunk/tests/data/etc/inn.conf, trunk/tests/data/etc/overview.fmt,
	  trunk/tests/data/etc/passwd, trunk/tests/data/etc/storage.conf,
	  trunk/tests/data/overview, trunk/tests/data/overview/1-4,
	  trunk/tests/data/overview/basic, trunk/tests/data/overview/bogus,
	  trunk/tests/data/overview/high-numbered,
	  trunk/tests/data/overview/munge-data,
	  trunk/tests/data/overview/reversed, trunk/tests/data/upgrade,
	  trunk/tests/data/upgrade/inn.conf,
	  trunk/tests/data/upgrade/inn.conf.ok,
	  trunk/tests/data/upgrade/newsfeeds,
	  trunk/tests/data/upgrade/newsfeeds.ok,
	  trunk/tests/data/upgrade/sasl.conf,
	  trunk/tests/innd/artparse-t.c, trunk/tests/lib/confparse-t.c,
	  trunk/tests/lib/innconf-t.c, trunk/tests/lib/wire-t.c,
	  trunk/tests/overview, trunk/tests/overview/.cvsignore,
	  trunk/tests/overview/api-t.c, trunk/tests/overview/overview-t.c,
	  trunk/tests/storage/archive.t, trunk/tests/storage/makehistory.t,
	  trunk/tests/storage/sm.t, trunk/tests/util/innupgrade.t:
	  Reorganize the test directory to put all of the separata test
	  data into its own directory hierarchy. We aren't currently doing
	  much reusing of test data, but we'll do more in the future, and
	  this makes the test directory look a lot cleaner and makes it
	  easier to share things.

	* trunk/MANIFEST, trunk/include/inn/overview.h, trunk/include/ov.h,
	  trunk/storage/Makefile, trunk/storage/overview.c,
	  trunk/tests/Makefile, trunk/tests/TESTS, trunk/tests/overview,
	  trunk/tests/overview/.cvsignore, trunk/tests/overview/api-t.c:
	  Add a new overview API based on prior inn-workers discussion that
	  uses an opaque struct to store state information and that uses
	  structs to pass data in and out (with better data types). The new
	  API currently lives in parallel with the old API and still calls
	  the old internal API to the backend implementations.
	  
	  The next step will be to modify all callers to use the new API,
	  and then modify the overview backend implementations to better
	  suit the new API. Then the old API can be removed.

	* trunk/include/inn/history.h: Include sys/types.h since we depend
	  on size_t.

	* trunk/storage/buffindexed/buffindexed.c,
	  trunk/storage/buffindexed/buffindexed.h, trunk/storage/expire.c,
	  trunk/storage/ov.c, trunk/storage/ovdb/ovdb-private.h,
	  trunk/storage/ovdb/ovdb.c, trunk/storage/ovdb/ovdb.h,
	  trunk/storage/ovinterface.h,
	  trunk/storage/tradindexed/tradindexed.c,
	  trunk/storage/tradindexed/tradindexed.h: Clean up the use of
	  global variables between expire.c and ov.c and declare them
	  extern in ovinterface.h rather than declaring them normally there
	  and duplicating them across multiple object files. Constify the
	  newsgroup name in the overview backend interface, which will help
	  in developing the new overview interface. (Unfortunately, the
	  BerkeleyDB data type then requires casts.)

	* trunk/storage/overdata.c: Include ov.h since it prototypes our
	  functions.

2004-12-22  rra

	* trunk/MANIFEST, trunk/TODO, trunk/backends/buffchan.c,
	  trunk/doc/man/libinn.3, trunk/expire/makehistory.c,
	  trunk/include/libinn.h, trunk/innd/art.c, trunk/innd/cc.c,
	  trunk/innd/chan.c, trunk/innd/innd.c, trunk/innd/innd.h,
	  trunk/innd/nc.c, trunk/innd/proc.c, trunk/innd/site.c,
	  trunk/innd/status.c, trunk/innd/util.c, trunk/innd/wip.c,
	  trunk/lib/Makefile, trunk/lib/genid.c,
	  trunk/storage/tradspool/tradspool.c: Eliminate GetTimeInfo. Just
	  call time() and use time_t when all that the function cares about
	  is seconds. For innd, use gettimeofday and make Now a struct
	  timeval, updating all of the places it's used.

	* trunk/nnrpd/misc.c: Call time() instead of GetTimeInfo for
	  handling posting backoff.

	* trunk/nnrpd/article.c, trunk/nnrpd/group.c, trunk/nnrpd/misc.c,
	  trunk/nnrpd/newnews.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/perl.c,
	  trunk/nnrpd/perm.c, trunk/nnrpd/post.c, trunk/nnrpd/python.c,
	  trunk/nnrpd/sasl.c, trunk/nnrpd/tls.c, trunk/nnrpd/track.c: Fix
	  the formatting of function definitions. Return value and function
	  name on separate lines, opening brace on a line by itself, always
	  use ANSI prototypes.

	* trunk/nnrpd/commands.c: Just call time() directly rather than
	  using GetTimeInfo for the DATE implementation, since we only care
	  about second resolution.

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h:
	  Remove the remnants of the XPATH command; we haven't supported
	  this for a while, but we still had a stub.

	* trunk/nnrpd/commands.c: Use ANSI C prototypes for a few remaining
	  functions and fix some formatting issues.

	* trunk/LICENSE, trunk/MANIFEST, trunk/TODO,
	  trunk/doc/man/Makefile, trunk/doc/man/convdate.1,
	  trunk/doc/man/libinn.3, trunk/doc/pod/convdate.pod,
	  trunk/expire/makehistory.c, trunk/frontends/inews.c,
	  trunk/frontends/sm.c, trunk/include/libinn.h, trunk/innd/art.c,
	  trunk/innfeed/configfile.h, trunk/lib/Makefile,
	  trunk/nnrpd/post.c, trunk/storage/expire.c,
	  trunk/storage/tradspool/tradspool.c: Replace all of the uses of
	  the old parsedate routine with calls to the new
	  parsedate_rfc2822_lax parser, since it now parses everything that
	  the old parser could handle that actually shows up in the wild
	  and is smaller and easier to maintain.

	* trunk/tests/storage/sm.t: The bug that caused the Xref header to
	  contain slashes instead of periods has been fixed, so remove the
	  workaround here.

	* trunk/samples/actsync.cfg: The active file is now gzipped, not
	  compressed.

	* trunk/samples/actsync.ign: Fix the Big Eight listing
	  (humanities.*, not gnu.*).

2004-12-21  rra

	* trunk/nnrpd/Makefile: Use SSL_CPPFLAGS and SASL_CPPFLAGS instead
	  of *_INC.

2004-12-20  rra

	* trunk/configure, trunk/configure.ac, trunk/include/config.h.in,
	  trunk/storage/buffindexed/shmem.c: Add a probe for union semun
	  and use it. Also pick up some additional changes for handling the
	  fseeko/ftello decls.

	* trunk/MANIFEST, trunk/doc/man/inews.1, trunk/doc/pod/Makefile,
	  trunk/doc/pod/inews.pod: Convert the inews documentation to POD
	  and significantly update it, taking out more documentation of
	  things that it no longer does and including more complete
	  documentation of the checks that it performs.

	* trunk/MANIFEST, trunk/doc/man/ctlinnd.8, trunk/doc/pod/Makefile,
	  trunk/doc/pod/ctlinnd.pod: Convert the ctlinnd documentation to
	  POD and clean it up and edit it in the process.

2004-12-19  rra

	* trunk/frontends/inews.c: Use die, not sysdie, if the response
	  from the server isn't what we expect, since errno isn't going to
	  contain anything useful.

	* trunk/configure, trunk/configure.ac, trunk/include/clibrary.h:
	  Check for declarations of fseeko and ftello and declare them if
	  declarations aren't found, to work around glibc's annoying
	  refusal to declare them under a variety of circumstances.

	* trunk/nnrpd/sasl.c: Use an intermediate variable in calls to
	  sasl_getprop to avoid lying to C's type system. (const char **
	  and const void ** are not compatible, even though everyone wishes
	  they were.)

	* trunk/backends/news2mail.in: Use news as the sender, not <news>,
	  as the latter is a sendmailism that sendmail doesn't even need.

	* trunk/doc/man/ctlinnd.8: Document the restriction on the use of
	  changegroup.

	* trunk/frontends/cnfsstat.in, trunk/scripts/innreport_inn.pm:
	  Report CNFS buffer length as a floating point number instead of
	  an integer number of megabytes, and adjust innreport to cope.

	* trunk/scripts/rc.news.in: Close stdout when scheduling innwatch
	  and cnfsstat to run in the future, since otherwise some shells
	  will sit around and wait for sleep to finish. Reported by Felix
	  Klee.

	* trunk/scripts/news.daily.in: Don't automatically enable delayrm
	  whenever expireover is given and whenever overview is enabled.
	  People with pure CNFS systems really don't need to use fastrm.

	* trunk/doc/man/dbz.3: man pages should have only one NAME line.
	  Reported by Eric Raymond.

	* trunk/doc/man/nnrpd.8, trunk/doc/pod/nnrpd.pod: Update the NAME
	  line to something that makes a bit more sense.

	* trunk/doc/man/nnrpd.8, trunk/doc/pod/nnrpd.pod: Add documentation
	  of how to run nnrpd with SSL support.

	* trunk/Makefile: Put the key into a different file than the
	  certificate on make cert.

	* trunk/doc/man/tdx-util.8, trunk/doc/pod/tdx-util.pod: The
	  documentation for -i and -g was reversed relative to what the
	  program actually did. Reported by WATANABE Katsuhiro.

2004-12-19  hkehoe

	* trunk/configure, trunk/m4/berkeleydb.m4: Add 4.3 to the list of
	  BerkeleyDB versions searched for

2004-12-19  rra

	* trunk/MANIFEST, trunk/doc/man/grephistory.1,
	  trunk/doc/pod/Makefile, trunk/doc/pod/grephistory.pod: Convert
	  the grephistory man page to POD and clean up some historic
	  references to article file names. Update the exact string that
	  grephistory prints when it can't find an article.

	* trunk/expire/grephistory.c: Exit with an error status if the
	  message ID wasn't found, for consistency with the man page and
	  previous versions.

	* trunk/CONTRIBUTORS: Add WATANABE Katsuhiro.

	* trunk/tests/storage/makehistory.t: Add tests for running
	  makehistory on a legacy spool without Xref headers in articles
	  that weren't crossposted.

	* trunk/expire/makehistory.c: Don't add an extra Xref: to the
	  overview information when cobbling together an Xref header for an
	  article that doesn't already have one, based on a bug report by
	  WATANABE Katsuhiro. Also fix a bug that caused makehistory to
	  skip processing any articles without Xref headers for which
	  SMprobe to determine the newsgroup name and article number
	  succeeded.

	* trunk/storage/tradspool/tradspool.c: When returning the newsgroup
	  name in response to SMprobe, replace slashes with periods.

	* trunk/authprogs/auth_krb5.c: Define KRB5_DEPRECATED since we use
	  krb5_get_in_tkt_with_password, which is a deprecated interface
	  (with no good replacement).

	* trunk/storage/tradspool/tradspool.c: In tradspool_cancel, free
	  xrefs if the Xref header were present but contained no groups to
	  plug a minor memory leak. Reported by WATANABE Katsuhiro.

2004-12-18  hkehoe

	* trunk/frontends/ovdb_stat.c, trunk/m4/zlib.m4,
	  trunk/storage/ovdb/ovdb-private.h, trunk/storage/ovdb/ovdb.c: Add
	  BerkeleyDB 4.3 support, correct a typo in a comment in zlib.m4,
	  add ncache option to ovdb.conf (still need to update docs for
	  this option)

2004-11-29  rra

	* trunk/samples/control.ctl: Add pgsql.*.

2004-11-16  rra

	* trunk/samples/control.ctl: Add a URL for dfw.*.

2004-11-10  rra

	* trunk/README, trunk/doc/pod/readme.pod: More minor wording
	  changes requested by ISC folks.

	* trunk/README, trunk/doc/pod/readme.pod: Update the ISC's
	  activities.

2004-10-14  rra

	* trunk/nnrpd/group.c: Fix typo in the Authentication required
	  message.

	* trunk/NEWS, trunk/doc/pod/news.pod: Add documentation of the
	  change to the status codes for the GROUP command.

2004-10-12  rra

	* trunk/samples/control.ctl: Update admin group for x-privat.*.

2004-10-02  rra

	* trunk/MANIFEST: Add the files for the alloca replacement.

	* trunk/LICENSE: Add lib/alloca.c to the list of public-domain
	  files.

	* trunk/Makefile.global.in, trunk/configure, trunk/configure.ac,
	  trunk/include/config.h.in, trunk/include/portable/alloca.h,
	  trunk/lib/Makefile, trunk/lib/alloca.c, trunk/nnrpd/nnrpd.c,
	  trunk/nnrpd/tls.c: Add proper alloca support using Doug Gwyn's
	  public domain implementation as a fallback for compilers that
	  don't support it, and switch the SSL code in nnrpd over to using
	  it. Call alloca_free() in the main loop of nnrpd.

2004-10-01  rra

	* trunk/include/inn/buffer.h, trunk/lib/buffer.c, trunk/lib/nntp.c,
	  trunk/tests/lib/buffer-t.c: Use va_copy in buffer_vsprintf, which
	  means we don't have to go through the annoying process of
	  recalling it if it returns false, and which lets it return void
	  just like buffer_sprintf. Modify callers appropriately and add a
	  test suite for buffer_vsprintf.

	* trunk/tests/util/convdate.t: Only pass RFC 2822 dates into
	  convdate when checking.

	* trunk/doc/man/convdate.1, trunk/doc/pod/convdate.pod: convdate
	  now only handles RFC 2822 dates (with lax syntax), not the full
	  range of things that parsedate could previously handle.

	* trunk/expire/convdate.c: Use parsedate_rfc2822_lax instead of
	  parsedate.

	* trunk/storage/ovdb/ovdb.c: Fix warnings.

	* trunk/include/clibrary.h: Provide va_copy.

	* trunk/nnrpd/group.c: We had previously returned 411 (group
	  doesn't exist) if the user didn't have permission to read the
	  group for all cases other than Python dynamic authentication
	  (where we returned 502 for permission denied). I can sort of
	  understand the dubious security mindset behind this choice, but
	  at least when the user isn't already authenticated, this breaks
	  reactive authentication.
	  
	  Instead, if the user is not authenticated, return 480, and if the
	  user is authenticated, return 502. This means that a user can
	  determine that a group exists by probing for it and seeing if
	  they get 411 or 502, but the protocol is cleaner.

	* trunk/support/config.guess, trunk/support/config.sub: Update to
	  upstream versions from 2004-06-24.

	* trunk/HACKING, trunk/doc/pod/hacking.pod: Note that new versions
	  of config.guess, config.sub, and the libtool files can now just
	  be checked in without any special CVS commands, since we no
	  longer have local modifications that we need to preserve.

	* trunk/doc/man/nnrpd.8, trunk/doc/pod/nnrpd.pod: Document that
	  nnrpd creates a PID file when run in daemon mode (-D).

	* trunk/innfeed/connection.c: Be consistent and allow for all
	  responses to IHAVE or TAKETHIS to be sent before we're done
	  sending the article except for successful responses.

	* trunk/contrib/respool.c, trunk/expire/makehistory.c: The argument
	  to SMsetup for SM_RDWR and SM_PREOPEN must be a bool *, not an
	  int *. This makes a difference with some versions of GCC on some
	  platforms.

	* trunk/scripts/innstat.in: Use sed 1d instead of tail +2 since the
	  latter isn't POSIX. Reported by Chris Caputo.

	* trunk/doc/man/incoming.conf.5: Warn that identd callbacks
	  currently don't implement any timeout.

	* trunk/innd/innd.c: Only open the history file during initial
	  startup if the server wasn't throttled on the command line.
	  Reported by John Wehle.

	* trunk/scripts/innreport_inn.pm: Match either nnrpd or nnrpd-ssl
	  when finding nnrpd log lines. Patch from Marco d'Itri.

2004-08-25  rra

	* trunk/samples/innreport.conf.in: Fix an inconsistency between the
	  commented-out html_dir and the commented-out title line. (Debian
	  bug #255324.)

2004-07-20  rra

	* trunk/configure, trunk/configure.ac, trunk/include/config.h.in:
	  fseeko and ftello weren't being checked for correctly; they were
	  added to AC_REPLACE_FUNCS if not found, but HAVE_FSEEKO wasn't
	  being defined properly. (Same for ftello.)

2004-07-20  hkehoe

	* trunk/site/Makefile: Add missing PATH_NNRPACCESS definition

	* trunk/history/hisv6/hisv6.c: Need to #include "inn/innconf.h" to
	  get at the innconf variable.

2004-07-19  hkehoe

	* trunk/frontends/ovdb_server.c: Need to ignore SIGPIPE to prevent
	  possible process death

2004-07-16  rra

	* trunk/innd/art.c: The overview copying loop has two indexes; make
	  sure to advance both of them when unfolding.

2004-07-15  rra

	* trunk/support/mkchangelog: Assume that cvs2cl is on the user's
	  path.

	* trunk/README, trunk/doc/pod/readme.pod: Change a few Internet
	  Software Consortium references to Internet Systems Consortium.

	* trunk/lib/date.c: Update a few comments to reflect the
	  obsolescence of the old parsedate parser.

	* trunk/tests/lib/date-t.c: Test the results of makedate against
	  parsedate_rfc2822, removing the use of parsedate. It's safe to do
	  this since we test parsedate_rfc2822 against known dates
	  separately.

	* trunk/lib/date.c, trunk/tests/lib/date-t.c: Modify
	  parsedate_rfc2822_lax to assume the local time zone if no time
	  zone is given at all, rather than using UTC. (If an unparsable
	  time zone is given, UTC is still assumed.)

	* trunk/scripts/innreport_inn.pm: Add support for the new ctlinnd
	  command logging format.

	* trunk/configure, trunk/configure.ac, trunk/include/config.h.in:
	  Only check for a PAM library if one of pam/pam_appl.h or
	  security/pam_appl.h is found. IRIX has a PAM library but no
	  header libraries, meaning that we don't want to try to link
	  ckpasswd against it.

2004-07-11  rra

	* trunk/innd/Makefile, trunk/nnrpd/Makefile: Shuffle the order of
	  libraries to put Perl and Python first, then SASL and SSL, and
	  then the additional libraries. Not only does this fix a few
	  problems on platforms where linking order matters, but it's much
	  less likely that the path to the Perl library will have some
	  other bum version of another library than vice versa.

2004-07-03  rra

	* trunk/nnrpd/list.c: Always show the SASL: portion in the AUTHINFO
	  line in LIST EXTENSIONS even if there are no supported
	  mechanisms, to match a change in the latest AUTHINFO draft.

	* trunk/lib/innconf.c: The TLS attributes in inn.conf from the SASL
	  contribution were missed in the original commit.

2004-06-29  rra

	* trunk/CONTRIBUTORS, trunk/innfeed/host.c: Fix an error reporting
	  bug when checking the bounds of real values. Reported by Sergey
	  Babitch.

	* trunk/innfeed/main.c: Log the correct new logging level when it
	  is being increased or decreased. Patch from Sergey Babitch.

	* trunk/doc/Makefile: hook-tcl is no more.

2004-06-26  rra

	* trunk/innd/art.c: In ARTparsebody, move past CRLF correctly so
	  that we don't think the LF is always unmatched. Reported by
	  Christophe Wolfhugel.

2004-06-12  hkehoe

	* trunk/Makefile.global.in: Fix to make sure STORAGE_LIBS is
	  assigned properly

	* trunk/INSTALL, trunk/doc/pod/install.pod: Add new compression
	  functionality to ovdb using zlib Remove the paragraph that says
	  ovdb is experimental

	* trunk/Makefile.global.in, trunk/doc/man/ovdb.5,
	  trunk/doc/pod/ovdb.pod, trunk/frontends/ovdb_init.c,
	  trunk/frontends/ovdb_stat.c, trunk/include/config.h.in,
	  trunk/samples/ovdb.conf, trunk/storage/ovdb/ovdb-private.h,
	  trunk/storage/ovdb/ovdb.c: Add new compression functionality to
	  ovdb using zlib

	* trunk/configure, trunk/configure.ac: Add BerkeleyDB 4.2 to search
	  Add zlib test for new compression code in ovdb

	* trunk/m4/zlib.m4: zlib test for new compression code in ovdb

	* trunk/m4/berkeleydb.m4: Add 4.2 to BerkeleyDB search

2004-06-11  rra

	* trunk/innd/cc.c: Argh. Another use of i far later in the routine
	  that parses incoming commands, getting the length of the buffer
	  wrong. Fixed.

	* trunk/innd/art.c: Only call ARTcheckheader when we have the
	  entire header, since otherwise it will mark the header as a
	  duplicate and act as if it wasn't seen at all. I'm still a bit
	  confused about exactly how that code works, but the previous code
	  was definitely wrong. Also be a bit more careful about counting
	  header lines, just because I noticed it (I don't think we
	  actually use that information anywhere).

2004-06-10  hkehoe

	* trunk/lib/qio.c: Avoid infinite loop if st_blksize == 0

	* trunk/expire/makehistory.c: Don't exit if a bad overview line is
	  found, skip over it instead.

	* trunk/tests/lib/qio-t.c: Make sure that buffer_size is always at
	  least as large as QIO_BUFFERSIZE but still a multiple of
	  st_blksize.

	* trunk/lib/qio.c: Make sure that buffer_size is always at least as
	  large as QIO_BUFFERSIZE but still a multiple of st_blksize.

2004-06-10  rra

	* trunk/innd/cc.c: Nul-terminate the command buffer correctly.

2004-06-09  rra

	* trunk/MANIFEST: Updates for SASL support and the innupgrade test
	  suite.

	* trunk/tests/TESTS, trunk/tests/util/innupgrade.t,
	  trunk/tests/util/upgrade, trunk/tests/util/upgrade/inn.conf,
	  trunk/tests/util/upgrade/inn.conf.ok,
	  trunk/tests/util/upgrade/newsfeeds,
	  trunk/tests/util/upgrade/newsfeeds.ok,
	  trunk/tests/util/upgrade/sasl.conf: Add a test suite for
	  innupgrade.

	* trunk/CONTRIBUTORS, trunk/NEWS, trunk/doc/man/Makefile,
	  trunk/doc/man/inn.conf.5, trunk/doc/pod/Makefile,
	  trunk/doc/pod/inn.conf.pod, trunk/doc/pod/news.pod,
	  trunk/include/inn/innconf.h, trunk/include/inn/nntp.h,
	  trunk/include/nntp.h, trunk/nnrpd/Makefile,
	  trunk/nnrpd/article.c, trunk/nnrpd/commands.c,
	  trunk/nnrpd/line.c, trunk/nnrpd/list.c, trunk/nnrpd/misc.c,
	  trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h, trunk/nnrpd/sasl.c,
	  trunk/nnrpd/tls.c, trunk/nnrpd/tls.h, trunk/samples/Makefile,
	  trunk/scripts/innupgrade.in, trunk/site/Makefile: Implementation
	  of SASL authentication support for nnrpd from Ken Murchison.
	  
	  As part of this support, the old method for handling TLS
	  configuration in nnrpd had to be changed, since sasl_config.c was
	  a hacked version of internal libsasl code and conflicted with
	  library symbols. The four configuration options that were in
	  sasl.conf have been moved to inn.conf (and underscores removed to
	  fit with the rest of the inn.conf options), and innupgrade has
	  been updated to know how to make that change.

	* trunk/storage/ovdb/ovdb.c: Clean up warnings introduced by the
	  last change.

2004-06-08  vinocur

	* trunk/doc/man/Makefile: Filename should be 'actsyncd.8' not
	  'actsynd.8'

2004-06-08  hkehoe

	* trunk/doc/man/ovdb.5, trunk/doc/pod/ovdb.pod,
	  trunk/samples/ovdb.conf: Update docs for nocompact option

	* trunk/storage/ovdb/ovdb.c: Mirror 1.61.2.6 fix

2004-06-08  rra

	* trunk/tests/innd/artparse-t.c: We're no longer rejecting articles
	  with empty headers in the parsing phase.

	* trunk/lib/date.c: Handle abbreviations correctly when parsing
	  legacy months.

2004-06-07  rra

	* trunk/tests/lib/date-t.c: Add tests for parsedate_rfc2822 and
	  parsedate_rfc2822_lax.

	* trunk/include/libinn.h, trunk/lib/date.c: Add
	  parsedate_rfc2822_lax.

2004-06-06  rra

	* trunk/innd/art.c: On further reflection, undo the change to allow
	  whitespace around message IDs, since right now the whitespace may
	  be included in the hash. This is the right idea, but we're going
	  to have to put more intelligence in the parsing to extract just
	  the message ID.

	* trunk/innd/art.c: Accept empty headers and include leading space
	  (after the space following the colon) as part of the value of the
	  header. Allow leading and trailing space around message IDs. RFC
	  2822 allows comments as well, but that's too much for right now.

2004-06-03  rra

	* trunk/innfeed/main.c: Exit 0 when checking the configuration if
	  the configuration is fine. Patch from Sergey Babitch.

	* trunk/frontends/rnews.c: Fix the comments from the last patch.
	  It's not that rnews is setuid root, it's that we want to make
	  sure we don't write out spool files as root. The normal case is
	  that either rnews has no special privileges at all (and can only
	  be executed by people already in the news group), or is setuid
	  news (in which case we do nothing, since there's no need to
	  change the real UID to the news user).

	* trunk/frontends/rnews.c: The code for changing users was intended
	  to handle the case where rnews was setuid news, but we don't ever
	  install it that way (for reasons that I can't remember at the
	  moment). Instead, we sometimes install it setuid root.
	  
	  This should be looked at closer in the future, since I think that
	  setuid news should be sufficient. But in any event,
	  setuid(geteuid()) is going to do nothing useful at all in a
	  setuid root program. Instead, if either the real or effective
	  UIDs are 0, figure out the UID of the news user and setuid to it.
	  If we're setuid news, don't do anything at all. I believe this
	  will work in both configurations.
	  
	  Based on a problem reported by Matthias Scheler.

2004-06-02  hkehoe

	* trunk/storage/ovdb/ovdb.c: Mirror 1.61.2.5 bugfix

	* trunk/history/hisv6/hisv6.c: Mirror 1.11.2.2 change

	* trunk/lib/dbz.c: Mirror 1.58.2.2 changes

2004-05-27  rra

	* trunk/MANIFEST, trunk/doc/man/buffindexed.conf.5,
	  trunk/doc/pod/Makefile, trunk/doc/pod/buffindexed.conf.pod:
	  Convert buffindexed.conf documentation to POD.

2004-05-26  rra

	* trunk/MANIFEST, trunk/doc/man/buffchan.8, trunk/doc/pod/Makefile,
	  trunk/doc/pod/buffchan.pod: Convert buffchan documentation to
	  POD.

	* trunk/TODO: Note that filechan is just a simplified version of
	  buffchan.

	* trunk/TODO: Lots of updates. Lots of things have already been
	  done!

	* trunk/MANIFEST, trunk/doc/man/archive.8, trunk/doc/pod/Makefile,
	  trunk/doc/pod/archive.pod: Convert the archive man page to POD.

	* trunk/doc/man/actsync.8, trunk/doc/pod/actsync.pod: Add the
	  standard attribution for the POD conversion.

	* trunk/MANIFEST, trunk/Makefile.global.in, trunk/doc/man/Makefile:
	  Get rid of putman.sh. The other formats that it supports are all
	  very obsolete, and basically everything supports standard nroff
	  man pages now.
	  
	  Also remove the old actsynd.8 man page on make install and don't
	  try to install a regular actsyncd.8 page.

	* trunk/doc/man/Makefile: Add a comment about the actsyncd.8 link.

	* trunk/MANIFEST, trunk/doc/man/Makefile, trunk/doc/man/actsync.8,
	  trunk/doc/pod/Makefile, trunk/doc/pod/actsync.pod: Convert the
	  actsync man page to POD. Just symlink actsyncd.8 to actsync.8
	  rather than installing a stub man page that tells the user to
	  look at a different man page.

	* trunk/Makefile.global.in, trunk/configure, trunk/configure.ac:
	  Check for ln -s and make $(LN_S) available to makefiles.

	* trunk/Makefile, trunk/site/Makefile: Automatically create an
	  empty history database on a first-time install.

	* trunk/nnrpd/post.c: If the user is not allowed to approve
	  messages, reject postings containing an Approved header even to
	  unmoderated groups (some other site may consider the group to be
	  moderated).

2004-05-25  rra

	* trunk/innd/art.c, trunk/innd/innd.h: The poster (Sender or From,
	  whichever is provided) is only used in the infrequently-called
	  ARTcancelverify, so remove it from ARTDATA and don't calculate it
	  for every article. Just calculate it in ARTcancelverify when it's
	  actually needed.

	* trunk/innd/art.c, trunk/innd/innd.h: Remove Replyto from ARTDATA;
	  we set it but never used it.

2004-05-24  rra

	* trunk/frontends/cnfsstat.in: More fixes for arithmetic on numbers
	  that are larger than the integer size. Patch from Christoph
	  Biedl.

	* trunk/TODO: The configuration parser has been finished.

	* trunk/include/inn/confparse.h, trunk/lib/confparse.c,
	  trunk/tests/lib/config/errors, trunk/tests/lib/config/groups,
	  trunk/tests/lib/config/include, trunk/tests/lib/config/lists,
	  trunk/tests/lib/config/reals, trunk/tests/lib/config/recurse,
	  trunk/tests/lib/config/symlink, trunk/tests/lib/config/warn-bool,
	  trunk/tests/lib/config/warn-int,
	  trunk/tests/lib/config/warn-real,
	  trunk/tests/lib/config/warn-string,
	  trunk/tests/lib/config/warnings, trunk/tests/lib/confparse-t.c:
	  Finish the new configuration parser. Adds implementations of
	  paramters that take lists, parameters that take real numbers,
	  full support for groups, and support for including other files.
	  Also improve the testing of string parameters.

	* trunk/support/install-sh: Don't chown directories that already
	  exist.

	* trunk/tests/libtest.c, trunk/tests/libtest.h: Add ok_double.

2004-05-24  hkehoe

	* trunk/innd/art.c: ARTparseheader has void return value, so don't
	  put call of ARTparsebody as an argument to return

2004-05-23  vinocur

	* trunk/innd/art.c: Bugfix from previous changes, supplied by Russ.

2004-05-22  vinocur

	* trunk/doc/man/mailpost.8, trunk/doc/pod/mailpost.pod: Clarify the
	  units for the -c argument, and discuss briefly what comprises a
	  reasonable range.

2004-05-21  rra

	* trunk/tests/runtests.c: Minor quality of output fixes. Get
	  pluralization correct and always include the count of skipped
	  tests.

	* trunk/tests/lib/date-t.c: Skip the test if the system returns a
	  +0000 time zone result in the Newfoundland time zone, since that
	  means the system just doesn't know about the time zone.

	* trunk/tests/lib/messages-t.c: ssize_t is not compatible with int
	  in the waitpid argument on AIX.

	* trunk/tests/util/innbind-t.c: Fix a bad return value in the
	  non-IPv6 case.

	* trunk/lib/getaddrinfo.c, trunk/tests/lib/getaddrinfo-t.c: AIX
	  doesn't even have AI_NUMERICHOST.

	* trunk/backends/innbind.c: Zero sockaddr_in and sockaddr_in6
	  structs before using them.

	* trunk/tests/storage/makehistory.t: Handle more variation in the
	  wc -l output.

	* trunk/tests/storage/archive.t, trunk/tests/storage/sm.t: Test
	  wants =, not ==. bash, being nicely unportable, of course doesn't
	  warn you about the latter even when running in /bin/sh mode.

	* trunk/configure, trunk/m4/sendfd.m4: Print out more output if the
	  file descriptor passing test fails, just for curious exploration.

2004-05-21  vinocur

	* trunk/frontends/pullnews.in: Add an option to automatically
	  generate Xref headers from any articles which lack them (e.g.
	  when moving articles over from an old Netscape Collabra server).
	  
	  Suggested by Jennifer Luisi, many moons ago.

2004-05-21  rra

	* trunk/innd/cc.c: Fix the logging of ctlinnd commands, which was
	  picking up a nul and two trailing characters because of an
	  incorrect buffer length.

	* trunk/innd/art.c: Add a missing va_end in ARTerror. (I wish GCC
	  had a diagnostic for this.)

	* trunk/doc/man/inn.conf.5, trunk/doc/pod/inn.conf.pod: Document
	  that maxartsize is in wire format.

	* trunk/tests/innd/artparse-t.c: Also check that the parse state is
	  correct every step along the way when dribbling the article
	  through one byte at a time, and make sure that the data->Body
	  offset is correct.

	* trunk/tests/lib/wire-t.c: Add tests for wire_findbody in the
	  degenerate case of an article with no headers (and a completely
	  empty article).

	* trunk/lib/wire.c: Handle the degenerate case of an article with
	  no headers.

	* trunk/innd/art.c: data->Body was off by two; it should be after
	  the blank line dividing the headers from the body.

	* trunk/MANIFEST, trunk/tests/Makefile, trunk/tests/TESTS,
	  trunk/tests/innd, trunk/tests/innd/.cvsignore,
	  trunk/tests/innd/artparse-t.c, trunk/tests/innd/fakeinnd.c,
	  trunk/tests/storage/articles/5, trunk/tests/storage/articles/6,
	  trunk/tests/storage/articles/bad-empty,
	  trunk/tests/storage/articles/bad-hdr-empty,
	  trunk/tests/storage/articles/bad-hdr-nospc,
	  trunk/tests/storage/articles/bad-hdr-space,
	  trunk/tests/storage/articles/bad-hdr-trunc,
	  trunk/tests/storage/articles/bad-long-cont,
	  trunk/tests/storage/articles/bad-long-hdr,
	  trunk/tests/storage/articles/bad-no-body,
	  trunk/tests/storage/articles/bad-no-header,
	  trunk/tests/storage/articles/bad-nul-body,
	  trunk/tests/storage/articles/bad-nul-header: Add an extensive
	  test suite for the article parsing routines in innd, as well as a
	  harness allowing unit-testing of portions of innd without running
	  the whole program.

	* trunk/innd/art.c, trunk/innd/innd.h, trunk/innd/nc.c: Completely
	  rewrite ARTparse. Break it up into several separate functions,
	  with a function for parsing the headers, a separate one for
	  parsing the body, and a wrapper that also checks the article size
	  after an invocation of either and handles writing error messages
	  to the logs if necessary.
	  
	  Simplify the logic of ARTparse considerably by observing that if
	  there are fewer than five characters left to look at, we can't be
	  looking at the end of the article even if we're looking at a \r
	  and we can just return and wait for more data. This lets us use
	  lookahead when we see a \r without complicated logic to keep from
	  looking past the end of the article, and eliminates the need for
	  LastTerminator and LastCR.
	  
	  Remove the #define of EXECUTE_BITS, which wasn't used. Simplify
	  the determination of the feeding site for logging article
	  rejections. Move the additional steps required for large articles
	  (an additional syslog notice and a history file entry) out of
	  nc.c into art.c under ARTparse, allowing considerable
	  simplification of the CSgetheader case in NCproc.

2004-05-20  rra

	* trunk/backends/Makefile: Fix the message printed when innbind
	  can't be installed setuid root.

	* trunk/storage/cnfs/cnfs.c: The return type of ntohl is
	  inconsistent on different platforms, so add casts to make sure
	  that the data type matches what warn is expecting.

	* trunk/doc/man/innbind.8, trunk/doc/pod/innbind.pod: Add
	  documentation for the new output format and for the new file
	  descriptor passing when STREAMS is supported. Add the additional
	  diagnostic messages that innbind can produce.

	* trunk/backends/innbind.c: Make some error messages that
	  correspond to the same error consistant, and change some dies to
	  sysdies to get system errors.

	* trunk/innd/nc.c: Don't list commands only available after MODE
	  READER in HELP output.

	* trunk/lib/network.c: Modify network_innbind to use the new
	  innbind semantics and expect output from it, and add the ability
	  to accept a passed file descriptor if needed. Modify the fallback
	  in network_bind_all for non-IPv6 to return a correct cound of
	  file descriptors if binding fails. Fix network_connect to avoid
	  an unnecessary close.

	* trunk/backends/innbind.c, trunk/tests/util/innbind-t.c: Remove
	  the code supporting -t for testing or -e for acting as a wrapper.
	  Heath came up with a much better solution.
	  
	  Add support for creating a socket and passing it back on standard
	  output to the parent process on systems that support STREAMS.
	  This should be exactly the systems where the standard bind
	  approach doesn't work, so this should cover everyone. innbind now
	  prints ok\n if it can bind an address and prints no\n followed
	  immediately by an ioctl to pass the file descriptor if the
	  creation fails due to permission denied.

	* trunk/authprogs/smbval/rfcnb-util.c: INADDR_NONE is signed on
	  Solaris.

	* trunk/tests/overview/overview-t.c: Don't delete the overview
	  until after we close it.

	* trunk/tests/lib/fakewrite.c: Some verions of GCC want more
	  aggressive casting in ?: operations to make sure both branches
	  have the same type.

	* trunk/storage/timecaf/caf.c: Avoid warnings on systems with a
	  signed .size field in stat output.

	* trunk/storage/cnfs/cnfs.c: Fix format specifiers on a few warning
	  messages that only showed up on Solaris as warnings for some
	  reason.

	* trunk/storage/buffindexed/buffindexed.c: OVclose didn't actually
	  close everything (discovered by running the test suite in AFS and
	  having it be unable to delete the overview buffers because they
	  were still open).

	* trunk/MANIFEST, trunk/configure, trunk/configure.ac,
	  trunk/include/config.h.in, trunk/m4/sendfd.m4: Add a probe for
	  whether file descriptor passing over pipes is supported using the
	  I_SETFD and I_RECVFD STREAMS ioctls.

2004-05-19  rra

	* trunk/backends/innbind.c, trunk/tests/util/innbind-t.c: Set an
	  environment variable before exec in -e mode to use as a canary to
	  prevent exec loops.

	* trunk/tests/Makefile, trunk/tests/lib/buffer-t.c,
	  trunk/tests/lib/concat-t.c, trunk/tests/lib/conffile-t.c,
	  trunk/tests/lib/confparse-t.c, trunk/tests/lib/date-t.c,
	  trunk/tests/lib/dispatch-t.c, trunk/tests/lib/getaddrinfo-t.c,
	  trunk/tests/lib/hash-t.c, trunk/tests/lib/hashtab-t.c,
	  trunk/tests/lib/hstrerror-t.c, trunk/tests/lib/inet_aton-t.c,
	  trunk/tests/lib/inet_ntoa-t.c, trunk/tests/lib/innconf-t.c,
	  trunk/tests/lib/list-t.c, trunk/tests/lib/md5-t.c,
	  trunk/tests/lib/memcmp-t.c, trunk/tests/lib/messages-t.c,
	  trunk/tests/lib/mkstemp-t.c, trunk/tests/lib/pread-t.c,
	  trunk/tests/lib/pwrite-t.c, trunk/tests/lib/qio-t.c,
	  trunk/tests/lib/setenv-t.c, trunk/tests/lib/snprintf-t.c,
	  trunk/tests/lib/strerror-t.c, trunk/tests/lib/strlcat-t.c,
	  trunk/tests/lib/strlcpy-t.c, trunk/tests/lib/tst-t.c,
	  trunk/tests/lib/uwildmat-t.c, trunk/tests/lib/vector-t.c,
	  trunk/tests/lib/wire-t.c, trunk/tests/lib/xwrite-t.c,
	  trunk/tests/overview/overview-t.c: Call test_init in all C test
	  programs, which requires linking some of the test programs
	  against libtest.o that weren't previously using it. Also fix up
	  some dependencies in the Makefile.

	* trunk/tests/util/innbind-t.c: Call test_init. Also test the new
	  innbind -e mode. Skip the IPv6 tests if we're unable to create an
	  IPv6 socket rather than failing them.

	* trunk/tests/libtest.c, trunk/tests/libtest.h: Add a new test_init
	  function that sets standard output to be line buffered and then
	  prints out the test count.

	* trunk/backends/innbind.c: Unfortunately, this has now gotten more
	  complicated (thanks, Solaris).
	  
	  Add two additional modes. The first, innbind -t <port>, will test
	  using innbind to bind a socket to that port to see if it works
	  correctly. The inability to bind sockets in a setuid subprocess
	  unfortunately can't be detected at configure time (because we
	  need a setuid helper program), so this will have to be used at
	  run-time.
	  
	  The second mode, innbind -e, will both create the sockets and
	  bind them as specified on the command line, and then exec the
	  program given on the command line, with the options given there,
	  adding an additional option -p followed by a comma-separated list
	  of the bound file descriptors. This is equivalent to the old
	  inndstart program, but more flexible and doesn't require ever
	  parsing any configuration files while root.
	  
	  The only library code used while root is just buffer_*, vector_*,
	  and the message functions.

	* trunk/lib/network.c: If we can, do the bind directly without
	  invoking innbind. Don't warn when unable to create an IPv6 socket
	  (but still return failure) if and only if the failure was because
	  IPv6 isn't supported by the operating system. Use the existing
	  IPv4 and IPv6 bind code for network_bind_all rather than doing
	  things separately.

	* trunk/tests/runtests.c: Update the coding style with respect to
	  multiline statements and the structure of if and for blocks. Try
	  to be better about never presenting system error messages on the
	  same line as test output and always flushing test output before
	  aborting. If stdout is a tty, display a count of tests as they
	  execute.

	* trunk/backends/innxbatch.c: Use notice, warn, and syswarn instead
	  of calling syslog directly and sometimes separately calling warn.
	  We lose the tailoring of messages to syslog vs. standard output,
	  but the messages are still quite readable and this is much
	  simpler.

	* trunk/backends/batcher.c: Use the right format for printing out
	  total bytes. (Having format checking with notice is a good
	  thing.)

2004-05-18  rra

	* trunk/innd/art.c: Fix the check for CR without LF, also broken
	  with the size_t change.

	* trunk/innd/art.c: Fix another signed vs. unsigned problem in the
	  check for too large of articles and restructure the code this
	  time to make it readable.

	* trunk/backends/crosspost.c: Use LOG_NOTICE intead of L_NOTICE
	  (don't bother converting to using the new message functions right
	  now).

	* trunk/backends/batcher.c: Use notice to handle printing
	  statistics.

	* trunk/history/his.c: Call syswarn instead of syslog.

	* trunk/storage/interface.c, trunk/storage/ov.c: Use warn and
	  syswarn instead of calling syslog or fprintf directly.

	* trunk/storage/buffindexed/buffindexed.c,
	  trunk/storage/buffindexed/shmem.c, trunk/storage/cnfs/cnfs.c,
	  trunk/storage/ovdb/ovdb.c, trunk/storage/timecaf/timecaf.c,
	  trunk/storage/timehash/timehash.c,
	  trunk/storage/tradspool/tradspool.c: Remove now-unnecessary
	  includes of syslog.h.

	* trunk/storage/ovdb/ovdb-private.h: Change more calls to syslog to
	  use warn instead.

	* trunk/frontends/ovdb_server.c: Replace commented out calls to
	  syslog(LOG_DEBUG) with debug() calls.

	* trunk/storage/buffindexed/buffindexed.c,
	  trunk/storage/buffindexed/shmem.c, trunk/storage/cnfs/cnfs.c,
	  trunk/storage/ovdb/ovdb-private.h, trunk/storage/ovdb/ovdb.c,
	  trunk/storage/timecaf/caf.c, trunk/storage/timecaf/timecaf.c,
	  trunk/storage/timehash/timehash.c: Use warn, syswarn, and notice
	  to report errors and other information instead of calling syslog
	  directly.

	* trunk/frontends/ovdb_init.c: ovdb_errmode is no longer used; the
	  message functions are used instead.

	* trunk/doc/compliance-nntp: Fixed overview generation.

	* trunk/innd/art.c: Fix the overview generation to correctly unfold
	  headers and handle special characters per the latest NNTP draft.

	* trunk/expire/makehistory.c: Don't include the name of an
	  additional header if it's not found in the article; just leave
	  that field blank (per the latest NNTP draft).

	* trunk/MANIFEST, trunk/tests/TESTS,
	  trunk/tests/storage/articles/4,
	  trunk/tests/storage/etc/overview.fmt,
	  trunk/tests/storage/makehistory.t, trunk/tests/storage/overview,
	  trunk/tests/storage/overview/1-4: Add a basic test suite for
	  makehistory. Currently, all that it checks is overview
	  generation.

	* trunk/doc/man/makehistory.8, trunk/doc/pod/makehistory.pod,
	  trunk/expire/makehistory.c: Fix the overview generation to
	  correctly unfold headers and handle special characters per the
	  latest NNTP draft. Add a -S option to just print the overview
	  information to standard output, useful mainly for testing.

	* trunk/doc/man/makehistory.8, trunk/doc/pod/makehistory.pod: Sort
	  the options.

	* trunk/HACKING, trunk/doc/pod/hacking.pod: Remove the note about
	  the INSTALLED variable in Makefiles, since we don't use that any
	  more.

	* trunk/authprogs/Makefile, trunk/backends/Makefile,
	  trunk/control/Makefile, trunk/expire/Makefile,
	  trunk/frontends/Makefile, trunk/history/Make.methods,
	  trunk/history/Makefile, trunk/history/buildconfig.in,
	  trunk/innd/Makefile, trunk/innfeed/Makefile, trunk/lib/Makefile,
	  trunk/nnrpd/Makefile, trunk/scripts/Makefile,
	  trunk/storage/Make.methods, trunk/storage/Makefile,
	  trunk/storage/buffindexed/ovmethod.mk,
	  trunk/storage/buildconfig.in,
	  trunk/storage/tradindexed/ovmethod.mk: Drop the idiosyncratic
	  installation method that would fail to install programs if the
	  installed version was newer than the built version in favor of a
	  make install that works the way that people generally expect and
	  always installs the new binaries.

	* trunk/storage/ovdb/ovdb-private.h, trunk/storage/ovdb/ovdb.c:
	  Provide a TXN_START_NORETRY macro for transactions that will
	  never be retried, to suppress a warning about an unused label,
	  and use that macro.

	* trunk/Makefile.global.in: Configure Emacs to use makefile-mode
	  for this file. Tabify it, since Emacs will now maintain tabs
	  automatically like it does for makefile-mode. Add -Werror to make
	  warnings now that all warnings have been vanquished from the
	  source tree (at least on Linux with gcc 3.3; we may need more
	  work on some other platforms).

	* trunk/innd/chan.c: Redo the initialization of CHANnull to not use
	  a partial struct initializer to avoid warnings. Don't re-clear
	  things that are already set to zero by assigning CHANnull to a
	  channel; it's just unnecessary noise.

2004-05-17  rra

	* trunk/innd/python.c, trunk/nnrpd/python.c: #undef _POSIX_C_SOURCE
	  before including Python.h to avoid warnings from Python's
	  misguided redefinition of the symbol.

	* trunk/nnrpd/perl.c: Pass a length variable to HePV to suppress a
	  warning from the Perl headers.

	* trunk/include/conffile.h, trunk/lib/conffile.c: Change CONFfopen
	  to take a const char *.

	* trunk/doc/external-auth, trunk/doc/pod/external-auth.pod: An
	  external authenticator must, not may, return a username.

	* trunk/frontends/mailpost.in: Don't ever take the Date from the
	  "From " line, since that date will be in ctime format. Don't
	  require that a Date header be present; nnrpd can provide one.

	* trunk/storage/Make.methods: Use BUFF_DEBUG, not DEBUG, since the
	  latter is used for other things.

	* trunk/backends/batcher.c: Remove some dead code and be more
	  consistent about data types.

	* trunk/storage/buffindexed/shmem.c: Fix the printf modifiers in a
	  debug statement.

	* trunk/lib/inndcomm.c: Always use the maximum buffer size (64KB -
	  1). The previous code generally only used a 4KB buffer to receive
	  replies from the server, which was too small for the output of
	  ctlinnd name at busy sites. Also fix a lot of coding style issues
	  and formatting.

	* trunk/include/inndcomm.h: Make the type of the message length
	  unsigned short; may as well use every bit that we have.

	* trunk/storage/buffindexed/buffindexed.c,
	  trunk/storage/buffindexed/ovmethod.mk: Use BUFF_DEBUG instead of
	  DEBUG to enable the main routine, since DEBUG is used for other
	  things.

	* trunk/storage/timecaf/caf.c, trunk/storage/timecaf/caf.h: Find a
	  few more places where the prototype of CAFFileCreate needed to
	  change.

	* trunk/frontends/pullnews.in: Authenticate after MODE READER, not
	  before. Reported by Tim Skirvin.

	* trunk/tests/lib/uwildmat-t.c: Add several additional tests for
	  the combination of * and UTF-8.

	* trunk/lib/uwildmat.c: Matching the UTF-8 character \303\206
	  against *[^\303\206] wasn't working properly. Reported by Andrew
	  Gierth.

	* trunk/frontends/sm.c: Suppress notice messages, like tradspool
	  building its map file.

	* trunk/storage/ovdb/ovdb.c: Change csend to use xwrite and to
	  print a warning and return an error on failure rather than
	  calling exit (calling exit was starting a loop, since csend is
	  called by ovdb_close, which is called out of an atexit handler).
	  Modify the other functions to check the return value of csend.
	  This needs some more attention later, since we're currently
	  returning errors that may be indistinguishable from missing
	  articles.

	* trunk/storage/expire.c: Print out the error string from the
	  storage manager if removing a token during expiration fails.

	* trunk/doc/man/active.5, trunk/doc/pod/active.pod: Fix an
	  implication that articles filed in junk are only propagated to
	  sites that receive junk; they're propagated according to their
	  newsgroups header.

	* trunk/control/controlchan.in: Always include the system error
	  message when opening something fails.

	* trunk/lib/dbz.c: Use the portable mmap header and reformat the
	  initial comment to match INN standards.

	* trunk/doc/man/dbz.3, trunk/include/dbz.h, trunk/lib/dbz.c: Use
	  warn, syswarn, and debug in the dbz code instead of its previous
	  idiosyncratic error reporting with EDOM errno and its internal
	  DEBUG macro.

	* trunk/Makefile.global.in: Enable debugging when building with
	  make warnings.

	* trunk/control/gpgverify.in: Use the same code for finding the
	  keyring that pgpverify uses, so that the news administrator can
	  use ~news/.gnupg if they want. Reported by Toon van der Pas.

	* trunk/backends/batcher.c: Use fwrite rather than fprintf to
	  output the article since it handles embedded nuls correctly.

	* trunk/HACKING, trunk/INSTALL, trunk/MANIFEST, trunk/TODO,
	  trunk/doc/hook-perl, trunk/doc/hook-python, trunk/doc/hook-tcl,
	  trunk/doc/man/ctlinnd.8, trunk/doc/man/inn.conf.5,
	  trunk/doc/man/innd.8, trunk/doc/pod/inn.conf.pod,
	  trunk/doc/pod/innd.pod, trunk/doc/pod/install.pod,
	  trunk/frontends/ctlinnd.c, trunk/include/inndcomm.h,
	  trunk/include/paths.h.in, trunk/innd/Makefile, trunk/innd/art.c,
	  trunk/innd/cc.c, trunk/innd/innd.c, trunk/innd/innd.h,
	  trunk/innd/python.c, trunk/innd/status.c, trunk/innd/tcl.c,
	  trunk/samples/filter.tcl, trunk/samples/startup.tcl,
	  trunk/site/Makefile: Rip out all of the Tcl code, which has
	  suffered serious bit rot and is causing innd to segfault randomly
	  when compiled in, even when no Tcl filters are defined.

	* trunk/storage/timecaf/caf.c: Carry a buffer size around to
	  eliminate a use of strcpy.

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h,
	  trunk/nnrpd/perl.c, trunk/nnrpd/post.c, trunk/nnrpd/python.c,
	  trunk/nnrpd/track.c: Use strlcpy instead of strcpy, passing some
	  more buffer lengths into functions and resorting to just coding
	  the buffer length in the last few places for right now, until the
	  code can be restructured.

	* trunk/nnrpd/tls.c: Use strlcpy and snprintf instead of strcpy and
	  sprintf.

	* trunk/backends/actsync.c, trunk/backends/innxbatch.c,
	  trunk/backends/innxmit.c, trunk/backends/nntpget.c,
	  trunk/doc/man/libinn.3, trunk/frontends/feedone.c,
	  trunk/frontends/inews.c, trunk/frontends/rnews.c,
	  trunk/include/libinn.h, trunk/lib/clientlib.c,
	  trunk/lib/defdist.c, trunk/lib/localopen.c, trunk/lib/remopen.c,
	  trunk/nnrpd/post.c: Modify NNTPconnect, NNTPlocalopen, and
	  NNTPremoteopen to take the length of the error buffer as a final
	  parameter rather than just assuming how long it is. Eliminate a
	  use of strcpy in the process.

	* trunk/storage/buffindexed/buffindexed.c: Include inn/messages.h
	  for notice.

	* trunk/innfeed/connection.c, trunk/innfeed/endpoint.c: Replace
	  strcpy with strlcpy.

	* trunk/innd/site.c: Redo SITEinfo using buffer_sprintf to avoid
	  any use of strcpy.

	* trunk/innd/keywords.c: Use strlcpy instead of strcpy.

	* trunk/innd/cc.c: Switch the remaining uses of strcpy to strlcpy.

	* trunk/innd/cc.c: Fix the logging of ctlinnd commands to be a bit
	  more readable and to not use strcpy. It's also tolerant of nul
	  inside messages now.

	* trunk/innd/cc.c: Move CClowmark to a better place in the file.
	  Use buffer_sprintf in CCname instead of sprintf with a buffer.
	  Use buffers somewhat better in other places here. Formatting
	  fixes for #ifdef/#endif.

	* trunk/innd/cc.c: Use buffer_sprintf to build the return from
	  CCmode, eliminating another unsafe use of strcpy.

	* trunk/frontends/ovdb_stat.c: Rework the display routines to avoid
	  strcpy (and most use of buffers).

	* trunk/frontends/inews.c: Use strlcpy rather than strcpy.

	* trunk/INSTALL, trunk/doc/pod/install.pod: Add a note about having
	  to restore the setuid bit on ckpasswd after a make update if you
	  want that configuration.

	* trunk/storage/buffindexed/buffindexed.c: Use notice rather than
	  syslog for the message about initializing a new buffer so that
	  the test suite doesn't spam syslog.

	* trunk/storage/buffindexed/shmem.c: Use notice rather than syslog
	  for the notice about newly created shared memory segments so that
	  the test suite doesn't spam syslog. Use debug for the notice that
	  spams the error log rather than #ifdefing it out.

	* trunk/storage/tradspool/tradspool.c: Use warn, syswarn, and
	  notice rather than calling syslog directly.

2004-05-16  rra

	* trunk/nnrpd/post.c: Use the same code for printing header values
	  as is used everywhere else in nnrpd when mailing articles so as
	  to correctly handle the spaces after the colons. Patch from
	  Andreas M. Kirchwitz.

	* trunk/include/inn/messages.h, trunk/lib/messages.c,
	  trunk/tests/lib/messages-t.c: Remove the trace code. Failed
	  experiment. I may add something like this again when I actually
	  convert the existing trace code in INN, but this was developed in
	  the absence of any use and I don't think it's actually what we
	  want.

	* trunk/doc/man/radius.conf.5, trunk/doc/pod/radius.conf.pod: The
	  parser has been fixed so that # can now be included in a radius
	  secret.

	* trunk/MANIFEST, trunk/tests/Makefile, trunk/tests/TESTS,
	  trunk/tests/lib, trunk/tests/lib/.cvsignore,
	  trunk/tests/lib/conffile-t.c: Add a test for lib/conffile.c,
	  since I just fixed some tricky bugs and needed to verify the fix
	  and it looks like this parser will be with us for at least one
	  more release.

	* trunk/lib/conffile.c: Correctly support # inside quoted strings
	  (not considering it to be a comment). Fix a bounds checking error
	  when parsing a configuration file that contains an unmatched
	  double quote. Be a bit more careful about boundary checking.
	  Based on analysis by Piotr Klaban.

	* trunk/doc/man/actsync.8: Document the rules for valid newsgroup
	  names.

	* trunk/CONTRIBUTORS: Add Ilya Voronin.

	* trunk/frontends/cnfsheadconf.in: Zero-pad length and free values
	  to exactly seventeen characters. Based on a patch from Ilya
	  Voronin.

	* trunk/CONTRIBUTORS: Add Jacek Konieczny.

	* trunk/storage/timecaf/caf.c: When retrieving an article, make
	  sure that it is fully contained in the CAF file (for additional
	  robustness in the presence of a broken spool). Patch from Jacek
	  Konieczny.

	* trunk/innd/art.c, trunk/innd/chan.c, trunk/innd/innd.h,
	  trunk/innd/nc.c: Use ptrdiff_t for pointer differences and size_t
	  for all offsets into buffers that are initialized with pointer
	  differences. Based on a patch from Jacek Konieczny and necessary
	  for AMD64 support.

	* trunk/configure, trunk/configure.ac, trunk/include/config.h.in:
	  Check for and provide ptrdiff_t if needed. Require Autoconf 2.59
	  or higher since it does a much better job of formatting the
	  --help output. Regenerage with 2.59, which results in some
	  formatting and help output changes.

	* trunk/backends/innxmit.c, trunk/expire/makehistory.c,
	  trunk/innd/chan.c, trunk/innd/nc.c, trunk/innd/site.c,
	  trunk/innfeed/article.c, trunk/innfeed/imap_connection.c,
	  trunk/innfeed/innlistener.c, trunk/innfeed/tape.c,
	  trunk/storage/cnfs/cnfs.c, trunk/storage/overdata.c,
	  trunk/storage/timecaf/caf.c: Cast all size_t values to unsigned
	  long and use %lu when printing them with printf and friends.
	  Based on a patch from Jacek Konieczny, needed for proper
	  functionality on AMD64. Also fixes one place where pointers were
	  cast to an int.

	* trunk/contrib/README: Add authmysql.

	* trunk/lib/innconf.c: Use an unsigned format to print unsigned
	  values in the invalid type error message.

	* trunk/frontends/ovdb_stat.c: Cast size_t to unsigned long for
	  printing.

	* trunk/include/clibrary.h: Fix __format__ attribute for snprintf.

	* trunk/samples/control.ctl: Update to latest upstream version.

2004-05-04  rra

	* trunk/samples/control.ctl: Add a stub for a.bsu.*.

2004-04-07  rra

	* trunk/lib/vector.c: Fix a memory leak in vector_resize. Patch
	  from Ray Miller.

	* trunk/MANIFEST: Add MySQL authenticator.

	* trunk/contrib/authmysql, trunk/contrib/authmysql.config: Add the
	  MySQL authenticator from Daniel Marsh.

	* trunk/doc/man/radius.conf.5, trunk/doc/pod/radius.conf.pod:
	  Adjust for the parser change that requires radius.conf files to
	  consist of blocks wrapped in server { }.

2004-03-08  rra

	* trunk/lib/setenv.c: Use strlcpy and strlcat instead of strcpy and
	  strcat. The latter was fully safe, but this way it doesn't turn
	  up false positives when searching for uses of strcpy and strcat
	  to get rid of.

	* trunk/MANIFEST, trunk/tests/TESTS, trunk/tests/storage/archive.t:
	  Add a test suite for archive.

	* trunk/backends/archive.c: Completely rewritten using current
	  coding style and the new support data structures from libinn. The
	  original motivation was to eliminate some questionable uses of
	  strcpy deep in the code that constructs file paths.

	* trunk/tests/storage/etc/inn.conf: Set patharchive as well.

	* trunk/tests/storage/articles/bad-msgid,
	  trunk/tests/storage/articles/bad-subj: Bad articles for testing
	  behavior with malformed messages.

	* trunk/tests/storage/articles/3: Add a tab in the Subject line so
	  that we have one of those floating around.

2004-03-07  rra

	* trunk/MANIFEST, trunk/tests/TESTS, trunk/tests/storage,
	  trunk/tests/storage/articles, trunk/tests/storage/articles/1,
	  trunk/tests/storage/articles/2, trunk/tests/storage/articles/3,
	  trunk/tests/storage/db, trunk/tests/storage/db/active,
	  trunk/tests/storage/etc, trunk/tests/storage/etc/inn.conf,
	  trunk/tests/storage/etc/storage.conf, trunk/tests/storage/sm.t:
	  Add a test suite for sm.

	* trunk/doc/man/sm.1, trunk/doc/pod/sm.pod: Add documentation of
	  the new -s option.

	* trunk/frontends/sm.c: Add a new -s option to store an article
	  directly into the storage subsystem (mostly for testing, but it
	  might be useful for other things).

2004-03-06  rra

	* trunk/include/inn/buffer.h, trunk/lib/buffer.c,
	  trunk/tests/lib/buffer-t.c: Add buffer_read_all and
	  buffer_read_file, which will eventually replace the functions in
	  lib/readin.c.

	* trunk/doc/man/sm.1, trunk/doc/pod/sm.pod: Document the exit
	  status.

	* trunk/frontends/sm.c: Return a non-zero exit status if any
	  operation on one of the provided tokens fails. Fixes Debian bug
	  #141750.

2004-03-03  hkehoe

	* trunk/backends/inndf.c: inndf -n would get stuck in an infinite
	  loop if OVgroupstats failed

2004-03-03  kondou

	* trunk/backends/innxmit.c: diablo expects empty line at the end
	  for header feed

2004-02-25  kondou

	* trunk/nnrpd/post.c: correct Message-ID should be shown in post
	  response even if spooled

2004-02-24  hkehoe

	* trunk/storage/ovdb/ovdb.c: * Fix to prevent recursion on exit
	  while in readserver mode. * Update to track searches, because
	  it's possible that closesearch does not get called to match an
	  opensearch.

	* trunk/frontends/ovdb_server.c: * If readertab grows, need to
	  initialize the new elements. * Update to track searches, because
	  it's possible that closesearch does not get called before the
	  client disconnects.

2004-02-20  rra

	* trunk/samples/control.ctl: Don't pick a particular it-alt.*
	  signer.

2004-01-26  rra

	* trunk/storage/ovdb/ovdb-private.h: Transaction functions as
	  methods instead of global functions were introduced in BerkeleyDB
	  4.0, not 4.1.

	* trunk/backends/inndf.c: Work around how ReiserFS reports 0 free
	  inodes with Linux 2.6. Patch from Marco d'Itri.

	* trunk/lib/innconf.c: Ensure hismethod is set in inn.conf.

2004-01-25  rra

	* trunk/doc/man/mailpost.8, trunk/doc/pod/mailpost.pod,
	  trunk/frontends/mailpost.in: Add a -p option to specify the port
	  to which to post.

	* trunk/CONTRIBUTORS: Add Steve Youngs for debugging help.

	* trunk/frontends/inews.c: Don't use innconf->port to find the port
	  of the server, since that's actually the port on which innd is
	  running and nnrpd may be running separately.

	* trunk/frontends/rnews.c: Add a missing free when unspooling
	  failed messages.

	* trunk/innd/python.c: Insufficient memory was being allocated for
	  PYheaditem, since it also holds the body of the message and the
	  line count.

	* trunk/innfeed/article.c, trunk/innfeed/article.h,
	  trunk/innfeed/buffer.c, trunk/innfeed/buffer.h,
	  trunk/innfeed/connection.c, trunk/innfeed/connection.h,
	  trunk/innfeed/endpoint.c, trunk/innfeed/endpoint.h,
	  trunk/innfeed/host.c, trunk/innfeed/host.h,
	  trunk/innfeed/innfeed.h, trunk/innfeed/innlistener.c,
	  trunk/innfeed/innlistener.h, trunk/innfeed/main.c,
	  trunk/innfeed/misc.c, trunk/innfeed/misc.h,
	  trunk/innfeed/procbatch.in, trunk/innfeed/tape.c,
	  trunk/innfeed/tape.h: Remove the separate license statements,
	  since the license of all of INN now matches the license of
	  innfeed.

	* trunk/README, trunk/doc/pod/readme.pod: Insert the
	  acknowledgement of UUNET and Berkeley (the latter isn't required
	  any more, I know).

	* trunk/LICENSE: Per Paul Vixie and Rich Salz, change the general
	  INN license to the current ISC license text, dropping the
	  advertising clause in the process.

	* trunk/backends/innxbatch.c, trunk/backends/innxmit.c: Add
	  volatile where needed to avoid warnings from setjmp/longjmp until
	  these programs can be restructured properly. Thanks to Ilya A.
	  Kovalenko for the technique.

2004-01-14  rra

	* trunk/LICENSE: Add 2004 to the copyright statement.

2004-01-12  rra

	* trunk/scripts/inncheck.in: The configure variable is now PERL.

2004-01-12  kondou

	* trunk/storage/buffindexed/buffindexed.c: revert block size to the
	  original to keep compatibility

2004-01-12  rra

	* trunk/backends/buffchan.c, trunk/backends/innxmit.c,
	  trunk/expire/fastrm.c: Take advantage of the new semantics of
	  QIOtoolong and the automatic skipping of the rest of the line.

	* trunk/lib/qio.c, trunk/tests/lib/qio-t.c: Change QIO to do
	  something more sane with lines that are too long. Rather than
	  returning too long of a line once and then returning a partial
	  line on the next try, consume all of the too-long line before
	  returning the first error. This way, the next call will still
	  return the next line of the file.

	* trunk/storage/buffindexed/buffindexed.c: Add another cast to
	  avoid warnings.

	* trunk/expire/makehistory.c: Fix warnings from fprintf of time_t.

	* trunk/Makefile: Remove config.status.lineno and configure.lineno
	  on make distclean.

	* trunk, trunk/.cvsignore: Ignore config.status.lineno and the
	  distribution staging directories and tarballs.

	* trunk/control/controlchan.in: Always use a local syslog socket on
	  FreeBSD, matching cnfsstat.

	* trunk/frontends/cnfsstat.in: Always use a local syslog socket on
	  Darwin.

	* trunk/storage/cnfs/cnfs.c: Fix the log message for moving to the
	  next cycbuff of a metacycbuff to actually print the correct new
	  cycbuff. Reported by Christophe Wolfhugel.

	* trunk/storage/cnfs/cnfs.c: Assuming off_t is larger than size_t
	  is a safer assumption than the inverse. Reported by Christophe
	  Wolfhugel.

	* trunk/include/portable/mmap.h: Add a define for mmap to cast the
	  return value. This gets rid of warnings on Solaris and is
	  otherwise cosmetic.

	* trunk/include/clibrary.h: Declare symlink if necessary.

	* trunk/configure, trunk/configure.ac, trunk/include/config.h.in:
	  Define _GNU_SOURCE to 1 if compiling on Linux with large files so
	  that we get the right declarations for pread and pwrite.

	* trunk/support/mksystem: Add a blank line before the closing
	  #endif.

	* trunk/support/mksystem: Don't try to preserve the comments from
	  config.h since they're often multi-line and it's too hard to work
	  out the logic in awk.

	* trunk/nnrpd/commands.c, trunk/nnrpd/nnrpd.c, trunk/nnrpd/nnrpd.h,
	  trunk/nnrpd/perm.c, trunk/nnrpd/post.c: Move the LLOGenable
	  global into nnrpd.h so that it's defined consistently.

	* trunk/storage/buffindexed, trunk/storage/buffindexed/.cvsignore:
	  Ignore buffindexed_d instead of debug.

	* trunk/storage/tradspool/tradspool.c: Rely on symlink failing on
	  platforms that don't have it rather than testing HAVE_SYMLINK and
	  cluttering the code.

	* trunk/MANIFEST, trunk/configure, trunk/configure.ac,
	  trunk/lib/Makefile, trunk/lib/symlink.c: Add a dummy symlink on
	  platforms that don't supply it. The function always fails
	  immediately with errno = ENOSYS, which simplifies code using
	  symlink.

	* trunk/storage/buffindexed/buffindexed.c: config.h has to be the
	  first header file included or large file compilation won't work
	  right.

2004-01-10  rra

	* trunk/storage/overdata.c: Allow extra to be NULL in
	  overview_build.

	* trunk/authprogs/Makefile: Fix the library dependencies for the
	  various authentication programs.

2004-01-08  rra

	* trunk/storage/buffindexed/buffindexed.c,
	  trunk/storage/buffindexed/shmem.c: Clean up various warnings in
	  the debugging mode and with the new shared memory code.

	* trunk/innd/innd.h, trunk/innd/newsfeeds.c, trunk/innd/site.c,
	  trunk/innd/util.c: Replace all remaining uses of FileGlue with
	  concatpath and remove FileGlue completely.

	* trunk/lib/mmap.c: Fix syntax error in the last change.

2004-01-07  rra

	* trunk/innd/art.c: Don't use a static buffer for creating the
	  control message group to check whether we can store a control
	  message in a per-type newsgroup.

	* trunk/innd/icd.c: Include inn/mmap.h for msync_page, use the
	  right casts and formats when warning about a failure to msync.

	* trunk/include/inn/mmap.h, trunk/lib/mmap.c: msync_page should
	  return the return status of msync.

2004-01-07  kondou

	* trunk/MANIFEST, trunk/storage/Make.methods,
	  trunk/storage/buffindexed/buffindexed.c,
	  trunk/storage/buffindexed/ovmethod.config,
	  trunk/storage/buffindexed/ovmethod.mk,
	  trunk/storage/buffindexed/shmem.c,
	  trunk/storage/buffindexed/shmem.h: buffindexed using shared
	  memory on ovbuff by Sang-yong Suh

2004-01-07  rra

	* trunk/samples/control.ctl: Add it-alt.*.

2004-01-05  rra

	* trunk, trunk/.cvsignore: Ignore configure.lineno, generated by
	  configure on some hosts.

	* trunk/configure, trunk/configure.ac, trunk/include/config.h.in:
	  Probe for sys/param.h if we need to include sys/mount.h, since
	  some versions of FreeBSD require sys/param.h be included first.

2004-01-05  kondou

	* trunk/expire/makehistory.c, trunk/include/paths.h.in,
	  trunk/scripts/rc.news.in: leave overview rebuilt flag file to
	  renumber active when innd starts

2004-01-04  kondou

	* trunk/innd/art.c, trunk/innd/chan.c, trunk/innd/icd.c,
	  trunk/innd/innd.h, trunk/innd/nc.c, trunk/innd/status.c,
	  trunk/samples/innreport.conf.in, trunk/scripts/innreport_inn.pm:
	  calculate rejected article size(in wire format)

	* trunk/configure, trunk/configure.ac: still sys/types.h is
	  required to check sockaddr_storage for OSX

2004-01-02  rra

	* trunk/storage/tradindexed/tdx-group.c: Make robust against
	  references to index entries outside of the current length of the
	  group index when auditing and when doing normal operations.

	* trunk/storage/tradindexed/tdx-group.c: Improve the auditing a
	  little. Don't get caught in infinite loops when not fixing when
	  circular structure is encountered. Update group flags based on
	  the active file as well, treating the active file as canonical.
	  Create index entries for any groups listed in the active file
	  that aren't found in the overview database, even though innd does
	  this on startup anyway.

2004-01-01  rra

	* trunk/control/controlchan.in: Force the Unix syslog socket for
	  Mac OS X, since otherwise the lack of an IP address in /etc/hosts
	  was causing difficulties.

2003-12-30  rra

	* trunk/frontends/rnews.c: Provide better error messages after an
	  unexpected EOF from innd.

	* trunk/frontends/getlist.c: Fix syntax error in the last change.
	  Mea culpa.

2003-12-29  rra

	* trunk/innd/cc.c: Don't close and reopen the history database
	  during reload if the server isn't running, since the history
	  database is closed with pause or throttle and reopened with go.

	* trunk/configure, trunk/configure.ac: Include more pre-requisite
	  headers for some probes, for Mac OS X.

	* trunk/lib/date.c: Increase the size of the parsing array for
	  parsedate_rfc2822. Reported by Jochen Erwied.

2003-12-27  rra

	* trunk/MANIFEST, trunk/doc/man/motd.news.5,
	  trunk/doc/pod/Makefile, trunk/doc/pod/motd.news.pod: Rewrite
	  motd.news.5 in POD.

	* trunk/include/inn/network.h, trunk/innd/rc.c,
	  trunk/lib/network.c: Add back in the stripping of IP options from
	  IPv4 connections, moving the code into a function in the network
	  library.

	* trunk/doc/man/send-nntp.8: Don't try to document both send-nntp
	  and send-ihave on the same line; instead, break them into two
	  different lines in the SYNOPSIS. Requested by Eric Raymond.

	* trunk/frontends/getlist.c: The authinfo handling was completely
	  broken. Fixed with a patch from Jochen Erwied.

	* trunk/scripts/rc.news.in: Make sure there's always a newline
	  after the shutdown message for INN, even if it exits quickly.

	* trunk/samples/storage.conf: Replace with a sample file that does
	  something sensible by default (stores all articles in tradspool).

	* trunk/support/fixscript.in: Include the other necessary variables
	  to resolve libdir to a full path.

	* trunk/Makefile.global.in: exec_prefix needs to be set here in
	  order for the installation rules to work.

	* trunk/NEWS, trunk/doc/pod/news.pod: Document the switch to
	  Autoconf 2.57.

	* trunk/MANIFEST, trunk/tests/Makefile, trunk/tests/TESTS,
	  trunk/tests/overview, trunk/tests/overview/.cvsignore,
	  trunk/tests/overview/etc,
	  trunk/tests/overview/etc/buffindexed.conf,
	  trunk/tests/overview/overview-t.c,
	  trunk/tests/overview/tradindexed-t.c: Add tests for the
	  buffindexed overview method by making the existing tradindexed
	  tests more generic.

	* trunk/storage/buffindexed/buffindexed.c: Fix some subtle bugs
	  that prevented OVclose() followed by a new OVopen() from working
	  correctly.

2003-12-26  rra

	* trunk/tests/Makefile: Fix a typo in the hstrerror rules.

	* trunk/innfeed/connection.c, trunk/innfeed/host.c: Add some
	  missing static declarations on function definitions.

	* trunk/include/portable/socket.h: Don't redefine ss_family and
	  ss_len if we're using our own sockaddr_storage.

	* trunk/storage/tradindexed/tdx-data.c: index_base should be
	  static.

	* trunk/configure, trunk/configure.ac: Fix the probes for
	  sig_atomic_t and socklen_t.

	* trunk/include/portable/socket.h: Define NETDB_INTERNAL if it's
	  not already defined, since getaddrinfo uses it.

	* trunk/storage/buffindexed/buffindexed.c,
	  trunk/storage/cnfs/cnfs.c, trunk/storage/timecaf/caf.c: Clean up
	  some more warnings that turned up on Solaris.

	* trunk/innd/cc.c, trunk/innd/innd.c, trunk/nnrpd/perm.c,
	  trunk/nnrpd/post.c: Avoid warnings when compiling without Perl
	  support by moving variable declarations into more appropriate
	  scopes or inside #ifdef.

	* trunk/lib/getaddrinfo.c: AI_INTERNAL_ALL was set incorrectly,
	  which turned up on hosts that didn't natively support
	  AI_NUMERICSERV.

	* trunk/tests/lib/getaddrinfo-t.c: Call test_freeaddrinfo instead
	  of freeaddrinfo.

	* trunk/tests/Makefile: The getaddrinfo tests require $LIBS for
	  -lsocket -lnsl.

	* trunk/configure, trunk/m4/socket.m4: Don't use sun as a variable
	  name when checking for SUN_LEN, since this is a #define constant
	  under Solaris.

	* trunk/frontends/cnfsstat.in: Fix the arithmetic to not truncate
	  in bad ways as much. Now uses BigFloat as well as BigInt.

	* trunk/scripts/inncheck.in: Fix a typo in the newsfeed check
	  breaking recognition of variables.

	* trunk, trunk/.cvsignore, trunk/HACKING, trunk/MANIFEST,
	  trunk/Makefile, trunk/Makefile.global.in, trunk/TODO,
	  trunk/aclocal.m4, trunk/authprogs/Makefile,
	  trunk/backends/Makefile, trunk/backends/innbind.c,
	  trunk/configure, trunk/configure.ac, trunk/configure.in,
	  trunk/contrib/Makefile, trunk/control/Makefile,
	  trunk/doc/pod/hacking.pod, trunk/expire/Makefile,
	  trunk/frontends/Makefile, trunk/history/Makefile,
	  trunk/include/acconfig.h, trunk/include/clibrary.h,
	  trunk/include/config.h.in, trunk/include/inn/defines.h,
	  trunk/include/paths.h.in, trunk/include/portable/socket.h,
	  trunk/innd/Makefile, trunk/innd/art.c, trunk/innd/site.c,
	  trunk/innfeed/Makefile, trunk/lib/Makefile, trunk/lib/date.c,
	  trunk/lib/getaddrinfo.c, trunk/lib/gettime.c, trunk/lib/qio.c,
	  trunk/lib/sockaddr.c, trunk/m4, trunk/m4/aux-libs.m4,
	  trunk/m4/berkeleydb.m4, trunk/m4/cc-c-o.m4, trunk/m4/compress.m4,
	  trunk/m4/inet-ntoa.m4, trunk/m4/int32.m4, trunk/m4/iov-max.m4,
	  trunk/m4/krb5.m4, trunk/m4/large-fpos.m4, trunk/m4/libtool.m4,
	  trunk/m4/mmap.m4, trunk/m4/modes.m4, trunk/m4/openssl.m4,
	  trunk/m4/paths.m4, trunk/m4/perl.m4, trunk/m4/prog-ensure.m4,
	  trunk/m4/python.m4, trunk/m4/sasl.m4, trunk/m4/sendmail.m4,
	  trunk/m4/snprintf.m4, trunk/m4/socket.m4, trunk/m4/syslog.m4,
	  trunk/m4/users.m4, trunk/m4/vamacros.m4, trunk/nnrpd/Makefile,
	  trunk/samples/Makefile, trunk/samples/inn.conf.in,
	  trunk/samples/innreport.conf.in, trunk/samples/newsfeeds.in,
	  trunk/samples/sasl.conf.in, trunk/scripts/inncheck.in,
	  trunk/scripts/innshellvars.in, trunk/scripts/innshellvars.pl.in,
	  trunk/scripts/innshellvars.tcl.in, trunk/scripts/news.daily.in,
	  trunk/storage/Make.methods, trunk/storage/Makefile,
	  trunk/storage/buffindexed/ovmethod.mk,
	  trunk/storage/tradindexed/ovmethod.mk, trunk/support,
	  trunk/support/.cvsignore, trunk/support/fixconfig.in,
	  trunk/support/fixscript.in, trunk/support/mksystem,
	  trunk/tests/Makefile, trunk/tests/lib/qio-t.c: Rewrite configure
	  using Autoconf 2.57. Break all of our self-contained macros out
	  into separate files in the m4 subdirectory to make them easier to
	  maintain and easier to use in other projects if anyone wants.
	  
	  This has wide-ranging side effects throughout code that uses
	  configure results. Makefile variables have been changed to be
	  more standard and follow a common pattern, and Makefile build
	  rules have changed accordingly. Some of the #defines in config.h
	  have also changed due to Autoconf changes or switches over to
	  using the Autoconf mechanism of doing things instead of our own
	  macros, requiring corresponding changes to the code.
	  
	  Add support/fixconfig and use it to do variable substitution in
	  the config files rather than using Autoconf directly, since we're
	  now using the standard path variables rather than doing it all
	  ourselves, and that means we have to expand shell variables
	  before substituting into configuration files. Also tweak the
	  include/paths.h handling for the same reason.
	  
	  Pull the non-Autoconf parts out of config.h into inn/options.h
	  and then include inn/options.h in config.h. Remove the need for a
	  config.h template entirely, fitting current Autoconf standards.
	  Update the handling of the bool type to fit the Autoconf
	  recommendation.

	* trunk/include/inn/options.h: A new installable header file that
	  contains all the compile-time options from the old acconfig.h
	  header. Note that this isn't currently clean from a namespace
	  perspective.

	* trunk/tests/lib/setenv-t.c, trunk/tests/lib/setenv.t: Adjust the
	  memory limits and allocation sizes to work on Linux, where more
	  of the data segment is already gone by the time the program
	  starts executing.

	* trunk/storage/trash/trash.c, trunk/storage/trash/trash.h: The
	  _next method shouldn't take a const ARTHANDLE since it frees the
	  old article.

	* trunk/nnrpd/cache.c: Fiddle with the casts to avoid a warning
	  about type-punning the exists pointer passed into tst_insert.

2003-12-11  rra

	* trunk/samples/control.ctl: Update to current upstream. Picks up
	  new entries for x-privat.*, syd.*, bne.*, and canb.*. Update
	  melb.*. Fix the key signature for mensa.*. Include the new
	  microsoft.* rule that supports signed control messages.

	* trunk/control/pgpverify.in: Update to upstream release 1.25. Fix
	  the -test switch to actually do something and improve logging
	  output when logging to standard output.

2003-12-10  rra

	* trunk/innd/rc.c: Remove the RC_fixoptions invocation entirely for
	  now. This may get added back into the more generic network code
	  for IPv4 only.

	* trunk/nnrpd/misc.c: Glom was using strlcat into newly allocated
	  memory without making sure that it's a valid empty string to
	  start with. Problem reported by Tommy van Leeuwen (this broke
	  XPAT).

2003-10-24  rra

	* trunk/lib/nntp.c: While in nntp_read_line it may be necessary to
	  compact the buffer, and we should be more aggressive than waiting
	  until the buffer is completely full or we make more network reads
	  than we need to.

2003-10-21  rra

	* trunk/doc/man/tdx-util.8: The descriptions for -g and -i were
	  reversed. Add a note that -n can be given with -i.

	* trunk/doc/pod/tdx-util.pod: The -g and -i descriptions were
	  reversed. Add a note that -n can be given with -i.

	* trunk/include/storage.h, trunk/storage/cnfs/cnfs.c,
	  trunk/storage/cnfs/cnfs.h, trunk/storage/interface.c,
	  trunk/storage/interface.h, trunk/storage/timecaf/timecaf.c,
	  trunk/storage/timecaf/timecaf.h,
	  trunk/storage/timehash/timehash.c,
	  trunk/storage/timehash/timehash.h,
	  trunk/storage/tradspool/tradspool.c,
	  trunk/storage/tradspool/tradspool.h: SMnext actually takes a
	  regular ARTHANDLE, not a const one, since it frees the article
	  that's passed into it. Make everything consistent with this.

2003-10-20  rra

	* trunk/authprogs/radius.c, trunk/nnrpd/perm.c,
	  trunk/storage/interface.c, trunk/storage/ovdb/ovdb.c: Cast all of
	  the constant strings used to initialize parser token tables
	  (until the new parser rules the world).

	* trunk/innd/perl.c, trunk/lib/perl.c: Use inn_newXS and suppress
	  the warnings from the mandatory cv argument added for any XS
	  function.

	* trunk/include/innperl.h: Add an inn_newXS that casts const char
	  arguments to the char arguments that Perl expects.

	* trunk/Makefile.global.in: Remove -pedantic and -Wcast-qual from
	  make warnings; there's too much noise from things that can't be
	  fixed, particularly in the Perl interface. Add -Wendif-label.

	* trunk/doc/man, trunk/doc/man/.cvsignore: Debian's man program
	  likes to create an index.db file if used to view man pages in a
	  directory, but it's the most convenient way to see the formatted
	  man page. So just ignore that file.

	* trunk/tests/lib/fakewrite.c, trunk/tests/lib/setenv-t.c: Include
	  clibrary.h instead of rolling our own so that we don't miss some
	  necessary includes.

	* trunk/tests/lib/tst-t.c: Report more information on the
	  /usr/share/dict/words tests and don't attempt to insert empty
	  words from that list (Debian's word list contains a blank line).

	* trunk/storage/tradspool/tradspool.c: Cast a comparison against
	  iovcnt to avoid warnings.

	* trunk/storage/timecaf/caf.c, trunk/storage/timecaf/timecaf.c:
	  Warning cleanup, mostly signed vs. unsigned.

	* trunk/storage/ovdb/ovdb.c: Warning cleanup.

	* trunk/storage/ovdb/ovdb-private.h: ovdb_check_pidfile should take
	  a const char. Add the appropriate transaction macros for
	  BerkeleyDB 4.1, which gets everything to at least compile and
	  link with that version.

	* trunk/storage/cnfs/cnfs.c: Warning cleanup in snprintf in
	  CNFSofft2hex.

	* trunk/storage/buffindexed/buffindexed.c: Warning cleanups. Take
	  ARTNUMs instead of ints internally where appropriate to get rid
	  of signed vs. unsigned warnings.

	* trunk/storage/overdata.c: Use appropriate data types in
	  overview_index and overview_getheader, and make the latter take
	  an unsigned index as its second argument. Use ARRAY_SIZE where
	  appropriate.

	* trunk/storage/interface.c, trunk/storage/interface.h: SMseterror
	  now always copies its argument so that it can take a const char
	  cleanly. The frequency of errors is too small to do the
	  micro-optimization of not copying static error strings.

	* trunk/nnrpd/article.c, trunk/nnrpd/newnews.c,
	  trunk/nnrpd/nnrpd.h, trunk/nnrpd/post.c, trunk/nnrpd/python.c,
	  trunk/nnrpd/sasl_config.h, trunk/nnrpd/tls.c, trunk/nnrpd/tls.h:
	  Warning cleanup, mostly signed vs. unsigned issues and
	  const-ness. Include some missing header files and clean up the
	  sasl_config.h header to assume ANSI C.

	* trunk/nnrpd/list.c: Don't manually duplicate the work of
	  concatpath when finding the full path to files that we're
	  listing.

	* trunk/lib/perl.c: Warning cleanup for the XS code.

	* trunk/lib/mmap.c: Drop const from the temporary pointers when
	  calling msync; it makes sense that msync wouldn't take const
	  pointers.

	* trunk/lib/messages.c: Don't use %m in syslog calls since it
	  produces a warning on Linux due to oddities in the glibc headers.
	  It's just as easy to call strerror ourselves.

	* trunk/innfeed/imap_connection.c: Clean up warnings in the SASL
	  authentication code.

	* trunk/innd/art.c, trunk/innd/chan.c, trunk/innd/icd.c,
	  trunk/innd/innd.h, trunk/innd/keywords.c, trunk/innd/nc.c,
	  trunk/innd/newsfeeds.c, trunk/innd/ng.c, trunk/innd/perl.c,
	  trunk/innd/python.c, trunk/innd/rc.c, trunk/innd/site.c: Lots of
	  warning cleanup, primarily for signed vs. unsigned warnings and
	  const issues. Remove the old code in rc.c to fix TCP/IP options,
	  since it was no longer being called with the new networking
	  implementation and doesn't appear to be useful these days.

	* trunk/include/portable/socket.h: The casts in the SA_LEN macro
	  should be to const versions of the structs so that it can be
	  called on const socket structures without warnings.

	* trunk/include/ov.h: The second argument to overview_getheader
	  should be unsigned.

	* trunk/history/hisv6/hisv6.c: Various warning cleanup.

	* trunk/history/his.c, trunk/history/hisinterface.h: his_logger
	  should take a const char. Fully initialize nullhist.

	* trunk/frontends/ovdb_init.c, trunk/frontends/ovdb_stat.c: Warning
	  cleanup.

	* trunk/expire/fastrm.c, trunk/expire/makehistory.c: Add
	  appropriate casts to eliminate warnings.

	* trunk/expire/expireover.c: Add missing time.h include.

	* trunk/backends/ninpaths.c: Declare functions static where
	  appropriate.

	* trunk/backends/actsync.c: Warning cleanup and convert to ANSI C
	  declarations and prototypes.

	* trunk/authprogs/smbval/rfcnb-common.h,
	  trunk/authprogs/smbval/rfcnb-io.c,
	  trunk/authprogs/smbval/rfcnb-priv.h,
	  trunk/authprogs/smbval/rfcnb-util.c,
	  trunk/authprogs/smbval/rfcnb.h, trunk/authprogs/smbval/session.c,
	  trunk/authprogs/smbval/smbdes.c,
	  trunk/authprogs/smbval/smblib-priv.h,
	  trunk/authprogs/smbval/smblib-util.c,
	  trunk/authprogs/smbval/smblib.c, trunk/authprogs/smbval/smblib.h,
	  trunk/authprogs/smbval/valid.c: Get rid of the remaining warnings
	  under make warnings.

	* trunk/authprogs/auth_krb5.c: Just pass KRB5_TGS_NAME_SIZE and
	  KRB5_TGS_NAME to Kerberos functions directly rather than putting
	  them in krb5_data, since the latter causes warnings from putting
	  static strings into char * members.

	* trunk/doc/man/ctlinnd.8: Document that renumber does not decrease
	  the hi-water mark.

	* trunk/innd/ng.c: Refuse to ever lower the high-water mark when
	  renumbering. This should help further with problems caused by
	  synchronization issues between overview and the active file.

2003-10-18  rra

	* trunk/MANIFEST, trunk/doc/man/batcher.8, trunk/doc/pod/Makefile,
	  trunk/doc/pod/batcher.pod: Convert batcher(8) to POD.

	* trunk/backends/actsyncd.in: Support the host:port syntax that the
	  actsync man page says that we support. Patch based on a patch
	  from Marco d'Itri.

	* trunk/expire/makehistory.c: Fix makehistory -a by only passing
	  HIS_CREAT when -a is not given.

	* trunk/README, trunk/doc/pod/readme.pod: Update the URL for suck.

	* trunk/contrib/README, trunk/contrib/mm_ckpasswd: Add mm_ckpasswd.

2003-10-16  rra

	* trunk/frontends/mailpost.in: Don't loop forever on articles with
	  a header and no body or blank line after the headers. Reported by
	  Andrea Marrosu.

	* trunk/Makefile: Install the news certificate mode 600, which is
	  what nnrpd actually requires. Reported by Sergio Rodriguez de
	  Guzman Martinez.

	* trunk/control/pgpverify.in: Update to the latest upstream
	  version, which fixes a problem with recognizing NNTP format
	  articles.

2003-10-15  rra

	* trunk/authprogs/auth_krb5.c: Don't print out a space before the
	  username.

2003-09-15  rra

	* trunk/nnrpd/post.c: Formatting change to line up the table of
	  headers better.

	* trunk/nnrpd/post.h: Fix the numbering of HDR__CC and down, which
	  were off by one. Reported by Ka'roly Lo~rentey.

	* trunk/doc/man/ovdb.5, trunk/doc/pod/ovdb.pod: Insert the
	  information about putting the database on multiple disks from the
	  FAQ into here instead, since it's not actually a FAQ and it
	  should be in the regular documentation.

2003-09-08  rra

	* trunk/INSTALL, trunk/doc/pod/install.pod: Remove the mention of
	  domain in inn.conf, since this almost never needs to be set and
	  is confusing.

	* trunk/doc/man/inn.conf.5, trunk/doc/pod/inn.conf.pod: Clarify
	  that NNTP-Posting-Host can't be obfuscated internally by INN, and
	  improve the reference to readers.conf for changing the domain in
	  message IDs.

	* trunk/doc/man/nnrpd.8, trunk/doc/pod/nnrpd.pod: Improve the
	  documentation of when readers.conf and other configuration files
	  are read and update the reference for AUTHINFO (the protocol
	  section still needs work).

	* trunk/doc/man/readers.conf.5, trunk/doc/pod/readers.conf.pod:
	  Mention more information about when readers.conf is re-read,
	  improve the documentation of virtualhost, and add an example of a
	  public server.

	* trunk/nnrpd/tls.c: Produce better error messages for bad
	  ownership or permissions on SSL key files. Patch suggested by
	  cira.

	* trunk/INSTALL, trunk/doc/pod/install.pod: Mention cycbuffupdate
	  in the section on cycbuff.conf.

2003-09-03  rra

	* trunk/scripts/innupgrade.in: Allow innupgrade to take a full path
	  to a file. (Just don't put a period before the temporary file
	  name for the fixed version; we don't really need to make the
	  temporary file hide from regular ls, and it's less confusing this
	  way.) Reported by Marco d'Itri.

	* trunk/backends/news2mail.in: This script uses the three-argument
	  form of open and therefore requires at least Perl 5.6.0.

2003-09-02  rra

	* trunk/NEWS, trunk/doc/pod/news.pod: Add a note to the 2.3 upgrade
	  instructions talking about creating a storage.conf file for INN
	  2.2 users.

	* trunk/INSTALL, trunk/doc/pod/install.pod: Add a mention of
	  --enable-largefiles in the section on cycbuff.conf.

	* trunk/INSTALL, trunk/doc/pod/install.pod: Add documentation for
	  --enable-largefiles.

	* trunk/configure, trunk/configure.in: Simplify the check for
	  sendmail considerably. Just look for it on PATH or in /usr/sbin
	  or /usr/lib if not found there, without requiring people to use
	  --with-sendmail if it's in a standard location. That's the way
	  that pretty much every other package does it.

2003-08-12  rra

	* trunk/configure.in: Search for the BSD ports location of
	  BerkeleyDB 4.1.

2003-08-08  vinocur

	* trunk/doc/pod/Makefile: Add a target for `make clean`

2003-07-30  vinocur

	* trunk/doc/man/ckpasswd.8, trunk/doc/man/readers.conf.5,
	  trunk/doc/pod/ckpasswd.pod, trunk/doc/pod/readers.conf.pod: Typo
	  fixes (from Debian bug reports).

2003-07-22  rra

	* trunk/lib/nntp.c: Include portable/time.h for struct timeval and
	  time_t.

2003-07-16  kondou

	* trunk/innd/art.c, trunk/innd/nc.c: maxartsize did not work
	  correctly

	* trunk/innd/art.c, trunk/innd/nc.c: maxartsize did not work
	  correctly

2003-07-13  vinocur

	* trunk/lib/network.c: Fix segfault when listening on multiple
	  descriptors.

2003-07-12  vinocur

	* trunk/contrib/README, trunk/contrib/analyze-traffic.pl: Add a
	  script for figuring out what groups are seeing the most traffic.

	* trunk/storage/cnfs/cnfs.c: On platforms that lack EOVERFLOW, we
	  can't special-case for failing due to lack of largefile support.
	  The fallback of using the system's error string is fine, but the
	  code needs to compile even if EOVERFLOW is missing.

	* trunk/backends/news2mail.in: Fix a bug that would send mail to
	  all addresses not just good ones, courtesy of Geoff Gibbs.

	* trunk/lib/perl.c: Fix some typos

2003-07-12  rra

	* trunk/MANIFEST: Add the bogus newsgroup data file for overview
	  testing and the first pass at the new NNTP utility library.

	* trunk/frontends/getlist.c: First pass at using the new NNTP
	  utility library (still needs some work).

	* trunk/include/inn/nntp.h, trunk/lib/Makefile, trunk/lib/nntp.c:
	  Add the first pass at a new, general-purpose NNTP utility
	  library. Update Makefile dependencies for lib.

	* trunk/tests/overview/data/bogus,
	  trunk/tests/overview/tradindexed-t.c: Add additional tests with
	  newsgroup names that are malformed in various problematic ways.

	* trunk/storage/tradindexed/tdx-data.c: When building paths, handle
	  groups that contain multiple consecutive periods or embedded
	  slashes, just for robustness and to prevent any odd things from
	  happening. Also rename mapcntl to msync_page.

	* trunk/include/inn/mmap.h, trunk/lib/dbz.c, trunk/lib/mmap.c,
	  trunk/storage/tradindexed/tdx-group.c: Rename mapcntl to
	  msync_page to more accurately reflect what it does and clean up
	  the code a little. Make the third argument go away if we're on a
	  platform that doesn't take three arguments to msync.

	* trunk/support/mksystem: Expose the results of the msync probe so
	  that inn/mmap.h can use them.

	* trunk/tests/Makefile: Add lib/dispatch.t to the list of tests.

	* trunk/storage/cnfs/cnfs.c: Make MS_ASYNC disappear on platforms
	  that don't have it.

	* trunk/innd/art.c: Handle messages with a missing Path header
	  correctly.

	* trunk/innd/innd.c: Move PROCsetup after RCsetup since PROCsetup
	  installs a SIGCHLD handler that interferes with innbind.

	* trunk/scripts/innreport.in: Generate valid HTML. Patch from Marco
	  d'Itri.

	* trunk/scripts/innupgrade.in: Typo fix in status message.

	* trunk/scripts/rc.news.in: Remove the various PID files for INN
	  supporting programs on an rc.news stop.

	* trunk/scripts/inncheck.in: Don't check permissions on
	  configuration files that don't contain passwords. Allow for
	  newsfeed variables.

	* trunk/Makefile.global.in, trunk/site/Makefile: Add a new
	  installation command for files that should use the same umask and
	  mode as files written by the server, and use that for installing
	  the sample active and newsgroups files and the empty active.times
	  file.

	* trunk/TODO: Add a bug about ovdb server shutdowns.

	* trunk/doc/man/makehistory.8, trunk/doc/pod/makehistory.pod: Make
	  it clearer that the ovdb processes must be running when
	  rebuilding overview for ovdb.

	* trunk/doc/man/newsfeeds.5, trunk/doc/pod/newsfeeds.pod: Recommend
	  always using full paths in newsfeeds.

	* trunk/HACKING, trunk/doc/pod/hacking.pod: Note that only the
	  default multiplexed mode for CVSup is supported.

	* trunk/doc/man/ckpasswd.8, trunk/doc/pod/ckpasswd.pod: Add
	  instructions for how to test.

	* trunk/doc/man/news.daily.8, trunk/doc/man/newslog.5: newslog(8)
	  does not exist.

	* trunk/control/pgpverify.in, trunk/control/signcontrol.in: Update
	  to latest upstream release.

	* trunk/lib/daemonize.c: Don't use TIOCNOTTY if we have setsid().
	  It was causing errors on *BSD.

	* trunk/lib/qio.c, trunk/lib/readin.c: Allow for EINTR when
	  reading.

2003-06-21  rra

	* trunk/samples/control.ctl: Add france.* and update Marco d'Itri's
	  address.

2003-06-19  vinocur

	* trunk/storage/cnfs/cnfs.c: Special-case for EOVERFLOW and give an
	  error message indicating that the problem is probably CNFS buffer
	  > 2 GB without having compiled in largefile support.

2003-06-04  rra

	* trunk/nnrpd/nnrpd.c: buff is needed for OpenSSL builds.

2003-06-02  rra

	* trunk/lib/network.c: sin_family becomes sin6_family under IPv6.

	* trunk/include/inn/buffer.h, trunk/lib/buffer.c,
	  trunk/tests/lib/buffer-t.c: Add functions to sprintf into a
	  buffer, resizing as necessary. This will eventually be useful all
	  over the place for replacing static buffers with dynamically
	  resized struct buffers.

	* trunk/lib/remopen.c: Add a missing freeaddrinfo and remove
	  unnecessary includes.

	* trunk/include/inn/network.h, trunk/lib/remopen.c,
	  trunk/support/mksystem: Move the NETWORK_AF_HINT define into
	  inn/network.h and put HAVE_INET6 into inn/system.h so that
	  inn/network.h can refer to it.

2003-06-01  rra

	* trunk/MANIFEST, trunk/include/inn/dispatch.h, trunk/lib/Makefile,
	  trunk/lib/dispatch.c, trunk/tests/Makefile, trunk/tests/TESTS,
	  trunk/tests/lib, trunk/tests/lib/.cvsignore,
	  trunk/tests/lib/dispatch-t.c: Add a new library routine for
	  dispatching commands (in the form of a cvector) to the
	  appropriate handler function, handling limitations on the
	  argument count and handling unknown commands.

	* trunk/include/inn/buffer.h, trunk/lib/buffer.c,
	  trunk/tests/lib/buffer-t.c: Add buffer_free, buffer_read,
	  buffer_compact, and buffer_find_string in preparation for some
	  work on a new NNTP interface.

2003-05-31  rra

	* trunk/samples/control.ctl: Update the relcom.* sender to reflect
	  what's currently used and limit Big Eight checkgroups to just the
	  Big Eight hierarchies.

	* trunk/backends/actsync.c, trunk/expire/convdate.c,
	  trunk/expire/makehistory.c, trunk/innd/cc.c, trunk/innd/chan.c,
	  trunk/innd/site.c, trunk/innd/status.c,
	  trunk/innfeed/configfile.y, trunk/innfeed/main.c,
	  trunk/lib/parsedate.y, trunk/nnrpd/misc.c, trunk/nnrpd/newnews.c,
	  trunk/nnrpd/nnrpd.c, trunk/nnrpd/perm.c,
	  trunk/storage/buffindexed/buffindexed.c,
	  trunk/storage/cnfs/cnfs.c, trunk/storage/overdata.c,
	  trunk/storage/timehash/timehash.c,
	  trunk/storage/tradindexed/tdx-group.c: Warning patch from Ilya
	  Kovalenko. Gets rid of all the remaining warnings under -Wall on
	  Solaris (and hopefully also OpenBSD). Mostly unused variables and
	  format mismatches.

	* trunk/storage/ovdb/ovdb.c: Fix compiler warnings, some of which
	  only show up with BerkeleyDB 2.x.

	* trunk/authprogs/smbval/rfcnb-priv.h,
	  trunk/authprogs/smbval/rfcnb-util.c,
	  trunk/authprogs/smbval/rfcnb.h, trunk/authprogs/smbval/session.c,
	  trunk/authprogs/smbval/smbencrypt.c,
	  trunk/authprogs/smbval/smblib-priv.h,
	  trunk/authprogs/smbval/smblib-util.c,
	  trunk/authprogs/smbval/smblib.c, trunk/authprogs/smbval/smblib.h,
	  trunk/authprogs/smbval/valid.c: This code is still a mess, but at
	  least now it compiles under -Wall without warnings.

	* trunk/authprogs/auth_krb5.c: Remove unused variable.

	* trunk/backends/ninpaths.c: Fix various format warnings and use
	  the CTYPE macro.

	* trunk/frontends/ovdb_stat.c: Use the right type for handling
	  string values returned to getval.

	* trunk/frontends/ovdb_init.c: Fix upgrade_environment to always
	  return a value.

	* trunk/innd/innd.c: Remove unused variables.

2003-05-31  vinocur

	* trunk/doc/man/inn.conf.5, trunk/doc/man/innfeed.conf.5,
	  trunk/doc/pod/inn.conf.pod: Further warnings about quoting IPv6
	  address in config files.

2003-05-31  rra

	* trunk/doc/man/inn.conf.5, trunk/doc/pod/inn.conf.pod: For
	  bindaddress6, warn that the value will generally have to be
	  quoted.

2003-05-19  rra

	* trunk, trunk/.cvsignore: Ignore CHANGES and ChangeLog, which are
	  handled specially by the release process.

	* trunk/CONTRIBUTORS, trunk/backends/batcher.c,
	  trunk/backends/innxbatch.c, trunk/history/his.c,
	  trunk/history/hisv6/hisv6.c, trunk/innd/art.c,
	  trunk/storage/cnfs/cnfs.c: Unused variable and missing include
	  warning fixes, from Ilya Kovalenko.

2003-05-14  rra

	* trunk/include/inn/network.h, trunk/include/libinn.h,
	  trunk/lib/network.c, trunk/lib/remopen.c: Convert the NNTP server
	  open code to use getaddrinfo unconditionally and to use new
	  network bind code that handles setting the source address and
	  trying multiple remote addresses from a linked list of addrinfo
	  structs.

	* trunk/storage/Make.methods: Include the new
	  tradindexed/tdx-util.o rule.

	* trunk/tests/lib/getaddrinfo-t.c: Protocol is now more often set
	  to IPPROTO_TCP, which is still not entirely correct but is good
	  enough for now (and is noted in the to-do list at the top of
	  getaddrinfo).

	* trunk/lib/getaddrinfo.c: Try to set IPPROTO appropriately.

	* trunk/TODO: Add a cleanup item for getting rid of the "any" and
	  "all" special strings for the bind address and source address
	  settings.

2003-05-12  rra

	* trunk/MANIFEST, trunk/configure, trunk/configure.in,
	  trunk/include/clibrary.h, trunk/include/config.h.in,
	  trunk/include/portable/getaddrinfo.h,
	  trunk/include/portable/socket.h, trunk/lib/Makefile,
	  trunk/lib/getaddrinfo.c, trunk/tests/Makefile, trunk/tests/TESTS,
	  trunk/tests/lib, trunk/tests/lib/.cvsignore,
	  trunk/tests/lib/getaddrinfo-t.c: Add a getaddrinfo replacement
	  (IPv4 only) on systems that don't have it. This is the first step
	  of replacing all the #ifdef code with code that just always calls
	  getaddrinfo unconditionally, which will clean up the networking
	  code quite a bit.
	  
	  At the same time, put some additional network portability work
	  into include/portable/socket.h that was needed for getaddrinfo
	  and move the definition of hstrerror from clibrary.h to there.

	* trunk/support/makedepend: Filter out all system headers that make
	  it into the dependencies (generally due to Perl or Python) by
	  removing files with absolute paths.

2003-05-11  rra

	* trunk/innd/rc.c, trunk/innd/status.c: Include portable/socket.h
	  instead of arpa/inet.h directly, to handle the order requirements
	  on some platforms.

	* trunk/storage/tradindexed/ovmethod.mk: tdx-util.o should not be
	  built by libtool, since otherwise --disable-static confuses the
	  heck out of things.

	* trunk/authprogs/smbval/session.c: Include netinet/in.h before
	  netinet/tcp.h, required by UnixWare.

	* trunk/storage/ovdb/ovdb.c: Berkeley DB 2.x doesn't have
	  DB_PRIVATE.

2003-05-07  rra

	* trunk/NEWS, trunk/doc/pod/news.pod: Add an entry for the removal
	  of inndstart and startinnfeed.

	* trunk/scripts/innupgrade.in: Fix newsfeeds file to adjust for the
	  removal of startinnfeed.

2003-05-06  rra

	* trunk/samples/moderators: fj.* is another exception.

2003-05-05  rra

	* trunk/include/Makefile: Install inn/*.h include files in
	  PATHINCLUDE/inn/*.h, not inn/inn/*.h.

	* trunk/doc/compliance-nntp: Remove the point about articles
	  without message IDs as the current draft now outlaws them
	  entirely. Update the one about OVER with bad ranges to reflect
	  the current draft, and change the point about HDR with message
	  IDs to instead note that the first word of the return should be 0
	  instead of the message ID.

	* trunk/NEWS, trunk/doc/pod/news.pod: Add a reference to the
	  tdx-util man page and capitalize the changes section for the Perl
	  and Python hooks.

	* trunk/TODO: Add a note about SIGPIPE handling in nnrpd.

	* trunk/HACKING, trunk/INSTALL, trunk/MANIFEST, trunk/TODO,
	  trunk/backends, trunk/backends/.cvsignore,
	  trunk/backends/Makefile, trunk/backends/innbind.c,
	  trunk/configure, trunk/configure.in, trunk/contrib/delayer.in,
	  trunk/contrib/sample.init.script, trunk/doc/IPv6-info,
	  trunk/doc/config-design, trunk/doc/man/Makefile,
	  trunk/doc/man/ctlinnd.8, trunk/doc/man/innbind.8,
	  trunk/doc/man/innd.8, trunk/doc/man/inndstart.8,
	  trunk/doc/man/innfeed.1, trunk/doc/man/newsfeeds.5,
	  trunk/doc/man/nnrpd.8, trunk/doc/man/rc.news.8,
	  trunk/doc/man/startinnfeed.1, trunk/doc/pod/Makefile,
	  trunk/doc/pod/hacking.pod, trunk/doc/pod/innbind.pod,
	  trunk/doc/pod/innd.pod, trunk/doc/pod/inndstart.pod,
	  trunk/doc/pod/install.pod, trunk/doc/pod/newsfeeds.pod,
	  trunk/doc/pod/nnrpd.pod, trunk/doc/pod/rc.news.pod,
	  trunk/include/config.h.in, trunk/include/inn/network.h,
	  trunk/include/portable/socket.h, trunk/innd,
	  trunk/innd/.cvsignore, trunk/innd/Makefile, trunk/innd/cc.c,
	  trunk/innd/innd.c, trunk/innd/innd.h, trunk/innd/inndstart.c,
	  trunk/innd/rc.c, trunk/innfeed, trunk/innfeed/.cvsignore,
	  trunk/innfeed/Makefile, trunk/innfeed/startinnfeed.c,
	  trunk/lib/Makefile, trunk/lib/network.c, trunk/nnrpd/nnrpd.c,
	  trunk/samples/newsfeeds.in, trunk/scripts/inncheck.in,
	  trunk/scripts/innshellvars.in, trunk/scripts/innshellvars.pl.in,
	  trunk/scripts/innshellvars.tcl.in, trunk/scripts/rc.news.in,
	  trunk/tests/Makefile, trunk/tests/TESTS, trunk/tests/util,
	  trunk/tests/util/.cvsignore, trunk/tests/util/innbind-t.c: Add a
	  new helper program, innbind, which is installed setuid root and
	  just binds a given file descriptor to a given network address.
	  Add wrapper functions in libinn to call innbind when binding
	  IPv4, IPv6, or all local addresses.
	  
	  Remove all traces of inndstart from the source tree and modify
	  rc.news and ctlinnd xexec to run innd directly as well. Add a -6
	  option to innd to specify the IPv6 bind address (replacing the
	  option previously intercepted by inndstart) and remove the -p
	  option specifying an already open port. Add a -6 option to nnrpd
	  to specify the IPv6 bind address rather than trying to
	  disambiguate by looking at the address supplied to -b and clean
	  up the network handling for daemon mode.
	  
	  Remove all traces of startinnfeed from the source tree in favor
	  of invoking innfeed and imapfeed directly. Update the install
	  documentation to remove the parts about INN increasing limits
	  itself. Update the sample init script to remove file descriptor
	  limits.

	* trunk/INSTALL, trunk/Makefile.global.in, trunk/README,
	  trunk/doc/pod/install.pod, trunk/doc/pod/readme.pod: Bump version
	  number to 2.5. Update INSTALL with a version of the patch from
	  the 2.4 branch, reflecting that upgrades from previous major
	  releases from INN 2.3 onward can still be upgrade with make
	  update. Add a paragraph suggesting that people look at the
	  samples when upgrading from a previous major release.

