Changes for Leafnode-1.6

 
  Leafnode home  

Download  

Changes  

FAQ  

Mailing list  

Press  

Links  

Last update 25 Aug 2000  

 

History of 1.6.2 -- changes since 1.6.1

libutil:

181098:
activutil.c:fakeactive(): when the directory could not be opened, the name should appear in the logfile which it did not. Bug report and fix provided by Peter Mutsaers <plm@xs4all.nl>.

fetch.c:

201098:
fetch now writes its PID into the lockfile. Suggestion by Joey Hess <joey@kitenet.net>.
181098:
fetch would not delete its lockfile when unable to read its config file or unable to find an upstream server therein. Bug reported by PhiR <Gerlach@mygale.org>.
181098:
processupstream(): fetch segfaulted when trying to read from a new server. Bug reports and fixes provided by Edgar Toernig <froese@gmx.de> and kise@imicom.or.jp.

nntpd.c:

131098:
apparently I missed a slash when inserting Joerg Dietrich's patch in rereadactive() -- fixed

texpire.c:

201098:
when expiring a group, texpire now also resets the numbers of the first and last articles; not doing this would lead to problems with initialfetch which was ignored in these cases (reported by Benjamin Schweizer <SternSZ@gmx.de>)

Miscellaneous:

181098:
"make dist" does not fail anymore if the directory already exists in which the distribution is built
181098:
corrected a bug in the Makefile which would try to link leafnode with libutil.a's installed elsewhere in a libdir (reported by Daniel Fraga <chapolin@inc101.internetcom.com.br>)
131098:
changed version number to 1.6.2
131098:
some changes in the Makefile (suggested by Michael Mayer <mmayer@muenster.de>)

History of 1.6.1 -- changes since 1.6:

fetch.c:

091098:
fixed a bug in getgroup(): in concert with "maxlines" being set to a value, fetch would report every article being too long (but properly reject only those which really were). Now fetch only complains about articles which are indeed too long. (Bug reported by Hannes Birnbacher <ad-soft@t-online.de>)

nntpd.c:

091098:
removed creation of dotfiles in dogroup()
091098:
fixed a bug in doarticle() which made it impossible to display a pseudo-article of a new newsgroup.
091098:
fixed a bug in dolistgroup() which made it impossible to display a pseudo-article of a new newsgroup.
091098:
fixed a bug in dogroup() which made it impossible to select a new newsgroup or to display its pseudo-article (I have no idea when I introduced this...).
091098:
fixed a bug in rereadactive() (leafnode tried to open /usr/lib/leafnode/groupinfo instead of /var/spool/news/leaf.node/groupinfo) (bug report and fix by Joerg Dietrich <uzsv7x@ibm.rhrz.uni-bonn.de>).

Miscellaneous:

101098:
changed version number to 1.6.1
091098:
added "maxlines" to config.example
091098:
changed the Makefile somewhat to allow for various CHANGES files

History of 1.6 -- changes since 1.4

util.c:

230998:
activutil: new procedure fakeactive() produces essential active information from scratch (does not rely on either groupinfo or .overview files). fakeactive() is called from fetch when used with the -f parameter.
210998:
activutil: readactive() hopefully now will detect a defective (i.e. truncated) groupinfo file, abort cleanly and give an error message. Previously readactive() just crashed, leading to segmentation faults in fetch and nntpd.
210998:
activutil: helpwriteactive() hopefully now recognizes if writing fails (for example because of a full disk)
230898:
configutil: initialized expire_base (if not, texpire crashes with segfault). Bug detected & fixed by Timo Giesselmann <gmann@on-line.de>
200898:
xoverutil: removed an unnecessary call to legalxoverline() from getxover() (which was not used anyway)
200898:
xoverutil: getxoverline() accepts messages without bodies (important for "delaybody" option). However, in this case bogus Byte: entries will be created in the .overview file
200898:
xoverutil: getxoverline() now believes in upstream Lines: headers (but still computes its own if not provided)
200898:
xoverutil: fixed legalxoverline() which by default returned 1
190898:
activutil: made code of writeactive() more foolproof (hopefully)
190898:
xoverutil: empty articles are not deleted anymore if delaybody != 0
190898:
configutil: delaybody generated an incorrected logfile entry
160898:
xoverutil: switched off debugging in getxoverline()
030898:
activutil: readactive() rewritten to make modified format possible without re-reading active file from upstream servers
030898:
activutil: writeactive() rewritten to accomodate the date
030898:
activutil: insertgroup() does not take information from upstream servers anymore
030898:
configutil: first server to suck news from is also used as post server
030898:
configutil: added some support for multiple post servers
030898:
configutil: primary server and supplementary servers are now equivalent.
030898:
configutil: servers are now queried front-to-back
030898:
split up util.c into several files, to achieve smaller executables. Changes in these executables will still be subsumed under util.c for the time being
020898:
fixed a bug when writing the groupinfo file
200798:
"crosspostlimit" now "int" instead of "unsigned int"
200798:
fixed a bug when writing the groupinfo file
170798:
some changes to create proper XOVER information when reading new groups. tin pre-1.4 release 980514 used to hang when starting to read new groups. This is now fixed; however, tin now doesn't see the "default" article... :-(
170798:
introduced new global variable "debug" to keep the logfile somewhat smaller
070798:
added parameter create_all_links
200698:
fixed a bug introduced on 180698 which corrupted the groupinfo file
180698:
if groupinfo file cannot be written, old groupinfo file is not deleted any more
270598:
implemented the changes of leafnode-1.5(enz)
120598:
enhanced debugging capabilities drastically (you can now listen to leafnode talking :-)
060598:
added "maxage" parameter to /usr/lib/leafnode/config
020598:
added "post" parameter to /usr/lib/leafnode/config which allows posting through an additional server (or maybe I should go through replay.com?)
020598:
changed readconfig() to accommodate groupexpire options (Arnt will kill me for this :-)
010598:
even more massive changes in readconfig which works now even better (I discovered strtok() and strsep())
300498:
more changes in readconfig which does now not work any more :-(
270498:
more massive changes in readconfig which now works :-)
190298:
changes in readconfig

fetch.c:

