From 4dbfd149c2ae2361fa7d1da633bdda6992902f7f Mon Sep 17 00:00:00 2001 From: XieHan Date: Thu, 28 Jan 2021 23:39:18 +0800 Subject: [PATCH] Http redirect supports relative URI. (RFC 7231) --- src/factory/HttpTaskImpl.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/factory/HttpTaskImpl.cc b/src/factory/HttpTaskImpl.cc index bb0aae56..8baba64c 100644 --- a/src/factory/HttpTaskImpl.cc +++ b/src/factory/HttpTaskImpl.cc @@ -277,6 +277,19 @@ bool ComplexHttpTask::redirect_url(HttpResponse *client_resp) return false; } + if (url[0] == '/') + { + if (url[1] != '/') + { + if (uri_.port) + url = ':' + (uri_.port + url); + + url = "//" + (uri_.host + url); + } + + url = uri_.scheme + (':' + url); + } + URIParser::parse(url, uri_); return true; }