summaryrefslogtreecommitdiff
path: root/src/FileEntry.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-08-07 20:46:04 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-08-07 20:46:04 +0900
commit7368c9c9d8515232204d3708a3e2233454368aec (patch)
tree711691b54ea9fc1e09ab730cc856d70622684d62 /src/FileEntry.cc
parent491e8bc519fc1c7462321b9cff5719d18e812ac6 (diff)
Percent-encode non-printable ASCII and non-ASCII chars in FileEntry.
Percent-encode non-printable ASCII and non-ASCII chars in URI using util::percentEncodeMini() when URI is added to FileEntry. Removed percent-encode from Request. Also do percent-encoding when setting referer and redirected URI.
Diffstat (limited to 'src/FileEntry.cc')
-rw-r--r--src/FileEntry.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/FileEntry.cc b/src/FileEntry.cc
index 3fa5a900..f214a015 100644
--- a/src/FileEntry.cc
+++ b/src/FileEntry.cc
@@ -155,7 +155,7 @@ FileEntry::getRequest
req.reset();
continue;
}
- req->setReferer(referer);
+ req->setReferer(util::percentEncodeMini(referer));
req->setMethod(method);
spentUris_.push_back(uri);
inFlightRequests_.push_back(req);
@@ -518,8 +518,9 @@ size_t FileEntry::setUris(const std::vector<std::string>& uris)
bool FileEntry::addUri(const std::string& uri)
{
uri::UriStruct us;
- if(uri::parse(us, uri)) {
- uris_.push_back(uri);
+ std::string peUri = util::percentEncodeMini(uri);
+ if(uri::parse(us, peUri)) {
+ uris_.push_back(peUri);
return true;
} else {
return false;
@@ -529,9 +530,10 @@ bool FileEntry::addUri(const std::string& uri)
bool FileEntry::insertUri(const std::string& uri, size_t pos)
{
uri::UriStruct us;
- if(uri::parse(us, uri)) {
+ std::string peUri = util::percentEncodeMini(uri);
+ if(uri::parse(us, peUri)) {
pos = std::min(pos, uris_.size());
- uris_.insert(uris_.begin()+pos, uri);
+ uris_.insert(uris_.begin()+pos, peUri);
return true;
} else {
return false;