From: Wilfried Goesgens Date: Sun, 11 Mar 2012 22:10:12 +0000 (+0100) Subject: Citadel Networker: after calling sub-writers we need to rewind the state. X-Git-Tag: v8.11~130 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=817c440213ff1009e236ba10e003b061d8a89168 Citadel Networker: after calling sub-writers we need to rewind the state. --- 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; } }