Mercurial
comparison seobeo/s_http_client.c @ 163:058de208e640
[Config] Adding os ignore files.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Mon, 19 Jan 2026 04:52:02 -0800 |
| parents | c39582f937e5 |
| children | f3084bca7317 |
comparison
equal
deleted
inserted
replaced
| 162:8ceb5d3c6bdd | 163:058de208e640 |
|---|---|
| 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); | 234 p_resp->p_arena = Dowa_Arena_Create(1024 * 1024 * 5); // 5 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 } |
| 240 | 240 |
| 241 while (1) | 241 while (TRUE) |
| 242 { | 242 { |
| 243 int r = Seobeo_Handle_Read(p_handle); | 243 int r = Seobeo_Handle_Read(p_handle); |
| 244 if (r < 0) | 244 if (r < 0) |
| 245 return p_resp; | 245 return p_resp; |
| 246 if (r == -2) | 246 if (r == -2) |
| 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 * 8; | 394 size_t cap = 1024 * 1024 * 3; |
| 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); | |
| 417 } | 418 } |
| 418 Seobeo_Handle_Consume(p_handle, (uint32)p_handle->read_buffer_len); | 419 Seobeo_Handle_Consume(p_handle, (uint32)p_handle->read_buffer_len); |
| 419 } | 420 } |
| 420 else if (n == -2) | 421 else if (n == -2) |
| 421 break; | 422 break; |