]> code.citadel.org Git - citadel.git/blob - citadel/server/default_timezone.c
383a3364d37d2da785efb955e896ce4da8a6ded3
[citadel.git] / citadel / server / default_timezone.c
1 //
2 // Copyright (c) 1987-2022 by the citadel.org team
3 //
4 // This program is open source software.  Use, duplication, or disclosure
5 // is subject to the terms of the GNU General Public License, version 3.
6 // The program is distributed without any warranty, expressed or implied.
7
8 #include "sysdep.h"
9 #include <stdlib.h>
10 #include <unistd.h>
11 #include <sys/types.h>
12 #include <limits.h>
13 #include <stdio.h>
14 #include <string.h>
15 #include <strings.h>
16 #include <syslog.h>
17 #include <libical/ical.h>
18 #include <libcitadel.h>
19 #include "citadel.h"
20 #include "server.h"
21 #include "citserver.h"
22 #include "sysdep_decls.h"
23 #include "support.h"
24 #include "config.h"
25 #include "default_timezone.h"
26 #include "ctdl_module.h"
27
28
29 // Figure out which time zone needs to be used for timestamps that are
30 // not UTC and do not have a time zone specified.
31 icaltimezone *get_default_icaltimezone(void) {
32
33         icaltimezone *zone = NULL;
34         char *default_zone_name = CtdlGetConfigStr("c_default_cal_zone");
35
36         if (!zone) {
37                 zone = icaltimezone_get_builtin_timezone(default_zone_name);
38         }
39         if (!zone) {
40                 syslog(LOG_ERR, "ical: Unable to load '%s' time zone.  Defaulting to UTC.", default_zone_name);
41                 zone = icaltimezone_get_utc_timezone();
42         }
43         if (!zone) {
44                 syslog(LOG_ERR, "ical: unable to load UTC time zone!");
45         }
46
47         return zone;
48 }