summaryrefslogtreecommitdiff
path: root/src/HttpRequest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-01 13:46:03 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-01 13:46:03 +0000
commit398d53f5f5073d6bc7d4ac788ea202281f766524 (patch)
treec28aed260915c3a06d0ec90912888bcff769b4d5 /src/HttpRequest.cc
parentf670cdbba906c0d7a014e7d86026cb408b7eda30 (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.cc41
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