cal_zone means "calendar timezone" also "calzone"
authorArt Cancro <ajc@citadel.org>
Sun, 3 Mar 2024 00:02:46 +0000 (19:02 -0500)
committerArt Cancro <ajc@citadel.org>
Sun, 3 Mar 2024 00:02:46 +0000 (19:02 -0500)
ical_dezonify() is going to be needed in both WebCit Classic and
WebCit-NG , so this needs to be cleaned up and generalized.

webcit-ng/server/caldav_reports.c
webcit/ical_dezonify.c

index c47164fa7023e5abd379ada739da4f24eb72fe36..d2d323f43d95d25acd4ee17e5f1160342fe2f1bf 100644 (file)
@@ -267,10 +267,19 @@ int caldav_time_range_filter_matches(icalcomponent *cal, char *start_str, char *
 
        syslog(LOG_DEBUG, "\033[7mcaldav_time_range_filter_matches()\033[0m : Does this %s fall between %s and %s ?",
                icalcomponent_kind_to_string(icalcomponent_isa(cal)),
-               start,
-               end
+               start_str,
+               end_str
        );
 
+       syslog(LOG_DEBUG, "Well, here it is:");
+       syslog(LOG_DEBUG, "\033[35m%s\033[0m", icalcomponent_as_ical_string_r(cal));
+
+       icaltimetype dts = icalcomponent_get_dtstart(cal);
+       syslog(LOG_DEBUG, "component start: \033[36m%s\033[0m", icaltime_as_ical_string_r(dts));
+
+       icaltimetype dte = icalcomponent_get_dtend(cal);
+       syslog(LOG_DEBUG, "component   end: \033[36m%s\033[0m", icaltime_as_ical_string_r(dte));
+
        return(0);              // reject everything for now
 }
 
index f20be42795efb2b46b19cb90b9098f72ddd85b29..ecd04d886f2d78958fd073e579d4336206318ac1 100644 (file)
@@ -1,6 +1,5 @@
-// Function to go through an ical component set and convert all non-UTC
-// date/time properties to UTC.  It also strips out any VTIMEZONE
-// subcomponents afterwards, because they're irrelevant.
+// Go through an ical component set and convert all non-UTC date/time properties to UTC.
+// It also strips out any VTIMEZONE subcomponents afterwards, because they are now unreferenced.
 //
 // Everything here will work on both components and subcomponents.  If subcomponents are discovered it will recurse through them.
 //
 #include "webcit.h"
 #include "webserver.h"
 
-// Figure out which time zone needs to be used for timestamps that are
-// not UTC and do not have a time zone specified.
+// Figure out which time zone needs to be used for timestamps that are not UTC and do not have a time zone specified.
 icaltimezone *get_default_icaltimezone(void) {
 
         icaltimezone *zone = NULL;
-       const char *default_zone_name = ChrPtr(WC->serv_info->serv_default_cal_zone);
+       const char *default_zone_name = ChrPtr(WC->serv_info->serv_default_cal_zone);           // mmmmmm ... calzone
 
         if (!zone) {
                 zone = icaltimezone_get_builtin_timezone(default_zone_name);
         }
         if (!zone) {
-               syslog(LOG_WARNING, "Unable to load '%s' time zone.  Defaulting to UTC.\n", default_zone_name);
+               syslog(LOG_WARNING, "ical_dezonify: unable to load '%s' time zone, defaulting to UTC", default_zone_name);
                 zone = icaltimezone_get_utc_timezone();
        }
        if (!zone) {
-               syslog(LOG_ERR, "Unable to load UTC time zone!\n");
+               syslog(LOG_ERR, "ical_dezonify: unable to load UTC time zone!");
        }
         return zone;
 }
