diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-05-05 08:25:41 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-05-05 08:25:41 +0000 |
| commit | f596de9eec5ea01a28b7ee5d632164d8b41221ec (patch) | |
| tree | 103c6866eea996f9ab9b31cf3b804eaeb9cf849b /src/HttpRequest.cc | |
| parent | b892b54e4b5847ca848a4fda555d4f79d86404e2 (diff) | |
2008-05-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Reimplemented transparent metalink using Accept request header.
* src/HttpRequest.cc
* src/HttpRequest.h
* src/HttpRequestCommand.cc
* src/Metalink2RequestGroup.cc
* src/RequestGroup.cc
* src/RequestGroup.h
* test/HttpRequestTest.cc
Diffstat (limited to 'src/HttpRequest.cc')
| -rw-r--r-- | src/HttpRequest.cc | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc index 70e281da..ab260a46 100644 --- a/src/HttpRequest.cc +++ b/src/HttpRequest.cc @@ -44,6 +44,7 @@ #include "prefs.h" #include "AuthConfigFactory.h" #include "AuthConfig.h" +#include "a2functional.h" #include <numeric> namespace aria2 { @@ -145,11 +146,17 @@ std::string HttpRequest::createRequest() const } requestLine += std::string(" HTTP/1.1\r\n")+ - "User-Agent: "+userAgent+"\r\n"+ - "Accept: */*\r\n"+ /* */ + "User-Agent: "+userAgent+"\r\n"; + + requestLine += + std::accumulate(_acceptTypes.begin(), _acceptTypes.end(), + std::string("Accept: */*"), Concat(","))+"\r\n"; /* */ + + requestLine += "Host: "+getHostText(getHost(), getPort())+"\r\n"+ "Pragma: no-cache\r\n"+ "Cache-Control: no-cache\r\n"; + if(!request->isKeepAliveEnabled() && !request->isPipeliningEnabled()) { requestLine += "Connection: close\r\n"; } @@ -232,6 +239,11 @@ void HttpRequest::addHeader(const std::string& headersString) _headers.insert(_headers.end(), headers.begin(), headers.end()); } +void HttpRequest::addAcceptType(const std::string& type) +{ + _acceptTypes.push_back(type); +} + void HttpRequest::configure(const Option* option) { authEnabled = option->get(PREF_HTTP_AUTH_ENABLED) == V_TRUE; |
