removed a bunch of blank comment lines
[citadel.git] / webcit / downloads.c
index 8d4eb33b6e1d6a4c63ae7e63f12f3a8581414694..60783c5685cad880b94c1f877dc821c473891218 100644 (file)
@@ -1,25 +1,20 @@
 /*
- * $Id$
+ * Copyright (c) 1996-2012 by the citadel.org team
  *
- * Copyright (c) 1996-2010 by the citadel.org team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
+ * This program is open source software.  You can redistribute it and/or
+ * modify it under the terms of the GNU General Public License, version 3.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
+
 #include "webcit.h"
 #include "webserver.h"
 
+extern void output_static(const char* What);
+
 extern char* static_dirs[];
 
 typedef struct _FileListStruct {
@@ -188,7 +183,7 @@ HashList* LoadFileList(StrBuf *Target, WCTemplputParams *TP)
        int sequence = 0;
        char buf[1024];
        CompareFunc SortIt;
-       int HavePic;
+       int HavePic = 0;
        WCTemplputParams SubTP;
 
        memset(&SubTP, 0, sizeof(WCTemplputParams));
@@ -226,6 +221,8 @@ HashList* LoadFileList(StrBuf *Target, WCTemplputParams *TP)
                }
                Put(Files, SKEY(Entry->Filename), Entry, FreeFiles);
        }
+       if (HavePic)
+               putbstr("__HAVE_PIC", NewStrBufPlain(HKEY("1")));
        SubTP.Filter.ContextType = CTX_FILELIST;
        SortIt = RetrieveSort(&SubTP, NULL, 0, HKEY("fileunsorted"), 0);
        if (SortIt != NULL)
@@ -233,7 +230,6 @@ HashList* LoadFileList(StrBuf *Target, WCTemplputParams *TP)
        else 
                SortByPayload(Files, CompareFilelistBySequence);
        FreeStrBuf(&Buf);
-       svputlong("FILE:HAVEPICS", HavePic);
        return Files;
 }
 
@@ -248,7 +244,7 @@ void display_mime_icon(void)
        FileName = GetIconFilename(MimeType, tlen);
 
        if (FileName == NULL)
-               snprintf (FileBuf, SIZ, "%s%s", static_dirs[0], "/diskette_24x.gif");
+               snprintf (FileBuf, SIZ, "%s%s", static_dirs[0], "/webcit_icons/essen/16x16/file.png");
        else
                snprintf (FileBuf, SIZ, "%s%s", static_dirs[3], FileName);
        output_static(FileBuf);
@@ -297,20 +293,19 @@ void download_file(void)
 void delete_file(void)
 {
        const StrBuf *MimeType;
-       StrBuf *Buf;
+       StrBuf *Line;
        char buf[256];
        
        safestrncpy(buf, bstr("file"), sizeof buf);
        unescape_input(buf);
        serv_printf("DELF %s", buf);
-       Buf = NewStrBuf();
-       StrBuf_ServGetln(Buf);
-       GetServerStatus(Buf, NULL);
-       StrBufCutLeft(Buf, 4);
-       strcpy(WC->ImportantMessage, ChrPtr(Buf));
+
+       StrBuf_ServGetln(Line);
+       GetServerStatusMsg(Line, NULL, 1, 0);
+
        MimeType = DoTemplate(HKEY("files"), NULL, &NoCtx);
        http_transmit_thing(ChrPtr(MimeType), 0);
-       FreeStrBuf(&Buf);
+       FreeStrBuf(&Line);
 }
 
 
@@ -319,7 +314,7 @@ void upload_file(void)
 {
        const StrBuf *RetMimeType;
        const char *MimeType;
-       char buf[1024];
+       StrBuf *Line;
        long bytes_transmitted = 0;
        long blocksize;
        const StrBuf *Desc;
@@ -333,13 +328,12 @@ void upload_file(void)
                    ChrPtr(WCC->upload_filename), 
                    MimeType, 
                    ChrPtr(Desc));
-
-       serv_getln(buf, sizeof buf);
-       if (buf[0] != '2')
-       {
-               strcpy(WCC->ImportantMessage, &buf[4]);
+       Line = NewStrBuf();
+       StrBuf_ServGetln(Line);
+       if (GetServerStatusMsg(Line, NULL, 1, 2) != 2) {
                RetMimeType = DoTemplate(HKEY("files"), NULL, &NoCtx);
                http_transmit_thing(ChrPtr(RetMimeType), 0);
+               FreeStrBuf(&Line);
                return;
        }
 
@@ -351,20 +345,22 @@ void upload_file(void)
                        blocksize = (WCC->upload_length - bytes_transmitted);
                }
                serv_printf("WRIT %ld", blocksize);
-               serv_getln(buf, sizeof buf);
-               if (buf[0] == '7')
-               {
-                       blocksize = atoi(&buf[4]);
+               StrBuf_ServGetln(Line);
+               if (GetServerStatusMsg(Line, NULL, 0, 0) == 7) {
+                       blocksize = atoi(ChrPtr(Line) + 4);
                        serv_write(&ChrPtr(WCC->upload)[bytes_transmitted], blocksize);
                        bytes_transmitted += blocksize;
                }
+               else
+                       break;
        }
 
        serv_puts("UCLS 1");
-       serv_getln(buf, sizeof buf);
-       strcpy(WCC->ImportantMessage, &buf[4]);
+       StrBuf_ServGetln(Line);
+       GetServerStatusMsg(Line, NULL, 1, 0);
        RetMimeType = DoTemplate(HKEY("files"), NULL, &NoCtx);
        http_transmit_thing(ChrPtr(RetMimeType), 0);
+       FreeStrBuf(&Line);
 }
 
 
@@ -405,14 +401,17 @@ void output_image(void)
                        }
                }
                /* hm... unknown mimetype? fallback to blank gif */
-       } 
+       }
+       else { 
+               syslog(LOG_DEBUG, "OIMG failed: %s", ChrPtr(Buf));
+       }
 
        
        /*
         * Instead of an ugly 404, send a 1x1 transparent GIF
         * when there's no such image on the server.
         */
-       StrBufPrintf (Buf, "%s%s", static_dirs[0], "/blank.gif");
+       StrBufPrintf (Buf, "%s%s", static_dirs[0], "/webcit_icons/blank.gif");
        output_static(ChrPtr(Buf));
        FreeStrBuf(&Buf);
 }