浏览代码

ndb_redis: init_without_redis continue only if connection or starting commands fail.

Vicente Hernando 10 年之前
父节点
当前提交
f567768265
共有 2 个文件被更改,包括 17 次插入9 次删除
  1. 3 9
      modules/ndb_redis/ndb_redis_mod.c
  2. 14 0
      modules/ndb_redis/redis_client.c

+ 3 - 9
modules/ndb_redis/ndb_redis_mod.c

@@ -43,6 +43,7 @@ MODULE_VERSION
 
 int redis_srv_param(modparam_t type, void *val);
 int init_without_redis = 0;
+
 static int w_redis_cmd3(struct sip_msg* msg, char* ssrv, char* scmd,
 		char* sres);
 static int w_redis_cmd4(struct sip_msg* msg, char* ssrv, char* scmd,
@@ -115,15 +116,8 @@ static int child_init(int rank)
 
 	if(redisc_init()<0)
 	{
-		if (init_without_redis==1)
-		{
-			LM_WARN("failed to initialize redis connections, but initializing module anyway\n");
-			return 0;
-		}
-		else {
-			LM_ERR("failed to initialize redis connections\n");
-			return -1;
-		}
+	  LM_ERR("failed to initialize redis connections\n");
+	  return -1;
 	}
 	return 0;
 }

+ 14 - 0
modules/ndb_redis/redis_client.c

@@ -41,6 +41,8 @@ static redisc_server_t *_redisc_srv_list=NULL;
 
 static redisc_reply_t *_redisc_rpl_list=NULL;
 
+extern int init_without_redis;
+
 /**
  *
  */
@@ -118,6 +120,12 @@ err2:
 		LM_ERR("error communicating with redis server [%.*s] (%s:%d/%d): %s\n",
 			   rsrv->sname->len, rsrv->sname->s, addr, port, db, rsrv->ctxRedis->errstr);
 	}
+	if (init_without_redis==1)
+	{
+		LM_WARN("failed to initialize redis connections, but initializing module anyway.\n");
+		return 0;
+	}
+
 	return -1;
 err:
 	if (unix_sock_path != NULL) {
@@ -127,6 +135,12 @@ err:
 		LM_ERR("failed to connect to redis server [%.*s] (%s:%d/%d)\n",
 			   rsrv->sname->len, rsrv->sname->s, addr, port, db);
 	}
+	if (init_without_redis==1)
+	{
+		LM_WARN("failed to initialize redis connections, but initializing module anyway.\n");
+		return 0;
+	}
+
 	return -1;
 }