Software /
code /
prosody
Diff
net/server_epoll.lua @ 9497:183ff7a8051b
net.server_epoll: Add support for the conn_type argument to addclient
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 12 Oct 2018 16:26:19 +0200 |
parent | 9477:0738f5276e0a |
child | 9498:cc593002f2e2 |
line wrap: on
line diff
--- a/net/server_epoll.lua Fri Oct 12 16:25:30 2018 +0200 +++ b/net/server_epoll.lua Fri Oct 12 16:26:19 2018 +0200 @@ -625,14 +625,22 @@ end -- New outgoing TCP connection -local function addclient(addr, port, listeners, read_size, tls_ctx) - local n = inet_pton(addr); - if not n then return nil, "invalid-ip"; end - local create - if #n == 16 then - create = socket.tcp6 or socket.tcp; - else - create = socket.tcp4 or socket.tcp; +local function addclient(addr, port, listeners, read_size, tls_ctx, typ) + local create; + if not typ then + local n = inet_pton(addr); + if not n then return nil, "invalid-ip"; end + if #n == 16 then + typ = "tcp6"; + else + typ = "tcp4"; + end + end + if typ then + create = socket[typ]; + end + if type(create) ~= "function" then + return nil, "invalid socket type"; end local conn, err = create(); conn:settimeout(0);