comparison seobeo/s_http_client.c @ 175:71ad34a8bc9a hg-web

[HgWeb] Can stream hg response now. Added react page for hg web since we use json anyway.
author MrJuneJune <me@mrjunejune.com>
date Tue, 20 Jan 2026 06:06:47 -0800
parents f3084bca7317
children
comparison
equal deleted inserted replaced
174:1ba8c1df082c 175:71ad34a8bc9a
67 if (!p_req) 67 if (!p_req)
68 return NULL; 68 return NULL;
69 69
70 memset(p_req, 0, sizeof(Seobeo_Client_Request)); 70 memset(p_req, 0, sizeof(Seobeo_Client_Request));
71 71
72 p_req->p_arena = Dowa_Arena_Create(1024 * 1024); 72 p_req->p_arena = Dowa_Arena_Create(1024 * 1024 * 5);
73 if (!p_req->p_arena) 73 if (!p_req->p_arena)
74 { 74 {
75 free(p_req); 75 free(p_req);
76 return NULL; 76 return NULL;
77 } 77 }
229 if (!p_resp) 229 if (!p_resp)
230 return NULL; 230 return NULL;
231 231
232 memset(p_resp, 0, sizeof(Seobeo_Client_Response)); 232 memset(p_resp, 0, sizeof(Seobeo_Client_Response));
233 233
234 p_resp->p_arena = Dowa_Arena_Create(1024 * 1024 * 5); // 5 MB 234 p_resp->p_arena = Dowa_Arena_Create(1024 * 1024 * 10); // 10 MB
235 if (!p_resp->p_arena) 235 if (!p_resp->p_arena)
236 { 236 {
237 free(p_resp); 237 free(p_resp);
238 return NULL; 238 return NULL;
239 } 239 }
389 p_resp->body_length = total_read; 389 p_resp->body_length = total_read;
390 } 390 }
391 } 391 }
392 else 392 else
393 { 393 {
394 size_t cap = 1024 * 1024 * 3; 394 size_t cap = 1024 * 1024 * 5;
395 size_t used = 0; 395 size_t used = 0;
396 char *body = download_path ? NULL : Dowa_Arena_Allocate(p_resp->p_arena, cap); 396 char *body = download_path ? NULL : Dowa_Arena_Allocate(p_resp->p_arena, cap);
397 397
398 while (1) 398 while (1)
399 { 399 {
412 Seobeo_Log(SEOBEO_WARNING, "Response body too large, truncating...\n"); 412 Seobeo_Log(SEOBEO_WARNING, "Response body too large, truncating...\n");
413 break; 413 break;
414 } 414 }
415 memcpy(body + used, p_handle->read_buffer, p_handle->read_buffer_len); 415 memcpy(body + used, p_handle->read_buffer, p_handle->read_buffer_len);
416 used += p_handle->read_buffer_len; 416 used += p_handle->read_buffer_len;
417 Seobeo_Log(SEOBEO_DEBUG, "Copied %zu bytes, total %zu/%zu\n", used, used + p_handle->read_buffer_len, body_len);
418 } 417 }
419 Seobeo_Handle_Consume(p_handle, (uint32)p_handle->read_buffer_len); 418 Seobeo_Handle_Consume(p_handle, (uint32)p_handle->read_buffer_len);
420 } 419 }
421 else if (n == -2) 420 else if (n == -2)
422 break; 421 break;