230998:
"fetch -f" now calls fakeactive() and does not attempt to read the active file any more
230998:
replaced two occurances of isalpha() with isalnum() to allow for top-level hierarchies which start with digits
230998:
nntpactive(): when getting new groups, now first LIST ACTIVE and then LIST NEWSGROUPS is issued (LIST NEWSGROUPS alone does only return groups which have a description which results in an incomplete groupinfo file)
210998:
lockfile mechanism didn't work anymore because I took Stevens too literally. Now the lockfile is only deleted when fetch ends. Disadvantage: if fetch crashes, the lockfile is not removed at all.
070998:
nntpactive(): LIST NEWSGROUPS [news.group] was not properly terminated which apparently caused errors in entering new files (reported by Tobias Burnus <tobias.burnus@uumail.de>)
310898:
getgroup(): .overview files are not removed by fetch anymore
310898:
nntpactive(): active.read was not created if not already there (reported by Tobias Burnus <tobias.burnus@uumail.de>)
210898:
getbody(): new bodies now get new article numbers, old ones are removed, xover line is changed appropriately
210898:
getgroup(): omitted an error condition in yesterday's fixing attempt
200898:
getgroup(): article files were not closed when "delaybody" was set which resulted in the duplication of headers
160898:
fetch now logs Subject:s of discarded articles
140898:
fixxover() reintroduced because the call of texpire did not work correctly (note that the removal of fixxover() is not indicated below but probably occured on 050898)
050898:
added parameter "maxlines" to avoid very large articles
050898:
nntpactive() is now called for every server on the list which makes it possible to read groups which are only held by certain servers
050898:
nntpactive() now reads newsgroups descriptions with NEWGROUPS except for very large intervals. LIST ACTIVE is completely omitted and newsgroups counted from 1 instead.
050898:
readactive() and writeactive() were not called anymore; re-inserted
030898:
supplementary servers and primary server are now handled by the same procedure (which makes sense and saves space)
220798:
fixed a bug which would corrupt multiple-line headers
220798:
no more IHAVE since it doesn't work on most servers anyway
220798:
modified getgroup() to accommodate multiline headers
210798:
fixed a bug in getgroup(): fetch would try to get nonexistent articles because optimization was not correctly accounted for
210798:
fixed a bug when processing supplements: fetch would write the groupinfo file (although unnecessary), thus causing a lot of unnecessary traffic
200798:
lockfile is now actually created (this got lost somehow during messing with the code)
200798:
turned off logging for forked process
200798:
fixed a bug in handling of "crosspostlimits" (groups were not counted correctly)
200798:
fixed a bug: news articles were retrieved even when the group was being skipped in the future
180798:
added support for maximal number of crosspostings
170798:
error messages mentioned in 070798 removed by rewrite of getgroup()
170798:
major rewrite of getgroup(): fetch now fetches HEAD and BODY of each article separately and performs some kind of checks
170798:
implemented some of the changes of leafnode 1.5(enz) (untested)
070798:
added parameter create_all_links (if set to "no" only hardlinks into "interesting" groups are created). This works apparently, although /var/log/news.messages contains a lot of error messages: fetch[31989]: Error No such file or directory when opening (null) These occur between fetching the header and the rest of the article. They also occur when an article is not crossposted.
250698:
added a possibly important error message when an article cannot be written into the news spool
150698:
now using READ_INTERVALL for rereading of active file instead of TIMEOUT_LONG (makes more sense)
120598:
added some system to the number of "v"s:
"fetch": barfs if critical errors occur
"fetch -v": barfs if non-critical errors occur
"fetch -vv": puts out additional information about groups
"fetch -vvv": puts out additional information about articles
"fetch -vvvv": for debugging purposes
120598:
first semi-successful query of supplementary servers
060598:
added "maxage" parameter (aging function already provided by leafnode 1.4 but not used)
020598:
some support for posting to one additional server
020598:
some more ints changed to longs
010598:
some changes in handling of supplementary servers (still broken).
010598:
usesupplement is now a global variable.
270498:
"47 bug" removed (fetch did never report more than 47 outstanding articles, even when there were hundreds)
270498:
changed some definitions of article numbers from int to long (there may well be more than 32767 articles in a group)
190298:
lockfile is created later now (I don't know if this is really a clever idea)
310198:
some changes in fetching group descriptions
310198:
some things logged to syslog instead of writing them to the screen
220198:
some more error messages logged instead of printed to console
220198:
option -n implemented (no automatical expiry of groups: very sensible for holidays or one-person servers :-)
220198:
improved (?) some "verbose" messages
220198:
"usesupplement" set to 1 in main()

nntpd.c:

210898:
messed with fopenpseudoart() (twice)
200898:
pseudo articles now properly displayed in tin
200898:
dolistgroup() now returns proper output for pseudo articles
200898:
doxover() now returns proper overview line for pseudo articles
200898:
changed some logging in nntpd
060898:
changed some logging in nntpd
050898:
implemented NEWGROUPS (time zone information is ignored)
180798:
implemented some of the changes of leafnode 1.5(enz) (untested)
170798:
improved logging in general :-)
170798:
improved logging in doarticle()
170798:
improved logging in dogroup()
170798:
improved logging in dolistgroup()
170798:
LISTGROUP without group now returns 412 instead of 481.
170798:
LISTGROUP of an empty group now returns an empty list instead of "481 Overview information not available". This fixes the problem that tin hangs with empty newsgroups.
170798:
NEXT/LAST now return correct return codes if the latest/oldest article has been reached
170798:
XOVER now also works properly with new newsgroups
010598:
LIST OVERVIEW.FMT implemented
220198:
useless "dostat" declaration removed

