release: 1.9.18ma4
2001-01-14 Matthias Andree <matthias.andree@gmx.de>
- generic: have callers of lockfile_exists() report to stdout if
locking fails.
- release: 1.9.18ma4
- Makefile.am: fix fetchnews dependencies when included PCRE are
to be used. fix make test when configured for build outside of
source directory.
- config.example: document linebuffer parameter
- configure.in: fix dependencies for included PCRE
- configutil.c: add "linebuffer" parameter, if set to != 0,
it will change stdout and stderr to be line buffered.
- fetchnews.c: tell port in "Trying to connect to..." verbose
message (only in 1.9.18ma4)
- filterutil.c: fix pcre.h include location and a minor typo.
2000-12-19
Matthias Andree <matthias.andree@gmx.de>
- configure.in: remove bash-isms
- Makefile.am: fix GNU make dependencies, BSD pmake is fine now
- fetchnews.c: fix some syslog format strings (%d &to; %ld)
- nntpd.c: fix some syslog format strings (%d &to; %ld)
2000-09-11
Matthias Andree <matthias.andree@gmx.de>
- genlsm.sh.in: generates lsm file automatically
- xoverutil.c: switch to mysyslog and remove mkstemp #ifdefs (now
handled by autoconf)
- testgen.c: testcase generator.
- test1.c: getaline tester.
- t/: new directory, has test cases for getaline.
- syslog.c (myopenlog): new function to remove #ifdefs from
program files. Encapsulate system differences in this file.
- quickmkdir.c: installation helper tool.
- nntpd.c: replace fgets by getaline, fix article number variables
types to unsigned long, switch to myopenlog.
- miscutil.c: remove snprintf, change xfirst/xlast to unsigned
long, split critmalloc/critrealloc, strdup, snprintf off, add
verbose>3-debug to makedir, delete getaline function (too complex,
yet buggy), fix ngmatch not recognizing * and [ as wildcards.
- makerpm.sh: removed file
- leafnode.spec.in: have leafnode.spec built by autoconf
- leafnode.h: cleanup, support for critmem.h and prototypes for
new and replacement functions, change xfirst/xlast to unsigned long
- getline.c: new implementation from scratch for systems without
GNU libc 6. GPL. Uses getc currently.
- getaline.c: new implementation from scratch, uses getline,
GPL. Rock solid. Will not break on \0. Does not change \0 to space
(waste of time, if an article has \0, it's broken, don't try to
fix).
- fetchnews.c: fix constants to PATH_MAX, support XOVER, work
around %y strftime compiler warning, switch to myopenlog
- doc_german: remove old documentation. outdated.
- critmem.c: split functions off miscutil.c
- critmem.h: new file
- configutil.c: change libdir to sysconfdir
- configure.in: adjust to automake, put -lpcre into PCRELIB rather
than LIBS, use AC_REPLACE_FUNCS for snprintf strdup mkstemp and
getline, support --with-spooldir, change --with-confdir to
override sysconfdir, support --with-lockfile, check rpm build
directory, add man pages to AC_OUTPUT, echo help message after
configuration.
- applyfilter.c: fix article counter type to unsigned long, switch
to myopenlog
- man pages: insert proper paths by autoconf
- activutil.c (readactive): fix type of n to ssize_t
- acconfig.h: new #defines: SPOOLDIR, LOCKFILE, HAVE_GETLINE
- PCRE_README: new documentation
- Makefile.am: switch to automake
- INSTALL: Updated and revised. Removed section on %y yielding
only last 2 digits of year.
2000-09-06
Matthias Andree <matthias.andree@gmx.de>
- lockfile.c: when a stale lock file existed, it would be removed,
but locking would still fail. Fixed. locking is now retried when
stale file had been removed.
- fetchnews.c: move whoami() in front of the lockfile_exists() call
addendum: move updateactive/writeactive/unlink(lockfile) from
child to parent process, since with the new lockfile.c, lockfiles
are no longer shared between processes.
- texpire.c (main): insert whoami(), needed for lockfile recovery
- applyfilter.c (main): insert whoami(), needed for lockfile recovery
activutil.c:
- applied a patch by Matthias Andree <matthias.andree@web.de> to
_compactive() which removes some compiler warnings on FreeBSD.
applyfilter.c:
- applied a patch by Matthias Andree <matthias.andree@web.de> which
removes some compiler warnings on FreeBSD.
- store() now is declared without all the unused variables.
artutil.c:
- applied a patch by Matthias Andree <matthias.andree@web.de> which
removes some compiler warnings on FreeBSD.
configure.in:
- "ar" was not found on Solaris 8. Reported by Robert Kuhn
<robert@vermtech.de>.
fetchnews.c:
- applied a patch by Matthias Andree <matthias.andree@web.de> which
removes some compiler warnings on FreeBSD.
- nntpactive(): To avoid a compiler warning, we let strftime()
produce a four-digit year; in the next line, we skip the
first two digits, though. Code written by Matthias Andree
<matthias.andree@web.de>.
- getgroup(): removed reset of group numbers when a group was unsubscribed.
Suggested by o.rousseaux@libertysurf.fr.
filterutil.c:
- applied a patch by Matthias Andree <matthias.andree@web.de> which
removes some compiler warnings on FreeBSD.
leafnode.h:
- applied a patch by Matthias Andree <matthias.andree@web.de> which
removes some compiler warnings on FreeBSD.
- store() now is declared without all the unused variables.
- moved various #include statements to the top of the file to make
leafnode also compile on IRIX 6.2. Reported by Gerhard Lenerz
<gerhard.lenerz@gmx.de>.
miscutil.c:
- applied a patch by Matthias Andree <matthias.andree@web.de> which
removes some compiler warnings on FreeBSD.
- removed old getaline(), included new getline() and getaline() from
leafnode-2.0b8, both written by Matthias Andree <matthias.andree@web.de>.
nntpd.c:
- applied a patch by Matthias Andree <matthias.andree@web.de> which
removes some compiler warnings on FreeBSD.
- gmtoff() returned wrong values. Bug first fixed in Leafnode-2.0b6 by
Stefan Wiens <s.wi@gmx.net>.
- gmtoff(): if there is no TZ variable set in the environment before
calling gmtoff(), it will now be unset again afterwards. Patch by
o.rousseaux@libertysurf.fr.
Makefile.in:
- removed message about disregarding warning when making fetchnews because
the warning does not occur anymore.
- getline.c, getaline.c and getline.h now included.
xoverutil.c:
- applied a patch by Matthias Andree <matthias.andree@web.de> which
removes some compiler warnings on FreeBSD.
fetchnews.c:
- postarticles(): under certain circumstances, files were not closed.
Bug found by Carl D. Cravens <raven@phoenyx.net>.
- nntpactive(): if "LIST NEWSGROUPS news.group.name" does not work for the
first group, it is not attempted for other groups. Suggested by
Carlos Robinson <cerobinson@teleline.es>.
makerpm.sh:
- patch by Karsten Merker <merker@linuxtag.org> to accommodate new
names of tarballs changed in 1.9.17.
Miscellaneous:
- renamed CHANGES to ChangeLog.
activutil.c:
- fixed a few printf statements which caused warnings on FreeBSD 4.1-STABLE.
Reported by Ron Rosson <insane@lunatic.oneinsane.net>.
fetchnews.c:
- some time_t variables in getgroup() now casted to int to avoid warnings
on FreeBSD 4.1-STABLE. Reported by Ron Rosson
<insane@lunatic.oneinsane.net>.
Makefile:
- "make dist" now generates one tarball without and one with pcre library.
miscutil.c:
- another patch to getaline() because the previous one did not work
satisfactorily. NUL bytes are now changed to spaces.
nntpd.c:
- "xhdr [header] <message-id>" did not work correctly (always returned
the first header with the string length of [header] which became
obvious when Xref: was asked and Path: returned). Bug reported by
Andrzej Radecki <radecki@wpk.p.lodz.pl>.
- added the code for correct determination of timezone differences from
2.x by Joerg Dietrich.
texpire.c:
- crashed with segmentation fault if groupinfo file did not exist. Bug
described by Shaul Karl <shaulk@israsrv.net.il>; patch by Mark Brown
<broonie@tardis.ed.ac.uk>.
fetchnews.c:
- getgroup(): now fetches news in ascending order again
nntpd.c:
- doxhdr(): now also returns "Newsgroups" header when only pseudo
article is available. Apparently needed by MT Newswatcher for MacOS.
fetchnews.c:
- nntpactive() now uses LIST instead of LIST ACTIVE
miscutil.c:
- getaline() now also can handle NUL bytes. Patch by Matthias Andree
<ma@dt.e-technik.uni-dortmund.de>.
fetchnews.c:
- if the second server had no new articles compared to the first one,
fetchnews would not adjust the counter properly. Bug fixed by
Peter Katzmann <peter.katzmann@edag.de>.
makerpm.sh:
- "make rpm" now also works on SuSE. Patch by Juergen Salk
<juergen.salk@gmx.net>.
- FAQ is now included in RPM. Bug reported by Bjoern Voigt
<bjoern@web.de>.
miscutil.c:
- snprintf() was buggy (did not recognize %lu and %ld). Reported by Joerg
Dietrich <joerg@dietrich.net>.
nntpd.c:
- dopost(): if owndn is set, it is now also included in the Path: (not
only used for the message ID). Suggested by Mark Brown
<broonie@tardis.ed.ac.uk>.
texpire.c:
- expiregroup(): checks now also if the pointer g exists. Bug reported
by Peter Katzmann <peter.katzmann@knuut.de>.
xoverutil.c:
- removed stripspace() completely from the code that creates the
overview lines. This means that leading and trailing blanks are not
removed any more in any header line, nor are consecutive blanks
compressed.
- getxoverline(): in the Subject: line, consecutive blanks are now left
untouched. Requested by Thomas Zajic <zlatko@gmx.at>.
configure.in:
- tests now also for snprintf() because it is used in activutil.c.
configutil.c:
- fixed possible overflow bug when providing very large expiry times. Bug
described by Andreas Ferber <aferber@techfak.uni-bielefeld.de>.
miscutil.c:
- added a homegrown version of snprintf() for systems which don't supply it.
nntpd.c:
- did not compile under *BSD because it defines the timezone in a different
way. Bug first reported by Ron Rosson <insane@lunatic.oneinsane.net>
and fixed by Shigeru Ikeda <js3guj@gold.ocn.ne.jp> and Joerg Dietrich
<joerg@dietrich.net>.
activutil.c:
- mergegroup() now sets the name of the newsgroup after the last
as NULL. Suggested by Claude Michel <cpjm@free.fr>.
- insertgroup() does not change any information of groups which are
already present. Bug discovered and fixed independently by Johannes
Stezenbach and Joerg Dietrich <joerg@dietrich.net>.
artutil.c:
- fgetheader(): header doesn't have to include terminal : anymore.
fetchnews.c:
- delposted(): if an article could not be deleted, there was no error
message. Noted by Matthias Leisi <usenet-03-2000@astrum.ch>.
- nntpactive(): if the whole newsgroups file is fetched from upstream
servers, the timestamps are set to 0. Bug discovered and fixed by
Joerg Dietrich <joerg@dietrich.net>.
Makefile.in:
- to install man pages, "install" is now used instead of "cp". Suggested
by Mike Castle <dalgoda@ix.netcom.com>.
nntpd.c:
- in donewgroups(), the timezone was not considered. Bug described and
fixed by Joerg Dietrich <joerg@dietrich.net>.
- in doxhdr(), arg was overwritten sometimes for some reasons. Therefore
it is now copied into a separate buffer which is then used. Bug
discovered by Johannes Stezenbach.
- dummy article now points to http://www.leafnode.org/ and mentions
fetchnews instead of fetch. Noted by Hauke Heidtmann
<haukeheidtmann@gmx.net>. (This was already corrected in the 2.0alpha
versions.)
texpire.c:
- texpire could crash when directories contained subdirectories whose
names consisted of digits only. Bug discovered and fixed by
Georg Borgstroem <geobo@lysator.liu.se>.
- in dogroup(), replaced a rewinddir() call by a closedir() ; opendir().
Suggested by Stephen Marley <stephen@home.uklinux.net> because of some
strange infinite loop he ran into.
xoverutil.c:
- "updated x lines in y/.overview" now only logged if debugmode is
switched on. Suggested by Juergen Salk <juergen.salk@gmx.de>.
activutil.c:
- helpfindgroup() modified which speeds up the time to find a group.
Prompted by benchmarking the code to some code written by Tony de
Haan <tony@iae.nl>.
- readactive() caused huge memory leaks if called repeatedly because the
old active was not freed properly. Bug found and fixed by Lloyd Zusman
<ljz@asfast.com>.
fetchnews.c:
- nntpactive() did not insert new newsgroups correctly. Bug discovered
and fixed by Joerg Dietrich <joerg@dietrich.net>. This bug was
partially introduced in 1.9.10 but was partially present already in
previous versions.
Miscellaneous:
- configure.in now detects old-style BSD syslog. This also involves
changes in leafnode.h and applyfilter.c, fetchnews.c, nntpd.c and
texpire.c.
- configure.in readjusted (HAVE_OFFT_8 was not needed)
- configure.in now checks whether kernel includes are installed properly.
Suggested by Matthias Andree <ma@dt.e-technik.uni-dortmund.de>.
- added a new point to the FAQ. Suggested by Matthias Andree
<ma@dt.e-technik.uni-dortmund.de>.
activutil.c:
- changegroupdesc() crashed when getting a NULL pointer as parameter.
Bug discovered and fixed by Joerg Dietrich <joerg@dietrich.net>.
- writeactive() stopped writing active file if an empty record was
encountered. Fixed. (I have no idea where these empty records come
from in the first place...)
- readactive() now sets first and last article in each group to 1 if they
are 0.
- writeactive() now should not write empty records to the groupinfo file
any more
- replaced the old version with the version from leafnode-2.0a9 featuring
arrays instead of trees. There is one difference: since lsort is already
called in the makefile, the active file is not re-sorted when reading
it.
applyfilter.c:
checkgroups.c:
config.example:
- replaced all "supplement" with "server"
configutil.c:
- corelimit.rlim_cur is now cast to int.
fetchnews.c:
- various time_t things casted to int.
- nntpactive() logged too much after last "fix". Fixed.
- fixed nntpactive() for new activutil.
- if "LIST NEWSGROUPS" returned just "215" without any text, fetchnews
became confused. Reported by Pasqualino Casciano
<pasqualino.casciano@stud.lrz-muenchen.de>.
miscutil.c:
- somehow, Bruno Rohee's patch escaped the final distribution of 1.9.8
and 1.9.9. Fixed.
nntpd.c:
- if there is a timeout when calling mgetaline(), leafnode now returns
400 instead of 421. Suggested by Michael Schlennstedt
<schlenn@schlenn.de>.
- doxhdr() now returns (none) if asked for XHDR REFERENCES of an
article. Suggested by Ted Marston <ted@nowtsfree.freeserve.co.uk>;
increases compatibility with xrn.
- fixed for new activutil.
texpire.c:
xoverutil.c:
- illegal articles are now simply removed.
Miscellaneous:
- added a section about connection loss to the FAQ
- TROUBLESHOOTING section in README moved into separate FAQ document
- changes in config.example and leafnode.8 suggested by Mark Brown
<broonie@tardis.ed.ac.uk>.
The previous correction in the Makefile actually was not a correction
but the introduction of a bug because it prevents proper compilation
if libpcre is not installed already. Fixed back. Reported first by
Matthias Flohr <mflohr@gmx.de>.
fetchnews.c:
- getgroup(): there was still a realloc() too many left which led to
occasional crashes. Fixed.
- getgroup(): if realloc( x, 0 ) is called twice, the program will crash.
Fixed.
- getgroup(): if there are no articles to get, we don't go through the
"XHDR Date" stuff (which seems to be very slow with DNews anyway).
- getgroup(): if a group is unsubscribed, "first" and "last" are set to 1
- fixed a bug in getgroup() which might have lead to premature expiring
of groups
miscutil.c:
- fixed a bug in ngmatch() (#ifdef was for HAVE_FNMATCH_H instead of
HAVE_FNMATCH) discovered by Daniel Barron <daniel@jadeb.com>.
- applied a patch by Bruno Rohee <rohee@OpenBSD.ORG> replacing
setreuid()
and setregid() with setuid() and setgid() when possible
nntpd.c:
- donewgroups(): changed code to make it more clear
- donewgroups(): some newsreaders exhibited a Y2K problem and sent 7-digit
dates. Leafnode can now parse these dates as well.
- markinterest() changed both mtime and atime if file was already
present. Fixed. (A problem with the expiry mechanism had been reported
by several people but it was quite difficult to track it down.)
texpire.c:
- article numbers are not reset when a group is empty because this
results in new articles not being displayed in low-traffic groups.
xoverutil.c:
- applied a patch by Bruno Rohee <rohee@OpenBSD.ORG> replacing mktemp()
with mkstemp() if possible
- removed the error message that occurred if a directory contained
newsgroups starting with a digit
Miscellaneous:
- /var/spool/news/failed.postings was not installed during "make install"
- added "fetchnews -n" to the troubleshooting section of the README.
- small bug in Makefile.in corrected (-lpcre was linked twice with
applyfilter)
- small bug in makerpm.sh fixed (version number was hard-coded).
fetchnews.c:
- new function tabtospace() to handle tab-ified article headers. Written
by Radoslaw Gancarz <r_g@priv2.onet.pl>. (This problem is treated
differently in leafnode-2.0a7.)
- getgroup(): somehow a bug which I thought had been fixed crept in again.
If a newsgroup line starts with more than one space, fetchnews would
not delete the last characters when deleting spaces. Bug found by
Manfred Weihs <e9525662@student.tuwien.ac.at> and Thomas Themel
<tthemel@gmx.net>. (Actually, I have no idea what will happen with
leafnode-2.0a7 in this case.)
Miscellaneous:
- "make rpm" now works; thanks to Karsten Merker <merker@guug.de> for
the patch (major modifications in makerpm.sh and Makefile.in)
fetchnews.c:
- getgroup: if any article was killed by min/maxlines or maxage, not all
remaining articles in that group were fetched. Reported by
Jeff East <an972@freenet.carleton.ca>.
activutil.c:
- When groupinfo was not a file, leafnode would crash. Fixed.
- Misc. castings done.
- isinteresting() now works case-insensitive.
- A closedir was missing in fakeactive(). Fixed.
config.example:
- added lines for "hostname" and "filterfile" parameter.
config.h.in:
- Support for libshadow and libcrypt added (not needed yet).
- Misc. changes.
configure.in:
- Cleaned up.
- Timezone problems fixed.
- IPv6 support improved.
- Checking for shadow library (not needed yet).
configutil.c:
- Server now logged with LOG_DEBUG instead of LOG_INFO (like the rest of
the configuration).
fetchnews.c:
- No more lowercase conversion of newsgroups names.
- If some essential header was not found, fetchnews segfaulted. Fixed.
- Calls to tgetaline() removed.
- If upstream server understood XGTITLE, new groups and their descriptions
were not entered in active file. Fixed (hopefully).
filterutil.c:
- If no filterfile is present, return FALSE.
miscutil.c:
- getpid() is now casted to int.
- tolower() now casts its argument.
- lowercase() removed.
- Year 2000 problem fixed.
- Timezone problems fixed.
newsq.c:
- st.st_size is now copied in a variable first and printed later (otherwise
we had troubles with warnings etc. on various operating systems, including
HP/UX, Digital Unix and *BSD).
- #include <sys/types.h> for HP/UX and certain variants of BSD.
nntpd.c:
- Y2K fix in donewgroups().
- No more conversion to lowercase of newsgroups names.
- Complains now if configuration file cannot be read.
- Empty lines on input are ignored.
nntputil.c:
texpire.c:
- dogroup(): when determining the first and last articles in the
group, we now stat() every article and check whether it is a
regular file. This saves troubles with groups like alt.2600
where a directory alt/2600 exists and the 2600 was mistaken as
an article number.
xoverutil.c:
- Information about updating .overview files is not displayed on stdout
anymore.
Miscellaneous:
- New file lsort.c, to properly resort groupinfo file.
Changes of 1.9.4-ma1-bn1 included:
- Fixed a few non-portable constructs in the update.sh script
Changes of 1.9.4-ma1 included:
- INSTALL:7: added information about SuSE --prefix=/usr
- INSTALL:78: added pointers to hosts_access(5) and hosts_options(5)
- Makefile.in:53: moved @cp pcre/libpcre.a libpcre.a into libpcre.a: actions
- Makefile.in:57: prepended $(MFLAGS) and $(MAKEFLAGS) with dash (`-')
- Makefile.in:96: clean also removes *~ and \#*
- Makefile.in:98: prepended $(MFLAGS) and $(MAKEFLAGS) with dash (`-')
ll 57,98 fixes stop emacs barfing on make -k "unknown target k"
- Makefile.in:101: realclean also removes *.rej and *.orig
- Makefile.in:161ff: split uninstall into uninstall and uninstall-bins
uninstall-bins will not touch $(SPOOLDIR) and $(LIBDIR)
- configutil.c:106: initializers added: p = 0, q = 0
- activutil.c:167: initializer added: desc = 0
- miscutil.c:145: made namelen unsigned
- nntputil.c:196: corrected parentheses in #define
- nntputil.c:206: made struct servent *sp static (was auto)
- nntputil.c:210: made int i static (was register, should not hurt, indexes
only servers)
- fetchnews.c:216: inserted comparison against date: string, fixed
some strange SIGSEGV I experienced
- fetchnews.c:731++: added fast XHDR header check for maxage speedup
speeds up maxage purging if some other site dumped loads of
old news into some high-traffic newsgroup.
- fetchnews.c:738: initializer added: aage = 0
- fetchnews.c:1059: warning re. strftime %y yielding 2 digits is ok and
conforms to RFC-977 which respects Y2k issues.
- fetchnews.c:1209: stat() checks for errors and skips . and ..
- xoverutil.c:301: skips . and .. directory entries
libutil:
- 180799:
- xoverutil: getxover() now logs corrected XOVER lines to syslog
instead of printing them to stdout (this should have happened
before).
nntpd:
- 160799:
- added more verbose error message in dopost() if an article could
not be posted (code written by Matthias Andree
<mandree@sx1.HRZ.Uni-Dortmund.DE>).
- 160799:
- removed an unnecessary open() call in dopost() (probably a cut-
and-paste error)
- 160799:
- in doarticle(), moved free(p) into previous if.. condition.
Suggested by Matthias Andree <mandree@sx1.HRZ.Uni-Dortmund.DE>.
Miscellaneous:
- 170799:
- changed several occurences of /usr/lib to /etc in the manpages.
Problem first noted by Stefan Ladwig
<stefan.ladwig@privat.kkf.net>.
- 150799:
- pcre(7) now installs correctly. Bug found by Diedrich Ehlerding
<diedrich.ehlerding@t-online.de>.
fetchnews:
- 150799:
- age(): time_struct is now set to zero before filling it with
variables. Fix by <wiml@netcom.com>.
libutil:
- 100799:
- filterutil: autodetection of various pcre versions now allows
compiling with pre-existing versions on a system.
- 090799:
- filterutil: now only the matched pattern is logged to LOG_DEBUG,
and this happens only if the debugmode is switched on
- 070799:
- xoverutil: "illegal articles" (i.e. articles which don't have
correct XOVER information) are now removed again (it is checked
before whether these are really articles).
- 070799:
- configutil: "fqdn" is now the same as "hostname" in the
configuration file. (Necessary because of a mistake in a
FAQ by Jonas Luster which made it into LINUX magazine.)
nntpd:
- 150799:
- NEWGROUPS would sometimes return all groups because struct
timearray (in donewgroups()) was sometimes only partially
initialized. Bug reported and fix provided by <wiml@netcom.com>.
Miscellaneous:
- 150799:
- updated German documentation by Alexander Reinwarth
<a.reinwarth@gmx.de>.
- 150799:
- created acconfig.h (courtesy Mark Brown <broonie@tardis.ed.ac.uk>)
- 140799:
- replaced pcre.3 with pcre.7 (courtesy Mark Brown
<broonie@tardis.ed.ac.uk>)
- 100799:
- configure.in: fiddled, together with Mark Brown
<broonie@tardis.ed.ac.uk>, a lot with the autodetection of various
pcre versions.
- 090799:
- Makefile.in: install pcre.3 only if no libpcre is found on the
system. Suggested by Mark Brown <broonie@tardis.ed.ac.uk>.
- 070799:
- Makefile.in: libpcre is now built before compiling of the main
programs
fetchnews:
- 280699:
- getgroup(): case-insensitive recognition of newsgroups did not
work yet. Now the Newsgroups: header is explicitely converted
to lower case before storing the files.
libutil:
- 010799:
- activutil: writeactive() now converts all existing groups to
lowercase
- 300699:
- activutil: insertgroup() now converts groupname to lowercase
before inserting it into tree
- 280699:
- filterutil: readfilter() would enter BS into the cleartext fields.
Fixed.
nntpd:
- 050799:
- included patch for IPv6 by Mark Brown <broonie@tardis.ed.ac.uk>.
Miscellaneous:
- 050799:
- calling ./configure with --with-ipv6 will enable IPv6.
- 050799:
- fixed Mark's patch from yesterday.
- 040799:
- gcc-specific compiler flags are now only set if gcc was indeed
detected. Patch by Mark Brown <broonie@tardis.ed.ac.uk>.
- 010799:
- If libpcre was already installed by something else, this would not
be recognized properly. Bug reported by Mark Brown
<broonie@tardis.ed.ac.uk>.
applyfilter:
- 270699:
- files are only stat()ed if they start with a digit
- 270699:
- applyfilter now checks at most the first 5000 bytes of an article
(which should be more than enough to accommodate headers). This
avoids lots of realloc()s.
- 270699:
- program crashed when encountering articles without bodies. Now
these articles are deleted.
libutil:
- 270699:
- activutil: isinteresting(), insertgroup() and findgroup() are now
case-insensitive
- 270699:
- miscutil: new function lowercase() (from 1.10b2)
- 270699:
- filterutil: now logs matched expression to LOG_DEBUG
- 270699:
- filterutil: now works with pcre instead of the libc regexp. This
leads to a further speed increase. Suggested by Sven Paulus
<sven@karlsruhe.org>.
Miscellaneous:
- 270699:
- update.sh: now re-sorts the groupinfo file in a case-insensitive
manner. Must be called when updating from 1.9.2 or smaller.
- 270699:
- Makefile.in now created with autoconf-2.13 instead of 2.10.
fetchnews:
- 260699:
- getgroup(): doing things with an uninitialized variable (which
was also unnecessary) could lead to segfaults. Bug discovered
by Mark Brown <broonie@tardis.ed.ac.uk>.
newsq:
- 160699:
- output format changed (code written by Matthias Andree
<mandree@sx1.HRZ.Uni-Dortmund.DE>)
applyfilter:
- 240699:
- now also checks for kept files
- 230699:
- now delete message-id links immediately together with others. This
saves a lot of time.
- 230699:
- added "if (debugmode)" in front of various "syslog(LOG_DEBUG,...)"
statements
fetchnews:
- 240699:
- replaced getaline() with tgetaline() where appropriate
- 220699:
- inserted an additional fflush(stdout) into main() to avoid
double logging of messages. Fix provided by Stefan Troeger
<stefan.troeger@wirtschaft.tu-chemnitz.de>.
libutil:
- 240699:
- configutil: username and password are not logged any more in clear
text to LOG_DEBUG
- 240699:
- nntputil: new function tgetaline() which is a wrapper for getaline()
that honours timeouts. timeout considered is that of the current
server. (Originally introduced 110499 in 1.10b1)
nntpd:
- 240699:
- parser() rewritten. Now the connection is closed after 15 minutes
of inactivity
Miscellaneous:
- 230699:
- Makefile.in: patch by Philippe De Muyter <phdm@macqel.be> to
compile leafnode in a separate directory
- 220699:
- removed all the rpm stuff from configure.in and put it into
makerpm.sh. This also leads to changes in Makefile.in. However,
"make rpm" does not work (breaks with "bad user/group").
fetchnews:
- 210699:
- openlog() now called with "fetchnews" instead of "fetch"
libutil:
- 210699:
- miscutil: rfctime(): fiddled with the timezone. Bug reported by
Sven Paulus <sven@karlsruhe.org> (rfctime did some odd rounding).
nntpd:
- 210699:
- doxhdr(): handles now also "xhdr [header] a-" correctly
- 210699:
- removed a debug call from fopenart()
applyfilter:
- 150399:
- for some reason, the config file was read twice (which lead to
crashes). Fixed.
fetch/fetchnews:
- 210699:
- renamed fetch to fetchnews to avoid potential conflicts with
other programs
- 100499:
- getgroup(): fetch would crash with a segmentation fault if all
headers began with whitespace because of an uninitialized
variable. Bug report and patch provided by Stephan Block
<block@enst.fr>.
- 020499:
- new function _ignore_answer() (not used yet)
- 220399:
- added "if (debugmode)" in front of various "syslog(LOG_DEBUG,...)"
statements
- 210399:
- postarticles(): we had forgotten to remove the putaline() which
resulted in complete screw-up of articles posted. Fixed.
- 200399:
- main(): we always authenticate if we have a username entry for
the current_server. The reason is that it is not always obvious
whether you have to authenticate yourself at the remote server
or not. Problem reported by Mark Lutz <Mark.Lutz@usa.net>.
- 200399:
- postarticles(): we don't use putaline any more to post bodies
because the line length of bodies is not restricted and lines
> 1023 chars crashed sprintf(). Bug reported by Sven Paulus
<sven@karlsruhe.org>.
- 200399:
- getgroup(): replaced possible / in Message-IDs with @ (like in
lookup()).
- 190399:
- problems with dots at the beginning of lines fixed. Insisted upon
(rightly!) by Johnny Tevessen >j.tevessen@gmx.net<.
- 190399:
- delposted() looks for stale articles in out.going. Patch by
Joerg Dietrich <uzsv7x@ibm.rhrz.uni-bonn.de>.
- 170399:
- getgroup(): reply to HEAD and BODY are now checked only for the
first two digits to make fetch work with more broken upstream
servers.
- 170399:
- getgroup() crashed when checking for a Lines: header which was
not present. Fixed. Independently discovered by Juha Pohjalainen
<jmp@iki.fi> and Jarle Rongved <rongved@online.no>.
- 160399:
- nntpactive(): LIST NEWSGROUPS should now work also with faulty replies
(like the ones produced by INN 1.5.1).
- 160399:
- processupstream(): no more logging of getaline()s when reading
from files in /var/spool/news/leaf.node/
- 140399:
- fetch -P would delete lockfiles not produced by it. Fixed.
- 120399:
- getgroup(): parsing for maxbytes didn't work. Reported by
Friedhelm Hinrichs <F.Hinrichs@tu-bs.de>. My fix will still
fail if XHDR get out of sync, but the other option (to compare
the whole array every time) is not very elegant either.
- 120399:
- age(): included some fixes provided by Friedhelm Hinrichs
<F.Hinrichs@tu-bs.de>.
- 090399:
- output of XHDR is now not logged to LOG_DEBUG anymore.
- 090399:
- added a warning message in nntpactive() to indicate to users
whether they should use "nodesc = 1" in their config files
- 070399:
- fixed a bug (reported by Jeff Grossman <jeff@stikman.com>) in
processupstream(). When "linux.announce" and "comp.os.linux.announce"
were fetched from the same server, fetch had sometimes problems
to store the correct last article number for "linux.announce".
libutil:
- 130499:
- configutil: raised default timeout to 30 seconds (from 10, which
would sometimes hit on my local server).
- 030499:
- artutil: fixed a bug in fgetheader(): to always get a header, it
is necessary to rewind the file before doing the search
- 020499:
- included lots of tabs instead of spaces into the code of
activutil.c
- 210399:
- xoverutil: no more logging of "wrote .../.overview" to stdout
because this did confuse so many people (despite it being mentioned
in the docs)
- 170399:
- xoverutil & nntputil: replaced all atoi() with strtol()
- 170399:
- configutil: readconfig() now parses the actual value of
create_all_links. Suggested by Taisuke Yamada <tai@imasy.or.jp>.
- 170399:
- configutil: replaced all atoi() with strtol()
- 160399:
- xoverutil: moved legalxoverline() to texpire.c and changed a
parameter. This reduces the size of fetch and nntpd by about 3 kBytes
and the size of texpire by almost 20 kBytes.
- 150399:
- updateactive(): "if ( fopen(...) > 0 )" changed to "if
( fopen(...) != NULL )". Bug reported and fix provided by
Johnny Teveßen <j.tevessen@gmx.de>.
- 140399:
- xoverutil: logging of faulty xoverlines now to LOG_DEBUG instead of
LOG_INFO.
- 120399:
- configutil: maxbytes was ignored if maxlines was not set as well.
Fixed. Reported by Friedhelm Hinrichs <F.Hinrichs@tu-bs.de>.
- 070399:
- miscutil: new functions findinlist() and freelist().
- 070399:
- miscutil: removed a potentially confusing error message from
lockfile_exists() which was introduced for testing purposes in 1.9.1.
nntpd:
- 120499:
- doxhdr() failed on XHDR [header] from-to. Reported and patched
by Steven Flintham <steven@lemma.demon.co.uk>.
- 120499:
- dolist() now doesn't call chdir anymore which caused leafnode
to forget the directory of the current group. Bug reported by
Steven Flintham <steven@lemma.demon.co.uk> and Thomas J.
Merritt <tjm@codegen.com>.
- 160699:
- dopost(): if posting fails, error is now 441 instead of 440 (as
it should be). Fixed by Matthias Andree
<mandree@sx1.HRZ.Uni-Dortmund.DE>.
- 090399:
- fleshed out dohelp(); patch by Ed Carp <erc@pobox.com>.
texpire:
- 230399:
- faulty syslog() statement fixed which lead to a segfault
- 160399:
- moved legalxoverline() here from xoverutil.c
- 140399:
- removed double logging of faulty xoverlines
Miscellaneous:
- 210699:
- Makefile.in: changed "chown user.group" to "chown user:group".
Suggested by many people (I forgot who).
- 210699:
- selected the interesting bits from 1.10b2 to put them into 1.9.3.
- 150699:
- README: added some more description to the troubleshooting entry
- 070699:
- configure.in: RPMSOURCEDIR and some other variables were created
by grepping the output of "rpm --showrc". With new versions of
rpm this grep would sometimes yield more than one hit, leading
to garbled configure scripts. Bug described by Matt Armstrong
<matt@lickey.com> (lots of other people stumbled upon this, but
Matt was the only one who managed to investigate it in depth making
it easy to fix it).
- 010699:
- Makefile.in: USRDIR was not created if not present. Bug discovered
by Rene Wuttke <rene@wuttke.net>.
- 040499:
- german manpages by Alexander Reinwarth <a.reinwarth@gmx.de>.
- 020499:
- Makefile.in: changed the gids in "install -g gid" from "root" to "0"
(there is no group called "root" on FreeBSD).
- 190399:
- lots of (int) castings changed to (unsigned char). Patch provided
by Johnny Tevessen <j.tevessen@gmx.net>
- 180399:
- german README, courtesy of Alexander Reinwarth <a.reinwarth@gmx.de>
- 170399:
- german INSTALL, courtesy of Alexander Stielau <aleks@zedat.fu-berlin.de>
Miscellaneous:
- 030399:
- leafnode.h: forgot to include a <sys/types.h> before <regex.h>
fetch:
- 220299:
- articles fetched are now also counted correctly if delaybody is
set. Bug reported and fixed by Rey IJben
<rey@linuxrules.xs4all.nl>.
- 170299:
- getgroup(): if /var/spool/news/message.id/ subdirectories are
not present, they are now created as needed. Patch provided by
Max Matveev <max@melbourne.sgi.com>
- 170299:
- processupstream(): error message was done with a zero pointer.
Bug reported and fixed by Max Matveev <max@melbourne.sgi.com>
and Stephan Block <block@enst.fr>
- 140299:
- postarticles(): haveid was initialized at the wrong place. Bug
reported by Jeff Grossman <jeff@stikman.com>.
- 140299:
- getgroup(): "artlimit" is now tested after "initiallimit" (like
in leafnode+-2.4). Bug reported by Rey IJben
<rey@linuxrules.xs4all.nl>.
- 140299:
- getgroup(): "initiallimit" is now only applied if the last article
number of a newsgroup on the local server is 1.
- 140299:
- moved the "struct stringlist" declaration to leafnode.h
- 140299:
- getgroup(): moved checking from lines back into the general
checking of headers. XHDR was very slow, especially when logging
LOG_DEBUG.
- 140299:
- main(): using current_server in main loop instead of servers
(doesn't matter but is easier to understand)
- 140299:
- nntpactive() now uses the global variable current_server instead
of a local variable
libutil:
- 030399:
- activutil: fixed a mistake in insertgroup() which had removed all
the group descriptions
- 150299:
- activutil: did some benchmarking
- getting 5000 lines from active file and building a new tree with
insertgroup() (current algorithm if you use fetch for the very
first time or with -f):
1 min 10 sec, of these were 61 secs user time; load 88.1%
- building tree by using readactive(), then getting 5000 lines from
active file on stdin and rebuilding tree with insertgroup():
3 sec, of these were 2 secs user time; load 84.7%
- getting 5000 lines from active file and concatenating them in
memory by using critrealloc() and strcat() (no sorting!):
2 min 45 sec, of these were 141 secs user time; load 86.0%
- getting 5000 lines from active file and putting them into a
stringlist (unsorted):
< 1 sec; load 92.0%
=> insertgroup() must be improved
- 140299:
- miscutil: the lockfile mechanism does not always work. Now, if the
lockfile can be opened but not parsed, 1 is returned. If the lockfile
cannot be opened errors are written to LOG_ERR (experimental)
nntpd:
- 160299:
- managed to build wildcard matching into dolist() and list()
- 160299:
- major overhaul of doarticle() because it could be forced to
segfault reproducibly
- 160299:
- fopenpseudoart() partially taken from leafnode+-2.4
- 160299:
- error() taken from leafnode+-2.4
texpire:
- 210299:
- groupexpire didn't work on globs. Bug reported and fixed by
Walt Mankowski <waltman@netaxs.com>
Miscellaneous:
- 230299:
- new file makerpm.sh which constructs RPMs on the fly. Template
was originally submitted by Karsten Merker <merker@guug.de> and
heavily modified.
- 170299:
- Makefile.in: $PREFIX_USR now also used for the $LIBDIR
- 160299:
- lots of castings in isspace(), isalpha(), isalnum() and isdigit()
to avoid stupid warnings on Suns
- 160299:
- we don't need sys_nerr and sys_errlist anymore because of the
change in nntpd.c error().
- 140299:
- added create_all_links to config.example
applyfilter:
- 030299:
- optimized the filtering algorithm; filtering is now at least twice
as fast (I ran a benchmark with a 146 line filter file:
query present query not present
old version 12.8 sec 17.1 sec
new version 5.3 sec 7.7 sec)
- 020299:
- first and last article of a filtered newsgroup should now be
set correctly
- 210199:
- added locking mechanism to applyfilter
- 190199:
- added applyfilter(8) to the distribution
fetch:
- 130299:
- postarticles(): in some cases, fetch would complain about directory
names not being posted due to uninitialized variables. Fixed. Bug
discovered by Jeff Grossman <jeff@stikman.com>.
- 120299:
- postarticles() now logs the number of articles posted if fetch
is called with -v to news.info . Suggested by Jeff Grossman
<jeff@stikman.com>.
- 120299:
- main(): changed the patch of Jeff East somewhat (reply was
assumed to be filled correctly by nntpreply() which it was not).
- 110299:
- main(): authorizing for posting articles improved. Patch by
Jeff East <an972@freenet.carleton.ca>
- 090299:
- postarticles(): for some unknown reason, fgetheader() was able to
retrieve Message-IDs from . and .. therefore directories are now
explicitely excluded from posting
- 090299:
- getgroup(): the Supersede:s code causes fetch to hang. Fixed this
by commenting it out with #ifdef NOTYET
- 090299:
- main(): authorizing was not done for posting articles. Bug found
and fixed by Jeff East <an972@freenet.carleton.ca>
- 080299:
- postarticles(): improved Supersedes: handling (still nonfunctional).
For some odd reason, Supersedes: headers were actually looked for
in the Lines: header.
- 080299:
- postarticles(): changed logging of mistakes a bit
- 070299:
- nntpactive(): fixed a problem that a LIST ACTIVE was always only
done for the first server, not for the others. This includes
writing two new functions, checkactive() and updateactive(),
which also reduces the number of disk accesses somewhat. Bug
discovered by Jens-Uwe Rumstich
<rumstich@informatik.hu-berlin.de>.
- 070299:
- processupstream(): error message added if an "interesting" group
was not found in the groupinfo file
- 070299:
- processupstream(): apparently, there were sometimes problems if
the server files (/var/spool/news/leaf.node/my.server.name) did
exist but were empty. Now, empty files are ignored and not read.
- 060299:
- age(): now I can also parse written-out weekday names
- 040299:
- getgroup(): applied a patch by Arne Wichmann <aw@anhrefn.saar.de>
which will avoid unsubscribing groups that have little traffic
- 040299:
- postarticles(): some text changed
- 040299:
- supersede(): removed an unnecessary "syslog( LOG_DEBUG, ... )"
- 040299:
- getgroup(): evaluated a stat structure which was not filled
beforehand. This obviously led to unwanted unsubscriptions.
I have no idea when this error was introduced. Problem reported
by Dirk Dettmering <dettmer@pc16154.pharmazie.uni-marburg.de>
and David Steuber <david@david-steuber.com>.
- 040299:
- getgroup(): changed syslog message when skipping groups
- 030299:
- getgroup(): fixed a bug which truncated all headers by the
last char and was introduced yesterday
- 020299:
- getgroup(): assembly of multiline headers was faulty. Headers
were concatenated directly and a linefeed put afterwards. Now,
linefeeds are put between the two parts (and only if the first
part exists at all).
- 010299:
- if fetch is called with -P, it does not care for the presence
of the lockfile any more (not necessary)
- 310199:
- postarticles(): if an article with the same message id was
already upstream, error treatment was not always consistent.
Code changed by Joerg Dietrich <uzsv7x@ibm.rhrz.uni-bonn.de>.
- 210199:
- fetch_new.c contains a asynchronously working version of fetch
which stores articles in /var/spool/news/in.coming/<message-id>
but does not sort them in yet. This will have to wait until
the code for rnews is running. fetch_new.c is not part of the
1.9 distribution.
- 210199:
- made TIMEOUT_LONG, TIMEOUT_SHORT and TIMEOUT_ACTIVE configurable
- 200199:
- declared current_server here (and not in leafnode.h anymore)
This reduces the code size of nntpd and texpire by about 20 kBytes
(including symbols).
- 200199:
- replaced a clumsy if... construction in main() with a more
elegant switch ... case
- 190199:
- added code to handle Supersedes: headers
- 190199:
- if fork() fails, fetch now tells something about the reason
- 190199:
- included a setsid() call in the fork(). This fixes the problem
that fetch is killed by the end of sudo or the ppd. Problem
reported by Jo Moskalewski <JoMo@schwaben.de> and Joerg Dietrich
<uzsv7x@ibm.rhrz.uni-bonn.de>.
- 180199:
- newsgroups with . at the beginning are not allowed (RFC1036,
son-of-rfc1036). Reverted change from 150199.
- 180199:
- removed an error condition in getgroup() which resulted from an
uninitialized variable
- 180199:
- removed a looping condition in getgroup() which I had introduced
yesterday
- 170199:
- fetch now checks before posting whether a posting with the same
message id is already upstream
- 170199:
- gave getgroup() a facelift which will make it (hopefully) a little
faster. Basically, I replaced the clumsy error stuff with a lot of
continue commands and removed some superfluous if... constructs.
- 170199:
- corrected a silly mistake in getgroup() (trying to log an int with
syslog("%s") led to a segfault)
- 160199:
- aborting fetch with Ctrl-C will now skip fetching but xoverfiles
will be generated
- 160199:
- minlines and maxlines are now also checked via XHDR
- 160199:
- removed an obsolete fflush() from main
- 150199:
- removed an obsolete nntpdisconnect() from main which did not
exactly speed up fetch
- 150199:
- apparently there exist newsgroups which start with a . in the
name. fetch ignored these so far. Bug reported and fixed by
A. Olaru <aolaru@datacomm.ch>.
- 150199:
- now maxbytes really checks for bytes, not lines
- 130199:
- more error checking when storing articles (suggested by Maarten
Geurts <mgeurts@tip.nl>, who is currently trying to port leafnode
to NT)
- 100199:
- fixed a bug when posting failed (reported by Michael Stroeder,
<s_stroed@ira.uka.de>).
- 100199:
- if -P is given, active file should not been written (but was).
Fixed.
- 090199:
- modified -P option that filters are now not read in that case
(this helps with some segfaults while posting)
- 060199:
- changed some code in nntpactive() to make fetch deal more
robustly with failing hardware clocks. Problem reported by
Peter Kronfuss <pkronfuss@ycom.or.at>.
- 040199:
- new option -P : only post articles. First suggested (including
code) by Michael Mauch <elmicha@unidui.uni-duisburg.de>.
- 040199:
- age(): now also able to parse dates of the form
Date: Sun, 3 Jan 1999 14:35:24 +0100
instead of
Date: Sun, 03 Jan 1999 14:35:24 +0100
- 030199:
- postarticles(): articles are now not logged anymore into LOG_DEBUG
libutil:
- 120299:
- configutil: stabilized parse_line() against empty lines
- 120299:
- configutil and artutil: re-introduced create_all_links (requested by
Alan Shutko <ats@acm.org>)
- 110299:
- xoverutil: if UIO_MAXIOV is not defined, set it to 16 (regardless
of what it might be called)
- 110299:
- miscutil: initvar(), when getting a NULL argument, will now not
perform setregid() etc. changes. Needed for some instances of
nntpd, although I would have preferred to see the nntpd also run
as user news.
- 110299:
- miscutil: patched getaline() to work with binary files. Patch by
Matthias Andree <mandree@dosis.uni-dortmund.de>.
- 100299:
- configutil: yesterday's fix completely messed up parsing. Fixed.
- 090299:
- configutil: trailing non-alnums were removed (for example, passwords
could only end with [a-zA-Z0-9]). Bug discovered by Erik Beckers
<erik.beckers@planet-interkom.de>.
- 070299:
- miscutil: new function ngmatch() matches a pattern to a string.
Was previously in texpire.
- 060299:
- xoverutil: Lines: header were mandatory in getxoverline(). Now
they are not any more. While doing this, I played a bit more
with the function. Independently found by Mark Hannon
<mark.hannon@stockholm.mail.telia.com> and
<henke@phoenix.net>.
- 040299:
- artutil: messed with storearticle() (still unused)
- 030299:
- filterutil: readfilter() now does not log filter contents to
LOG_DEBUG anymore
- 290199:
- filterutil: readfilter() now immediately returns if "filterfile"
is empty. Bug reported by Dirk Dettmering
<dettmer@pc16154.pharmazie.uni-marburg.de>.
- 280199:
- configutil: added configurability for the right part of the
message ID (hostname)
- 280199:
- moved buildpseudoart() from artutil.c to nntpd.c
- 250199:
- artutil: fgetheader() allocated not enough memory which could
lead to segfaults. Bug reported and fixed in 1.8.1 (getheader())
by Michael Schwendt <schwendt@my-dejanews.com> (was probably
the reason for the segfaults in 1.8.1).
- 220199:
- artutil: added new procedure storearticle() (currently unused)
- 210199:
- configutil: added configurability of timeout (per server),
TIMEOUT_SHORT, TIMEOUT_LONG and READ_INTERVALL (now timeout_short,
timeout_long and timeout_active). Defaults are as in previous
versions. The names of the new parameters (except "timeout")
are compatible with leafnode+-2.4
- 210199:
- configutil: made existing features compatible with leafnode+-2.4
- 210199:
- moved lockfile_exists() from fetch.c to miscutil.c because it
is also needed in texpire and applyfilter
- 200199:
- moved putaline() from miscutil.c back to nntputil.c
- 180199:
- activutil: readactive() now checks whether groupinfo is a file
- 170199:
- artutil: store() now always writes Xref: lines
- 170199:
- moved putaline() from nntputil.c to miscutil.c
- 170199:
- nntputil: improved DEBUG logging in authenticate()
- 160199:
- artutil: replaced getheaders() with getheader() and fgetheader()
- 150199:
- miscutil: new function initvar() which initializes some global
variables
- 150199:
- miscutil: minor fix in getaline() with respect to debugging
- 150199:
- nntputil: minor fix in putaline() with respect to debugging
- 150199:
- filterutil(): readfilter() now ignores empty lines and lines starting
with # (to allow for comments). Suggested by A. Olaru
<aolaru@datacomm.ch> .
- 150199:
- filterutil: filter was not initialized properly. Fixed.
- 150199:
- xoverutil: getxover() would produce strange xfirst and xlast
numbers if a directory was empty. Now, xfirst and xlast are
set to 1.
- 150199:
- xoverutil: getxover(), when called from nntpd, would delete
"illegal articles" (whatever that was) which sometimes lead to the
destruction of whole directories in the spool. Now "illegal articles"
are just ignored. Reported by Joerg Dietrich
<uzsv7x@ibm.rhrz.uni-bonn.de> and possibly Evert Meulie
<evert@royal.net>.
- 150199:
- artutil: getheaders() would always insert an additional linebreak
before "other headers". Fixed.
- 100199:
- activutil: if newsgroup description is updated and new description
is '-x-' or 'local grp', it is ignored.
- 100199:
- removed doubly defined variables s (was in miscutil and configutil),
headers (in miscutil and artutil) and expire_base (configutil and
texpire). Reported by John R. Schrader
<jrschrader@mainz-online.de>.
- 090199:
- filterutil: fiddled with readfilter() because the filterlist
could be the cause for certain segfaults
- 050199:
- artutil: getheaders() would segfault at times. Fixed (hopefully).
Bug reported by Vladimir Litovka <doka@root.webest.com> and
others.
- 030199:
- artutil: getheaders() always assumed that the file in question
indeed contained headers. Now it tests whether this assumption
is correct. Reported and fixed by Matthias Andree
<mandree@dosis.uni-dortmund.de>.
nntpd:
- 110299:
- main() now calls initvar() with a NULL argument
- 050299:
- parser(): miscellaneous changes to speed it up a bit. Command line
length is now generally restricted to 1000 chars. Commands are
not converted to lowercase anymore since comparison is done
with strcasecmp() anyway. If buffer overflow is tried, leafnode
now responds with 500 instead of 400 and continues to work (of
course this opens the door to DoS attacks)
- 020299:
- parser(): quit does not call rereadactive()
- 020299:
- parser(): some logging added
- 280199:
- generateMessageID(): made right part of message ID configurable
- 280199:
- moved buildpseudoart() from artutil.c to nntpd.c
- 280199:
- rewrote fopenart() because it did not always open pseudo articles
when it was supposed to
- 280199:
- removed printf to nntpout (actually removed earlier, but not
logged in here)
- 210199:
- rereadactive() is now called for every command. This might slow
down the performance a tiny bit but ensures that active is always
kept recent.
- 180199:
- tried to minimize the calls to getxover()
- 170199:
- LIST EXTENSIONS now lists OVER and LISTGROUP.
- 170199:
- OVER command supported (supposed to replace XOVER).
- 170199:
- dolistgroup() now returns 411 if group is unknown.
- 170199:
- if a LIST command cannot be parsed properly, dolist() now returns
503 instead of 501.
- 170199:
- removed "if ( g&to;last > g&to;first )" condition in list() which
cannot occur anymore
- 170199:
- STAT <message-id> now returns article numbers where appropriate
(same goes for HEAD, BODY and ARTICLE)
- 170199:
- implemented LAST and NEXT more correctly
- 150199:
- removed dostat() again and fiddled a lot with doarticle() instead.
doarticle() now also returns Message-IDs, as requested by RFC977
(apparently needed for using GNUs).
- 150199:
- in doxhdr() and doxover(), made sure that there was a change
to a group directory before getxover() was called. This involved
some more drastical changes in doxover().
- 130199:
- made NEWNEWS compliant with the new standard (can now parse both
two- and four-digit years)
- 120199:
- XOVER may now also return 420 if article range is out of real
range
- 120199:
- fiddled a bit with doarticle()
- 120199:
- introduced dostat() to correctly answer STAT requests (needed for
pine). STAT <message-id> does not work yet, however. Bug reported
by Evert Meulie <evert@royal.net>.
- 100199:
- markinterest(): if...else construction was ambiguous. Fixed.
Reported by John R. Schrader <jrschrader@mainz-online.de>.
- 040199:
- fopenart(): opening an article with a non-existant message id
would lead to a crash because it was tried to open a pseudo
article when no group was selected. Fixed.
- 040199:
- doarticle(): it was not possible to get articles by Message-ID.
Fixed. Bug reported by Matthias Andree
<mandree@dosis.uni-dortmund.de>
texpire:
- 070299:
- some more changes by Kazushi (changed ints into unsigned longs, and
other stuff)
- 070299:
- wildcard matching moved to miscutil.c
- 220199:
- groupexpire now understands glob(1) wildcard patterns
- 210199:
- added locking mechanism to texpire
- 190199:
- merged code with leafnode+-2.4
- 190199:
- texpire now also checks /var/spool/news/message.id/000/
- 100199:
- expiremsgid(): if...else construction was ambiguous. Fixed.
Reported by John R. Schrader <jrschrader@mainz-online.de>.
- 100199:
- removed doubly defined variables expire_base (configutil and
texpire). Reported by John R. Schrader
<jrschrader@mainz-online.de>.
Miscellaneous:
- 130299:
- README: troubleshooting section expanded
- 110299:
- Makefile.in: install-sh must be mode 755 in the tar.gz file. Fixed.
- 110299:
- Makefile.in: install flag -s now coded as $(STRIP). Suggested by
Matthias Andree <mandree@dosis.uni-dortmund.de>.
- 100299:
- messed around with configure.in because it sometimes would not
define the HAVE_SYS_NERR even if it was present. Now we define
it explicitely.
- 070299:
- configure.in & Makefile.in: some adjustments to create rpm's.
(Variables are written into the Makefile, but are not usable yet.)
- 070299:
- configure.in: with some installations, sys_nerr is defined in
stdio.h. Therefore, we now also check stdio.h for sys_nerr.
Reported by Jeff Grossman <jeff@stikman.com>.
- 070299:
- Makefile.in: set $USR_PREFIX to @prefix@ instead of /usr/local .
This makes it possible to call "configure" with "--prefix=/usr"
to relocate the leafnode binaries to /usr/sbin and /usr/bin.
- 070299:
- added ngmatch() to leafnode.h
- 030299:
- fixed an error in texpire.8
- 020299:
- Makefile.in: "make clean" now keeps config.h and Makefile; to remove
them as well, do "make realclean".
- 020299:
- Makefile.in: had forgotten newsq in "make all"
- 310199:
- removed a "#define HAVE_SYS_NERR" from leafnode.h which previously
seemed necessary to correctly build leafnode on my system but
generated lots of warnings on other systems
- 280199:
- rewrote newsq in C
- 270199:
- made some corrections to Makefile.in so that "make install" will
compile cleanly (reported by Juergen Vollmer <vollmer@cocolab.de>)
- 210199:
- removed scarce_links from leafnode.h
- 210199:
- configure.in: added a test for the existence of sys_nerr and removed
"#ifdef __hpux__" and "#ifdef sun"
- 200199:
- added "#ifdef __hpux__" to leafnode.h
- 190199:
- moved to compiling with autoconf, changed INSTALL accordingly
- 150199:
- fiddled a bit with the documentation
- 150199:
- removed blocked() declaration functions from leafnode.h
- 140199:
- nice copyright remark in checkgroups.c (was missing)
- 130199:
- changed the maxage in the config.example file to 10 (the default).
Suggested by Maarten Geurts <mgeurts@tip.nl>.
- 090199:
- install now called with -c for better BSD compatibility (without
-c, BSD install removes the original files)
- 090199:
- newsq now installed with mode 755 instead of 750 (suggested by
Joerg Dietrich <uzsv7x@ibm.rhrz.uni-bonn.de>)
- 050199:
- changed Makefile to work with plan /bin/sh instead of bash (by
Andy Doran <andy@psn.ie>)
- 050199:
- leafnode.h: added patch for FreeBSD, courtesy of Andy Doran
<andy@psn.ie>
- 050199:
- fiddled a bit with the Makefile to avoid putting test code in the
final archive when doing a "make dist"
- 040199:
- removed two files with test source which inadvertantly popped up
in 1.8.1
- 040199:
- changed some more things in README.
- 040199:
- removed the warning about changing upstream servers from leafnode.8
and added a paragraph on it in the README.
- 040199:
- reintroduced the creation of libutil.a from the Makefile. This
makes the resulting executables much smaller (except fetch) and
less memory-hungry. "ar" is called as $(AR) and "ranlib" is called
explicitely since $(RANLIB) does not work on my system and
$(AR) -s does not work on NetBSD. In the future, it might be
necessary to switch to automake/autoconf.