#include "webcit.h"
#include "webserver.h"
+CtxType CTX_FILELIST = CTX_NONE;
+
extern void output_static(const char* What);
extern char* static_dirs[];
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));
/** Write it to the browser */
if (!IsEmptyStr(MimeType))
{
+ CheckGZipCompressionAllowed (MimeType, strlen(MimeType));
http_transmit_thing(MimeType, 0);
FreeStrBuf(&Buf);
return;
InitModule_DOWNLOAD
(void)
{
+ RegisterCTX(CTX_FILELIST);
RegisterIterator("ROOM:FILES", 0, NULL, LoadFileList,
NULL, DeleteHash, CTX_FILELIST, CTX_NONE,
RegisterNamespace("FILE:MIMETYPE", 0, 2, tmplput_FILEMIMETYPE, NULL, CTX_FILELIST);
RegisterNamespace("FILE:COMMENT", 0, 2, tmplput_FILE_COMMENT, NULL, CTX_FILELIST);
- RegisterConditional(HKEY("COND:FILE:ISPIC"), 0, Conditional_FILE_ISPIC, CTX_FILELIST);
+ RegisterConditional("COND:FILE:ISPIC", 0, Conditional_FILE_ISPIC, CTX_FILELIST);
WebcitAddUrlHandler(HKEY("image"), "", 0, output_image, ANONYMOUS);
WebcitAddUrlHandler(HKEY("display_mime_icon"), "", 0, display_mime_icon , ANONYMOUS);