On Wed, Mar 04, 2015 at 09:52:36AM +0100, Vincent Lasselin wrote: > One example of an unsuccessfull connection with https.
Thanks! Please try this patch. -- Alexander.
diff --git a/src/Http.cc b/src/Http.cc index 9705f36..de01b40 100644 --- a/src/Http.cc +++ b/src/Http.cc @@ -414,10 +414,14 @@ void Http::SendBasicAuth(const char *tag,const char *user,const char *pass) SendBasicAuth(tag,xstring::cat(user,":",pass,NULL)); } -void Http::SendAuth() +void Http::SendProxyAuth() { if(proxy && proxy_user && proxy_pass) SendBasicAuth("Proxy-Authorization",proxy_user,proxy_pass); +} + +void Http::SendAuth() +{ if(user && pass && !(hftp && !QueryBool("use-authorization",proxy))) SendBasicAuth("Authorization",user,pass); else if(!hftp) @@ -736,6 +740,8 @@ void Http::SendRequest(const char *connection,const char *f) Send("Destination: %s\r\n",GetFileURL(file1)); } } + if(proxy && !https) + SendProxyAuth(); SendAuth(); if(no_cache || no_cache_this) Send("Pragma: no-cache\r\n"); // for HTTP/1.0 compatibility @@ -1322,7 +1328,9 @@ int Http::Do() AppendHostEncoded(ehost,hostname); const char *port_to_use=portname?portname.get():HTTPS_DEFAULT_PORT; const char *eport=url::encode(port_to_use,URL_PORT_UNSAFE); - Send("CONNECT %s:%s HTTP/1.1\r\n\r\n",ehost.get(),eport); + Send("CONNECT %s:%s HTTP/1.1\r\n",ehost.get(),eport); + SendProxyAuth(); + Send("\r\n"); tunnel_state=TUNNEL_WAITING; state=RECEIVING_HEADER; return MOVED; diff --git a/src/Http.h b/src/Http.h index fdcecb4..e377a0d 100644 --- a/src/Http.h +++ b/src/Http.h @@ -86,6 +86,7 @@ class Http : public NetAccess xstring special_data; void DirFile(xstring& path,const xstring& ecwd,const xstring& efile) const; void SendAuth(); + void SendProxyAuth(); void SendCacheControl(); void SendBasicAuth(const char *tag,const char *auth); void SendBasicAuth(const char *tag,const char *u,const char *p);
_______________________________________________ lftp mailing list lftp@uniyar.ac.ru http://univ.uniyar.ac.ru/mailman/listinfo/lftp