Modify http.lua to do a host lookup first, to determine the right
address family to use (previously tcp was the default).
This commit is contained in:
parent
6d5e40c324
commit
4785d9e6fc
1 changed files with 11 additions and 3 deletions
14
src/http.lua
14
src/http.lua
|
@ -107,8 +107,16 @@ end
|
|||
local metat = { __index = {} }
|
||||
|
||||
function _M.open(host, port, create)
|
||||
-- create socket with user connect function, or with default
|
||||
local c = socket.try((create or socket.tcp)())
|
||||
-- create socket with user connect function, or do a lookup to default to
|
||||
-- either tcp or tcp6 instead
|
||||
if not create then
|
||||
create = socket.tcp
|
||||
local addrinfo, err = socket.dns.getaddrinfo(host)
|
||||
if addrinfo and addrinfo[1] and addrinfo[1].family == "inet6" then
|
||||
create = socket.tcp6
|
||||
end
|
||||
end
|
||||
local c = socket.try(create())
|
||||
local h = base.setmetatable({ c = c }, metat)
|
||||
-- create finalized try
|
||||
h.try = socket.newtry(function() h:close() end)
|
||||
|
@ -353,4 +361,4 @@ _M.request = socket.protect(function(reqt, body)
|
|||
else return trequest(reqt) end
|
||||
end)
|
||||
|
||||
return _M
|
||||
return _M
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue