/*
* $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.
* 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;
}
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;
}
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;
}