X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=libcitadel%2Flib%2Fstringbuf.c;h=1b9ea072366221b9bea1f8cf1f438a229f795bb3;hb=3507fe14432a1ed1ca70c503fc4d2df026d51ade;hp=9bc1c8eb04aa9015ab7f5d62abdd50fe5b2d0175;hpb=3c0b1d8686c302e511389e2afbbbf436af2c56e9;p=citadel.git diff --git a/libcitadel/lib/stringbuf.c b/libcitadel/lib/stringbuf.c index 9bc1c8eb0..1b9ea0723 100644 --- a/libcitadel/lib/stringbuf.c +++ b/libcitadel/lib/stringbuf.c @@ -3934,9 +3934,17 @@ long IOBufferStrLength(IOBuffer *FB) return StrLength(FB->Buf) - (FB->ReadWritePointer - FB->Buf->buf); } -void FDIOBufferInit(FDIOBuffer *FDB, IOBuffer *IO, int FD, long TotalSendSize) +inline static void FDIOBufferFlush(FDIOBuffer *FDB) { memset(FDB, 0, sizeof(FDIOBuffer)); + FDB->OtherFD = -1; + FDB->SplicePipe[0] = -1; + FDB->SplicePipe[1] = -1; +} + +void FDIOBufferInit(FDIOBuffer *FDB, IOBuffer *IO, int FD, long TotalSendSize) +{ + FDIOBufferFlush(FDB); FDB->ChunkSize = FDB->TotalSendSize = TotalSendSize; FDB->IOB = IO; @@ -3966,7 +3974,7 @@ void FDIOBufferDelete(FDIOBuffer *FDB) if (FDB->OtherFD > 0) close(FDB->OtherFD); - memset(FDB, 0, sizeof(FDIOBuffer)); + FDIOBufferFlush(FDB); } int FileSendChunked(FDIOBuffer *FDB, const char **Err)