INN commit: branches/2.4 (NEWS doc/pod/news.pod innfeed/connection.c)
INN Commit
Russ_Allbery at isc.org
Sat Apr 26 08:15:41 UTC 2008
Date: Saturday, April 26, 2008 @ 01:15:40
Author: iulius
Revision: 7793
Revert commit 7753 because innfeed uses too much CPU with it.
Modified:
branches/2.4/NEWS
branches/2.4/doc/pod/news.pod
branches/2.4/innfeed/connection.c
----------------------+
NEWS | 3 ---
doc/pod/news.pod | 5 -----
innfeed/connection.c | 41 ++++++++++++++---------------------------
3 files changed, 14 insertions(+), 35 deletions(-)
Modified: NEWS
===================================================================
--- NEWS 2008-04-26 07:44:23 UTC (rev 7792)
+++ NEWS 2008-04-26 08:15:40 UTC (rev 7793)
@@ -17,9 +17,6 @@
* scanlogs now rotates innfeed's log file, which prevents innfeed from
silently dying when its log file reaches 2 GB.
- * Some annoying assertion failures occurring in innfeed have been fixed
- by Russ Allbery.
-
* Some news clients hang when posting an article through a SSL
connection: it seems that nnrpd's SSL routines make it wrongly wait
for data completion. In order to fix the problem, the select() wait
Modified: doc/pod/news.pod
===================================================================
--- doc/pod/news.pod 2008-04-26 07:44:23 UTC (rev 7792)
+++ doc/pod/news.pod 2008-04-26 08:15:40 UTC (rev 7793)
@@ -29,11 +29,6 @@
=item *
-Some annoying assertion failures occurring in B<innfeed> have been fixed
-by Russ Allbery.
-
-=item *
-
Some news clients hang when posting an article through a SSL connection:
it seems that B<nnrpd>'s SSL routines make it wrongly wait for data
completion. In order to fix the problem, the select() wait is now
Modified: innfeed/connection.c
===================================================================
--- innfeed/connection.c 2008-04-26 07:44:23 UTC (rev 7792)
+++ innfeed/connection.c 2008-04-26 08:15:40 UTC (rev 7793)
@@ -2321,16 +2321,10 @@
cxnSleep (cxn) ;
}
else
- {
- /* Some hosts return a response even before we're done sending, so don't
- go idle until here. */
- if (cxn->state == cxnFeedingS && cxn->articleQTotal == 0)
- cxnIdle (cxn) ;
- else
- /* The command set has been sent, so start the response timer. */
- initReadBlockedTimeout (cxn) ;
- }
+ /* The article has been sent, so start the response timer. */
+ initReadBlockedTimeout (cxn) ;
+
freeBufferArray (b) ;
return ;
@@ -2380,8 +2374,8 @@
}
else
{
- /* Some hosts return a response even before we're done sending, so don't
- go idle until here. */
+ /* Some(?) hosts return the 439 response even before we're done
+ sending, so don't go idle until here */
if (cxn->state == cxnFeedingS && cxn->articleQTotal == 0)
cxnIdle (cxn) ;
else
@@ -2714,11 +2708,6 @@
* take a long time. Instead the Connection just tries its next article on
* tape or queue, and if that's no good then it registers this callback so
* that other Connections have a chance of being serviced.
- *
- * This function is also put on the callback queue if we called doSomeWrites
- * but there was already a write pending, mostly so that we don't deadlock the
- * connection when we got a response to the body of an IHAVE command before we
- * finished sending the body.
*/
static void cxnWorkProc (EndPoint ep UNUSED, void *data)
{
@@ -2943,7 +2932,7 @@
else
{
remArtHolder (artHolder, &cxn->checkRespHead, &cxn->articleQTotal) ;
- if (cxn->articleQTotal == 0 && !writeIsPending (cxn->myEp))
+ if (cxn->articleQTotal == 0)
cxnIdle (cxn) ;
hostArticleDeferred (cxn->myHost, cxn, artHolder->article) ;
delArtHolder (artHolder) ;
@@ -3004,7 +2993,7 @@
cxn->checksRefused++ ;
remArtHolder (artHolder, &cxn->checkRespHead, &cxn->articleQTotal) ;
- if (cxn->articleQTotal == 0 && !writeIsPending (cxn->myEp))
+ if (cxn->articleQTotal == 0)
cxnIdle (cxn) ;
hostArticleNotWanted (cxn->myHost, cxn, artHolder->article);
delArtHolder (artHolder) ;
@@ -3065,7 +3054,7 @@
cxn->takesSizeOkayed += artSize(artHolder->article);
remArtHolder (artHolder, &cxn->takeRespHead, &cxn->articleQTotal) ;
- if (cxn->articleQTotal == 0 && !writeIsPending (cxn->myEp))
+ if (cxn->articleQTotal == 0)
cxnIdle (cxn) ;
hostArticleAccepted (cxn->myHost, cxn, artHolder->article) ;
delArtHolder (artHolder) ;
@@ -3159,7 +3148,7 @@
{
cxn->checksRefused++ ;
remArtHolder (artHolder, &cxn->checkRespHead, &cxn->articleQTotal) ;
- if (cxn->articleQTotal == 0 && !writeIsPending (cxn->myEp))
+ if (cxn->articleQTotal == 0)
cxnIdle (cxn) ;
hostArticleNotWanted (cxn->myHost, cxn, artHolder->article);
delArtHolder (artHolder) ;
@@ -3175,7 +3164,8 @@
cxn->takesSizeRejected += artSize(artHolder->article);
remArtHolder (artHolder, &cxn->takeRespHead, &cxn->articleQTotal) ;
- /* Some hosts return the 439 response even before we're done sending */
+ /* Some(?) hosts return the 439 response even before we're done
+ sending */
if (cxn->articleQTotal == 0 && !writeIsPending(cxn->myEp))
cxnIdle (cxn) ;
hostArticleRejected (cxn->myHost, cxn, artHolder->article) ;
@@ -3239,7 +3229,7 @@
cxn->takesOkayed++ ;
cxn->takesSizeOkayed += artSize(artHolder->article);
- if (cxn->articleQTotal == 0 && !writeIsPending (cxn->myEp))
+ if (cxn->articleQTotal == 0)
cxnIdle (cxn) ;
hostArticleAccepted (cxn->myHost, cxn, artHolder->article) ;
@@ -3919,10 +3909,7 @@
/* If there's a write pending we can't do anything now. */
if ( writeIsPending (cxn->myEp) )
- {
- addWorkCallback (cxn->myEp,cxnWorkProc,cxn) ;
- return ;
- }
+ return ;
else if ( writesNeeded (cxn) ) /* something on a queue. */
{
if (cxn->doesStreaming)
@@ -4162,7 +4149,7 @@
was a big backlog of missing articles *and* we're running in
no-CHECK mode, then the Host would be putting bad articles on the
queue we're taking them off of. */
- if (cxn->missing && cxn->articleQTotal == 0 && !writeIsPending (cxn->myEp))
+ if (cxn->missing && cxn->articleQTotal == 0)
cxnIdle (cxn) ;
for (p = cxn->missing ; p != NULL ; p = q)
{
More information about the inn-committers
mailing list