# HG changeset patch # User bears # Date 1004528693 0 # Node ID 24d4cd032da562c02d40f0ea2bebc501d433b3b9 # Parent 60a70c16d79cb4e002a2ed1b0bd22e8cf22e0134 [svn] * AUTHORS,INSTALL,NEWS,README,TODO,docs/NOTES,src/client.c,src/protocol.c, src/protocol.h,src/server.c: Merge with latest 1.0 branch. I do not intend to do any further merges from the 1.0 branch; future changes to 1.0 should be carried over by hand if necessary. * src/configfile.c,src/content.c,src/control.c,src/database.c, src/dynamicstring.c,src/fetch.c,src/filter.c,src/group.c, src/itemlist.c,src/lock.c,src/outgoing.c,src/over.c,src/post.c, src/pseudo.c,src/request.c,src/util.c: Minor includes rearrangement. diff -r 60a70c16d79c -r 24d4cd032da5 AUTHORS --- a/AUTHORS Tue Oct 30 13:55:53 2001 +0000 +++ b/AUTHORS Wed Oct 31 11:44:53 2001 +0000 @@ -1,9 +1,9 @@ -MAINTAINER +MAINTAINER: Markus Enzenberger -AUTHORS AND CONTRIBUTORS +AUTHORS AND CONTRIBUTORS: Markus Enzenberger Jim Hague diff -r 60a70c16d79c -r 24d4cd032da5 ChangeLog --- a/ChangeLog Tue Oct 30 13:55:53 2001 +0000 +++ b/ChangeLog Wed Oct 31 11:44:53 2001 +0000 @@ -1,3 +1,14 @@ +Wed Oct 31 2001 Jim Hague + +* AUTHORS,INSTALL,NEWS,README,TODO,docs/NOTES,src/client.c,src/protocol.c, + src/protocol.h,src/server.c: Merge with latest 1.0 branch. I do not + intend to do any further merges from the 1.0 branch; future changes to + 1.0 should be carried over by hand if necessary. +* src/configfile.c,src/content.c,src/control.c,src/database.c, + src/dynamicstring.c,src/fetch.c,src/filter.c,src/group.c, + src/itemlist.c,src/lock.c,src/outgoing.c,src/over.c,src/post.c, + src/pseudo.c,src/request.c,src/util.c: Minor includes rearrangement. + Tue Oct 30 2001 Jim Hague * src/content.c: When generating temp file to write new content to, make @@ -227,11 +238,10 @@ Applied patch by Paul Slootman: using the mail program is replaced by sendmail (SENDMAILPROG variable). -Sat Sep 02 2000 Markus Enzenberger +Sun Sep 10 2000 Markus Enzenberger - * NEWS,src/client.c,src/protocol.c,src/protocol.h,src/server.c: - Added timeout to Prt_getLn to avoid Noffle hanging if the - connection breaks down during a fetch. + * docs/NOTES: Added section about Gravity (thanks to + Tomislav Filipcic ). Sun Sep 10 2000 Markus Enzenberger @@ -239,6 +249,12 @@ * src/fetch.c: Fixed a bug in Fetch_init, that triggered an assertion if connection to remote server failed. +Sat Sep 02 2000 Markus Enzenberger + + * NEWS,src/client.c,src/protocol.c,src/protocol.h,src/server.c: + Added timeout to Prt_getLn to avoid Noffle hanging if the + connection breaks down during a fetch. + Wed Aug 23 2000 Markus Enzenberger * src/post.c: do no longer always replace invalid message-IDs. diff -r 60a70c16d79c -r 24d4cd032da5 INSTALL --- a/INSTALL Tue Oct 30 13:55:53 2001 +0000 +++ b/INSTALL Wed Oct 31 11:44:53 2001 +0000 @@ -14,11 +14,9 @@ egcs and gcc that causes programs to crash on some distributions, depending on the optimization level. - * The program "mail" must be available, because failed postings are returned - to the sender by calling it (with option -s and by piping message text - into it). - - * The program "sort" must be available (standard with most distributions). + * 'sendmail' or any mail transfer agent with a sendmail compatible interface + (this includes Exim, qmail and Postfix) must be available. It is used + to return failed postings to the sender. Compilation and installation diff -r 60a70c16d79c -r 24d4cd032da5 NEWS --- a/NEWS Tue Oct 30 13:55:53 2001 +0000 +++ b/NEWS Wed Oct 31 11:44:53 2001 +0000 @@ -5,11 +5,47 @@ * Article filtering: see noffle.conf(5) for details. * Noffle no longer hangs if the connection breaks down during a fetch. * SENDMAILPROG is used instead of mail for returning failed postings. - * Noffle will act as inews is invoked as inews. + * Noffle will act as inews if invoked as inews. * Fetching and reading news can overlap, and generally blocking on the database lock reduced to a minimum. * Select debug logging via noffle.conf. Logging is always compiled in, so reduce debug options to build with/without debugging info. + * Output of list groups commands is no longer sorted + for avoiding problems with calls to external sort command + and for speeding up response time. + The group list is sorted by most clients anyway. + * Observe Expires: and Supersedes: headers. + * Added '--post' command line option. + * Add 'path-header' and Path: addition to posted articles. + * Rename 'auto-subscribe-mode' to 'default-auto-subscribe-mode' and + add new 'auto-subscribe-mode ' option. + * Add getgroups and omitgroups options. + * Add From: and Organization: headers on posting if not present. + +1.0.1: +------ + + * Released on 15 Jun 2001 + * Fixed bug that broke authentication if the server required it at + connect time. + * Fix bug that made Noffle to get server responses to wrong commands, + after a read timeout occurred and could lead to mixed up group + contents and messages. + * minor optimizations and fixes + +1.0: +---- + + * Released on 27 Jan 2001. + * In the 1.0pre8 release, debug logging was enabled in the standard + settings, which slowed down Noffle considerably. it is disabled by + default now. + +1.0pre8: +-------- + + * Noffle no longer hangs if the connection breaks down during a fetch. + * SENDMAILPROG is used instead of mail for returning failed postings. 1.0pre7: -------- @@ -21,13 +57,6 @@ * Fix date printing bug. Now works in all(?) timezones. * Fix bug with 'XHDR '. Add 'XPAT '. * Allow post to local moderated group if 'Approved:' header present. - * Added '--post' command line option. - * Add 'path-header' and Path: addition to posted articles. - * Rename 'auto-subscribe-mode' to 'default-auto-subscribe-mode' and - add new 'auto-subscribe-mode ' option. - * Observe Expires: and Supersedes: headers. - * Add getgroups and omitgroups options. - * Fixed a bug that caused noffle to hang with some readers (like tin). 1.0pre6 ------- diff -r 60a70c16d79c -r 24d4cd032da5 README --- a/README Tue Oct 30 13:55:53 2001 +0000 +++ b/README Wed Oct 31 11:44:53 2001 +0000 @@ -51,9 +51,9 @@ Getting Noffle -------------- -The current stable release is: none +The current stable release is: 1.0.1 -The current development release is: 1.0pre5 +The current development release is: none The Noffle homepage is at: @@ -62,7 +62,7 @@ Official releases can be downloaded at the File Releases section of the Noffle project page: - http://sourceforge.net/project/?group_id=1044 + http://sourceforge.net/projects/noffle The latest development snapshot is available via CVS at: diff -r 60a70c16d79c -r 24d4cd032da5 TODO --- a/TODO Tue Oct 30 13:55:53 2001 +0000 +++ b/TODO Wed Oct 31 11:44:53 2001 +0000 @@ -5,8 +5,6 @@ Urgent ------ - * Has Client_connect resource leaks if it fails? - Later ----- @@ -16,8 +14,6 @@ with respect to process concurrency if the simple global locking strategy will be changed in the future. - * Add "hostname" config option for setting the FQHN in generated message IDs. - * Read timeout when running as server and automatically close if client does not send data for a longer time. @@ -82,9 +78,8 @@ Some day far away ----------------- - * Understand supersedes header (useful for reading news.answers group) + * Extend execution of cancel messages to those retrieved from the upstream + server (e.g. by subscribing to control.cancel - only fetching cancels + for groups in the fetchlist would be a good idea, volume in + control.cancel). - * Get and execute cancel messages (read control.cancel, but use xpat to get - only cancels for groups in fetchlist). Seems to be expensive (20000 headers - a day, takes the remote server to search through) - diff -r 60a70c16d79c -r 24d4cd032da5 docs/NOTES --- a/docs/NOTES Tue Oct 30 13:55:53 2001 +0000 +++ b/docs/NOTES Wed Oct 31 11:44:53 2001 +0000 @@ -16,6 +16,7 @@ 1.11 xrn 1.12 knews 1.13 knode + 1.14 Gravity ------------------------------------------------------------------------------- @@ -254,3 +255,12 @@ Setting the number of days to cache an article to 0 in Options/Read News prevents the article being cached between knode sessions. + +1.14 Gravity +------------ + +Version 2.3: + +As for the overview/thread mode, caching must be disabled in +View->Global Options->Storage(tab), disable "Retrieve and store article +bodies" and "Store all bodies retrieved for reading". diff -r 60a70c16d79c -r 24d4cd032da5 src/client.c --- a/src/client.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/client.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,15 +1,13 @@ /* client.c - $Id: client.c 310 2001-10-20 13:23:46Z bears $ + $Id: client.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H #include #endif -#include "client.h" - #include #include #include @@ -19,6 +17,7 @@ #include #include #include +#include "client.h" #include "configfile.h" #include "content.h" #include "control.h" @@ -64,15 +63,15 @@ struct { - FILE* in; /* Receiving socket from server */ - FILE* out; /* Sending socket to server */ - Str lastCmd; /* Last command line */ - Str lastStat; /* Response from server to last command */ - Str grp; /* Selected group */ - int rmtFirst; /* First article of current group at server */ - int rmtLast; /* Last article of current group at server */ - Bool auth; /* Authetication already done? */ - Str serv; /* Remote server name */ + FILE* in; /* Receiving socket from server */ + FILE* out; /* Sending socket to server */ + Str lastCmd; /* Last command line */ + Str lastStat; /* Response from server to last command */ + Str grp; /* Selected group */ + int rmtFirst; /* First article of current group at server */ + int rmtLast; /* Last article of current group at server */ + Bool auth; /* Authentication already done? */ + Str serv; /* Remote server name */ } client = { NULL, NULL, "", "", "", 1, 0, FALSE, "" }; static void @@ -351,7 +350,8 @@ } Utl_cpyStr( client.serv, serv ); stat = getStat(); - switch( stat ) { + switch( stat ) + { case STAT_READY_POST_ALLOW: case STAT_READY_NO_POST_ALLOW: Log_inf( "Connected to %s:%d", diff -r 60a70c16d79c -r 24d4cd032da5 src/configfile.c --- a/src/configfile.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/configfile.c Wed Oct 31 11:44:53 2001 +0000 @@ -6,18 +6,17 @@ SPOOLDIR VERSION - $Id: configfile.c 314 2001-10-30 13:16:40Z bears $ + $Id: configfile.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H #include #endif -#include "configfile.h" - #include #include #include +#include "configfile.h" #include "filter.h" #include "itemlist.h" #include "log.h" diff -r 60a70c16d79c -r 24d4cd032da5 src/content.c --- a/src/content.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/content.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,7 +1,7 @@ /* content.c - $Id: content.c 315 2001-10-30 13:55:53Z bears $ + $Id: content.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H @@ -17,12 +17,12 @@ #include #include "common.h" #include "configfile.h" +#include "content.h" #include "group.h" #include "log.h" #include "over.h" #include "pseudo.h" #include "util.h" -#include "content.h" #include "portable.h" struct diff -r 60a70c16d79c -r 24d4cd032da5 src/control.c --- a/src/control.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/control.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,17 +1,17 @@ /* control.c - $Id: control.c 300 2001-08-05 08:24:22Z bears $ + $Id: control.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H #include #endif -#include "control.h" #include #include "common.h" #include "content.h" +#include "control.h" #include "database.h" #include "group.h" #include "itemlist.h" diff -r 60a70c16d79c -r 24d4cd032da5 src/database.c --- a/src/database.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/database.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,7 +1,7 @@ /* database.c - $Id: database.c 300 2001-08-05 08:24:22Z bears $ + $Id: database.c 316 2001-10-31 11:44:53Z bears $ Uses GNU gdbm library. Using Berkeley db (included in libc6) was cumbersome. It is based on Berkeley db 1.85, which has severe bugs @@ -14,7 +14,6 @@ #endif #include -#include "database.h" #include #include #include @@ -23,6 +22,7 @@ #include #include #include "configfile.h" +#include "database.h" #include "itemlist.h" #include "log.h" #include "protocol.h" diff -r 60a70c16d79c -r 24d4cd032da5 src/dynamicstring.c --- a/src/dynamicstring.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/dynamicstring.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,16 +1,15 @@ /* dynamicstring.c - $Id: dynamicstring.c 65 2000-05-12 16:52:41Z enz $ + $Id: dynamicstring.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H #include #endif +#include #include "dynamicstring.h" - -#include #include "log.h" #include "portable.h" diff -r 60a70c16d79c -r 24d4cd032da5 src/fetch.c --- a/src/fetch.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/fetch.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,7 +1,7 @@ /* fetch.c - $Id: fetch.c 312 2001-10-22 13:41:43Z bears $ + $Id: fetch.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H @@ -9,7 +9,6 @@ #endif #include -#include "fetch.h" #include #if TIME_WITH_SYS_TIME @@ -28,6 +27,7 @@ #include "configfile.h" #include "content.h" #include "dynamicstring.h" +#include "fetch.h" #include "fetchlist.h" #include "request.h" #include "group.h" diff -r 60a70c16d79c -r 24d4cd032da5 src/filter.c --- a/src/filter.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/filter.c Wed Oct 31 11:44:53 2001 +0000 @@ -3,17 +3,16 @@ Article filtering. - $Id: filter.c 313 2001-10-30 12:42:13Z bears $ + $Id: filter.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H #include #endif -#include "filter.h" - #include #include "common.h" +#include "filter.h" #include "itemlist.h" #include "log.h" #include "wildmat.h" diff -r 60a70c16d79c -r 24d4cd032da5 src/group.c --- a/src/group.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/group.c Wed Oct 31 11:44:53 2001 +0000 @@ -7,7 +7,7 @@ loadGrp() and saveGrp(). This is done transparently. Access to the groups database is done by group name, by the functions defined in group.h. - $Id: group.c 312 2001-10-22 13:41:43Z bears $ + $Id: group.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H @@ -15,12 +15,12 @@ #endif #include -#include "group.h" #include #include #include #include #include "configfile.h" +#include "group.h" #include "log.h" #include "util.h" #include "portable.h" diff -r 60a70c16d79c -r 24d4cd032da5 src/itemlist.c --- a/src/itemlist.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/itemlist.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,18 +1,18 @@ /* itemlist.c - $Id: itemlist.c 78 2000-05-13 15:34:15Z bears $ + $Id: itemlist.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H #include #endif -#include "itemlist.h" #include #include #include #include "common.h" +#include "itemlist.h" #include "log.h" #include "portable.h" diff -r 60a70c16d79c -r 24d4cd032da5 src/lock.c --- a/src/lock.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/lock.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,7 +1,7 @@ /* lock.c - $Id: lock.c 300 2001-08-05 08:24:22Z bears $ + $Id: lock.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H @@ -9,7 +9,6 @@ #endif #include -#include "lock.h" #include #include #include @@ -31,6 +30,7 @@ #include #include "configfile.h" #include "content.h" +#include "lock.h" #include "log.h" #include "database.h" #include "group.h" diff -r 60a70c16d79c -r 24d4cd032da5 src/outgoing.c --- a/src/outgoing.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/outgoing.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,15 +1,13 @@ /* outgoing.c - $Id: outgoing.c 300 2001-08-05 08:24:22Z bears $ + $Id: outgoing.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H #include #endif -#include "outgoing.h" - #include #include #include @@ -31,6 +29,7 @@ #include #include "configfile.h" #include "log.h" +#include "outgoing.h" #include "util.h" #include "portable.h" diff -r 60a70c16d79c -r 24d4cd032da5 src/over.c --- a/src/over.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/over.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,7 +1,7 @@ /* over.c - $Id: over.c 79 2000-05-13 15:35:17Z bears $ + $Id: over.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H @@ -25,10 +25,11 @@ #include "database.h" #include "fetchlist.h" #include "log.h" -#include "util.h" +#include "over.h" #include "protocol.h" #include "pseudo.h" #include "portable.h" +#include "util.h" struct Over { diff -r 60a70c16d79c -r 24d4cd032da5 src/post.c --- a/src/post.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/post.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,7 +1,7 @@ /* post.c - $Id: post.c 310 2001-10-20 13:23:46Z bears $ + $Id: post.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H @@ -13,7 +13,6 @@ #include #include #include -#include "post.h" #include #include "common.h" #include "configfile.h" @@ -25,9 +24,10 @@ #include "log.h" #include "outgoing.h" #include "over.h" +#include "portable.h" +#include "post.h" #include "protocol.h" #include "util.h" -#include "portable.h" #define BEGIN_SIG "-- " #define SIG_FILE "/.signature" diff -r 60a70c16d79c -r 24d4cd032da5 src/protocol.c --- a/src/protocol.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/protocol.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,7 +1,7 @@ /* protocol.c - $Id: protocol.c 314 2001-10-30 13:16:40Z bears $ + $Id: protocol.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H @@ -22,8 +22,8 @@ #include "log.h" #include "over.h" #include "util.h" +#include "portable.h" #include "protocol.h" -#include "portable.h" static void readAlarm( int sig ) @@ -75,7 +75,7 @@ } Bool -Prt_getTxtLn( Str line, Bool *err, FILE *f, int timeoutSeconds ) +Prt_getTxtLn( Str line, Bool *err, FILE *f, int timeoutSeconds ) { Str buf; diff -r 60a70c16d79c -r 24d4cd032da5 src/protocol.h --- a/src/protocol.h Tue Oct 30 13:55:53 2001 +0000 +++ b/src/protocol.h Wed Oct 31 11:44:53 2001 +0000 @@ -4,7 +4,7 @@ Functions related with the NNTP protocol which are useful for both the server and the client. - $Id: protocol.h 306 2001-09-01 15:57:45Z enz $ + $Id: protocol.h 316 2001-10-31 11:44:53Z bears $ */ #ifndef PRT_H @@ -69,7 +69,7 @@ /* Read a text line from server. Returns TRUE if line != ".", removes leading '.' otherwise. - If timeoutSeconds < 0, no timeout alarm is used. + If timeoutSeconds < 0, no timeout alarm is used. */ Bool Prt_getTxtLn( Str line, Bool *err, FILE *f, int timeoutSeconds ); diff -r 60a70c16d79c -r 24d4cd032da5 src/pseudo.c --- a/src/pseudo.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/pseudo.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,7 +1,7 @@ /* pseudo.c - $Id: pseudo.c 236 2000-12-05 19:50:09Z enz $ + $Id: pseudo.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H @@ -19,8 +19,6 @@ #endif #endif -#include "pseudo.h" - #include #include "common.h" #include "configfile.h" @@ -30,8 +28,8 @@ #include "log.h" #include "protocol.h" #include "util.h" +#include "portable.h" #include "pseudo.h" -#include "portable.h" static Over * genOv( const char *rawSubj, const char *rawBody, const char *suffix ) diff -r 60a70c16d79c -r 24d4cd032da5 src/request.c --- a/src/request.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/request.c Wed Oct 31 11:44:53 2001 +0000 @@ -3,7 +3,7 @@ Collection of articles that are marked for download. - $Id: request.c 300 2001-08-05 08:24:22Z bears $ + $Id: request.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H @@ -11,7 +11,6 @@ #endif #include -#include "request.h" #include #include #include @@ -21,8 +20,9 @@ #include #include "configfile.h" #include "log.h" +#include "portable.h" +#include "request.h" #include "util.h" -#include "portable.h" /* This struct keeps record of the message IDs that are to be fetched from diff -r 60a70c16d79c -r 24d4cd032da5 src/server.c --- a/src/server.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/server.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,7 +1,7 @@ /* server.c - $Id: server.c 310 2001-10-20 13:23:46Z bears $ + $Id: server.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H @@ -20,7 +20,6 @@ #endif #include -#include "server.h" #include #include #include @@ -45,6 +44,7 @@ #include "protocol.h" #include "pseudo.h" #include "request.h" +#include "server.h" #include "util.h" #include "wildmat.h" #include "portable.h" diff -r 60a70c16d79c -r 24d4cd032da5 src/util.c --- a/src/util.c Tue Oct 30 13:55:53 2001 +0000 +++ b/src/util.c Wed Oct 31 11:44:53 2001 +0000 @@ -1,7 +1,7 @@ /* util.c - $Id: util.c 301 2001-08-05 08:27:17Z bears $ + $Id: util.c 316 2001-10-31 11:44:53Z bears $ */ #if HAVE_CONFIG_H @@ -19,7 +19,6 @@ #endif #endif -#include "util.h" #include #include #include @@ -29,8 +28,9 @@ #include #include "configfile.h" #include "log.h" +#include "portable.h" +#include "util.h" #include "wildmat.h" -#include "portable.h" #if defined(UTIL_TEST) #define Log_err printf