]> code.citadel.org Git - citadel.git/blobdiff - webcit/webserver.c
* migrate message creation to templates (citing still missing)
[citadel.git] / webcit / webserver.c
index 12497ce960003f0bc0984a380844bbf8b83198e7..05ba0517641b120952b981d89f85d51d1e130d1e 100644 (file)
@@ -27,6 +27,7 @@ int is_https = 0;             /* Nonzero if I am an HTTPS service */
 int follow_xff = 0;            /* Follow X-Forwarded-For: header */
 int home_specified = 0;                /* did the user specify a homedir? */
 int time_to_die = 0;            /* Nonzero if server is shutting down */
+int DisableGzip = 0;
 extern void *context_loop(int*);
 extern void *housekeeping_loop(void);
 extern pthread_mutex_t SessionListMutex;
@@ -271,7 +272,7 @@ long end_burst(void)
 
 #ifdef HAVE_ZLIB
        /* Perform gzip compression, if enabled and supported by client */
-       if ((WCC->gzip_ok) && CompressBuffer(WCC->WBuf))
+       if (!DisableGzip && (WCC->gzip_ok) && CompressBuffer(WCC->WBuf))
        {
                hprintf("Content-encoding: gzip\r\n");
        }
@@ -658,7 +659,7 @@ const char *nix(void *vptr) {snprintf(foobuf, 32, "%0x", (long) vptr); return fo
 void InitTemplateCache(void);
 extern int LoadTemplates;
 extern void LoadZoneFiles(void);
-
+StrBuf *csslocal = NULL;
 /*
  * Here's where it all begins.
  */
@@ -693,8 +694,10 @@ int main(int argc, char **argv)
        GlobalNS = NewHash(1, NULL);
        Iterators = NewHash(1, NULL);
        Contitionals = NewHash(1, NULL);
-       LoadZoneFiles();
+       MsgHeaderHandler = NewHash(1, NULL);
+       MimeRenderHandler = NewHash(1, NULL);
 
+       LoadZoneFiles();
 
 #ifdef DBG_PRINNT_HOOKS_AT_START
        dbg_PrintHash(HandlerHash, nix, NULL);
@@ -713,9 +716,9 @@ int main(int argc, char **argv)
 
        /* Parse command line */
 #ifdef HAVE_OPENSSL
-       while ((a = getopt(argc, argv, "h:i:p:t:T:x:dD:cfs")) != EOF)
+       while ((a = getopt(argc, argv, "h:i:p:t:T:x:dD:cfsZ")) != EOF)
 #else
-       while ((a = getopt(argc, argv, "h:i:p:t:T:x:dD:cf")) != EOF)
+       while ((a = getopt(argc, argv, "h:i:p:t:T:x:dD:cfZ")) != EOF)
 #endif
                switch (a) {
                case 'h':
@@ -755,6 +758,9 @@ int main(int argc, char **argv)
                case 'T':
                        LoadTemplates = atoi(optarg);
                        break;
+               case 'Z':
+                       DisableGzip = 1;
+                       break;
                case 'x':
                        verbosity = atoi(optarg);
                        break;
@@ -876,6 +882,10 @@ int main(int argc, char **argv)
        initialize_viewdefs();
        initialize_axdefs();
 
+       if (!access("static.local/webcit.css", R_OK)) {
+               csslocal = NewStrBufPlain(HKEY("<link href=\"static.local/webcit.css\" rel=\"stylesheet\" type=\"text/css\">"));
+       }
+
        /* Tell libical to return an error instead of aborting if it sees badly formed iCalendar data. */
        icalerror_errors_are_fatal = 0;
 
@@ -968,7 +978,9 @@ void ShutDownWebcit(void)
        DeleteHash(&TemplateCache);
        DeleteHash(&LocalTemplateCache);
        DeleteHash(&Iterators);
+       DeleteHash(&MimeRenderHandler);
        DeleteHash(&Contitionals);
+       DeleteHash(&MsgHeaderHandler);
 #ifdef ENABLE_NLS
        ShutdownLocale();
 #endif