 -*- mode: text; coding: iso-8859-15; -*- :vim:set ai:
 ----------------------------------------------------------------------
		   Leafnode 2.0.0.alpha branch TODO list
 ----------------------------------------------------------------------


NEW:

- when attempt_lock() fails with invalid FQDN, its callers report
  lockfile existed (which is untrue).



NOTE: issues fixes in the current, possibly unreleased _ma versions, but
persistent in the offical 2.0b tree, are not listed here.

STATE: NEW -> OPEN -> ANALYZED -> NEEDFEEDBACK|RESOLVED|REJECTED

This is a PRIORITIZED LIST. It has two columns, first the importance,
second the urgence. (Matthias)

importance:
1 = most important, 5 = forget it
urgency:
1 = do now, 5 = postpone until bored

"security relevant": at most 2.2

"works correctly, but suboptimal": importance and urgence at least 3.3


SOON:
	- pipeline group description updates
	- add bogofilter hook - Clemens has something in the pipe.
	- record spool version in some file, for instance, to bump it
	  from v2 to v2.1 (or something similar) when changing the hash
	  function ( la MoinMoin's upgrade helper)

SECURITY:
1.1	Add timeouts to ALL network reading functions (CAN-2005-1911),
	for instance store_stream!

	Add a reader that aborts after maximum latency or when falling
	below a minimum speed threshold.

Ralfs TODO:
	* dirutil.c: should dirlist_core set count in error case?  This
	  could break xgetxover and maybe other places.
	* NNTP draft: wildmats are parsed wrongly:
	  'groups.a.*,groups.b.*' is not properly detected (who needs
	  this?)
     ---- ACKNOWLEDGED
	  NOTE 2002-04-06 Ralf:
	  reconstructing a real big thread takes 90% of user time in
	  DoMatch or wildmat (as per gprof). It would be worthwhile to
	  use something that performs better. To test: slrn, Esc 1 Esc P
	  (does XPAT to find children).
     ---- DoMatch is not too inefficient. Does gprof overhead cause
	  miscalculation because of the recursion?
	* nntpd.c: check with NNTP draft for UTF-8 stuff.  Folding should
	  be ok now.
	* delaybody mode: Cancels for marked bodies lead to marks not being
	  removed (supersedes are handled ok) until expiry of the pseudo header.
	* sysconfdir is missing /leafnode, thus wrong manpages (more?)
	* Fix handling of pseudo article.
	* XPAT hdr range *PATTERN WITH SPACES* does not work, cf. RFC2980
	* race condition in fetchnews between ismsgidonserver and post_FILE.
	  Using only_fetch_once e.g. can hit the window with two upstream servers.

* split current high water mark vs. next-article-gets-number so as to
  report current figures for LIST and GROUP (discussion with Brian
  Summon on leafnode-list July 21/22 2004).

* forward port leafnode-1 STAT blacklisting code? Or go for real posting
  stuff?

* program filters for OUTGOING (Sourceforge RFE 1244705)

* make sure filters or some other mechanism can allow local, but block
  remote control messages (christophe Raverdy <craverdy@teaser.fr>
  2002-12-05 leafnode-list)

Nikolaus Rath, debian bug #307685, 2005-05-04:
| It would be very nice to be able to specify individual timeout_short
| and timeout_long values for specific groups, as it is possible for
| expiry times with groupexpire.
|
| Reason: My low-traffic *.announce and *.info groups are permanently
| unsubscribed because there is sometimes no traffic for more than
| timeout_long days. I don't read them if there is no traffic -> leafnode
| thinks that they should be unsubscribed.
|
MA: It might be best to rework the configuration parser towards Apache
style, where we have contexts that allow the user to specify otherwise
global options specifically for a group or upstream server, by putting
it into a bracketed part (Perhaps also similar to isc-dhcpd 3
configuration).

Matthias:

* line 1605 fetchnews.c (if active && ...) needs to be fixed. The whole
  process may need to be split in phases 1-obtain group lists, 2-post,
  3-fetch.

* Fix all USAGE() statements. Print standard options from a common file.
  Switch to some sane license and print a short edition in usage.

* fix TOKENSIZE in filters.

* use NEWSGROUPS file possibly obtained via ftp instead of downloading?

* when server supports DATE, compensate for offset when sending
  NEWGROUPS et al.? See report of John Carlyle-Clarke of 2004-01-27

* supersedes handling: keep track of _upstream_ Message-IDs that need to
  be superseded?

  Supposed user posts MID #1, fetchnews runs,
  user posts a supersedes for #1 with MID #2 then a supersedes for #2
  with MID #3. Next time fetchnews runs, MID #3 has no Supersedes for
  #2, failing to remove #1 upstream.

* combine regexps with boolean operations?

* store group lists (active file) per server and merge them into a DB?

* separate audit logging (who subscribes, who downloads) from debug
  logging

* remind user to install distributor packages before doing a source
  install. Mail from Andreas Kneib <akneib@gmx.net> 2004-05-18.

* add a  maxfetch companion "postings per day" or so that keeps track of
  when the group was last fetched successfully and limits the posts per
  interval (to cope with situations where server or client are down for
  some days and fixed limits don't cut the mustard).

* allow per-group maxfetch configuration; Thufir 2006-09-08

10pre5
0.0 forward port bug fixes from 1.9.19rc to 1.9.26* (applyfilter done)

10pre5
0.0 do not use mkstemp on MacOS X, it's unsafe there

3.3 timeout_long per group? (user complained about low-traffic
    unsubscription at the same time so he may simply need to update)

2.2 Add a switch to disallow storing posts that fetchnews has fetched
    into local groups. Add another switch to disallow accepting locally
    posted articles that are crossposted across various hierarchies.

2.2 allow admin to re-validate posts to moderated groups, for instance,
    disallowing crossposts unless they have a proper approved: header.
    What is a proper approved: header? GnuPG signed? That's after-2.0
    stuff.

2.2 allow higher crosspost limits for certain "antidote" groups such as
    de.admin.* that regularly cause larger crossposts with single
    followup-to, to avoid missing announcements while keeping spam out?

10pre5
2.2 rb_lookup: warning: `cmp' might be used uninitialized in this
    function. May happen with rb_lookup with rbinfo->rb_root == RBNULL.
    (Not in leafnode). Reported by Ralf Wildenhues. Bug report
    to Damian Ivereigh. Message-ID: <20020126133758.A428@uni-bonn.de>

10pre5
1.1 leafnode does not add a Lines: header, but has the Lines count in
    XOVER. slrn then displays "0 Lines" when fetching a parent not
    previously displayed in the article overview. Reported by Ralf
    Wildenhues, 2002-01-16, <20020116154247.A770@uni-bonn.de>

11pre1
1.1 fix posting issues, introduce per-server queues?

2.2 Add custom headers like Organization: or X-Complaints-To: (Jeff
    Grossman, 2002-03-09)

2.2 insertgroups/mergegroups global/static variables suck big time

2.2 for posts to moderated groups, add server preferences for posting?

2.2 track which user posted an article (Stefan Fleiter)
    log RFC931 or AUTH data who posted an article (maybe show in newsq)

2.2 also run feedincoming on exit of programs that lock (after they free
    the lock)

2.2 what happens if a dupe is rejected by an upstream server - should we
    delete it from our leafnode server? tolerate in local groups?

2.2 do not store cancel and perhaps other control messages locally?

2.2 cancelwatch (send mail to user if a posting he sent is cancelled)

2.2 New .overview strategy can cause corruption when $spooldir is on an
    NFS volume.

2.2 Check RPM build

2.2 pipeline GROUP commands for speed (make configurable for
    compatiblity with old server: separate parameter from ARTICLE
    pipeline)?

2.2 Create rpost/inews

2.2 Fix and amend copyright statements and licenses.

2.2 nntpd control articles are also displayed

2.2 add pathexclude features (spam, ) perhaps with regexp

2.2 new syntax for parameters, to precede them by nothing (plain string
    match), {GLOB} or {WILDMAT} for simple patterns, {PCRE} or {REGEXP}
    for Perl or POSIX regexp?

2.2 option to freeze interesting.groups as it is -- just give away group
    permissions to root -- Ozz 2001-06-12

3.3 do parallel fetch
    models: 1- threads 2- fork() 3- select()-based
    problems: 1- groupinfo 2- avoid EEXIST 3- avoid locks or semaphores
    Go for threads or alternatively transactional BerkeleyDB

3.3 heed Expires: header in texpire

3.3 offer a per-server switch to select how the list of downloadable
    articles is fetched, offer xover, xhdr, newnews and "auto" which
    tries these methods in exactly this order.

3.3 Does not send UUCP to upstream, introduce option to batch and spool UUCP.

3.3 Ben Holmes: enable clients to read newsgroups immediately after
    completion of their download, rather than only after fetchnews
    completed.
    -- Stefan Fleiter: should be "mostly there" with the new .overview
    strategy, but how about groupinfo?

3.3 don't supersede() articles unconditionally
    ACTION: figure criteria for allowing/denying supersede
    Cancel-Lock? Plausibility checks?

3.3 authentication interface:
    Use Bruce Gnter's credential validation module?
    Use Courier's auth-library?

3.3 add client-specific fixups, such as declaring character sets,
    re-encoding subject and so on?

3.3 Hook (ext. program) for editing group info,
    <slrn9e1dv6.3il.wum@wum.truhaso.lu> and
    <m3snj2d3k1.fsf@emma1.emma.line.org>

3.3 run everything through various static and dynamic checkers
    (efence, dmalloc, lclint)

3.3 how to make newsgroup names 8-bit compliant? E.g., how to produce
    a newsgroups line of the form
	Newsgroups: norge.stfold
    Some readers encode this as ISO-8859-1 but this apparently is not
    understood upstream. It is also against the RFCs. son-of-rfc1036
    says that all data must be transmitted with ASCII < 127.
    draft-ietf-nntpext-base-07.txt says that the character set for all
    NNTP commands is UTF-8 (unicode!). Another possible draft is
    draft-ietf-usefor-article-01.txt (chapter 5.5.) which is not very
    helpful either.

3.3 fetchnews starts with an initialfetch (!)

3.3 let texpire use the actual article date rather than mtime/atime

3.3 send posted articles out immediately -- based on switches or
    filters? MID <3C10FC04.BeroList-2.5.9@wpxx02.toxi.uni-wuerzburg.de>?
    Ben Holness.

3.4 postarticles is a horrible mess. It deletes the articles IMMEDIATELY
    if it's available on a server.

3.4 cache 411 replies to GROUP for some fetches to speed things up a
little. Suggested by Daniel Fraga <fraga@myrealbox.com>.

4.2 get rid of all those if (verbose > anything)

4.3 move old articles from out.going to failed.postings if they are,
    say, 7 days, old? (Report by Stefan Wiens, Message-ID:
    <3A1EDBFF.BeroList-2.5.9@wpxx02.toxi.uni-wuerzburg.de>)

4.4 NOCEM, store Message-ID in advance (advance cancel, nocem, ...)
    (Mike Castle, dalgoda@ix.netcom.com)

4.4 implement detection if local group shadows server group

4.4 server dependent out.going, possibly a repost command?

4.4 interrupt fetch every 100 (configurable) postings and then
    reconnect, to beat the INN configuration option.

4.4 see if the dots that NNTP servers escape can remain in the articles
    so that the body can be passed through to the client 1:1 (would need
    review if CR is required, and would break "direct spool" operation)

4.4 progress displays on terminals for fetchnews and texpire

4.4 optionally forbid crosspostings to local and global groups.
    (consider this for local posts and check whether to ignore this for
    downstream pulled articles)

4.4 split post functionality from fetchnews to a separate daemon (but
    maybe call the new daemon automatically) Ozz 2001-06-12

4.4 add IHAVE support for feeding upstream

5.5 introduce Control: pseudo group functionality

5.5 abort group fetch and proceed to next group

Clemens:

3.4 2008-12-12 (do when actually needed):  Lua filtering could actually
    help with newsgroups vandalized by robots:  The heaviest vandalism
    I've seen involved posting thousands of articles day after day,
    where subject lines, authors, other headers and bodies were
    constructed from real articles, possibly using a markov chainer.  It
    just occured to me that all the fakes were top-level articles, ie.
    they didn't carry References: lines, and they didn't cite other
    articles.  Statistical methods like bayesian word propability
    combiners might fail here, because what they compute appears within
    margins.  The Lua backend would allow you to scrutinize top-level
    articles much harder than follow-ups on the assumption that if you
    drop an article that later turns out to be genuine, the follow-ups
    will contain the most interesting stuff of it as citations.  The
    false "drop-outs" could even be refiled from quarantine!

========================================================================
FIXED ITEMS:

2009-02-11 ACLs (possibly including identd) or regexp to prevent groups from
    being shown (mind ARTICLE <message@id> and check against Xref or
    Newsgroups: headers) -> Lua-Script

2009-02-11 ACLs (possibly including identd) or regexp to filter which groups
    may be subscribed to (could include user specific) -> Lua-Script

2005-04-12 Matthias Andree
	   newsq -f lists articles to be retrieved in delaybody mode.
	   Suggested by Cory C. Albrecht.

2004-02-27 Hynek Schlawack
	   make PAM aware (Solaris, Linux, FreeBSD) to get rid of crypt

2004-02-06 Hynek Schlawack
	   get rid of _all_ sscanf

2004-02-06 Hynek Schlawack, Matthias Andree
	   try to post an article to *every* server before moving into
	   failed.postings, suggested by Jeff Grossman

2004-01-29 Matthias Andree
	   forward port "noactive" from leafnode-1

2003-10-31 Matthias Andree
	   if group is empty, low water mark is not bumped up to high water mark

2003-10-30 Matthias Andree
	   If some.group is dormant (i.e. listed in dormant.groups),
	   crossposts from interesting groups can newly appear in
	   some.group.  (Ralf Wildenhues, 2002-09-05)

2003-10-30 Matthias Andree
	   'LIST NEWSGROUPS pattern' could add moderator address for
	   moderated local groups.

2003-10-30 Matthias Andree
	   Reiner Steib: applyfilter -c /path/to/some/article
	   (leafnode-list 2003-08-12)

2003-07-29 Matthias Andree
	   applyfilter: does not handle to-kill-crossposts correctly:
	   only killed if removed from _all_ other groups
	   (stat.st_nlink<2) but deleted from to-do group.  Subsequently,
	   "%d articles deleted' message not correct.

2003-07-28 Matthias Andree
	   add support for stderr logging so that multilog can be used
	   (clemensF <rabat@web.de>).

2003-07-06 Matthias Andree
	   make "newsgroup" in filter a PCRE (rather than wildmat)

2003-02-03 Matthias Andree
	   Leftover link in temp.files for posted articles. Reported by
	   Robert Marshall.

2003-01-27 Matthias Andree
	   Newsgroup with colliding names (only differing in case) are
	   now ignored, we only use the version with less upper-case
	   letters.

2002-09-07 Matthias Andree
	   race condition in fetchnews: a second fetchnews can read the active file
	   before the first one wrote it.  After obtaining the lock, the second
	   fetchnews writes back the old active file.  Other programs affected?

2002-09-07 Matthias Andree
	   option fqdn not explained (option hostname sufficient?)

2002-09-07 Matthias Andree
	   no longer store articles in backup.moderated.

2002-09-07 Matthias Andree
	   :active.read must not be updated on NEWGROUPS, or the active will
	   never be refetched as a whole. (duplicate report was filed by
	   Jrg as CVSTrac #5).

2002-08-21 Jrg Dietrich
	   dopost: Newsgroups: is not checked for valid groups

2002-07-22 Ralf Wildenhues
	   tolerate ", " instead of just "," in Newsgroup:
	   current NNTP drafts suggests that to be able to fold
	   Newsgroup: headers.

2002-07-08 Matthias Andree
	   fix SIGCHLD behaviour or use Jeffrey Goldberg's patch of
	   2002-02-04 note: cannot reproduce "SIGCHLD triggers getc()
	   EOF" on Linux or FreeBSD.
	   Fixed: using sigaction now with SA_RESTART.

2002-07-08 groupinfo not updated after timeout + subsequent SIGINT
	   fix acknowledged by Jrg Dietrich 2002-08-17

2002-07-08 Matthias Andree
	   do not tamper with permissions on /var/spool/news/* directories
	   (Kevin Bulgrien), to allow for leafwa tricks.

2002-07-07 Ralf Wildenhues
	   delaybody mode: Overviews are not corrected at all times yet.

	   Suggestion by Jrg Mensmann: only pick groups from supplement that
	   have not been fetched before (or filter groups by server)
	   Implemented with only_fetch_once config option.

2002-07-06 Ralf Wildenhues
	   can fetchnews cope with servers that reject XOVER?

	   delaybody only for certain groups?

	   clean up fetchnews main function, it's a horrible mess with all
	   those !postonly, unmaintainable.

	   Look at each occurence of article numbers. They can go from 1
	   to 2^32-1 according to NNTP draft - watch out for signed long
	   (done for all except fetchnews):
	   nntpd.c: doarticle: On 'ARTICLE <MID>', for delaybody an artno
	   still has to be computed but not returned (see above).
	   check each time occurrence for possible 4 digit years (NNTP draft).
	   getgroup() should return unsigned long.
	   delaybody mode: fetchnews currently tries normal download of those
	   headers also, resulting in error messages, the output counts
	   are wrong.

	   Let killfilter also apply maxcrosspost on an Xref header if
	   one is there; this may not be exact, but may still avoid
	   downloading a "maxcrosspost" filtered article.

2002-07-03 Ralf Wildenhues
           exit code of fetchnews always zero

2002-07-03 "rnews does not work in pipes", Jrg Dietrich, Raymond Scholz,
	   <3AF40BA6.BeroList-2.5.9@wpxx02.toxi.uni-wuerzburg.de>

2002-06-18 Ralf Wildenhues
	   make user that leafnode runs under (now hard-wired to "news")
	   configurable

2002-06-14 Matthias Andree
	   Leopold Ttsch: offer 1.9-style posting: do not store a
	   posted article locally, but wait for its download from the
	   upstream, to make sure if it's posted or not.
	   (2002-04-10T15:50, "Small posting problem with
	   leafnode-2.0b8_ma8rc5", leafnode-list)

2002-05-05 Matthias Andree
           refuse postings with unqualified or local message ID domain part.

2002-05-05 Matthias Andree
	   add COPYING (requested by Ralf Wildenhues)

2002-05-05 Matthias Andree
	   left over temp files when lock cannot be obtained (Jari Lehtonen
	   <jari@utu.fi>)
	   -> changed timeout handling, do not use alarm(), but let lockfile.c
	   track the time out.

2002-05-05 Matthias Andree
           internal error reported when hostname = localhost (Jari Lehtonen
           <jari@utu.fi>, Mark Brown)

2002-05-01 Ralf Wildenhues
	   NEWNEWS and NEWGROUPS MUST not alter state information!

2002-05-01 Ralf Wildenhues
	   When POSTing an article with an upstream-already-used MID, the
	   new article is not moved out of in.coming, causing errors at
	   each fetchnews invocation.

2002-05-01 Ralf Wildenhues
	   artutil.c: mgetheader is broken.  A non-folded header is
	   always returned as NULL.  Effect: applyfilter does not work at
	   all, dopost dows not check for dupes.

2002-04-26 Ralf Wildenhues
	   nntpd.c: do error checking on interesting.groups/* files
		    fix file descriptor leak

2002-04-13 Matthias Andree
	   nntpd.c: list PAT in dohelp? (Ralf Wildenhues)
	   Fix: implemented.

2002-04-10 Ralf Wildenhues
	   Ralf Wildenhues/Thomas Schultz: draft-ietf-nntpext-base-15.txt
	   reply with 22X 0 <MID> to ARTICLE/BODY/HEAD/STAT <MID> (mind the 0)

2002-04-10 Ralf Wildenhues
	   check for spaces and other fun in MIDs (found a MID with spaces
	   in my spool and an article with UTF-7 encoded references).

2002-03    strings returned by {f,m,}getheader must be freed (Stefan Wiens)
	   Fixed by Ralf Wildenhues

2002-02-28 Matthias Andree 
	   NNTP draft:  no message on timeout disconnect - does this break 
	   clients/servers?

2002-02-11 tin claims "no articles" for all local groups.
	   Lutz Frommberger, 2002-01-06. Private mail, ID:
	   <E16MzOy-0000An-00@dali.aufgebot.gov>
	   Fixed by Jrg Dietrich.

2002-02-11 groupinfo is not updated for local groups (article low/high marks)
	   when these are reinserted.
	   Fixed by Jrg Dietrich.

2002-02-11 "Das ist eine Macke von Leafnode. Wird von einem Server die
	   komplette Gruppenliste geholt, so werden neu hinzugekommene
	   Gruppen bei NEWGROUPS nicht aufgefhrt. Der Reader findet sie
	   daher nicht ohne weiteres." (Stefan Wiens,
	   de.comm.software.newsserver 2000-12-07, Message-ID:
	   <wkr93lxerw.fsf@helium.eswe.dyndns.org>) Transl: if a
	   complete group list is fetched from a server, newly appeared
	   groups are not offered in NEWGROUPS.
	   Idea #1: Possibly emit list from mergegroups
	   Idea #2: diff newsgroups list before and after group list fetch
	   Idea #3: Store newsgroups in timestamped file.
   	   Fixed by Jrg Dietrich.

2002-02-04 leafnode may store newly fetched articles into the gaps if groupinfo
	   is not current. groupinfo may be out of date after a crash, fix
	   watermarks.

2002-02-04 put conditional #include <dmalloc.h> into each file

2002-02-03 do not log without debug/verbose mode (cron should not send mail
	   when everything goes smoothly)

2002-01-07 1.1 article can be given out in spite of missing message.id
	   file - a missing message.id file/link hints to spool
	   corruption. store() does NOT link into message.id on write
	   errors.

2002-01-07 .overview must always be more current than groupinfo, so that
	   nntpd never offers article via GROUP that it cannot provide
	   via XOVER e. g. (Stefan Wiens)

2002-01-06 authinfo handling in nntpd.c proper? (just user gives ACCEPT)
	   ACTION: replace by proper state machine

2002-01-06 document NOPOSTING env variable that prevents posting

2002-01-06 NOPOSTING: replace the banner with the contents of this
	   variable.

2002-01-06 Fix nntputil.c and nntpd.c for proper IPv6
	   (getipnodebyname/byaddr etc.)

2002-01-06 groupinfo is all 0 0 0 if groupinfo is entirely re-read, until
	   texpire is run.

2001-06-27 Matthias Andree
	   fix bug introduced on 2001-01-28. This bug was only present
	   in 2.0b8_ma2.1-alpha, 2.0b8_ma-pre3-WIP and
	   2.0b8_ma-pre3-snapshot.  2.0b8_ma2 did not yet have the bug,
	   2.0b8_ma3 already fixed it.  broken versions (CVS):
	   1.7.2.4 up to 1.7.2.7 (including either one)

	   out.going: "Nur, wenn ich fetchnews aufrufe, ohne Online zu
	   sein, geht das Posting verschtt. Ohne Fehlermeldung."
	   Ivo Schwalbe, <51nig9.kv.ln@abu.ivos.de>
	   (he lost articles when running fetchnews while not connected
	    to the internet)

============================================================================
DROPPED ITEMS:

2003-02-03 Matthias Andree
	Peter Holm's report about filtering not happening on XOVER. No
	sufficient hints to leafnode bug -- likely his malformatted PCRE
	caused the troubles.

2002-07-08 Matthias Andree
	use separate repairspool program

2002-07-07 Matthias Andree & Ralf Wildenhues
	getgroup: "%s: considering %ld articles %lu - %lu" does not include
	   proper article count as sent by server, but just uses last-first+1
	   The correct numbers are reported later on.

2002-04-13 Matthias Andree
	Ralf asked:
	* nntpd.c: dogroup does
	  if (is_interesting(g->name))
	    markinterest(g);
	  shouldn't it be
	  if (!is_interesting(g->name))
	    markinterest(g);
	  or am I just mislead by the naming?
	# We don't want "GROUP" to mark an uninteresting group
	  interesting, but we do want it to keep an interesting group
	  interesting.
2002-03-23 Robert Marshall on 2.0b8_ma9:
	   Changing subject slightly, I have a filters file containing
	   newsgroups = *
	   maxcrosspost = 6
	   action = kill
	   and I've just seen an article crossposted to 8 groups...
	   (cannot be reproduced. Note: "maxcrosspost = 6" still allows
	   6 groups, but not 7 groups or more).
       Clemens: Robert, is it possible that the article in question had
       one Newsgroups: item, but eight items in the Folloup-To: header?
       I have been bitten by this when doing my crosspost limiter in
       Lua.  My fix is simple:  count up all items in both headers and
       limit on the sum.  Unfortunately, this works only with Lua
       enabled.

2002-01-06 report Raymond Scholz, rnews doesn't read from pipes.
	   ACTION: reimplement rnews from scratch.
	   (duplicate report, merged with Jrg Dietrich's)

2002-01-06 gethostbyname is not subject to timeout control
	   (rely on the OS to do that)

2002-01-06 signal needs to be worked around on Solaris 7 (Matthias Andree)
	   (I no longer care for goofed Solaris includes as long as the
	   stuff still works properly.)

2002-01-06 determine interesting groups from .newsrc
	   (.newsrc format is not consistent; layer violation)
