Loading src/http.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -496,6 +496,7 @@ size_t libhttppp::HttpClient::_recvNonBlocking(netplus::buffer &b) { // Efficient send: uses socketwait::waitWrite() instead of busy-waiting void libhttppp::HttpClient::_sendAll(const char *data, size_t len) { if (!_cltsock || len == 0) return; int send_sec = _sendTimeoutSec > 0 ? _sendTimeoutSec : 30; auto deadline = std::chrono::steady_clock::now() + std::chrono::seconds(send_sec); size_t off = 0; Loading Loading @@ -1703,6 +1704,12 @@ size_t libhttppp::HttpClient::readBodyChunkNonBlocking(char *buf, size_t bufsize if (_streamMode == STREAM_NONE || bufsize == 0) return static_cast<size_t>(-1); // If the underlying socket is gone, terminate the stream immediately if (!_cltsock) { _streamMode = STREAM_NONE; return static_cast<size_t>(-1); } // Helper: drain from internal leftover buffer auto drainBuf = [&](size_t maxBytes) -> size_t { size_t have = _streamBuf.size() - _streamBufPos; Loading Loading
src/http.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -496,6 +496,7 @@ size_t libhttppp::HttpClient::_recvNonBlocking(netplus::buffer &b) { // Efficient send: uses socketwait::waitWrite() instead of busy-waiting void libhttppp::HttpClient::_sendAll(const char *data, size_t len) { if (!_cltsock || len == 0) return; int send_sec = _sendTimeoutSec > 0 ? _sendTimeoutSec : 30; auto deadline = std::chrono::steady_clock::now() + std::chrono::seconds(send_sec); size_t off = 0; Loading Loading @@ -1703,6 +1704,12 @@ size_t libhttppp::HttpClient::readBodyChunkNonBlocking(char *buf, size_t bufsize if (_streamMode == STREAM_NONE || bufsize == 0) return static_cast<size_t>(-1); // If the underlying socket is gone, terminate the stream immediately if (!_cltsock) { _streamMode = STREAM_NONE; return static_cast<size_t>(-1); } // Helper: drain from internal leftover buffer auto drainBuf = [&](size_t maxBytes) -> size_t { size_t have = _streamBuf.size() - _streamBufPos; Loading