aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFlorian Zeitz <florob@babelmonkeys.de>2011-06-14 02:04:37 +0200
committerSam Roberts <vieuxtech@gmail.com>2012-04-11 13:33:34 -0700
commit4df1618aaba49a35d5a262970b3f4773dcd0ee25 (patch)
tree42a8f83244c929e980f0d23055656881d926c635 /src
parent5065a2585c6d865f04bf7b18c4c21728ab97d8e9 (diff)
downloadluasocket-4df1618aaba49a35d5a262970b3f4773dcd0ee25.tar.gz
luasocket-4df1618aaba49a35d5a262970b3f4773dcd0ee25.tar.bz2
luasocket-4df1618aaba49a35d5a262970b3f4773dcd0ee25.zip
Adapt socket.bind() to create a IPv4 or IPv6 depending on the address given
Diffstat (limited to 'src')
-rw-r--r--src/socket.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/socket.lua b/src/socket.lua
index 211adcd..7a77fbc 100644
--- a/src/socket.lua
+++ b/src/socket.lua
@@ -29,7 +29,15 @@ function connect(address, port, laddress, lport)
29end 29end
30 30
31function bind(host, port, backlog) 31function bind(host, port, backlog)
32 local sock, err = socket.tcp() 32 if host == "*" then host = "0.0.0.0" end
33 local addrinfo, err = socket.dns.getaddrinfo(host);
34 if not addrinfo then return nil, err end
35 local sock, err;
36 if addrinfo[1].family == "inet" then
37 sock, err = socket.tcp()
38 else
39 sock, err = socket.tcp6()
40 end
33 if not sock then return nil, err end 41 if not sock then return nil, err end
34 sock:setoption("reuseaddr", true) 42 sock:setoption("reuseaddr", true)
35 local res, err = sock:bind(host, port) 43 local res, err = sock:bind(host, port)