diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-06-18 00:15:23 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-06-18 00:15:23 +0900 |
| commit | f022444d812f32ffd47f135cb9f4eb833a9e5fb7 (patch) | |
| tree | 24c3351c6a031fe468d369047bcced62199e33a6 /src/Request.cc | |
| parent | 4a106e7fcf9dbc04525dcc0ac245d9afd42cc23e (diff) | |
Join URI on redirect
Diffstat (limited to 'src/Request.cc')
| -rw-r--r-- | src/Request.cc | 12 |
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); |
