diff options
| -rw-r--r-- | src/server/client.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/server/client.cpp b/src/server/client.cpp index c59100e..fbb451d 100644 --- a/src/server/client.cpp +++ b/src/server/client.cpp @@ -81,19 +81,17 @@ UP<SRecvData> Client::read(std::optional<std::function<bool(const SRecvData &)>> recvData->data.resize(recvData->size); ssize_t size = recv(m_sockfd->get(), &recvData->data[0], recvData->size, 0); + m_szReading.reset(); if (size < 0 || size == 0) { recvData->good = false; - if (cb && !(*cb)(*recvData)) { - m_szReading.reset(); + if (cb && !(*cb)(*recvData)) return nullptr; - } } else { recvData->data.resize(size); recvData->good = true; } - m_szReading.reset(); return recvData; } |
