summaryrefslogtreecommitdiff
path: root/src/FtpInitiateConnectionCommand.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/FtpInitiateConnectionCommand.cc')
-rw-r--r--src/FtpInitiateConnectionCommand.cc17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/FtpInitiateConnectionCommand.cc b/src/FtpInitiateConnectionCommand.cc
index d9547610..7eced52a 100644
--- a/src/FtpInitiateConnectionCommand.cc
+++ b/src/FtpInitiateConnectionCommand.cc
@@ -52,6 +52,8 @@
#include "Socket.h"
#include "DownloadContext.h"
#include "util.h"
+#include "AuthConfigFactory.h"
+#include "AuthConfig.h"
namespace aria2 {
@@ -73,9 +75,16 @@ Command* FtpInitiateConnectionCommand::createNextCommand
Command* command;
if(!proxyRequest.isNull()) {
std::map<std::string, std::string> options;
- SharedHandle<SocketCore> pooledSocket =
- e->popPooledSocket(options, req->getHost(), req->getPort());
+ SharedHandle<SocketCore> pooledSocket;
std::string proxyMethod = resolveProxyMethod(req->getProtocol());
+ if(proxyMethod == V_GET) {
+ pooledSocket = e->popPooledSocket(req->getHost(), req->getPort());
+ } else {
+ pooledSocket = e->popPooledSocket
+ (options, req->getHost(), req->getPort(),
+ e->getAuthConfigFactory()->createAuthConfig
+ (req, getOption().get())->getUser());
+ }
if(pooledSocket.isNull()) {
if(logger->info()) {
logger->info(MSG_CONNECTING_TO_SERVER,
@@ -133,7 +142,9 @@ Command* FtpInitiateConnectionCommand::createNextCommand
} else {
std::map<std::string, std::string> options;
SharedHandle<SocketCore> pooledSocket =
- e->popPooledSocket(options, resolvedAddresses, req->getPort());
+ e->popPooledSocket(options, resolvedAddresses, req->getPort(),
+ e->getAuthConfigFactory()->createAuthConfig
+ (req, getOption().get())->getUser());
if(pooledSocket.isNull()) {
if(logger->info()) {
logger->info(MSG_CONNECTING_TO_SERVER,