summaryrefslogtreecommitdiffstats
path: root/ctdb/client/ctdb_client.c
diff options
context:
space:
mode:
Diffstat (limited to 'ctdb/client/ctdb_client.c')
-rw-r--r--ctdb/client/ctdb_client.c35
1 files changed, 5 insertions, 30 deletions
diff --git a/ctdb/client/ctdb_client.c b/ctdb/client/ctdb_client.c
index d2cf0f69e3..e2ea9b37d9 100644
--- a/ctdb/client/ctdb_client.c
+++ b/ctdb/client/ctdb_client.c
@@ -253,41 +253,16 @@ done:
}
/*
- connect with exponential backoff, thanks Stevens
+ connect to a unix domain socket
*/
-#define CONNECT_MAXSLEEP 64
-static int ctdb_connect_retry(struct ctdb_context *ctdb)
+int ctdb_socket_connect(struct ctdb_context *ctdb)
{
struct sockaddr_un addr;
- int secs;
- int ret = 0;
memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX;
strncpy(addr.sun_path, ctdb->daemon.name, sizeof(addr.sun_path));
- for (secs = 1; secs <= CONNECT_MAXSLEEP; secs *= 2) {
- ret = connect(ctdb->daemon.sd, (struct sockaddr *)&addr,
- sizeof(addr));
- if ((ret == 0) || (errno != EAGAIN)) {
- break;
- }
-
- if (secs <= (CONNECT_MAXSLEEP / 2)) {
- DEBUG(DEBUG_ERR,("connect failed: %s, retry in %d second(s)\n",
- strerror(errno), secs));
- sleep(secs);
- }
- }
-
- return ret;
-}
-
-/*
- connect to a unix domain socket
-*/
-int ctdb_socket_connect(struct ctdb_context *ctdb)
-{
ctdb->daemon.sd = socket(AF_UNIX, SOCK_STREAM, 0);
if (ctdb->daemon.sd == -1) {
DEBUG(DEBUG_ERR,(__location__ " Failed to open client socket. Errno:%s(%d)\n", strerror(errno), errno));
@@ -296,11 +271,11 @@ int ctdb_socket_connect(struct ctdb_context *ctdb)
set_nonblocking(ctdb->daemon.sd);
set_close_on_exec(ctdb->daemon.sd);
-
- if (ctdb_connect_retry(ctdb) == -1) {
- DEBUG(DEBUG_ERR,(__location__ " Failed to connect client socket to daemon. Errno:%s(%d)\n", strerror(errno), errno));
+
+ if (connect(ctdb->daemon.sd, (struct sockaddr *)&addr, sizeof(addr)) == -1) {
close(ctdb->daemon.sd);
ctdb->daemon.sd = -1;
+ DEBUG(DEBUG_ERR,(__location__ " Failed to connect client socket to daemon. Errno:%s(%d)\n", strerror(errno), errno));
return -1;
}