|
@@ -106,11 +106,14 @@ int rds_tcp_conn_connect(struct rds_connection *conn)
|
|
rds_tcp_set_callbacks(sock, conn);
|
|
rds_tcp_set_callbacks(sock, conn);
|
|
ret = sock->ops->connect(sock, (struct sockaddr *)&dest, sizeof(dest),
|
|
ret = sock->ops->connect(sock, (struct sockaddr *)&dest, sizeof(dest),
|
|
O_NONBLOCK);
|
|
O_NONBLOCK);
|
|
- sock = NULL;
|
|
|
|
|
|
|
|
rdsdebug("connect to address %pI4 returned %d\n", &conn->c_faddr, ret);
|
|
rdsdebug("connect to address %pI4 returned %d\n", &conn->c_faddr, ret);
|
|
if (ret == -EINPROGRESS)
|
|
if (ret == -EINPROGRESS)
|
|
ret = 0;
|
|
ret = 0;
|
|
|
|
+ if (ret == 0)
|
|
|
|
+ sock = NULL;
|
|
|
|
+ else
|
|
|
|
+ rds_tcp_restore_callbacks(sock, conn->c_transport_data);
|
|
|
|
|
|
out:
|
|
out:
|
|
if (sock)
|
|
if (sock)
|