texpire.c:

310898:
dogroup(): remove .overview if group becomes emptied
200898:
removed legal() (replaced by legalxoverline() from xoverutil.c)
020598:
fixed a small bug in expiremsgid()
020598:
groupexpire implemented
020598:
-v option implemented
020598:
verbose logging

Miscellaneous:

280998:
Arnt Gulbrandsen will not maintain leafnode anymore.
280998:
update of README
230998:
update of README
210998:
more changes in the manpages for checkgroups
200998:
update of README
060998:
slight updates in checkgroups and its manpage
010998:
"make update" correctly documented (in INSTALL and README)
010998:
"make update" now works correctly (calls update.sh with parameters)
310898:
fixed a small error in the Makefile (reported by Tom Schlangen, <t.schlangen@ndh.net>)
230898:
"update" included into Makefile (doesn't work correctly yet)
230898:
"uninstall" included into Makefile
230898:
Makefile modified
160898:
Makefile modified
160898:
improved update script: groupinfo now converted and new file for main server generated
060898:
added update script
060898:
slight bug in Makefile fixed
050898:
added documentation for "maxlines"
050898:
improved (?) the documentation a little
050898:
removed the HOWTO from the Makefile since it is outdated with respect to 1.6
050898:
removed the server field from the struct newsgroup
050898:
fixed a small bug in the Makefile: the lockfile directory that was created was wrong
030898:
groupinfo and the various server files are now kept in /var/spool/news/leaf.node/<filename>. Makefile and INSTALL have been changed appropriately
030898:
added support for split of util.c in Makefile
220798:
added documentation for "maxcrosspost"
200798:
lockfile now in /var/lock/news to be compatible to old versions
170798:
"delaybody" documented
170798:
Makefile now zips the patch up
270598:
changed config.example to incorporate the new options of leafnode-1.5(enz)
270598:
changed Makefile according to leafnode-1.5(enz); omitted rules for install-bin and update, however.
270598:
added patches from leafnode-1.5(enz) to leafnode.h
270598:
added newsq.1 from leafnode-1.5(enz)
270598:
fixed a bug in the Makefile
020598:
changed config.example
020598:
lots of ints changed to unsigned longs
020598:
leafnode.8 updated
020598:
texpire.8 updated
010598:
fixed bug in config.example (maxfetch was designated "maxcount")
300498:
removed rfc977 and rfc1036 from the package
300498:
added leafnode mini-HOWTO
300498:
global rewrite of leafnode.8 (also posted to de.comp.os.linux.networking)
250498:
Makefile: replaced "cp" and "chmod" calls with "install" (suggested by Axel Eble <aeble@controlware.de>)
140298:
added rfc977 and rfc1036 to the package
220198:
Makefile: added "patch" ("make patch" will generate a patch)
220198:
Makefile: permission for $SPOOLDIR now 2755 (was 2750)
220198:
leafnode.8: maxfetch was designated "maxcount"; fixed
220198:
fetch.8: added documentation for -n

Changes from 1.5(enz) to 1.6

Leafnode 1.6 was built on the sources of 1.4 because the sources of 1.5(enz) became only available later. Here are the changes introduced by 1.6 with respect to 1.5(enz):

  • It is possible to use multiple upstream servers
  • Blocking of newsgroups has been disabled again.
  • Added new option "create_all_links" which is set by default. If unset, fetch only stores links of crosspostings posted to "interesting" groups.
  • Several new options to filter downloads:
    "maxlines" to set a maximal size of postings to download
    "crosspostlimit" to filter out spam
    "maxage" to cope with burps of upstream servers
  • New option "groupexpire" to selectively modulate expiry time for certain newsgroups.
  • Bug fixes (as usual)

Author: Cornelius Krasel <krasel@wpxx02.toxi.uni-wuerzburg.de>
Date: October 1998