Integrated the DKIM signer into serv_smtpclient, but disabled it
[citadel.git] / webcit / downloads.c
index ccb60390809c6c4a578d556782356cc6a96fe9fa..9b7dde993c47f254174d3040a2540292ece34b3a 100644 (file)
@@ -11,7 +11,7 @@
  */
 
 #include "webcit.h"
-#include "webserver.h"
+
 
 CtxType CTX_FILELIST = CTX_NONE;
 
@@ -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;
@@ -411,10 +414,9 @@ void output_image(void)
        
        /*
         * Instead of an ugly 404, send a 1x1 transparent GIF
-        * when there's no such image on the server.
+        * when there's no such image on the server display blank
         */
-       StrBufPrintf (Buf, "%s%s", static_dirs[0], "/webcit_icons/blank.gif");
-       output_static(ChrPtr(Buf));
+       output_static(NULL);
        FreeStrBuf(&Buf);
 }