[sheepdog] [PATCH v2] zookeeper: fix bug for default cluster id
Yu Yang
yuyanggg at gmail.com
Wed Mar 4 04:04:08 CET 2015
From: Yu Yang <yuyang at cmss.chinamobile.com>
Append DEFAULT_BASE to hosts when cluster id is not set.
Signed-off-by: Yu Yang <yuyang at cmss.chinamobile.com>
---
sheep/cluster/zookeeper.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/sheep/cluster/zookeeper.c b/sheep/cluster/zookeeper.c
index 4f85043..47cfa6c 100644
--- a/sheep/cluster/zookeeper.c
+++ b/sheep/cluster/zookeeper.c
@@ -1466,7 +1466,17 @@ 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) {
+ free(tmp);
+ 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