Skip to content

Commit ffe9962

Browse files
committed
UPD | tls recv max is 1.5gbs using 4k slices
1 parent f86de61 commit ffe9962

File tree

4 files changed

+31
-3
lines changed

4 files changed

+31
-3
lines changed

main.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,33 @@ int main () {
200200
}
201201
});
202202

203+
router.POST ("/uploadtest", [] (manapi::net::http::request &req, manapi::net::http::response &resp)
204+
-> manapi::future<> {
205+
co_return resp.callback_stream([&req] (manapi::net::http::response::resp_stream_cb cb) -> manapi::future<> {
206+
ssize_t result = 0;
207+
auto c = std::chrono::steady_clock::now();
208+
try {
209+
co_await req.callback_sync([&c, &result, &cb] (const char *buffer, ssize_t size, bool fin)
210+
-> ssize_t {
211+
result += size;
212+
if (c + std::chrono::seconds (1) <= std::chrono::steady_clock::now()) {
213+
auto a = std::format("{}\n", (double)result / 1024 / 1024);
214+
result = 0;
215+
c = std::chrono::steady_clock::now();
216+
std::cout << a << "\n";
217+
}
218+
return size;
219+
});
220+
}
221+
catch (std::exception const &e) {
222+
std::cout << e.what() << "\n";
223+
}
224+
auto bb = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - c);
225+
std::string err = std::format("{}\n", ((double)result / 1024 / 1024) / ((double)bb.count()/1000));
226+
co_await cb(err.data(), err.size(), true);
227+
});
228+
});
229+
203230
router.POST ("/upload", [] (manapi::net::http::request &req, manapi::net::http::response &resp)
204231
-> manapi::future<> {
205232
ssize_t result = 0;

src/worker/HTTPv3_cloudflare_quiche.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -767,7 +767,7 @@ void manapi::net::worker::http_v3_cloudflare_quiche::feed_event(const shared_con
767767
this->feed_event_read_ (conn, data->ev_callback.get(), &data->top->recv, &data->top->recv_size, data->flags, flags, buff, size, p);
768768
}
769769
}
770-
else {
770+
else if (data->ev_callback) {
771771
data->ev_callback->operator()(conn, flags, buff, size, p);
772772
}
773773
}

src/worker/TCP.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ void manapi::net::worker::TCP::feed_event(const shared_conn &conn, int flags, co
432432
this->feed_event_read_ (conn, data->ev_callback.get(), &data->top->recv, &data->top->recv_size, data->status, flags, buff, size, p);
433433
}
434434
}
435-
else {
435+
else if (data->ev_callback) {
436436
data->ev_callback->operator()(conn, flags, buff, size, p);
437437
}
438438
}

src/worker/TLS.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,8 @@ int manapi::net::worker::TLS::ssl_flush_recv(const shared_conn &conn, connection
670670

671671
try {
672672
while (top->last_deque
673-
&& data->status & ev::READ) {
673+
&& data->status & ev::READ
674+
&& data->ev_callback) {
674675
auto object = std::move(top->deque->buffer);
675676
top->deque = std::move(top->deque->next);
676677

0 commit comments

Comments
 (0)