diff options
Diffstat (limited to '')
-rw-r--r-- | src/deps/libuwsockets.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/deps/libuwsockets.cpp b/src/deps/libuwsockets.cpp index 628d30df5..39e0e27fc 100644 --- a/src/deps/libuwsockets.cpp +++ b/src/deps/libuwsockets.cpp @@ -1,6 +1,7 @@ #include "_libusockets.h" #include <string_view> #include <uws/src/App.h> +#include <uws/uSockets/src/internal/internal.h> extern "C" { @@ -794,9 +795,12 @@ void uws_res_write_header_int(int ssl, uws_res_t *res, const char *key, void uws_res_end_without_body(int ssl, uws_res_t *res) { if (ssl) { uWS::HttpResponse<true> *uwsRes = (uWS::HttpResponse<true> *)res; + uwsRes->setWriteOffset(0); uwsRes->endWithoutBody(0); } else { + uWS::HttpResponse<false> *uwsRes = (uWS::HttpResponse<false> *)res; + uwsRes->setWriteOffset(0); uwsRes->endWithoutBody(0); } } @@ -1011,6 +1015,23 @@ void uws_res_uncork(int ssl, uws_res_t *res) { // } } +void us_socket_mark_needs_more_not_ssl(uws_res_t *res) { + us_socket_t *s = (us_socket_t *)res; + s->context->loop->data.last_write_failed = 1; + us_poll_change(&s->p, s->context->loop, + LIBUS_SOCKET_READABLE | LIBUS_SOCKET_WRITABLE); +} + +void uws_res_set_write_offset(int ssl, uws_res_t *res, size_t off) { + if (ssl) { + uWS::HttpResponse<true> *uwsRes = (uWS::HttpResponse<true> *)res; + uwsRes->setWriteOffset(off); + } else { + uWS::HttpResponse<false> *uwsRes = (uWS::HttpResponse<false> *)res; + uwsRes->setWriteOffset(off); + } +} + void uws_res_cork(int ssl, uws_res_t *res, void *ctx, void (*corker)(void *ctx)) { if (ssl) { |