]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/calendar/serv_calendar.c
SMTPSrv: don't use memset() to forget - we have structured data in there now.
[citadel.git] / citadel / modules / calendar / serv_calendar.c
index 84fb9683caf202961be26064d6b959d5f5ec632b..d9236bd33c74111f7a6b7c258e8f5dfbec8d7bfd 100644 (file)
@@ -986,6 +986,9 @@ void ical_conflicts_phase5(struct icaltimetype t1start,
                }
                dur = icaltime_subtract(t2end, t2start);
        }
+       else {
+               memset (&dur, 0, sizeof(struct icaldurationtype));
+       }
 
        rrule = ical_ctdl_get_subprop(existing_event, ICAL_RRULE_PROPERTY);
        if (rrule) {
@@ -1043,8 +1046,6 @@ void ical_conflicts_phase4(icalcomponent *proposed_event,
                long existing_msgnum)
 {
        struct icaltimetype t1start, t1end;
-       t1start = icaltime_null_time();
-       t1end = icaltime_null_time();
        icalproperty *p;
        char compare_uid[SIZ];
 
@@ -1056,13 +1057,17 @@ void ical_conflicts_phase4(icalcomponent *proposed_event,
        int num_recur = 0;
 
        /* initialization */
-       strcpy(compare_uid, "");
+       t1end = icaltime_null_time();
+       *compare_uid = '\0';
 
        /* proposed event stuff */
 
        p = ical_ctdl_get_subprop(proposed_event, ICAL_DTSTART_PROPERTY);
-       if (p == NULL) return;
-       if (p != NULL) t1start = icalproperty_get_dtstart(p);
+       if (p == NULL)
+               return;
+       else
+               t1start = icalproperty_get_dtstart(p);
+
        if (icaltime_is_utc(t1start)) {
                t1start.zone = icaltimezone_get_utc_timezone();
        }
@@ -1097,6 +1102,9 @@ void ical_conflicts_phase4(icalcomponent *proposed_event,
 
                dur = icaltime_subtract(t1end, t1start);
        }
+       else {
+               memset (&dur, 0, sizeof(struct icaldurationtype));
+       }
 
        rrule = ical_ctdl_get_subprop(proposed_event, ICAL_RRULE_PROPERTY);
        if (rrule) {
@@ -1244,8 +1252,8 @@ void ical_add_to_freebusy(icalcomponent *fb, icalcomponent *top_level_cal) {
        icalproperty *p;
        icalvalue *v;
        struct icalperiodtype this_event_period = icalperiodtype_null_period();
-       icaltimetype dtstart = icaltime_null_time();
-       icaltimetype dtend = icaltime_null_time();
+       icaltimetype dtstart;
+       icaltimetype dtend;
 
        /* recur variables */
        icalproperty *rrule = NULL;
@@ -1298,6 +1306,9 @@ void ical_add_to_freebusy(icalcomponent *fb, icalcomponent *top_level_cal) {
        if (!icaltime_is_null_time(dtend)) {
                dur = icaltime_subtract(dtend, dtstart);
        }
+       else {
+               memset (&dur, 0, sizeof(struct icaldurationtype));
+       }
 
        /* Is a recurrence specified?  If so, get ready to process it... */
        rrule = ical_ctdl_get_subprop(cal, ICAL_RRULE_PROPERTY);
@@ -2589,10 +2600,10 @@ CTDL_MODULE_INIT(calendar)
                /* Initialize our hook functions */
                CtdlRegisterMessageHook(ical_obj_beforesave, EVT_BEFORESAVE);
                CtdlRegisterMessageHook(ical_obj_aftersave, EVT_AFTERSAVE);
-               CtdlRegisterSessionHook(ical_CtdlCreateRoom, EVT_LOGIN);
+               CtdlRegisterSessionHook(ical_CtdlCreateRoom, EVT_LOGIN, PRIO_LOGIN + 1);
                CtdlRegisterProtoHook(cmd_ical, "ICAL", "Citadel iCal commands");
-               CtdlRegisterSessionHook(ical_session_startup, EVT_START);
-               CtdlRegisterSessionHook(ical_session_shutdown, EVT_STOP);
+               CtdlRegisterSessionHook(ical_session_startup, EVT_START, PRIO_START + 1);
+               CtdlRegisterSessionHook(ical_session_shutdown, EVT_STOP, PRIO_STOP + 80);
                CtdlRegisterFixedOutputHook("text/calendar", ical_fixed_output);
                CtdlRegisterFixedOutputHook("application/ics", ical_fixed_output);
                CtdlRegisterCleanupHook(serv_calendar_destroy);