diff --git a/src/util/src/tsocket.c b/src/util/src/tsocket.c index 0fbd68d4aa31c5911d7a87b74528a9444bbe1519..3bfa309387bcb67138a5935dd1dc791b895c20a2 100644 --- a/src/util/src/tsocket.c +++ b/src/util/src/tsocket.c @@ -352,40 +352,40 @@ SOCKET taosOpenTcpClientSocket(uint32_t destIp, uint16_t destPort, uint32_t clie serverAddr.sin_addr.s_addr = destIp; serverAddr.sin_port = (uint16_t)htons((uint16_t)destPort); -#ifdef _TD_LINUX - taosSetNonblocking(sockFd, 1); - ret = connect(sockFd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)); +#ifdef _TD_LINUX + taosSetNonblocking(sockFd, 1); + ret = connect(sockFd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)); if (ret == -1) { if (errno == EHOSTUNREACH) { uError("failed to connect socket, ip:0x%x, port:%hu(%s)", destIp, destPort, strerror(errno)); taosCloseSocket(sockFd); - return -1; + return -1; } else if (errno == EINPROGRESS || errno == EAGAIN || errno == EWOULDBLOCK) { - struct pollfd wfd[1]; + struct pollfd wfd[1]; wfd[0].fd = sockFd; wfd[0].events = POLLOUT; - + int res = poll(wfd, 1, tsTcpConnTimeout); if (res == -1 || res == 0) { uError("failed to connect socket, ip:0x%x, port:%hu(poll error/conn timeout)", destIp, destPort); - taosCloseSocket(sockFd); // + taosCloseSocket(sockFd); // return -1; } - int optVal = -1, optLen = sizeof(int); + int optVal = -1, optLen = sizeof(int); if ((0 != taosGetSockOpt(sockFd, SOL_SOCKET, SO_ERROR, &optVal, &optLen)) || (optVal != 0)) { uError("failed to connect socket, ip:0x%x, port:%hu(connect host error)", destIp, destPort); - taosCloseSocket(sockFd); // + taosCloseSocket(sockFd); // return -1; } ret = 0; } else { // Other error uError("failed to connect socket, ip:0x%x, port:%hu(target host cannot be reached)", destIp, destPort); - taosCloseSocket(sockFd); // - return -1; - } + taosCloseSocket(sockFd); // + return -1; + } } - taosSetNonblocking(sockFd, 0); + taosSetNonblocking(sockFd, 0); #elif _TD_WINDOWS taosSetNonblocking(sockFd, 1); @@ -425,7 +425,7 @@ SOCKET taosOpenTcpClientSocket(uint32_t destIp, uint16_t destPort, uint32_t clie } taosSetNonblocking(sockFd, 0); #else - ret = connect(sockFd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)); + ret = connect(sockFd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)); #endif if (ret != 0) {