summaryrefslogtreecommitdiff
path: root/src/HttpRequest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-04-20 06:30:44 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-04-20 06:30:44 +0000
commit3eb74629cbd0f01113bc581d486a8ec95633b4ad (patch)
tree53028931fb30d824e2226e6cfef6c51c9863c120 /src/HttpRequest.cc
parentc1c5e7369f77a1125b12ac58b8b30378858d9317 (diff)
2008-04-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added --header option. You can specify any number of additional HTTP headers like: aria2 --header="X-A: 300" --header="X-B: 900" http://host/file Unlike other commad-line option, you can use --header option multiple times. * src/HelpItemFactory.cc * src/HttpRequest.{cc, h} * src/HttpRequestCommand.cc * src/OptionHandlerFactory.cc * src/OptionHandlerImpl.h * src/option_processing.cc * src/prefs.h * src/usage_text.h * test/HttpRequestTest.cc (testUserHeaders)
Diffstat (limited to 'src/HttpRequest.cc')
-rw-r--r--src/HttpRequest.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc
index 9d43902d..da2db386 100644
--- a/src/HttpRequest.cc
+++ b/src/HttpRequest.cc
@@ -44,6 +44,7 @@
#include "prefs.h"
#include "AuthConfigFactory.h"
#include "AuthConfig.h"
+#include <numeric>
namespace aria2 {
@@ -190,6 +191,12 @@ std::string HttpRequest::createRequest() const
if(cookiesValue.size()) {
requestLine += std::string("Cookie: ")+cookiesValue+"\r\n";
}
+ // append additional headers given by user.
+ for(std::deque<std::string>::const_iterator i = _userHeaders.begin();
+ i != _userHeaders.end(); ++i) {
+ requestLine += (*i)+"\r\n";
+ }
+
requestLine += "\r\n";
return requestLine;
}
@@ -218,6 +225,13 @@ std::string HttpRequest::getProxyAuthString() const {
Base64::encode(AuthConfigFactorySingleton::instance()->createAuthConfigForHttpProxy(request)->getAuthText())+"\r\n";
}
+void HttpRequest::setUserHeaders(const std::string& userHeadersString)
+{
+ std::deque<std::string> headers;
+ Util::slice(headers, userHeadersString, '\n', true);
+ _userHeaders = headers;
+}
+
void HttpRequest::configure(const Option* option)
{
authEnabled = option->get(PREF_HTTP_AUTH_ENABLED) == V_TRUE;