From 41f00a49249cdf644c772fe22a0bb66d2a6ff9ed Mon Sep 17 00:00:00 2001 From: Hui Li Date: Fri, 22 Jan 2021 10:11:40 +0800 Subject: [PATCH] [TD-2792] for windows usage, remote shutdown also returns - 1 in windows client --- src/rpc/src/rpcUdp.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/rpc/src/rpcUdp.c b/src/rpc/src/rpcUdp.c index 22301fcecc..5f5a65b8f9 100644 --- a/src/rpc/src/rpcUdp.c +++ b/src/rpc/src/rpcUdp.c @@ -140,6 +140,7 @@ void taosStopUdpConnection(void *handle) { pConn = pSet->udpConn + i; if (pConn->fd >=0) shutdown(pConn->fd, SHUT_RDWR); if (pConn->fd >=0) taosCloseSocket(pConn->fd); + pConn->fd = -1; } for (int i = 0; i < pSet->threads; ++i) { @@ -198,8 +199,13 @@ static void *taosRecvUdpData(void *param) { while (1) { dataLen = recvfrom(pConn->fd, pConn->buffer, RPC_MAX_UDP_SIZE, 0, (struct sockaddr *)&sourceAdd, &addLen); if(dataLen <= 0) { - tDebug("%s UDP socket was closed, exiting(%s)", pConn->label, strerror(errno)); - break; + tDebug("%s UDP socket(fd:%d) receive dataLen(%d) error(%s)", pConn->label, pConn->fd, (int32_t)dataLen, strerror(errno)); + // for windows usage, remote shutdown also returns - 1 in windows client + if (-1 == pConn->fd) { + break; + } else { + continue; + } } port = ntohs(sourceAdd.sin_port);