summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-06-18 00:15:23 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-06-18 00:15:23 +0900
commitf022444d812f32ffd47f135cb9f4eb833a9e5fb7 (patch)
tree24c3351c6a031fe468d369047bcced62199e33a6 /src
parent4a106e7fcf9dbc04525dcc0ac245d9afd42cc23e (diff)
Join URI on redirect
Diffstat (limited to 'src')
-rw-r--r--src/Request.cc12
1 files changed, 1 insertions, 11 deletions
diff --git a/src/Request.cc b/src/Request.cc
index 79b859fb..6a58c304 100644
--- a/src/Request.cc
+++ b/src/Request.cc
@@ -131,17 +131,7 @@ bool Request::redirectUri(const std::string& uri) {
// rfc2616 requires absolute URI should be provided by Location header
// field, but some servers don't obey this rule.
// UPDATE: draft-ietf-httpbis-p2-semantics-18 now allows this.
- uri::UriStruct rus(us_);
- rus.query.clear();
- rus.file.clear();
- size_t offset = 0;
- if(uri[0] == '/') {
- // abosulute path
- rus.dir.clear();
- offset = 1;
- }
- redirectedUri = uri::construct(rus);
- redirectedUri.append(uri.begin()+offset, uri.end());
+ redirectedUri = uri::joinUri(currentUri_, uri);
}
}
return parseUri(redirectedUri);