From 694624036ce1c27da3306814f95aed444183e0d4 Mon Sep 17 00:00:00 2001 From: Alex 'AdUser' Z Date: Wed, 11 Oct 2017 11:37:05 +1000 Subject: [PATCH] * allow redis source/backend fail on start --- src/backends/redis.c | 18 +++++++++++------- src/sources/redis.c | 12 ++++++++---- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/backends/redis.c b/src/backends/redis.c index b61e60f..55d9ee2 100644 --- a/src/backends/redis.c +++ b/src/backends/redis.c @@ -91,8 +91,10 @@ static bool redis_disconnect(cfg_t *cfg) { assert(cfg != NULL); - redisFree(cfg->conn); - cfg->conn = NULL; + if (cfg->conn) { + redisFree(cfg->conn); + cfg->conn = NULL; + } return true; } @@ -170,10 +172,11 @@ bool start(cfg_t *cfg) { assert(cfg != NULL); - if (cfg->shared && usage_inc(cfg->name) > 1) - return true; + if (cfg->shared) + usage_inc(cfg->name); - return redis_connect(cfg); + redis_connect(cfg); /* may fail */ + return true; } bool @@ -181,9 +184,10 @@ stop(cfg_t *cfg) { assert(cfg != NULL); if (cfg->shared && usage_dec(cfg->name) > 0) - return true; + return true; /* skip disconnect, if not last user */ - return redis_disconnect(cfg); + redis_disconnect(cfg); + return true; } bool diff --git a/src/sources/redis.c b/src/sources/redis.c index 3b14c8e..0383a00 100644 --- a/src/sources/redis.c +++ b/src/sources/redis.c @@ -99,8 +99,10 @@ static bool redis_disconnect(cfg_t *cfg) { assert(cfg != NULL); - redisFree(cfg->conn); - cfg->conn = NULL; + if (cfg->conn) { + redisFree(cfg->conn); + cfg->conn = NULL; + } return true; } @@ -180,14 +182,16 @@ bool start(cfg_t *cfg) { assert(cfg != NULL); - return redis_connect(cfg); + redis_connect(cfg); /* may fail */ + return true; } bool stop(cfg_t *cfg) { assert(cfg != NULL); - return redis_disconnect(cfg); + redis_disconnect(cfg); + return true; } bool