On Wed, May 04, 2016 at 01:42:39PM +0100, Frederico Costa wrote: > Hi, > > Thanks for the reply. > > here is the debug output from 4.7.1, i used debug 3 command:
Please try this patch. As a workaround you can also try to specify user name (and possibly password) in the URL: open https://u...@www.mufley.com open https://user:p...@www.mufley.com -- Alexander.
diff --git a/src/Http.cc b/src/Http.cc index c4d2163..fadc98c 100644 --- a/src/Http.cc +++ b/src/Http.cc @@ -469,7 +469,7 @@ void Http::SendAuth() SendBasicAuth("Authorization",user,pass); return; } - SendAuth(HttpAuth::WWW,user,last_uri); + SendAuth(HttpAuth::WWW,user?user:auth_user,last_uri); } void Http::SendCacheControl() { @@ -1082,22 +1082,10 @@ void Http::HandleHeaderLine(const char *name,const char *value) case_hh("WWW-Authenticate",'W') { if(status_code!=H_Unauthorized) return; - const char *user=this->user; - const char *pass=this->pass; - if(!user || !pass) { - // try auth info from http:authorization setting - const char *auth_c=Query("authorization",hostname); - if(auth_c && *auth_c) { - char *auth=alloca_strdup(auth_c); - char *colon=strchr(auth,':'); - if(colon) { - *colon=0; - user=auth; - pass=colon+1; - } - } - } - NewAuth(value,HttpAuth::WWW,user,pass); + if(user && pass) + NewAuth(value,HttpAuth::WWW,user,pass); + else + NewAuth(value,HttpAuth::WWW,auth_user,auth_pass); return; } case_hh("Proxy-Authenticate",'P') { @@ -2313,6 +2301,20 @@ void Http::Reconfig(const char *name) if(!QueryBool("use-allprop",c)) allprop=""; allprop_len=strlen(allprop); + + if(!user || !pass) { + // get auth info from http:authorization setting + const char *auth_c=Query("authorization",hostname); + if(auth_c && *auth_c) { + char *auth=alloca_strdup(auth_c); + char *colon=strchr(auth,':'); + if(colon) { + *colon=0; + auth_user.set(auth); + auth_pass.set(colon+1); + } + } + } } bool Http::SameSiteAs(const FileAccess *fa) const diff --git a/src/Http.h b/src/Http.h index bea3b4d..c8a7c8e 100644 --- a/src/Http.h +++ b/src/Http.h @@ -169,6 +169,9 @@ class Http : public NetAccess void NewAuth(const char *hdr,HttpAuth::target_t target,const char *user,const char *pass); void SendAuth(HttpAuth::target_t target,const char *user,const char *uri); + xstring_c auth_user; + xstring_c auth_pass; + bool use_propfind_now; const char *allprop; int allprop_len;
_______________________________________________ lftp mailing list lftp@uniyar.ac.ru http://univ.uniyar.ac.ru/mailman/listinfo/lftp