From c7fb678e6ee03f1bbfb39c820710c0bf76eb965a Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Tue, 4 Nov 2008 14:08:26 +0000 Subject: 2008-11-04 Tatsuhiro Tsujikawa Deprecated --http-proxy-user and --http-proxy-passwd options. Added --https-proxy, --ftp-proxy and --all-proxy options. Above 3 options and --http-proxy option can handle proxy in URL format like: http://user:passwd@host:port. If a proxy requires user/password, they must be specified in a URL. Deprecated --ftp-via-http-proxy option. Use --http-proxy-method option instead. * src/AbstractCommand.cc * src/AbstractCommand.h * src/AbstractProxyRequestCommand.cc * src/AbstractProxyRequestCommand.h * src/AuthConfigFactory.cc * src/AuthConfigFactory.h * src/FtpFinishDownloadCommand.cc * src/FtpInitiateConnectionCommand.cc * src/FtpInitiateConnectionCommand.h * src/FtpNegotiationCommand.cc * src/FtpTunnelRequestCommand.cc * src/FtpTunnelRequestCommand.h * src/HttpDownloadCommand.cc * src/HttpInitiateConnectionCommand.cc * src/HttpInitiateConnectionCommand.h * src/HttpProxyRequestCommand.cc * src/HttpProxyRequestCommand.h * src/HttpRequest.cc * src/HttpRequest.h * src/HttpRequestCommand.cc * src/HttpRequestCommand.h * src/HttpSkipResponseCommand.cc * src/InitiateConnectionCommand.cc * src/InitiateConnectionCommand.h * src/OptionHandlerFactory.cc * src/OptionHandlerImpl.h * src/Request.cc * src/option_processing.cc * src/prefs.cc * src/prefs.h * src/usage_text.h * test/AuthConfigFactoryTest.cc * test/HttpRequestTest.cc * test/OptionHandlerTest.cc --- src/HttpInitiateConnectionCommand.cc | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src/HttpInitiateConnectionCommand.cc') diff --git a/src/HttpInitiateConnectionCommand.cc b/src/HttpInitiateConnectionCommand.cc index 84d8c6d6..8732c8bf 100644 --- a/src/HttpInitiateConnectionCommand.cc +++ b/src/HttpInitiateConnectionCommand.cc @@ -46,6 +46,7 @@ #include "Socket.h" #include "message.h" #include "prefs.h" +#include "A2STR.h" namespace aria2 { @@ -59,22 +60,25 @@ HttpInitiateConnectionCommand::HttpInitiateConnectionCommand HttpInitiateConnectionCommand::~HttpInitiateConnectionCommand() {} Command* HttpInitiateConnectionCommand::createNextCommand -(const std::deque& resolvedAddresses) +(const std::deque& resolvedAddresses, + const SharedHandle& proxyRequest) { Command* command; - if(useHTTPProxy()) { + if(!proxyRequest.isNull()) { logger->info(MSG_CONNECTING_TO_SERVER, cuid, - e->option->get(PREF_HTTP_PROXY_HOST).c_str(), - e->option->getAsInt(PREF_HTTP_PROXY_PORT)); + proxyRequest->getHost().c_str(), proxyRequest->getPort()); socket.reset(new SocketCore()); socket->establishConnection(resolvedAddresses.front(), - e->option->getAsInt(PREF_HTTP_PROXY_PORT)); + proxyRequest->getPort()); if(useProxyTunnel()) { - command = new HttpProxyRequestCommand(cuid, req, _requestGroup, e, socket); + command = new HttpProxyRequestCommand(cuid, req, _requestGroup, e, + proxyRequest, socket); } else if(useProxyGet()) { SharedHandle httpConnection(new HttpConnection(cuid, socket, e->option)); - command = new HttpRequestCommand(cuid, req, _requestGroup, - httpConnection, e, socket); + HttpRequestCommand* c = new HttpRequestCommand(cuid, req, _requestGroup, + httpConnection, e, socket); + c->setProxyRequest(proxyRequest); + command = c; } else { // TODO throw DlAbortEx("ERROR"); -- cgit