From 435c693165a3c7b739c1b71ff179d1507c8d496d Mon Sep 17 00:00:00 2001 From: Krishnan Parthasarathi Date: Thu, 14 Mar 2013 09:48:08 +0530 Subject: socket: Make non-ssl sockets perform non-blocking connect() Change-Id: Icb60cf7ad3ea7ca0eeb12fd19b95a6b340857bb2 BUG: 920916 Signed-off-by: Krishnan Parthasarathi Reviewed-on: http://review.gluster.org/4685 Reviewed-by: Jeff Darcy Tested-by: Gluster Build System --- rpc/rpc-transport/socket/src/socket.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'rpc') diff --git a/rpc/rpc-transport/socket/src/socket.c b/rpc/rpc-transport/socket/src/socket.c index fffc137f665..3f189e3b9f6 100644 --- a/rpc/rpc-transport/socket/src/socket.c +++ b/rpc/rpc-transport/socket/src/socket.c @@ -2758,6 +2758,18 @@ socket_connect (rpc_transport_t *this, int port) goto unlock; } + if (!priv->use_ssl && !priv->bio && !priv->own_thread) { + ret = __socket_nonblock (priv->sock); + if (ret == -1) { + gf_log (this->name, GF_LOG_ERROR, + "NBIO on %d failed (%s)", + priv->sock, strerror (errno)); + close (priv->sock); + priv->sock = -1; + goto unlock; + } + } + ret = connect (priv->sock, SA (&this->peerinfo.sockaddr), this->peerinfo.sockaddr_len); -- cgit