# HG changeset patch # User bears # Date 1053591813 -3600 # Node ID 278a03a392b18f34afd9a247cd43c144ee220e8c # Parent e3756d005fa47240da1184d5859fb39bca277bd7 [svn] * src/client.c: Return correct status from Client_postArt() and add function comment detailing what return code should be, because it's not obvious that the return code should report success when the posting failed for reasons other than connection problems. This should fix problem with failing posting stopping fetches. Thanks to Dan Jacobson for spotting this. * src/client.c: Fix problemette with filter discards not updating remote group article count and so the overview being refetched until and article appears that doesn't fall foul of the filter and thus does update the remove group 'next article' marker. Thanks to Dan Jacobson for spotting this. diff -r e3756d005fa4 -r 278a03a392b1 src/client.c --- a/src/client.c Thu May 15 19:08:44 2003 +0100 +++ b/src/client.c Thu May 22 09:23:33 2003 +0100 @@ -1,7 +1,7 @@ /* client.c - $Id: client.c 466 2003-02-26 11:30:41Z bears $ + $Id: client.c 528 2003-05-22 08:23:33Z bears $ */ #if HAVE_CONFIG_H @@ -986,16 +986,18 @@ if ( action == FILTER_DISCARD ) { del_Over( ov ); - continue; } - Cont_app( ov ); /* Cont modules owns ov after this */ - prepareEntry( ov ); - if ( action == FILTER_FULL - || ( action == FILTER_THREAD && needsMark( ref ) ) ) - { - Req_add( client.serv, msgId ); - ++cntMarked; - } + else + { + Cont_app( ov ); /* Cont modules owns ov after this */ + prepareEntry( ov ); + if ( action == FILTER_FULL + || ( action == FILTER_THREAD && needsMark( ref ) ) ) + { + Req_add( client.serv, msgId ); + ++cntMarked; + } + } } Grp_setRmtNext( client.grp, rmtNumb + 1 ); } @@ -1213,6 +1215,15 @@ *last = client.rmtLast; } +/** + * Post an article. + * + * Return status if there's a connection problem. Otherwise return + * STAT_OK. If there's an error in posting, put the error into + * errStr, and return STAT_OK. That is, the return value indicates if + * a proper transaction happened, and errStr indicates if that + * transaction contained a posting error. + */ int Client_postArt( const char *msgId, const char *artTxt, Str errStr ) { @@ -1229,7 +1240,7 @@ { Log_err( "Posting of %s not allowed: %s", msgId, client.lastStat ); Utl_cpyStr( errStr, client.lastStat ); - return stat; + return STAT_OK; } putTxtBuf( artTxt ); putEndOfTxt(); @@ -1240,7 +1251,7 @@ { Log_err( "Posting of %s failed: %s", msgId, client.lastStat ); Utl_cpyStr( errStr, client.lastStat ); - return stat; + return STAT_OK; } Log_inf( "Posted %s (Status: %s)", msgId, client.lastStat ); return STAT_OK;