From e87f775f10af2ee1015dd5b65cfbdae40b97c229 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Wilfried=20G=C3=B6esgens?= Date: Sat, 26 Apr 2008 13:08:58 +0000 Subject: [PATCH] * fix memleak in calendar_view.c * init our handler hash --- webcit/auth.c | 8 ++++++++ webcit/availability.c | 8 ++++---- webcit/calendar_view.c | 1 + webcit/webcit.c | 16 +++++++++++++++- webcit/webcit.h | 1 + webcit/webserver.c | 1 + 6 files changed, 30 insertions(+), 5 deletions(-) diff --git a/webcit/auth.c b/webcit/auth.c index 1cd4a3b0a..dce8bfcc8 100644 --- a/webcit/auth.c +++ b/webcit/auth.c @@ -555,3 +555,11 @@ void changepw(void) display_changepw(); } } + + + +void InitModule_AUTH(void) +{ + WebcitAddUrlHandler(HKEY("do_welcome"), do_welcome, 0); + return 0; +} diff --git a/webcit/availability.c b/webcit/availability.c index f2b4cdbe7..99996590b 100644 --- a/webcit/availability.c +++ b/webcit/availability.c @@ -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); } } diff --git a/webcit/calendar_view.c b/webcit/calendar_view.c index 78325f835..6ecfa5cd6 100644 --- a/webcit/calendar_view.c +++ b/webcit/calendar_view.c @@ -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); diff --git a/webcit/webcit.c b/webcit/webcit.c index ed3bf025e..eca88bfe9 100644 --- a/webcit/webcit.c +++ b/webcit/webcit.c @@ -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(); diff --git a/webcit/webcit.h b/webcit/webcit.h index 73dba3f86..c2539bd76 100644 --- a/webcit/webcit.h +++ b/webcit/webcit.h @@ -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); diff --git a/webcit/webserver.c b/webcit/webserver.c index a805c9d77..cccd0b651 100644 --- a/webcit/webserver.c +++ b/webcit/webserver.c @@ -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", -- 2.39.2