static void uclient_http_init_request(struct uclient_http *uh)
{
+ uh->seq++;
uclient_http_reset_state(uh);
blob_buf_init(&uh->meta, 0);
}
if (uh->state >= HTTP_STATE_HEADERS_SENT)
return;
+ if (uh->uc.proxy_url)
+ url = uh->uc.proxy_url;
+
ustream_printf(uh->us,
"%s %s HTTP/1.1\r\n"
"Host: %s\r\n",
static void uclient_http_headers_complete(struct uclient_http *uh)
{
enum auth_type auth_type = uh->auth_type;
+ int seq = uh->uc.seq;
uh->state = HTTP_STATE_RECV_DATA;
uh->uc.meta = uh->meta.head;
if (uh->uc.cb->header_done)
uh->uc.cb->header_done(&uh->uc);
- if (uh->eof)
+ if (uh->eof || seq != uh->uc.seq)
return;
if (uh->req_type == REQ_HEAD || uh->uc.status_code == 204) {
.connect = uclient_http_connect,
.disconnect = uclient_http_request_disconnect,
.update_url = uclient_http_free_url_state,
+ .update_proxy_url = uclient_http_free_url_state,
.read = uclient_http_read,
.write = uclient_http_send_data,