提交 bae60ede 编写于 作者: S Salvatore Sanfilippo

Merge pull request #1111 from yamt/netbsd3

netbsd support
......@@ -58,7 +58,7 @@ static int getBitOffsetFromArgument(redisClient *c, robj *o, size_t *offset) {
/* Count number of bits set in the binary array pointed by 's' and long
* 'count' bytes. The implementation of this function is required to
* work with a input string length up to 512 MB. */
size_t popcount(void *s, long count) {
size_t popcount_binary(void *s, long count) {
size_t bits = 0;
unsigned char *p;
uint32_t *p4 = s;
......@@ -407,6 +407,6 @@ void bitcountCommand(redisClient *c) {
} else {
long bytes = end-start+1;
addReplyLongLong(c,popcount(p+start,bytes));
addReplyLongLong(c,popcount_binary(p+start,bytes));
}
}
......@@ -996,8 +996,8 @@ void configGetCommand(redisClient *c) {
int j;
for (j = 0; j < server.saveparamslen; j++) {
buf = sdscatprintf(buf,"%ld %d",
server.saveparams[j].seconds,
buf = sdscatprintf(buf,"%jd %d",
(intmax_t)server.saveparams[j].seconds,
server.saveparams[j].changes);
if (j != server.saveparamslen-1)
buf = sdscatlen(buf," ",1);
......
......@@ -329,8 +329,11 @@ void debugCommand(redisClient *c) {
} else if (!strcasecmp(c->argv[1]->ptr,"sleep") && c->argc == 3) {
double dtime = strtod(c->argv[2]->ptr,NULL);
long long utime = dtime*1000000;
struct timespec tv;
usleep(utime);
tv.tv_sec = utime / 1000000;
tv.tv_nsec = (utime % 1000000) * 1000;
nanosleep(&tv, NULL);
addReply(c,shared.ok);
} else if (!strcasecmp(c->argv[1]->ptr,"set-active-expire") &&
c->argc == 3)
......
......@@ -36,9 +36,13 @@
#define _GNU_SOURCE
#endif
#if defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__)
#if defined(__linux__) || defined(__OpenBSD__)
#define _XOPEN_SOURCE 700
#else
/*
* On NetBSD, _XOPEN_SOURCE undefines _NETBSD_SOURCE and
* thus hides inet_aton etc.
*/
#elif !defined(__NetBSD__)
#define _XOPEN_SOURCE
#endif
......
......@@ -2126,8 +2126,8 @@ sds genRedisInfoString(char *section) {
"process_id:%ld\r\n"
"run_id:%s\r\n"
"tcp_port:%d\r\n"
"uptime_in_seconds:%ld\r\n"
"uptime_in_days:%ld\r\n"
"uptime_in_seconds:%jd\r\n"
"uptime_in_days:%jd\r\n"
"hz:%d\r\n"
"lru_clock:%ld\r\n"
"config_file:%s\r\n",
......@@ -2147,8 +2147,8 @@ sds genRedisInfoString(char *section) {
(long) getpid(),
server.runid,
server.port,
uptime,
uptime/(3600*24),
(intmax_t)uptime,
(intmax_t)(uptime/(3600*24)),
server.hz,
(unsigned long) server.lruclock,
server.configfile ? server.configfile : "");
......@@ -2205,30 +2205,30 @@ sds genRedisInfoString(char *section) {
"loading:%d\r\n"
"rdb_changes_since_last_save:%lld\r\n"
"rdb_bgsave_in_progress:%d\r\n"
"rdb_last_save_time:%ld\r\n"
"rdb_last_save_time:%jd\r\n"
"rdb_last_bgsave_status:%s\r\n"
"rdb_last_bgsave_time_sec:%ld\r\n"
"rdb_current_bgsave_time_sec:%ld\r\n"
"rdb_last_bgsave_time_sec:%jd\r\n"
"rdb_current_bgsave_time_sec:%jd\r\n"
"aof_enabled:%d\r\n"
"aof_rewrite_in_progress:%d\r\n"
"aof_rewrite_scheduled:%d\r\n"
"aof_last_rewrite_time_sec:%ld\r\n"
"aof_current_rewrite_time_sec:%ld\r\n"
"aof_last_rewrite_time_sec:%jd\r\n"
"aof_current_rewrite_time_sec:%jd\r\n"
"aof_last_bgrewrite_status:%s\r\n",
server.loading,
server.dirty,
server.rdb_child_pid != -1,
server.lastsave,
(intmax_t)server.lastsave,
(server.lastbgsave_status == REDIS_OK) ? "ok" : "err",
server.rdb_save_time_last,
(server.rdb_child_pid == -1) ?
-1 : time(NULL)-server.rdb_save_time_start,
(intmax_t)server.rdb_save_time_last,
(intmax_t)((server.rdb_child_pid == -1) ?
-1 : time(NULL)-server.rdb_save_time_start),
server.aof_state != REDIS_AOF_OFF,
server.aof_child_pid != -1,
server.aof_rewrite_scheduled,
server.aof_rewrite_time_last,
(server.aof_child_pid == -1) ?
-1 : time(NULL)-server.aof_rewrite_time_start,
(intmax_t)server.aof_rewrite_time_last,
(intmax_t)((server.aof_child_pid == -1) ?
-1 : time(NULL)-server.aof_rewrite_time_start),
(server.aof_lastbgrewrite_status == REDIS_OK) ? "ok" : "err");
if (server.aof_state != REDIS_AOF_OFF) {
......@@ -2267,16 +2267,16 @@ sds genRedisInfoString(char *section) {
}
info = sdscatprintf(info,
"loading_start_time:%ld\r\n"
"loading_start_time:%jd\r\n"
"loading_total_bytes:%llu\r\n"
"loading_loaded_bytes:%llu\r\n"
"loading_loaded_perc:%.2f\r\n"
"loading_eta_seconds:%ld\r\n"
,(unsigned long) server.loading_start_time,
"loading_eta_seconds:%jd\r\n",
(intmax_t) server.loading_start_time,
(unsigned long long) server.loading_total_bytes,
(unsigned long long) server.loading_loaded_bytes,
perc,
eta
(intmax_t)eta
);
}
}
......@@ -2355,8 +2355,8 @@ sds genRedisInfoString(char *section) {
if (server.repl_state != REDIS_REPL_CONNECTED) {
info = sdscatprintf(info,
"master_link_down_since_seconds:%ld\r\n",
(long)server.unixtime-server.repl_down_since);
"master_link_down_since_seconds:%jd\r\n",
(intmax_t)server.unixtime-server.repl_down_since);
}
info = sdscatprintf(info,
"slave_priority:%d\r\n"
......
......@@ -1029,7 +1029,7 @@ long long mstime(void);
void getRandomHexChars(char *p, unsigned int len);
uint64_t crc64(uint64_t crc, const unsigned char *s, uint64_t l);
void exitFromChild(int retcode);
size_t popcount(void *s, long count);
size_t popcount_binary(void *s, long count);
void redisSetProcTitle(char *title);
/* networking.c -- Networking and Client related operations */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册