aboutsummaryrefslogtreecommitdiff
path: root/src/socket.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/socket.lua')
-rw-r--r--src/socket.lua34
1 files changed, 6 insertions, 28 deletions
diff --git a/src/socket.lua b/src/socket.lua
index 8c5f231..e8def75 100644
--- a/src/socket.lua
+++ b/src/socket.lua
@@ -15,34 +15,12 @@ module("socket")
15----------------------------------------------------------------------------- 15-----------------------------------------------------------------------------
16-- Exported auxiliar functions 16-- Exported auxiliar functions
17----------------------------------------------------------------------------- 17-----------------------------------------------------------------------------
18function connect(address, port, laddress, lport) 18function connect4(address, port, laddress, lport)
19 if address == "*" then address = "0.0.0.0" end 19 return socket.connect(address, port, laddress, lport, "inet")
20 local addrinfo, err = socket.dns.getaddrinfo(address); 20end
21 if not addrinfo then return nil, err end 21
22 local sock, res 22function connect6(address, port, laddress, lport)
23 err = "no info on address" 23 return socket.connect(address, port, laddress, lport, "inet6")
24 for i, alt in base.ipairs(addrinfo) do
25 if alt.family == "inet" then
26 sock, err = socket.tcp()
27 else
28 sock, err = socket.tcp6()
29 end
30 if not sock then return nil, err end
31 if laddress then
32 res, err = sock:bind(laddress, lport)
33 if not res then
34 sock:close()
35 return nil, err
36 end
37 end
38 res, err = sock:connect(alt.addr, port)
39 if not res then
40 sock:close()
41 else
42 return sock
43 end
44 end
45 return nil, err
46end 24end
47 25
48function bind(host, port, backlog) 26function bind(host, port, backlog)