]> code.citadel.org Git - citadel.git/blobdiff - webcit/downloads.c
* fix the files application
[citadel.git] / webcit / downloads.c
index b5c04c23e0d5276434be9a6583b7e51d184a525d..28fcbe80fb1fb8a576f064b793ca6c885385148b 100644 (file)
@@ -249,7 +249,7 @@ void download_file(void)
        int force_download = 1;
        
        Buf = NewStrBuf();
-       StrBufExtract_token(Buf, WCC->Hdr->ReqLine, 0, '/');
+       StrBufExtract_token(Buf, WCC->Hdr->HR.ReqLine, 0, '/');
        StrBufUnescape(Buf, 1);
        serv_printf("OPEN %s", ChrPtr(Buf));
        StrBuf_ServGetln(Buf);
@@ -280,6 +280,7 @@ void download_file(void)
 
 void delete_file(void)
 {
+       const StrBuf *MimeType;
        StrBuf *Buf;
        char buf[256];
        
@@ -291,9 +292,8 @@ void delete_file(void)
        GetServerStatus(Buf, NULL);
        StrBufCutLeft(Buf, 4);
        strcpy(WC->ImportantMessage, ChrPtr(Buf));
-       do_template("files", CTX_NONE);
-       output_headers(0, 0, 0, 0, 0, 0);
-       end_burst();
+       MimeType = DoTemplate(HKEY("files"), NULL, &NoCtx);
+       http_transmit_thing(ChrPtr(MimeType), 0);
        FreeStrBuf(&Buf);
 }
 
@@ -301,21 +301,21 @@ void delete_file(void)
 
 void upload_file(void)
 {
+       const StrBuf *RetMimeType;
        const char *MimeType;
        char buf[1024];
        long bytes_transmitted = 0;
        long blocksize;
        wcsession *WCC = WC;     /* stack this for faster access (WC is a function) */
 
-       MimeType = GuessMimeType(WCC->upload, WCC->upload_length); 
+       MimeType = GuessMimeType(ChrPtr(WCC->upload), WCC->upload_length); 
        serv_printf("UOPN %s|%s|%s", WCC->upload_filename, MimeType, bstr("description"));
        serv_getln(buf, sizeof buf);
        if (buf[0] != '2')
        {
                strcpy(WCC->ImportantMessage, &buf[4]);
-               do_template("files", NULL);
-               output_headers(0, 0, 0, 0, 0, 0);
-               end_burst();
+               RetMimeType = DoTemplate(HKEY("files"), NULL, &NoCtx);
+               http_transmit_thing(ChrPtr(RetMimeType), 0);
                return;
        }
 
@@ -331,7 +331,7 @@ void upload_file(void)
                if (buf[0] == '7')
                {
                        blocksize = atoi(&buf[4]);
-                       serv_write(&WCC->upload[bytes_transmitted], blocksize);
+                       serv_write(&ChrPtr(WCC->upload)[bytes_transmitted], blocksize);
                        bytes_transmitted += blocksize;
                }
        }
@@ -339,9 +339,8 @@ void upload_file(void)
        serv_puts("UCLS 1");
        serv_getln(buf, sizeof buf);
        strcpy(WCC->ImportantMessage, &buf[4]);
-       do_template("files", CTX_NONE);
-       output_headers(0, 0, 0, 0, 0, 0);
-       end_burst();
+       RetMimeType = DoTemplate(HKEY("files"), NULL, &NoCtx);
+       http_transmit_thing(ChrPtr(RetMimeType), 0);
 }