http.lua: if default for scheme, omit port number in "Host:" header

This commit is contained in:
E. Westbrook 2018-07-12 11:07:20 -06:00
parent 144fa01c2f
commit 686f2ce822

View File

@ -27,9 +27,13 @@ _M.TIMEOUT = 60
_M.USERAGENT = socket._VERSION _M.USERAGENT = socket._VERSION
-- supported schemes -- supported schemes
local SCHEMES = { ["http"] = true } local SCHEMES = {
-- default port for document retrieval http = { port = 80 }
local PORT = 80 , https = { port = 443 }}
-- default scheme and port for document retrieval
local SCHEME = 'http'
local PORT = SCHEMES[SCHEME].port
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Reads MIME headers from a connection, unfolding where needed -- Reads MIME headers from a connection, unfolding where needed
@ -212,10 +216,14 @@ end
local function adjustheaders(reqt) local function adjustheaders(reqt)
-- default headers -- default headers
local host = string.gsub(reqt.authority, "^.-@", "") local headhost = reqt.host
local headport = tostring(reqt.port)
local schemeport = tostring(SCHEMES[reqt.scheme].port)
if headport ~= schemeport then
headhost = headhost .. ':' .. headport end
local lower = { local lower = {
["user-agent"] = _M.USERAGENT, ["user-agent"] = _M.USERAGENT,
["host"] = host, ["host"] = headhost,
["connection"] = "close, TE", ["connection"] = "close, TE",
["te"] = "trailers" ["te"] = "trailers"
} }
@ -246,7 +254,7 @@ local default = {
host = "", host = "",
port = PORT, port = PORT,
path ="/", path ="/",
scheme = "http" scheme = SCHEME
} }
local function adjustrequest(reqt) local function adjustrequest(reqt)