From 5da3ed19a38ba5a342ba16c61be7bfb7c17b2308 Mon Sep 17 00:00:00 2001 From: Travis Burtrum Date: Mon, 6 Feb 2017 13:10:03 -0500 Subject: Add support for unix socket connection to redis (#5179) --- src/database-redis.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/database-redis.cpp') diff --git a/src/database-redis.cpp b/src/database-redis.cpp index 3bcedad9b..3df186944 100644 --- a/src/database-redis.cpp +++ b/src/database-redis.cpp @@ -44,7 +44,8 @@ Database_Redis::Database_Redis(Settings &conf) } const char *addr = tmp.c_str(); int port = conf.exists("redis_port") ? conf.getU16("redis_port") : 6379; - ctx = redisConnect(addr, port); + // if redis_address contains '/' assume unix socket, else hostname/ip + ctx = tmp.find('/') != std::string::npos ? redisConnectUnix(addr) : redisConnect(addr, port); if (!ctx) { throw DatabaseException("Cannot allocate redis context"); } else if (ctx->err) { -- cgit v1.2.3 From f83d8687a7cd15dac61fd257d358eb42337d48e0 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 11 Mar 2017 21:39:32 +0100 Subject: database-redis: Support password authentication --- src/database-redis.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/database-redis.cpp') diff --git a/src/database-redis.cpp b/src/database-redis.cpp index 3df186944..93e6717fa 100644 --- a/src/database-redis.cpp +++ b/src/database-redis.cpp @@ -53,6 +53,18 @@ Database_Redis::Database_Redis(Settings &conf) redisFree(ctx); throw DatabaseException(err); } + if (conf.exists("redis_password")) { + tmp = conf.get("redis_password"); + redisReply *reply = static_cast(redisCommand(ctx, "AUTH %s", tmp.c_str())); + if (!reply) + throw DatabaseException("Redis authentication failed"); + if (reply->type == REDIS_REPLY_ERROR) { + std::string err = "Redis authentication failed: " + std::string(reply->str, reply->len); + freeReplyObject(reply); + throw DatabaseException(err); + } + freeReplyObject(reply); + } } Database_Redis::~Database_Redis() -- cgit v1.2.3