diff --git a/libs/esl/src/esl.c b/libs/esl/src/esl.c index cdfdc5ef37..e4fb79ba6c 100644 --- a/libs/esl/src/esl.c +++ b/libs/esl/src/esl.c @@ -1233,7 +1233,7 @@ static esl_ssize_t handle_recv(esl_handle_t *handle, void *data, esl_size_t data } else if ((activity & ESL_POLL_READ)) { if (!(activity = recv(handle->sock, data, datalen, 0))) { activity = -1; - } else if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK) { + } else if (activity < 0 && (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK)) { activity = 0; } }