summaryrefslogtreecommitdiff
path: root/src/HttpInitiateConnectionCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-02-22 16:01:54 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-02-22 16:01:54 +0000
commit44beebd257b0fb265bea5387850b9beb33c0adc2 (patch)
tree0ec08e4aad18ccff2d578aca1c0b3799d2716c6c /src/HttpInitiateConnectionCommand.cc
parentd027ca8e7c383e9755d6fb997e8a880df99e88b9 (diff)
parent87a229cab18679042beb06076e5dec1dcfadaeae (diff)
Tagging release 0.2.0 of aria2release-0.2.0
Diffstat (limited to 'src/HttpInitiateConnectionCommand.cc')
-rw-r--r--src/HttpInitiateConnectionCommand.cc31
1 files changed, 23 insertions, 8 deletions
diff --git a/src/HttpInitiateConnectionCommand.cc b/src/HttpInitiateConnectionCommand.cc
index e94c39c9..f3cdc655 100644
--- a/src/HttpInitiateConnectionCommand.cc
+++ b/src/HttpInitiateConnectionCommand.cc
@@ -23,7 +23,9 @@
#include "HttpRequestCommand.h"
#include "HttpProxyRequestCommand.h"
#include "Util.h"
+#include "DlAbortEx.h"
#include "message.h"
+#include "prefs.h"
HttpInitiateConnectionCommand::HttpInitiateConnectionCommand(int cuid, Request* req, DownloadEngine* e):AbstractCommand(cuid, req, e) {}
@@ -35,12 +37,18 @@ bool HttpInitiateConnectionCommand::executeInternal(Segment segment) {
Command* command;
if(useProxy()) {
e->logger->info(MSG_CONNECTING_TO_SERVER, cuid,
- e->option->get("http_proxy_host").c_str(),
- e->option->getAsInt("http_proxy_port"));
- socket->establishConnection(e->option->get("http_proxy_host"),
- e->option->getAsInt("http_proxy_port"));
- command = new HttpProxyRequestCommand(cuid, req, e, socket);
-
+ e->option->get(PREF_HTTP_PROXY_HOST).c_str(),
+ e->option->getAsInt(PREF_HTTP_PROXY_PORT));
+ socket->establishConnection(e->option->get(PREF_HTTP_PROXY_HOST),
+ e->option->getAsInt(PREF_HTTP_PROXY_PORT));
+ if(useProxyTunnel()) {
+ command = new HttpProxyRequestCommand(cuid, req, e, socket);
+ } else if(useProxyGet()) {
+ command = new HttpRequestCommand(cuid, req, e, socket);
+ } else {
+ // TODO
+ throw new DlAbortEx("ERROR");
+ }
} else {
e->logger->info(MSG_CONNECTING_TO_SERVER, cuid, req->getHost().c_str(),
req->getPort());
@@ -52,6 +60,13 @@ bool HttpInitiateConnectionCommand::executeInternal(Segment segment) {
}
bool HttpInitiateConnectionCommand::useProxy() {
- return e->option->defined("http_proxy_enabled") &&
- e->option->get("http_proxy_enabled") == "true";
+ return e->option->get(PREF_HTTP_PROXY_ENABLED) == V_TRUE;
+}
+
+bool HttpInitiateConnectionCommand::useProxyGet() {
+ return e->option->get(PREF_HTTP_PROXY_METHOD) == V_GET;
+}
+
+bool HttpInitiateConnectionCommand::useProxyTunnel() {
+ return e->option->get(PREF_HTTP_PROXY_METHOD) == V_TUNNEL;
}