diff --git a/ChangeLog b/ChangeLog index 3565a1b8..74f5ae79 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-10-09 Tatsuhiro Tsujikawa + + Fixed the bug that last character in URI is not encoded. + * src/Request.cc + * test/RequestTest.cc + 2008-10-09 Tatsuhiro Tsujikawa Fixed the bug that referer header field contains fragment. diff --git a/src/Request.cc b/src/Request.cc index 2b620cb6..1fc5ad71 100644 --- a/src/Request.cc +++ b/src/Request.cc @@ -96,10 +96,8 @@ static std::string urlencode(const std::string& src) if(src.empty()) { return result; } - size_t lastIndex = src.size()-1; result += " "; - size_t index = lastIndex; - while(index-- > 0) { + for(int index = src.size()-1; index >= 0; --index) { const unsigned char c = result[index]; // '/' is not urlencoded because src is expected to be a path. if(Util::shouldUrlencode(c)) { diff --git a/test/RequestTest.cc b/test/RequestTest.cc index e5c8925f..20ef893b 100644 --- a/test/RequestTest.cc +++ b/test/RequestTest.cc @@ -264,15 +264,15 @@ void RequestTest::testSetUrl16() void RequestTest::testSetUrl17() { Request req; - bool v = req.setUrl("http://host:80/file