Http header host for ipv6 address must be enclosed

in square brackets. Same as is in url.

url: http://[1080:0:0:0:8:800:200C:417A]/index.html
headers.host: [1080:0:0:0:8:800:200C:417A]

url.parse removes square brackets, I rather place them back here,
than break something else depanding on url.parse
This commit is contained in:
Petr Kristan 2024-12-12 08:48:07 +01:00
parent 1fad162690
commit 9c087f6b4e

View File

@ -230,6 +230,10 @@ end
local function adjustheaders(reqt) local function adjustheaders(reqt)
-- default headers -- default headers
local host = reqt.host local host = reqt.host
--ipv6 host address must be in []
if string.find(host, "^[0-9a-fA-F:]+$") then
host = "["..host.."]"
end
local port = tostring(reqt.port) local port = tostring(reqt.port)
if port ~= tostring(SCHEMES[reqt.scheme].port) then if port ~= tostring(SCHEMES[reqt.scheme].port) then
host = host .. ':' .. port end host = host .. ':' .. port end