Browse Source

[Fix] Add workaround for system with non-XSI compatible tzset

pull/2026/head
Vsevolod Stakhov 8 years ago
parent
commit
6ecb7d259d
  1. 9
      CMakeLists.txt
  2. 1
      config.h.in
  3. 9
      src/libutil/util.c

9
CMakeLists.txt

@ -920,6 +920,15 @@ CHECK_C_SOURCE_COMPILES(
int main(int argc, char** argv) {
return cmkcheckweak == NULL;
}" HAVE_WEAK_SYMBOLS)
CHECK_C_SOURCE_COMPILES(
"#include <time.h>
extern char *tzname[2];
extern long timezone;
extern int daylight;
int main(int argc, char** argv) {
tzset();
return timezone;
}" HAVE_SANE_TZSET)
IF(WITH_ICONV)
CHECK_C_SOURCE_COMPILES("

1
config.h.in

@ -75,6 +75,7 @@
#cmakedefine HAVE_READPASSPHRASE_H 1
#cmakedefine HAVE_SA_SIGINFO 1
#cmakedefine HAVE_SANE_SHMEM 1
#cmakedefine HAVE_SANE_TZSET 1
#cmakedefine HAVE_SCHED_YEILD 1
#cmakedefine HAVE_SC_NPROCESSORS_ONLN 1
#cmakedefine HAVE_SEARCH_H 1

9
src/libutil/util.c

@ -2762,6 +2762,7 @@ rspamd_gmtime (gint64 ts, struct tm *dest)
dest->tm_zone = "GMT";
}
#ifdef HAVE_SANE_TZSET
extern char *tzname[2];
extern long timezone;
extern int daylight;
@ -2784,6 +2785,14 @@ void rspamd_localtime (gint64 ts, struct tm *dest)
#endif
}
#else
void rspamd_localtime (gint64 ts, struct tm *dest)
{
time_t t = ts;
localtime_r (&t, dest);
}
#endif
gboolean
rspamd_fstring_gzip (rspamd_fstring_t **in)
{

Loading…
Cancel
Save