MCPcopy Create free account
hub / github.com/alibaba/PhotonLibOS / chunked_handler_pt

Function chunked_handler_pt

net/http/test/server_function_test.cpp:215–242  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

213}
214std::vector<int> rec;
215int chunked_handler_pt(void*, net::ISocketStream* sock) {
216 EXPECT_NE(nullptr, sock);
217 LOG_DEBUG("Accepted");
218 char recv[4096];
219 auto len = sock->recv(recv, 4096);
220 EXPECT_GT(len, 0);
221 LOG_INFO("source server recv request, len:", len);
222 LOG_INFO("req:", std::string_view(recv, len));
223 auto ret = sock->write(header_data, sizeof(header_data) - 1);
224 EXPECT_EQ(sizeof(header_data) - 1, ret);
225 size_t offset = 0;
226 rec.clear();
227 while (offset < std_data_size) {
228 auto remain = std_data_size - offset;
229 if (remain <= 1024) {
230 rec.push_back(remain);
231 chunked_send(offset, remain, sock);
232 break;
233 }
234 auto max_seg = std::min(remain - 1024, 2 * 4 * 1024UL);
235 auto seg = 1024 + rand() % max_seg;
236 chunked_send(offset, seg, sock);
237 rec.push_back(seg);
238 offset += seg;
239 }
240 sock->write("0\r\n\r\n", 5);
241 return 0;
242}
243
244int test_director(void* src_, Request& src, Request& dst) {
245 auto source_server = (ISocketServer*)src_;

Callers

nothing calls this directly

Calls 6

minFunction · 0.85
chunked_sendFunction · 0.70
recvMethod · 0.45
writeMethod · 0.45
clearMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected