From 817c440213ff1009e236ba10e003b061d8a89168 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Sun, 11 Mar 2012 23:10:12 +0100 Subject: [PATCH] Citadel Networker: after calling sub-writers we need to rewind the state. --- citadel/modules/network/serv_networkclient.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/citadel/modules/network/serv_networkclient.c b/citadel/modules/network/serv_networkclient.c index cd330bdc0..d37362407 100644 --- a/citadel/modules/network/serv_networkclient.c +++ b/citadel/modules/network/serv_networkclient.c @@ -347,6 +347,7 @@ eNextState NWC_ReadREADState(AsyncNetworker *NW) eNextState NWC_ReadREADBlobDone(AsyncNetworker *NW); eNextState NWC_ReadREADBlob(AsyncNetworker *NW) { + eNextState rc; AsyncIO *IO = &NW->IO; NWC_DBG_READ(); if (NW->IO.IOB.TotalSendSize == NW->IO.IOB.TotalSentAlready) @@ -364,7 +365,9 @@ eNextState NWC_ReadREADBlob(AsyncNetworker *NW) } unlink(ChrPtr(NW->tempFileName)); - return NWC_DispatchWriteDone(&NW->IO); + rc = NWC_DispatchWriteDone(&NW->IO); + NW->State --; + return rc; } else { NW->State --; @@ -375,6 +378,7 @@ eNextState NWC_ReadREADBlob(AsyncNetworker *NW) eNextState NWC_ReadREADBlobDone(AsyncNetworker *NW) { + eNextState rc; AsyncIO *IO = &NW->IO; NWC_DBG_READ(); if (NW->IO.IOB.TotalSendSize == NW->IO.IOB.TotalSentAlready) @@ -392,7 +396,9 @@ eNextState NWC_ReadREADBlobDone(AsyncNetworker *NW) } unlink(ChrPtr(NW->tempFileName)); - return NWC_DispatchWriteDone(&NW->IO); + rc = NWC_DispatchWriteDone(&NW->IO); + NW->State --; + return rc; } else { NW->State --; @@ -514,7 +520,9 @@ eNextState NWC_SendBlobDone(AsyncNetworker *NW) else { NW->State --; IO->IOB.ChunkSendRemain = IO->IOB.ChunkSize; - return NWC_DispatchWriteDone(IO); + rc = NWC_DispatchWriteDone(IO); + NW->State --; + return rc; } } -- 2.30.2