calendar-server: Specify the timezone for the view query

Otherwise UTC is used which results in a different interpretation of
floating time events. This then could lead to a mismatch with events
generated e_cal_client_generate_instances_sync() which always uses the
default timezone. Such a mismatch would then cause constant invalidation
and reloading.

https://bugzilla.gnome.org/show_bug.cgi?id=781950
This commit is contained in:
Sebastian Keller 2017-06-06 22:32:55 +02:00 committed by Sebastian Keller
parent d8e7fc403b
commit a0140fb2c7

View File

@ -573,6 +573,7 @@ app_load_events (App *app)
gchar *since_iso8601; gchar *since_iso8601;
gchar *until_iso8601; gchar *until_iso8601;
gchar *query; gchar *query;
const char *tz_location;
/* out with the old */ /* out with the old */
g_hash_table_remove_all (app->appointments); g_hash_table_remove_all (app->appointments);
@ -594,15 +595,17 @@ app_load_events (App *app)
since_iso8601 = isodate_from_time_t (app->since); since_iso8601 = isodate_from_time_t (app->since);
until_iso8601 = isodate_from_time_t (app->until); until_iso8601 = isodate_from_time_t (app->until);
tz_location = icaltimezone_get_location (app->zone);
print_debug ("Loading events since %s until %s", print_debug ("Loading events since %s until %s",
since_iso8601, since_iso8601,
until_iso8601); until_iso8601);
query = g_strdup_printf ("occur-in-time-range? (make-time \"%s\") " query = g_strdup_printf ("occur-in-time-range? (make-time \"%s\") "
"(make-time \"%s\")", "(make-time \"%s\") \"%s\"",
since_iso8601, since_iso8601,
until_iso8601); until_iso8601,
tz_location);
clients = calendar_sources_get_appointment_clients (app->sources); clients = calendar_sources_get_appointment_clients (app->sources);
for (l = clients; l != NULL; l = l->next) for (l = clients; l != NULL; l = l->next)