@@ -33,9 +31,8 @@ icaltimezone *get_default_icaltimezone(void) {
 
 // Back end function for ical_dezonify()
 //
-// We supply this with the master component, the relevant component,
-// and the property (which will be a DTSTART, DTEND, etc.)
-// which we want to convert to UTC.
+// We supply this with the master component, the relevant component, and the property
+// (which will be a DTSTART, DTEND, etc.) which we want to convert to UTC.
 void ical_dezonify_backend(icalcomponent *cal, icalcomponent *rcal, icalproperty *prop) {
 
        icaltimezone *t = NULL;
@@ -57,19 +54,19 @@ void ical_dezonify_backend(icalcomponent *cal, icalcomponent *rcal, icalproperty
                // Convert it to an icaltimezone type.
                if (tzid != NULL) {
 #ifdef DBG_ICAL
-                       syslog(LOG_DEBUG, "                * Stringy supplied timezone is: '%s'\n", tzid);
+                       syslog(LOG_DEBUG, "ical_dezonify: Stringy supplied timezone is: '%s'\n", tzid);
 #endif
                        if ( (!strcasecmp(tzid, "UTC")) || (!strcasecmp(tzid, "GMT")) ) {
                                utc_declared_as_tzid = 1;
 #ifdef DBG_ICAL
-                               syslog(LOG_DEBUG, "                * ...and we handle that internally.\n");
+                               syslog(LOG_DEBUG, "ical_dezonify: ...and we handle that internally.\n");
 #endif
                        }
                        else {
                                // try attached first
                                t = icalcomponent_get_timezone(cal, tzid);
 #ifdef DBG_ICAL
-                               syslog(LOG_DEBUG, "                * ...and I %s have tzdata for that zone.\n",
+                               syslog(LOG_DEBUG, "ical_dezonify: ...and I %s have tzdata for that zone.\n",
                                        (t ? "DO" : "DO NOT")
                                );
 #endif
@@ -78,7 +75,7 @@ void ical_dezonify_backend(icalcomponent *cal, icalcomponent *rcal, icalproperty
                                        t = icaltimezone_get_builtin_timezone(tzid);
 #ifdef DBG_ICAL
                                        if (t) {
-                                               syslog(LOG_DEBUG, "                * Using system tzdata!\n");
+                                               syslog(LOG_DEBUG, "ical_dezonify: Using system tzdata!\n");
                                        }
 #endif
                                }
@@ -106,18 +103,18 @@ void ical_dezonify_backend(icalcomponent *cal, icalcomponent *rcal, icalproperty
        }
 
 #ifdef DBG_ICAL
-       syslog(LOG_DEBUG, "                * Was: %s\n", icaltime_as_ical_string(TheTime));
+       syslog(LOG_DEBUG, "ical_dezonify: was: %s\n", icaltime_as_ical_string(TheTime));
 #endif
 
        if (icaltime_is_utc(TheTime)) {
 #ifdef DBG_ICAL
-               syslog(LOG_DEBUG, "                * This property is ALREADY UTC.\n");
+               syslog(LOG_DEBUG, "ical_dezonify: this property is ALREADY UTC");
 #endif
        }
 
        else if (utc_declared_as_tzid) {
 #ifdef DBG_ICAL
-               syslog(LOG_DEBUG, "                * Replacing '%s' TZID with 'Z' suffix.\n", tzid);
+               syslog(LOG_DEBUG, "ical_dezonify: replacing '%s' TZID with 'Z' suffix", tzid);
 #endif
                TheTime.zone = icaltimezone_get_utc_timezone();
        }
@@ -126,12 +123,12 @@ void ical_dezonify_backend(icalcomponent *cal, icalcomponent *rcal, icalproperty
                // Do the conversion.
                if (t != NULL) {
 #ifdef DBG_ICAL
-                       syslog(LOG_DEBUG, "                * Timezone prop found.  Converting to UTC.\n");
+                       syslog(LOG_DEBUG, "ical_dezonify: timezone prop found, converting to UTC");
 #endif
                }
                else {
 #ifdef DBG_ICAL
-                       syslog(LOG_DEBUG, "                * Converting default timezone to UTC.\n");
+                       syslog(LOG_DEBUG, "ical_dezonify: converting default timezone to UTC");
 #endif
                }
 
@@ -144,7 +141,7 @@ void ical_dezonify_backend(icalcomponent *cal, icalcomponent *rcal, icalproperty
 
        icalproperty_remove_parameter_by_kind(prop, ICAL_TZID_PARAMETER);
 #ifdef DBG_ICAL
-       syslog(LOG_DEBUG, "                * Now: %s\n", icaltime_as_ical_string(TheTime));
+       syslog(LOG_DEBUG, "ical_dezonify: now: %s", icaltime_as_ical_string(TheTime));
 #endif
 
        // Now add the converted property back in.
@@ -202,7 +199,7 @@ void ical_dezonify(icalcomponent *cal) {
        icalcomponent *vt = NULL;
 
 #ifdef DBG_ICAL
-       syslog(LOG_DEBUG, "ical_dezonify() started\n");
+       syslog(LOG_DEBUG, "ical_dezonify() started");
 #endif
 
        // Convert all times to UTC
@@ -215,6 +212,6 @@ void ical_dezonify(icalcomponent *cal) {
        }
 
 #ifdef DBG_ICAL
-       syslog(LOG_DEBUG, "ical_dezonify() completed\n");
+       syslog(LOG_DEBUG, "ical_dezonify() completed");
 #endif
 }