* fix memleak in calendar_view.c
authorWilfried Göesgens <willi@citadel.org>
Sat, 26 Apr 2008 13:08:58 +0000 (13:08 +0000)
committerWilfried Göesgens <willi@citadel.org>
Sat, 26 Apr 2008 13:08:58 +0000 (13:08 +0000)
* init our handler hash

webcit/auth.c
webcit/availability.c
webcit/calendar_view.c
webcit/webcit.c
webcit/webcit.h
webcit/webserver.c

index 1cd4a3b0a16a5d1a3b7c8f25828eb4e2f11c41f4..dce8bfcc843cecfef41ee56747609485b268ff13 100644 (file)
@@ -555,3 +555,11 @@ void changepw(void)
                display_changepw();
        }
 }
+
+
+
+void InitModule_AUTH(void)
+{
+       WebcitAddUrlHandler(HKEY("do_welcome"), do_welcome, 0);
+       return 0;
+}
index f2b4cdbe766a65875f52931c9fa9f6df1596865d..99996590b91c33122d24ba2ea9a4626f2f7ede08 100644 (file)
@@ -55,22 +55,22 @@ int ical_ctdl_is_overlap(
 
        /* First, check for all-day events */
        if (t1start.is_date) {
-               if (!icaltime_compare_date_only(t1start, t2start)) {
+               if (!icaltime_compare_date_only(t1start, t2start, icaltimezone_get_utc_timezone())) {
                        return(1);
                }
                if (!icaltime_is_null_time(t2end)) {
-                       if (!icaltime_compare_date_only(t1start, t2end)) {
+                       if (!icaltime_compare_date_only(t1start, t2end, icaltimezone_get_utc_timezone())) {
                                return(1);
                        }
                }
        }
 
        if (t2start.is_date) {
-               if (!icaltime_compare_date_only(t2start, t1start)) {
+               if (!icaltime_compare_date_only(t2start, t1start, icaltimezone_get_utc_timezone())) {
                        return(1);
                }
                if (!icaltime_is_null_time(t1end)) {
-                       if (!icaltime_compare_date_only(t2start, t1end)) {
+                       if (!icaltime_compare_date_only(t2start, t1end, icaltimezone_get_utc_timezone())) {
                                return(1);
                        }
                }
index 78325f835832789f462a724429edc39da2917f08..6ecfa5cd65696b2323131099f45280e05e97350b 100644 (file)
@@ -1320,6 +1320,7 @@ void free_calendar_buffer(void) {
        int i;
        if (WC->num_cal) for (i=0; i<(WC->num_cal); ++i) {
                icalcomponent_free(WC->disp_cal[i].cal);
+               free(WC->disp_cal[i].from);
        }
        WC->num_cal = 0;
        free(WC->disp_cal);
index ed3bf025e0c0979e8f422c521a77563fceffab0a..eca88bfe9cec46bb7854a5f5d849ce8f9d46ba8a 100644 (file)
@@ -20,7 +20,7 @@
  */
 static char *unset = "; expires=28-May-1971 18:10:00 GMT";
 
-static HashList *HandlerHash = NULL;
+HashList *HandlerHash = NULL;
 
 
 void WebcitAddUrlHandler(const char * UrlString, long UrlSLen, WebcitHandlerFunc F, int IsAjax)
@@ -1705,6 +1705,20 @@ void session_loop(struct httprequest *req)
         * Various commands...
         */
 
+       else {
+               void *vHandler;
+               WebcitHandler *Handler;
+
+               GetHash(HandlerHash, action, strlen(action) /* TODO*/, &vHandler),
+                       Handler = (WebcitHandler*) vHandler;
+               if (Handler != NULL) {
+                       if (Handler->IsAjax)
+                               begin_ajax_response();
+                       Handler->F();
+                       if (Handler->IsAjax)
+                               end_ajax_response();
+               }
+               
 
        else if (!strcasecmp(action, "do_welcome")) {
                do_welcome();
index 73dba3f86001b56c3a91854fafe81d9f6220e537..c2539bd76a05650a69d68ea422fbbc2b62cf4c7d 100644 (file)
@@ -459,6 +459,7 @@ extern int setup_wizard;
 extern char wizard_filename[];
 extern time_t if_modified_since;
 extern int follow_xff;
+extern HashList *HandlerHash;
 void do_setup_wizard(void);
 
 
index a805c9d77c397a604f188b16f831e7fb364604fc..cccd0b6515616357c6a0cf46fdeb6584639c194e 100644 (file)
@@ -690,6 +690,7 @@ int main(int argc, char **argv)
 #endif /* ENABLE_NLS */
        char uds_listen_path[PATH_MAX]; /*< listen on a unix domain socket? */
 
+       HandlerHash = NewHash (1, NULL);
        /* Ensure that we are linked to the correct version of libcitadel */
        if (libcitadel_version_number() < LIBCITADEL_VERSION_NUMBER) {
                fprintf(stderr, " You are running libcitadel version %d.%02d\n",