]> code.citadel.org Git - citadel.git/blobdiff - webcit/webserver.c
* move templates to static/t/ ; made make install target respect this
[citadel.git] / webcit / webserver.c
index 99cdfc2569344c7523fa0e3fa9423e9d83cff818..6a0c80abf7a0fadcccb3d2c61840aed4265bbf42 100644 (file)
@@ -242,7 +242,8 @@ int client_read_to(int sock, char *buf, int bytes, int timeout)
  */
 void begin_burst(void)
 {
-       WC->WBuf = NewStrBufPlain(NULL, 32768);
+       if (WC->WBuf == NULL)
+               WC->WBuf = NewStrBufPlain(NULL, 32768);
 }
 
 
@@ -581,8 +582,13 @@ void spawn_another_worker_thread()
        pthread_attr_destroy(&attr);
 }
 
+//#define DBG_PRINNT_HOOKS_AT_START
+#ifdef DBG_PRINNT_HOOKS_AT_START
 const char foobuf[32];
 const char *nix(void *vptr) {snprintf(foobuf, 32, "%0x", (long) vptr); return foobuf;}
+#endif 
+void InitTemplateCache(void);
+
 /*
  * \brief Here's where it all begins.
  * \param argc number of commandline args
@@ -611,8 +617,18 @@ int main(int argc, char **argv)
        char uds_listen_path[PATH_MAX]; /*< listen on a unix domain socket? */
 
        HandlerHash = NewHash(1, NULL);
+       PreferenceHooks = NewHash(1, NULL);
+       WirelessTemplateCache = NewHash(1, NULL);
+       WirelessLocalTemplateCache = NewHash(1, NULL);
+       TemplateCache = NewHash(1, NULL);
+       LocalTemplateCache = NewHash(1, NULL);
+       InitTemplateCache();
+
        initialise_modules();
+
+#ifdef DBG_PRINNT_HOOKS_AT_START
        dbg_PrintHash(HandlerHash, nix, NULL);
+#endif
 
        /* Ensure that we are linked to the correct version of libcitadel */
        if (libcitadel_version_number() < LIBCITADEL_VERSION_NUMBER) {
@@ -851,6 +867,8 @@ int main(int argc, char **argv)
        /* now the original thread becomes another worker */
        worker_entry();
        ShutDownLibCitadel ();
+       DeleteHash(&HandlerHash);
+       DeleteHash(&PreferenceHooks);
        return 0;
 }
 
@@ -926,6 +944,11 @@ void worker_entry(void)
                                icaltimezone_release_zone_tab ();
                                icalmemory_free_ring ();
                                ShutDownLibCitadel ();
+                               DeleteHash(&HandlerHash);
+                               DeleteHash(&PreferenceHooks);
+#ifdef ENABLE_NLS
+                               void ShutdownLocale(void);
+#endif
                                lprintf(2, "master shutdown exiting!.\n");                              
                                exit(0);
                        }