提交 d3d51308 编写于 作者: E Enrico Giordani

[Fix] Portability fix for strtol.

上级 8f3541d9
......@@ -648,7 +648,7 @@ static char *nextArgument(char *start, char **str, size_t *len) {
if (p == NULL) return NULL;
}
*len = (int)strtol(p+1,NULL,10);
*len = (int)PORT_STRTOL(p+1,NULL,10);
p = strchr(p,'\r');
assert(p);
*str = p+2;
......
......@@ -70,4 +70,10 @@ typedef int pid_t;
typedef unsigned __int32 u_int32_t;
#endif
#ifdef _WIN64
#define PORT_STRTOL strtoll
#else
#define PORT_STRTOL strtol
#endif
#endif
......@@ -674,7 +674,7 @@ int loadAppendOnlyFile(char *filename) {
goto readerr;
}
if (buf[0] != '$') goto fmterr;
len = strtol(buf+1,NULL,10);
len = PORT_STRTOL(buf+1,NULL,10);
argsds = sdsnewlen(NULL,len);
if (len && fread(argsds,len,1,fp) == 0) {
sdsfree(argsds);
......
......@@ -153,7 +153,7 @@ void loadServerConfigFromString(char *config) {
server.unixsocket = zstrdup(argv[1]);
} else if (!strcasecmp(argv[0],"unixsocketperm") && argc == 2) {
errno = 0;
server.unixsocketperm = (mode_t)strtol(argv[1], NULL, 8);
server.unixsocketperm = (mode_t)PORT_STRTOL(argv[1], NULL, 8);
if (errno || server.unixsocketperm > 0777) {
err = "Invalid socket file permissions"; goto loaderr;
}
......
......@@ -75,7 +75,7 @@ int readLong(FILE *fp, char prefix, PORT_LONG *target) {
ERROR("Expected prefix '%c', got: '%c'",buf[0],prefix);
return 0;
}
*target = strtol(buf+1,&eptr,10);
*target = PORT_STRTOL(buf+1,&eptr,10);
return consumeNewline(eptr);
}
......
......@@ -225,7 +225,7 @@ int processHeader(void) {
ERROR("Wrong signature in header\n");
}
dump_version = (int)strtol(buf + 5, NULL, 10);
dump_version = (int)PORT_STRTOL(buf + 5, NULL, 10);
if (dump_version < 1 || dump_version > 6) {
ERROR("Unknown RDB format version: %d\n", dump_version);
}
......
......@@ -1909,7 +1909,7 @@ static PORT_LONG getLongInfoField(char *info, char *field) {
PORT_LONG l;
if (!value) return PORT_LONG_MIN;
l = strtol(value,NULL,10);
l = PORT_STRTOL(value, NULL, 10);
free(value);
return l;
}
......
......@@ -2720,7 +2720,7 @@ sds genRedisInfoString(char *section) {
"config_file:%s\r\n",
REDIS_VERSION,
redisGitSHA1(),
strtol(redisGitDirty(),NULL,10) > 0,
PORT_STRTOL(redisGitDirty(),NULL,10) > 0,
(PORT_ULONGLONG) redisBuildId(),
mode,
#ifdef _WIN32
......@@ -3521,7 +3521,7 @@ void redisAsciiArt(void) {
"Redis %s (%s/%d) %s bit, %s mode, port %d, pid %ld ready to start.",
REDIS_VERSION,
redisGitSHA1(),
strtol(redisGitDirty(),NULL,10) > 0,
PORT_STRTOL(redisGitDirty(),NULL,10) > 0,
(sizeof(PORT_LONG) == 8) ? "64" : "32",
mode, server.port,
(PORT_LONG) getpid()
......@@ -3530,7 +3530,7 @@ void redisAsciiArt(void) {
snprintf(buf,1024*16,ascii_logo,
REDIS_VERSION,
redisGitSHA1(),
strtol(redisGitDirty(),NULL,10) > 0,
PORT_STRTOL(redisGitDirty(),NULL,10) > 0,
(sizeof(PORT_LONG) == 8) ? "64" : "32",
mode, server.port,
(PORT_LONG) getpid()
......
......@@ -1125,7 +1125,7 @@ void readSyncBulkPayload(aeEventLoop *el, int fd, void *privdata, int mask) {
"MASTER <-> SLAVE sync: receiving streamed RDB from master");
} else {
usemark = 0;
server.repl_transfer_size = IF_WIN32(strtoll,strtol)(buf+1,NULL,10); /* TODO: verify for 32-bit */
server.repl_transfer_size = PORT_STRTOL(buf+1,NULL,10);
redisLog(REDIS_NOTICE,
"MASTER <-> SLAVE sync: receiving %lld bytes from master",
(PORT_LONGLONG) server.repl_transfer_size);
......
......@@ -378,7 +378,7 @@ size_t zmalloc_get_smap_bytes_by_field(char *field) {
char *p = strchr(line,'k');
if (p) {
*p = '\0';
bytes += strtol(line+flen,NULL,10) * 1024;
bytes += PORT_STRTOL(line+flen,NULL,10) * 1024;
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册