diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-01 13:46:03 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-01 13:46:03 +0000 |
| commit | 398d53f5f5073d6bc7d4ac788ea202281f766524 (patch) | |
| tree | c28aed260915c3a06d0ec90912888bcff769b4d5 /src/HttpRequest.cc | |
| parent | f670cdbba906c0d7a014e7d86026cb408b7eda30 (diff) | |
2008-09-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use CookieStorage class instead of CookieBox class.
Now CookieStorage accepts cookies from numeric host such as
192.168.1.1.
* src/AbstractProxyRequestCommand.cc
* src/CookieStorage.cc
* src/DownloadEngine.cc
* src/DownloadEngine.h
* src/HttpConnection.cc
* src/HttpConnection.h
* src/HttpRequest.cc
* src/HttpRequest.h
* src/HttpRequestCommand.cc
* src/HttpResponse.cc
* src/HttpResponseCommand.cc
* src/HttpSkipResponseCommand.cc
* src/Makefile.am
* src/MultiUrlRequestInfo.cc
* src/Request.cc
* src/Request.h
* src/main.cc
* test/AllTest.cc
* test/CookieStorageTest.cc
* test/CookieTest.cc
* test/HttpRequestTest.cc
* test/HttpResponseTest.cc
* test/Makefile.am
* test/NsCookieParserTest.cc
* test/Sqlite3MozCookieParserTest.cc
* test/nscookietest.txt
Diffstat (limited to 'src/HttpRequest.cc')
| -rw-r--r-- | src/HttpRequest.cc | 41 |
1 files changed, 28 insertions, 13 deletions
diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc index f0b4d89d..08235683 100644 --- a/src/HttpRequest.cc +++ b/src/HttpRequest.cc @@ -36,8 +36,7 @@ #include "Request.h" #include "Segment.h" #include "Range.h" -#include "Cookie.h" -#include "CookieBox.h" +#include "CookieStorage.h" #include "Option.h" #include "Util.h" #include "Base64.h" @@ -45,6 +44,7 @@ #include "AuthConfigFactory.h" #include "AuthConfig.h" #include "a2functional.h" +#include "TimeA2.h" #include <numeric> namespace aria2 { @@ -200,17 +200,21 @@ std::string HttpRequest::createRequest() const if(getPreviousURI().size()) { requestLine += "Referer: "+getPreviousURI()+"\r\n"; } - std::string cookiesValue; - Cookies cookies = request->cookieBox->criteriaFind(getHost(), - getDir(), - time(0), - getProtocol() == Request::PROTO_HTTPS ? - true : false); - for(Cookies::const_iterator itr = cookies.begin(); itr != cookies.end(); itr++) { - cookiesValue += (*itr).toString()+";"; - } - if(cookiesValue.size()) { - requestLine += std::string("Cookie: ")+cookiesValue+"\r\n"; + if(!_cookieStorage.isNull()) { + std::string cookiesValue; + std::deque<Cookie> cookies = + _cookieStorage->criteriaFind(getHost(), + getDir(), + Time().getTime(), + getProtocol() == Request::PROTO_HTTPS ? + true : false); + for(std::deque<Cookie>::const_iterator itr = cookies.begin(); + itr != cookies.end(); ++itr) { + cookiesValue += (*itr).toString()+";"; + } + if(!cookiesValue.empty()) { + requestLine += std::string("Cookie: ")+cookiesValue+"\r\n"; + } } // append additional headers given by user. for(std::deque<std::string>::const_iterator i = _headers.begin(); @@ -322,4 +326,15 @@ const std::string& HttpRequest::getQuery() const return request->getQuery(); } +void HttpRequest::setCookieStorage +(const SharedHandle<CookieStorage>& cookieStorage) +{ + _cookieStorage = cookieStorage; +} + +SharedHandle<CookieStorage> HttpRequest::getCookieStorage() const +{ + return _cookieStorage; +} + } // namespace aria2 |
