| 330 static int client_process(HttpClient *client, Event *event) { |
330 static int client_process(HttpClient *client, Event *event) { |
| 331 client->last_event = event; |
331 client->last_event = event; |
| 332 if(client->stage < 0) { |
332 if(client->stage < 0) { |
| 333 return 0; |
333 return 0; |
| 334 } |
334 } |
| |
335 log_ereport(LOG_INFORM, "client_process %d", client->stage); |
| 335 |
336 |
| 336 if(client->stage == 0) { |
337 if(client->stage == 0) { |
| 337 if(client->transfer_buffer_pos < client->transfer_buffer_len) { |
338 if(client->transfer_buffer_pos < client->transfer_buffer_len) { |
| 338 if(client_send_buf(client)) { |
339 if(client_send_buf(client)) { |
| 339 return client->error == 0; |
340 return client->error == 0; |
| 789 static int client_write_response(HttpClient *client) { |
790 static int client_write_response(HttpClient *client) { |
| 790 while(client->transfer2_buffer_pos < client->transfer2_buffer_len) { |
791 while(client->transfer2_buffer_pos < client->transfer2_buffer_len) { |
| 791 char *buf = client->transfer2_buffer + client->transfer2_buffer_pos; |
792 char *buf = client->transfer2_buffer + client->transfer2_buffer_pos; |
| 792 size_t len = client->transfer2_buffer_len - client->transfer2_buffer_pos; |
793 size_t len = client->transfer2_buffer_len - client->transfer2_buffer_pos; |
| 793 int ret = client->response_body_write(client, buf, len, client->response_body_write_userdata); |
794 int ret = client->response_body_write(client, buf, len, client->response_body_write_userdata); |
| |
795 log_ereport(LOG_INFORM, "client_write_response: %d bytes; ret: %d", (int)len, ret); |
| 794 if(ret > 0) { |
796 if(ret > 0) { |
| 795 client->transfer2_buffer_pos += ret; |
797 client->transfer2_buffer_pos += ret; |
| 796 } else if(ret == 0) { |
798 } else if(ret == 0) { |
| 797 // EOF? |
799 // EOF? |
| 798 // check if the write is incomplete, which would be an error |
800 // check if the write is incomplete, which would be an error |