diff options
Diffstat (limited to 'src/deps/libuwsockets.cpp')
-rw-r--r-- | src/deps/libuwsockets.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/deps/libuwsockets.cpp b/src/deps/libuwsockets.cpp index bacab2cbf..cbf399f20 100644 --- a/src/deps/libuwsockets.cpp +++ b/src/deps/libuwsockets.cpp @@ -1025,11 +1025,15 @@ extern "C" if (ssl) { uWS::HttpResponse<true> *uwsRes = (uWS::HttpResponse<true> *)res; + uwsRes->getHttpResponseData()->onWritable = nullptr; + uwsRes->onAborted(nullptr); uwsRes->end(std::string_view(data, length), close_connection); } else { uWS::HttpResponse<false> *uwsRes = (uWS::HttpResponse<false> *)res; + uwsRes->getHttpResponseData()->onWritable = nullptr; + uwsRes->onAborted(nullptr); uwsRes->end(std::string_view(data, length), close_connection); } } @@ -1039,11 +1043,15 @@ extern "C" if (ssl) { uWS::HttpResponse<true> *uwsRes = (uWS::HttpResponse<true> *)res; + uwsRes->getHttpResponseData()->onWritable = nullptr; + uwsRes->onAborted(nullptr); uwsRes->endWithoutBody(std::nullopt, close_connection); } else { uWS::HttpResponse<false> *uwsRes = (uWS::HttpResponse<false> *)res; + uwsRes->getHttpResponseData()->onWritable = nullptr; + uwsRes->onAborted(nullptr); uwsRes->endWithoutBody(std::nullopt, close_connection); } } @@ -1514,12 +1522,22 @@ extern "C" { uWS::HttpResponse<true> *uwsRes = (uWS::HttpResponse<true> *)res; auto pair = uwsRes->tryEnd(std::string_view(bytes, len), total_len, close); + if (pair.first) { + uwsRes->getHttpResponseData()->onWritable = nullptr; + uwsRes->onAborted(nullptr); + } + return pair.first; } else { uWS::HttpResponse<false> *uwsRes = (uWS::HttpResponse<false> *)res; auto pair = uwsRes->tryEnd(std::string_view(bytes, len), total_len, close); + if (pair.first) { + uwsRes->getHttpResponseData()->onWritable = nullptr; + uwsRes->onAborted(nullptr); + } + return pair.first; } } @@ -1551,4 +1569,4 @@ extern "C" return uwsRes->getNativeHandle(); } } -}
\ No newline at end of file +} |