diff options
-rw-r--r-- | src/database-redis.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
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<redisReply *>(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() |