mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
http: Fix authentication, broken since 6a463e7fb
The cur_*auth_type variables were set before the http_connect call
prior to 6a463e7fb
- their sole purpose is to record the
authentication type used to do the latest request, since parsing
the http response sets the new type in the auth state.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
db68ef898a
commit
4e629ef80e
@ -201,14 +201,14 @@ static int http_open_cnx(URLContext *h, AVDictionary **options)
|
|||||||
HTTPContext *s = h->priv_data;
|
HTTPContext *s = h->priv_data;
|
||||||
int location_changed, attempts = 0, redirects = 0;
|
int location_changed, attempts = 0, redirects = 0;
|
||||||
redo:
|
redo:
|
||||||
|
cur_auth_type = s->auth_state.auth_type;
|
||||||
|
cur_proxy_auth_type = s->auth_state.auth_type;
|
||||||
|
|
||||||
location_changed = http_open_cnx_internal(h, options);
|
location_changed = http_open_cnx_internal(h, options);
|
||||||
if (location_changed < 0)
|
if (location_changed < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
attempts++;
|
attempts++;
|
||||||
cur_auth_type = s->auth_state.auth_type;
|
|
||||||
cur_proxy_auth_type = s->auth_state.auth_type;
|
|
||||||
|
|
||||||
if (s->http_code == 401) {
|
if (s->http_code == 401) {
|
||||||
if ((cur_auth_type == HTTP_AUTH_NONE || s->auth_state.stale) &&
|
if ((cur_auth_type == HTTP_AUTH_NONE || s->auth_state.stale) &&
|
||||||
s->auth_state.auth_type != HTTP_AUTH_NONE && attempts < 4) {
|
s->auth_state.auth_type != HTTP_AUTH_NONE && attempts < 4) {
|
||||||
|
Loading…
Reference in New Issue
Block a user