]> code.citadel.org Git - citadel.git/blobdiff - webcit/ical_dezonify.c
More verbose logging for get_default_icaltimezone() when it
[citadel.git] / webcit / ical_dezonify.c
index eae5c97422723e9d10f896cdb61265fbe09a2196..7d1ed5b0d51a2542988df2e4f7ab21185437cef6 100644 (file)
@@ -1,8 +1,6 @@
 /* 
  * $Id$ 
- */
-/**
- * \defgroup IcalDezonify normalize ical dates to UTC
+ * 
  * 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.
@@ -10,9 +8,7 @@
  * Everything here will work on both a fully encapsulated VCALENDAR component
  * or any type of subcomponent.
  *
- * \ingroup Calendaring
  */
-/*@{*/
 
 #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.
  *
- * FIXME - most sites are not in New York :)
  */
 icaltimezone *get_default_icaltimezone(void) {
 
         icaltimezone *zone = NULL;
+       char *default_zone_name = serv_info.serv_default_cal_zone;
 
         if (!zone) {
-                zone = icaltimezone_get_builtin_timezone(serv_info.serv_default_cal_zone);
+                zone = icaltimezone_get_builtin_timezone(default_zone_name);
         }
         if (!zone) {
+               lprintf(1, "Unable to load '%s' time zone.  Defaulting to UTC.\n", default_zone_name);
                 zone = icaltimezone_get_utc_timezone();
        }
+       if (!zone) {
+               lprintf(1, "Unable to load UTC time zone!\n");
+       }
         return zone;
 }
 
@@ -56,7 +56,7 @@ void ical_dezonify_backend(icalcomponent *cal,
        icalparameter *param;
        const char *tzid = NULL;
        struct icaltimetype TheTime;
-       int utc_declared_as_tzid = 0;   /**< Component declared 'TZID=GMT' instead of using Z syntax */
+       int utc_declared_as_tzid = 0;   /* Component declared 'TZID=GMT' instead of using Z syntax */
 
        /* Give me nothing and I will give you nothing in return. */
        if (cal == NULL) return;
@@ -124,13 +124,18 @@ void ical_dezonify_backend(icalcomponent *cal,
                }
 
                if (t == NULL) {
-                       t = get_default_icaltimezone();
+                       icaltimezone_convert_time(&TheTime,
+                                               get_default_icaltimezone(),
+                                               icaltimezone_get_utc_timezone()
+                       );
+               }
+               else {
+                       icaltimezone_convert_time(&TheTime,
+                                               t,
+                                               icaltimezone_get_utc_timezone()
+                       );
+                       icaltimezone_free (t, 1);
                }
-
-               icaltimezone_convert_time(&TheTime,
-                                       t,
-                                       icaltimezone_get_utc_timezone()
-               );
                TheTime.is_utc = 1;
        }