summaryrefslogtreecommitdiff
path: root/src/HttpRequestCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-05-05 08:25:41 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-05-05 08:25:41 +0000
commitf596de9eec5ea01a28b7ee5d632164d8b41221ec (patch)
tree103c6866eea996f9ab9b31cf3b804eaeb9cf849b /src/HttpRequestCommand.cc
parentb892b54e4b5847ca848a4fda555d4f79d86404e2 (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/HttpRequestCommand.cc')
-rw-r--r--src/HttpRequestCommand.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/HttpRequestCommand.cc b/src/HttpRequestCommand.cc
index e552007c..803f876c 100644
--- a/src/HttpRequestCommand.cc
+++ b/src/HttpRequestCommand.cc
@@ -71,7 +71,7 @@ createHttpRequest(const SharedHandle<Request>& req,
const SharedHandle<Segment>& segment,
uint64_t totalLength,
const Option* option,
- const std::deque<std::string>& acceptFeatures)
+ const RequestGroup* rg)
{
HttpRequestHandle httpRequest(new HttpRequest());
httpRequest->setUserAgent(option->get(PREF_USER_AGENT));
@@ -79,7 +79,8 @@ createHttpRequest(const SharedHandle<Request>& req,
httpRequest->setSegment(segment);
httpRequest->setEntityLength(totalLength);
httpRequest->addHeader(option->get(PREF_HEADER));
- if(acceptFeatures.size()) {
+ if(rg->getAcceptFeatures().size()) {
+ const std::deque<std::string>& acceptFeatures = rg->getAcceptFeatures();
std::string acceptFeaturesHeader = "Accept-Features: "+
Util::trim
(std::accumulate(acceptFeatures.begin()+1, acceptFeatures.end(),
@@ -88,6 +89,8 @@ createHttpRequest(const SharedHandle<Request>& req,
",");
httpRequest->addHeader(acceptFeaturesHeader);
}
+ httpRequest->addAcceptType(rg->getAcceptTypes().begin(),
+ rg->getAcceptTypes().end());
httpRequest->configure(option);
return httpRequest;
@@ -103,7 +106,7 @@ bool HttpRequestCommand::executeInternal() {
HttpRequestHandle httpRequest
(createHttpRequest(req, SharedHandle<Segment>(),
_requestGroup->getTotalLength(), e->option,
- _requestGroup->getAcceptFeatures()));
+ _requestGroup));
_httpConnection->sendRequest(httpRequest);
} else {
for(Segments::iterator itr = _segments.begin(); itr != _segments.end(); ++itr) {
@@ -112,7 +115,7 @@ bool HttpRequestCommand::executeInternal() {
HttpRequestHandle httpRequest
(createHttpRequest(req, segment,
_requestGroup->getTotalLength(), e->option,
- _requestGroup->getAcceptFeatures()));
+ _requestGroup));
_httpConnection->sendRequest(httpRequest);
}
}