Merge pull request #1111 from yamt/netbsd3

netbsd support
This commit is contained in:
Salvatore Sanfilippo 2013-06-26 06:17:02 -07:00
commit bae60ede1d
6 changed files with 37 additions and 30 deletions

View File

@ -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 number of bits set in the binary array pointed by 's' and long
* 'count' bytes. The implementation of this function is required to * 'count' bytes. The implementation of this function is required to
* work with a input string length up to 512 MB. */ * 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; size_t bits = 0;
unsigned char *p; unsigned char *p;
uint32_t *p4 = s; uint32_t *p4 = s;
@ -407,6 +407,6 @@ void bitcountCommand(redisClient *c) {
} else { } else {
long bytes = end-start+1; long bytes = end-start+1;
addReplyLongLong(c,popcount(p+start,bytes)); addReplyLongLong(c,popcount_binary(p+start,bytes));
} }
} }

View File

@ -996,8 +996,8 @@ void configGetCommand(redisClient *c) {
int j; int j;
for (j = 0; j < server.saveparamslen; j++) { for (j = 0; j < server.saveparamslen; j++) {
buf = sdscatprintf(buf,"%ld %d", buf = sdscatprintf(buf,"%jd %d",
server.saveparams[j].seconds, (intmax_t)server.saveparams[j].seconds,
server.saveparams[j].changes); server.saveparams[j].changes);
if (j != server.saveparamslen-1) if (j != server.saveparamslen-1)
buf = sdscatlen(buf," ",1); buf = sdscatlen(buf," ",1);

View File

@ -329,8 +329,11 @@ void debugCommand(redisClient *c) {
} else if (!strcasecmp(c->argv[1]->ptr,"sleep") && c->argc == 3) { } else if (!strcasecmp(c->argv[1]->ptr,"sleep") && c->argc == 3) {
double dtime = strtod(c->argv[2]->ptr,NULL); double dtime = strtod(c->argv[2]->ptr,NULL);
long long utime = dtime*1000000; 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); addReply(c,shared.ok);
} else if (!strcasecmp(c->argv[1]->ptr,"set-active-expire") && } else if (!strcasecmp(c->argv[1]->ptr,"set-active-expire") &&
c->argc == 3) c->argc == 3)

View File

@ -36,9 +36,13 @@
#define _GNU_SOURCE #define _GNU_SOURCE
#endif #endif
#if defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__) #if defined(__linux__) || defined(__OpenBSD__)
#define _XOPEN_SOURCE 700 #define _XOPEN_SOURCE 700
#else /*
* On NetBSD, _XOPEN_SOURCE undefines _NETBSD_SOURCE and
* thus hides inet_aton etc.
*/
#elif !defined(__NetBSD__)
#define _XOPEN_SOURCE #define _XOPEN_SOURCE
#endif #endif

View File

@ -2126,8 +2126,8 @@ sds genRedisInfoString(char *section) {
"process_id:%ld\r\n" "process_id:%ld\r\n"
"run_id:%s\r\n" "run_id:%s\r\n"
"tcp_port:%d\r\n" "tcp_port:%d\r\n"
"uptime_in_seconds:%ld\r\n" "uptime_in_seconds:%jd\r\n"
"uptime_in_days:%ld\r\n" "uptime_in_days:%jd\r\n"
"hz:%d\r\n" "hz:%d\r\n"
"lru_clock:%ld\r\n" "lru_clock:%ld\r\n"
"config_file:%s\r\n", "config_file:%s\r\n",
@ -2147,8 +2147,8 @@ sds genRedisInfoString(char *section) {
(long) getpid(), (long) getpid(),
server.runid, server.runid,
server.port, server.port,
uptime, (intmax_t)uptime,
uptime/(3600*24), (intmax_t)(uptime/(3600*24)),
server.hz, server.hz,
(unsigned long) server.lruclock, (unsigned long) server.lruclock,
server.configfile ? server.configfile : ""); server.configfile ? server.configfile : "");
@ -2205,30 +2205,30 @@ sds genRedisInfoString(char *section) {
"loading:%d\r\n" "loading:%d\r\n"
"rdb_changes_since_last_save:%lld\r\n" "rdb_changes_since_last_save:%lld\r\n"
"rdb_bgsave_in_progress:%d\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_status:%s\r\n"
"rdb_last_bgsave_time_sec:%ld\r\n" "rdb_last_bgsave_time_sec:%jd\r\n"
"rdb_current_bgsave_time_sec:%ld\r\n" "rdb_current_bgsave_time_sec:%jd\r\n"
"aof_enabled:%d\r\n" "aof_enabled:%d\r\n"
"aof_rewrite_in_progress:%d\r\n" "aof_rewrite_in_progress:%d\r\n"
"aof_rewrite_scheduled:%d\r\n" "aof_rewrite_scheduled:%d\r\n"
"aof_last_rewrite_time_sec:%ld\r\n" "aof_last_rewrite_time_sec:%jd\r\n"
"aof_current_rewrite_time_sec:%ld\r\n" "aof_current_rewrite_time_sec:%jd\r\n"
"aof_last_bgrewrite_status:%s\r\n", "aof_last_bgrewrite_status:%s\r\n",
server.loading, server.loading,
server.dirty, server.dirty,
server.rdb_child_pid != -1, server.rdb_child_pid != -1,
server.lastsave, (intmax_t)server.lastsave,
(server.lastbgsave_status == REDIS_OK) ? "ok" : "err", (server.lastbgsave_status == REDIS_OK) ? "ok" : "err",
server.rdb_save_time_last, (intmax_t)server.rdb_save_time_last,
(server.rdb_child_pid == -1) ? (intmax_t)((server.rdb_child_pid == -1) ?
-1 : time(NULL)-server.rdb_save_time_start, -1 : time(NULL)-server.rdb_save_time_start),
server.aof_state != REDIS_AOF_OFF, server.aof_state != REDIS_AOF_OFF,
server.aof_child_pid != -1, server.aof_child_pid != -1,
server.aof_rewrite_scheduled, server.aof_rewrite_scheduled,
server.aof_rewrite_time_last, (intmax_t)server.aof_rewrite_time_last,
(server.aof_child_pid == -1) ? (intmax_t)((server.aof_child_pid == -1) ?
-1 : time(NULL)-server.aof_rewrite_time_start, -1 : time(NULL)-server.aof_rewrite_time_start),
(server.aof_lastbgrewrite_status == REDIS_OK) ? "ok" : "err"); (server.aof_lastbgrewrite_status == REDIS_OK) ? "ok" : "err");
if (server.aof_state != REDIS_AOF_OFF) { if (server.aof_state != REDIS_AOF_OFF) {
@ -2267,16 +2267,16 @@ sds genRedisInfoString(char *section) {
} }
info = sdscatprintf(info, info = sdscatprintf(info,
"loading_start_time:%ld\r\n" "loading_start_time:%jd\r\n"
"loading_total_bytes:%llu\r\n" "loading_total_bytes:%llu\r\n"
"loading_loaded_bytes:%llu\r\n" "loading_loaded_bytes:%llu\r\n"
"loading_loaded_perc:%.2f\r\n" "loading_loaded_perc:%.2f\r\n"
"loading_eta_seconds:%ld\r\n" "loading_eta_seconds:%jd\r\n",
,(unsigned long) server.loading_start_time, (intmax_t) server.loading_start_time,
(unsigned long long) server.loading_total_bytes, (unsigned long long) server.loading_total_bytes,
(unsigned long long) server.loading_loaded_bytes, (unsigned long long) server.loading_loaded_bytes,
perc, perc,
eta (intmax_t)eta
); );
} }
} }
@ -2355,8 +2355,8 @@ sds genRedisInfoString(char *section) {
if (server.repl_state != REDIS_REPL_CONNECTED) { if (server.repl_state != REDIS_REPL_CONNECTED) {
info = sdscatprintf(info, info = sdscatprintf(info,
"master_link_down_since_seconds:%ld\r\n", "master_link_down_since_seconds:%jd\r\n",
(long)server.unixtime-server.repl_down_since); (intmax_t)server.unixtime-server.repl_down_since);
} }
info = sdscatprintf(info, info = sdscatprintf(info,
"slave_priority:%d\r\n" "slave_priority:%d\r\n"

View File

@ -1029,7 +1029,7 @@ long long mstime(void);
void getRandomHexChars(char *p, unsigned int len); void getRandomHexChars(char *p, unsigned int len);
uint64_t crc64(uint64_t crc, const unsigned char *s, uint64_t l); uint64_t crc64(uint64_t crc, const unsigned char *s, uint64_t l);
void exitFromChild(int retcode); void exitFromChild(int retcode);
size_t popcount(void *s, long count); size_t popcount_binary(void *s, long count);
void redisSetProcTitle(char *title); void redisSetProcTitle(char *title);
/* networking.c -- Networking and Client related operations */ /* networking.c -- Networking and Client related operations */