summaryrefslogtreecommitdiff
path: root/src/HttpRequest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-01-29 23:19:10 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-01-29 23:19:10 +0900
commit1b9329c67c3fdacba048b529a6ad4245b8cefb0c (patch)
treee5773f88fe11b53a79684eb83354d72bb1cd1f84 /src/HttpRequest.cc
parent7a6ec762ef44376d209ab20275dd78d468d7af3e (diff)
Accept HTTP 304 reply as success when If-None-Match request-header
field is specified using --header option. When --conditional-get is used, --allow-overwrite is now required to overwrite existing file.
Diffstat (limited to 'src/HttpRequest.cc')
-rw-r--r--src/HttpRequest.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc
index 6f9b155f..2c0839cd 100644
--- a/src/HttpRequest.cc
+++ b/src/HttpRequest.cc
@@ -322,6 +322,11 @@ void HttpRequest::addHeader(const std::string& headersString)
headers_.insert(headers_.end(), headers.begin(), headers.end());
}
+void HttpRequest::clearHeader()
+{
+ headers_.clear();
+}
+
void HttpRequest::addAcceptType(const std::string& type)
{
acceptTypes_.push_back(type);
@@ -431,4 +436,20 @@ void HttpRequest::setIfModifiedSinceHeader(const std::string& hd)
ifModSinceHeader_ = hd;
}
+bool HttpRequest::conditionalRequest() const
+{
+ if(!ifModSinceHeader_.empty()) {
+ return true;
+ }
+ for(std::vector<std::string>::const_iterator i = headers_.begin(),
+ eoi = headers_.end(); i != eoi; ++i) {
+ std::string hd = util::toLower(*i);
+ if(util::startsWith(hd, "if-modified-since") ||
+ util::startsWith(hd, "if-none-match")) {
+ return true;
+ }
+ }
+ return false;
+}
+
} // namespace aria2