From a85c25a80a5aec5bc4d805473ccaa23cffc650c9 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Tue, 18 Oct 2011 00:15:57 +0200 Subject: [PATCH] Add function to free the file upload facilities. --- libcitadel/lib/libcitadel.h | 1 + libcitadel/lib/stringbuf.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/libcitadel/lib/libcitadel.h b/libcitadel/lib/libcitadel.h index 7021ed47a..e64dbc32d 100644 --- a/libcitadel/lib/libcitadel.h +++ b/libcitadel/lib/libcitadel.h @@ -250,6 +250,7 @@ typedef struct __fd_iobuffer { void FDIOBufferInit(FDIOBuffer *FDB, IOBuffer *IO, int FD, long TotalSendSize); +void FDIOBufferDelete(FDIOBuffer *FDB); int FileSendChunked(FDIOBuffer *FDB, const char **Err); int FileRecvChunked(FDIOBuffer *FDB, const char **Err); eReadState WriteIOBAlreadyRead(FDIOBuffer *FDB, const char **Error); diff --git a/libcitadel/lib/stringbuf.c b/libcitadel/lib/stringbuf.c index 7dc07af46..466bb2c32 100644 --- a/libcitadel/lib/stringbuf.c +++ b/libcitadel/lib/stringbuf.c @@ -3807,6 +3807,18 @@ void FDIOBufferInit(FDIOBuffer *FDB, IOBuffer *IO, int FD, long TotalSendSize) FDB->OtherFD = FD; } +void FDIOBufferDelete(FDIOBuffer *FDB) +{ +#ifndef LINUX_SENDFILE + FreeStrBuf(&FDB->ChunkBuffer); +#else + close(FDB->SplicePipe[0]); + close(FDB->SplicePipe[1]); +#endif + close(FDB->OtherFD); + memset(FDB, 0, sizeof(FDIOBuffer)); +} + int FileSendChunked(FDIOBuffer *FDB, const char **Err) { -- 2.30.2