|
|
@@ -139,12 +139,16 @@ static int http_open_cnx(URLContext *h) |
|
|
|
} |
|
|
|
|
|
|
|
ff_url_join(buf, sizeof(buf), lower_proto, NULL, hostname, port, NULL); |
|
|
|
err = ffurl_open(&hd, buf, AVIO_FLAG_READ_WRITE, |
|
|
|
&h->interrupt_callback, NULL); |
|
|
|
if (err < 0) |
|
|
|
goto fail; |
|
|
|
|
|
|
|
s->hd = hd; |
|
|
|
if (!s->hd) { |
|
|
|
err = ffurl_open(&hd, buf, AVIO_FLAG_READ_WRITE, |
|
|
|
&h->interrupt_callback, NULL); |
|
|
|
if (err < 0) |
|
|
|
goto fail; |
|
|
|
|
|
|
|
s->hd = hd; |
|
|
|
} |
|
|
|
|
|
|
|
cur_auth_type = s->auth_state.auth_type; |
|
|
|
cur_proxy_auth_type = s->auth_state.auth_type; |
|
|
|
if (http_connect(h, path, local_path, hoststr, auth, proxyauth, &location_changed) < 0) |
|
|
@@ -187,6 +191,16 @@ static int http_open_cnx(URLContext *h) |
|
|
|
return AVERROR(EIO); |
|
|
|
} |
|
|
|
|
|
|
|
int ff_http_do_new_request(URLContext *h, const char *uri) |
|
|
|
{ |
|
|
|
HTTPContext *s = h->priv_data; |
|
|
|
|
|
|
|
s->off = 0; |
|
|
|
av_strlcpy(s->location, uri, sizeof(s->location)); |
|
|
|
|
|
|
|
return http_open_cnx(h); |
|
|
|
} |
|
|
|
|
|
|
|
static int http_open(URLContext *h, const char *uri, int flags) |
|
|
|
{ |
|
|
|
HTTPContext *s = h->priv_data; |
|
|
@@ -430,6 +444,7 @@ static int http_connect(URLContext *h, const char *path, const char *local_path, |
|
|
|
s->filesize = -1; |
|
|
|
s->willclose = 0; |
|
|
|
s->end_chunked_post = 0; |
|
|
|
s->end_header = 0; |
|
|
|
if (post) { |
|
|
|
/* Pretend that it did work. We didn't read any header yet, since |
|
|
|
* we've still to send the POST data, but the code calling this |
|
|
|