提交 d54007f7 编写于 作者: Y YuQing

check poll result for POLLHUP and POLLERR

上级 bb33b2e0
......@@ -177,11 +177,11 @@ int tcprecvdata_ex(int sock, void *data, const int size, \
}
#else
res = poll(&pollfds, 1, 1000 * timeout);
if (pollfds.revents & POLLHUP)
{
ret_code = ENOTCONN;
break;
}
if (res > 0 && (pollfds.revents & (POLLHUP | POLLERR)))
{
ret_code = ENOTCONN;
break;
}
#endif
if (res < 0)
......@@ -265,7 +265,7 @@ int tcpsenddata(int sock, void* data, const int size, const int timeout)
}
#else
result = poll(&pollfds, 1, 1000 * timeout);
if (pollfds.revents & POLLHUP)
if (result > 0 && (pollfds.revents & (POLLHUP | POLLERR)))
{
return ENOTCONN;
}
......@@ -371,7 +371,7 @@ int tcprecvdata_nb_ms(int sock, void *data, const int size, \
}
#else
res = poll(&pollfds, 1, timeout_ms);
if (pollfds.revents & POLLHUP)
if (res > 0 && (pollfds.revents & (POLLHUP | POLLERR)))
{
ret_code = ENOTCONN;
break;
......@@ -455,7 +455,7 @@ int tcpsenddata_nb(int sock, void* data, const int size, const int timeout)
}
#else
result = poll(&pollfds, 1, 1000 * timeout);
if (pollfds.revents & POLLHUP)
if (result > 0 && (pollfds.revents & (POLLHUP | POLLERR)))
{
return ENOTCONN;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册