Merge pull request #5489 from devnexen/unstable

Fix non Linux build.
This commit is contained in:
Salvatore Sanfilippo 2018-10-29 18:25:14 +01:00 committed by GitHub
commit f1408b1729
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 1 deletions

View File

@ -1526,7 +1526,7 @@ void initServerConfig(void) {
server.runid[CONFIG_RUN_ID_SIZE] = '\0'; server.runid[CONFIG_RUN_ID_SIZE] = '\0';
changeReplicationId(); changeReplicationId();
clearReplicationId2(); clearReplicationId2();
server.timezone = timezone; /* Initialized by tzset(). */ server.timezone = getTimeZone(); /* Initialized by tzset(). */
server.configfile = NULL; server.configfile = NULL;
server.executable = NULL; server.executable = NULL;
server.config_hz = CONFIG_DEFAULT_HZ; server.config_hz = CONFIG_DEFAULT_HZ;

View File

@ -39,6 +39,7 @@
#include <float.h> #include <float.h>
#include <stdint.h> #include <stdint.h>
#include <errno.h> #include <errno.h>
#include <time.h>
#include "util.h" #include "util.h"
#include "sha1.h" #include "sha1.h"
@ -652,6 +653,24 @@ sds getAbsolutePath(char *filename) {
return abspath; return abspath;
} }
/*
* Gets the proper timezone in a more portable fashion
* i.e timezone variables are linux specific.
*/
unsigned long getTimeZone(void) {
#ifdef __linux__
return timezone;
#else
struct timeval tv;
struct timezone tz;
gettimeofday(&tv, &tz);
return tz.tz_minuteswest * 60UL;
#endif
}
/* Return true if the specified path is just a file basename without any /* Return true if the specified path is just a file basename without any
* relative or absolute path. This function just checks that no / or \ * relative or absolute path. This function just checks that no / or \
* character exists inside the specified path, that's enough in the * character exists inside the specified path, that's enough in the

View File

@ -50,6 +50,7 @@ int string2ld(const char *s, size_t slen, long double *dp);
int d2string(char *buf, size_t len, double value); int d2string(char *buf, size_t len, double value);
int ld2string(char *buf, size_t len, long double value, int humanfriendly); int ld2string(char *buf, size_t len, long double value, int humanfriendly);
sds getAbsolutePath(char *filename); sds getAbsolutePath(char *filename);
unsigned long getTimeZone(void);
int pathIsBaseName(char *path); int pathIsBaseName(char *path);
#ifdef REDIS_TEST #ifdef REDIS_TEST