diff options
author | Kim Alvefur <zash@zash.se> | 2013-12-23 17:57:53 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2013-12-23 17:57:53 +0100 |
commit | 24056ae3ad82a08483ac2449f1c36923a26358fa (patch) | |
tree | 3d7304efa0bb54dab83cad5bf127e08fa61219c2 /net/server_event.lua | |
parent | ae81ea6edae7c3b151aa831324ff5d80fbc238fa (diff) | |
download | prosody-24056ae3ad82a08483ac2449f1c36923a26358fa.tar.gz prosody-24056ae3ad82a08483ac2449f1c36923a26358fa.zip |
net.server_{select,event}: addclient: Use getaddrinfo to detect IP address type if no socket type argument given. (Argument must be given for non-TCP)
Diffstat (limited to 'net/server_event.lua')
-rw-r--r-- | net/server_event.lua | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/server_event.lua b/net/server_event.lua index bc67d175..6c8a7632 100644 --- a/net/server_event.lua +++ b/net/server_event.lua @@ -46,6 +46,7 @@ local t_concat = table.concat local has_luasec, ssl = pcall ( require , "ssl" ) local socket = use "socket" or require "socket" +local getaddrinfo = socket.dns.getaddrinfo local log = require ("util.logger").init("socket") @@ -748,7 +749,13 @@ do return nil, "luasec not found" end if not typ then - typ = "tcp" + local addrinfo, err = getaddrinfo(addr) + if not addrinfo then return nil, err end + if addrinfo[1] and addrinfo[1].family == "inet6" then + typ = "tcp6" + else + typ = "tcp" + end end local create = socket[typ] if type( create ) ~= "function" then |