From f596de9eec5ea01a28b7ee5d632164d8b41221ec Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 5 May 2008 08:25:41 +0000 Subject: 2008-05-05 Tatsuhiro Tsujikawa 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 --- src/HttpRequestCommand.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/HttpRequestCommand.cc') 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& req, const SharedHandle& segment, uint64_t totalLength, const Option* option, - const std::deque& acceptFeatures) + const RequestGroup* rg) { HttpRequestHandle httpRequest(new HttpRequest()); httpRequest->setUserAgent(option->get(PREF_USER_AGENT)); @@ -79,7 +79,8 @@ createHttpRequest(const SharedHandle& req, httpRequest->setSegment(segment); httpRequest->setEntityLength(totalLength); httpRequest->addHeader(option->get(PREF_HEADER)); - if(acceptFeatures.size()) { + if(rg->getAcceptFeatures().size()) { + const std::deque& acceptFeatures = rg->getAcceptFeatures(); std::string acceptFeaturesHeader = "Accept-Features: "+ Util::trim (std::accumulate(acceptFeatures.begin()+1, acceptFeatures.end(), @@ -88,6 +89,8 @@ createHttpRequest(const SharedHandle& 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(), _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); } } -- cgit