X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fdownloads.c;h=6e6c9b981b5ebf0acf8bc46dc664fc9630956acd;hb=50511759c152f4ca2e22fb39a9bf31fc9f9d916d;hp=ccb60390809c6c4a578d556782356cc6a96fe9fa;hpb=2f8ba8d58350ea377595b951fb7d20a5618ea0ef;p=citadel.git diff --git a/webcit/downloads.c b/webcit/downloads.c index ccb603908..6e6c9b981 100644 --- a/webcit/downloads.c +++ b/webcit/downloads.c @@ -270,13 +270,15 @@ void download_file(void) if (GetServerStatus(Buf, NULL) == 2) { StrBufCutLeft(Buf, 4); bytes = StrBufExtract_long(Buf, 0, '|'); - if (!force_download) { - StrBufExtract_token(ContentType, Buf, 3, '|'); - } - serv_read_binary(WCC->WBuf, bytes, Buf); + StrBufExtract_token(ContentType, Buf, 3, '|'); + + CheckGZipCompressionAllowed (SKEY(ContentType)); + if (force_download) + FlushStrBuf(ContentType); + + serv_read_binary_to_http(ContentType, bytes, 0, 0); serv_puts("CLOS"); StrBuf_ServGetln(Buf); - http_transmit_thing(ChrPtr(ContentType), 0); } else { StrBufCutLeft(Buf, 4); hprintf("HTTP/1.1 404 %s\n", ChrPtr(Buf)); @@ -397,6 +399,7 @@ void output_image(void) /** Write it to the browser */ if (!IsEmptyStr(MimeType)) { + CheckGZipCompressionAllowed (MimeType, strlen(MimeType)); http_transmit_thing(MimeType, 0); FreeStrBuf(&Buf); return;