diff --git a/daemon/cli.c b/daemon/cli.c index 057550578..f1bad6794 100644 --- a/daemon/cli.c +++ b/daemon/cli.c @@ -1735,15 +1735,15 @@ static void cli_incoming_set_rediscmdtimeout(str *instr, struct cli_writer *cw, fail = 1; } } else { - if (rtpe_redis && redis_set_timeout(rtpe_redis, timeout)) { + if (rtpe_redis && redis_set_timeout(rtpe_redis, timeout * 1000LL)) { cw->cw_printf(cw, "Failed setting redis-cmd-timeout for redis %ld\n", timeout); fail = 1; } - if (rtpe_redis_write && redis_set_timeout(rtpe_redis_write, timeout)) { + if (rtpe_redis_write && redis_set_timeout(rtpe_redis_write, timeout * 1000LL)) { cw->cw_printf(cw, "Failed setting redis-cmd-timeout for redis-write %ld\n", timeout); fail = 1; } - if (rtpe_redis_notify && redis_set_timeout(rtpe_redis_notify, timeout)) { + if (rtpe_redis_notify && redis_set_timeout(rtpe_redis_notify, timeout * 1000LL)) { cw->cw_printf(cw, "Failed setting redis-cmd-timeout for redis-notify %ld\n", timeout); fail = 1; } diff --git a/daemon/redis.c b/daemon/redis.c index 57121c0e3..37a9b88c8 100644 --- a/daemon/redis.c +++ b/daemon/redis.c @@ -232,8 +232,7 @@ int redis_set_timeout(struct redis* r, int64_t timeout) { if (!timeout) return 0; - tv_cmd.tv_sec = timeout / 1000; - tv_cmd.tv_usec = (timeout % 1000) * 1000; + tv_cmd = timeval_from_us(timeout); if (redisSetTimeout(r->ctx, tv_cmd)) return -1; ilog(LOG_INFO, "Setting timeout for Redis commands to %" PRId64 " milliseconds", timeout); @@ -273,11 +272,10 @@ static int redis_connect(struct redis *r, int wait, bool resolve) { r->ctx = NULL; r->current_db = -1; - connect_timeout = atomic_get_na(&rtpe_config.redis_connect_timeout); - cmd_timeout = atomic_get_na(&rtpe_config.redis_cmd_timeout); + connect_timeout = atomic_get_na(&rtpe_config.redis_connect_timeout) * 1000LL; + cmd_timeout = atomic_get_na(&rtpe_config.redis_cmd_timeout) * 1000LL; - tv.tv_sec = connect_timeout / 1000; - tv.tv_usec = (connect_timeout % 1000) * 1000; + tv = timeval_from_us(connect_timeout); /* re-resolve if asked */ if (resolve && r->hostname) { @@ -297,7 +295,7 @@ static int redis_connect(struct redis *r, int wait, bool resolve) { if (r->ctx->err) goto err2; - if (redis_set_timeout(r,cmd_timeout)) + if (redis_set_timeout(r, cmd_timeout)) goto err2; if (r->auth) { diff --git a/include/redis.h b/include/redis.h index 250b803ae..eb1287faf 100644 --- a/include/redis.h +++ b/include/redis.h @@ -100,7 +100,7 @@ void redis_delete(call_t *, struct redis *); void redis_wipe(struct redis *); int redis_async_event_base_action(struct redis *r, enum event_base_action); int redis_notify_subscribe_action(struct redis *r, enum subscribe_action action, int keyspace); -int redis_set_timeout(struct redis* r, int64_t timeout); // XXX scale to micro +int redis_set_timeout(struct redis* r, int64_t timeout); int redis_reconnect(struct redis* r);