diff options
author | Florian Zeitz <florob@babelmonkeys.de> | 2011-06-14 02:04:37 +0200 |
---|---|---|
committer | Sam Roberts <vieuxtech@gmail.com> | 2012-04-11 13:33:34 -0700 |
commit | 4df1618aaba49a35d5a262970b3f4773dcd0ee25 (patch) | |
tree | 42a8f83244c929e980f0d23055656881d926c635 /src | |
parent | 5065a2585c6d865f04bf7b18c4c21728ab97d8e9 (diff) | |
download | luasocket-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.lua | 10 |
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) | |||
29 | end | 29 | end |
30 | 30 | ||
31 | function bind(host, port, backlog) | 31 | function 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) |