diff options
author | Krishnan Parthasarathi <kparthas@redhat.com> | 2013-03-14 09:48:08 +0530 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2013-03-22 02:08:20 -0700 |
commit | fec34ce4531d37ed6639054f1071f9123883251a (patch) | |
tree | a671e7bcf19397f5c3e352a1cba15550c767c653 /rpc | |
parent | 76bc5d1b2d25a4f25f4cf458e43ec3e19c3efae6 (diff) |
socket: Make non-ssl sockets perform non-blocking connect()
Change-Id: Icb60cf7ad3ea7ca0eeb12fd19b95a6b340857bb2
BUG: 920916
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/4670
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/rpc-transport/socket/src/socket.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/rpc/rpc-transport/socket/src/socket.c b/rpc/rpc-transport/socket/src/socket.c index e765dbb5b2e..78127cd1ca0 100644 --- a/rpc/rpc-transport/socket/src/socket.c +++ b/rpc/rpc-transport/socket/src/socket.c @@ -2760,6 +2760,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); |