[sheepdog] [PATCH] zookeeper: fix bug for default cluster id

Yu Yang yuyanggg at gmail.com
Wed Mar 4 03:45:55 CET 2015


From: Yu Yang <yuyang at cmss.chinamobile.com>

Signed-off-by: Yu Yang <yuyang at cmss.chinamobile.com>
---
 sheep/cluster/zookeeper.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/sheep/cluster/zookeeper.c b/sheep/cluster/zookeeper.c
index 4f85043..929231b 100644
--- a/sheep/cluster/zookeeper.c
+++ b/sheep/cluster/zookeeper.c
@@ -1466,7 +1466,15 @@ static int zk_init(const char *option)
 
 	sd_info("version %d.%d.%d, address %s, timeout %d", ZOO_MAJOR_VERSION,
 		ZOO_MINOR_VERSION, ZOO_PATCH_VERSION, hosts, zk_timeout);
-	if (zk_connect(hosts, zk_watcher, zk_timeout) < 0)
+	if (!strchr(hosts, '/')) {
+		char *tmp = (char *)malloc((strlen(hosts) +
+					strlen(DEFAULT_BASE) + 1)*sizeof(char));
+		strncpy(tmp, hosts, strlen(hosts));
+		strcat(tmp, DEFAULT_BASE);
+		if (zk_connect(tmp, zk_watcher, zk_timeout) < 0)
+			return -1;
+		free(tmp);
+	} else if (zk_connect(hosts, zk_watcher, zk_timeout) < 0)
 		return -1;
 
 	timeo = zoo_recv_timeout(zhandle);
-- 
1.7.9.5




More information about the sheepdog mailing list