diff options
author | moteus <mimir@newmail.ru> | 2013-05-27 12:45:09 +0400 |
---|---|---|
committer | moteus <mimir@newmail.ru> | 2013-05-27 12:45:09 +0400 |
commit | 920bc9762954454468d056a61391635cbd849406 (patch) | |
tree | 048c112f95fa578d239ae3e35b2aec0a482f0c23 /src/socket.lua | |
parent | bd51d8c1a5bb30e6a358dee6e85963f777edfff4 (diff) | |
download | luasocket-920bc9762954454468d056a61391635cbd849406.tar.gz luasocket-920bc9762954454468d056a61391635cbd849406.tar.bz2 luasocket-920bc9762954454468d056a61391635cbd849406.zip |
Build with Lua 5.2 without LUA_COMPAT_MODULE flag.
LUASOCKET_USE_GLOBAL flag enable create global variables when load socket/mime modules.
Diffstat (limited to 'src/socket.lua')
-rw-r--r-- | src/socket.lua | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/socket.lua b/src/socket.lua index e8def75..f2fb8a3 100644 --- a/src/socket.lua +++ b/src/socket.lua | |||
@@ -10,20 +10,21 @@ local base = _G | |||
10 | local string = require("string") | 10 | local string = require("string") |
11 | local math = require("math") | 11 | local math = require("math") |
12 | local socket = require("socket.core") | 12 | local socket = require("socket.core") |
13 | module("socket") | 13 | |
14 | local _M = socket | ||
14 | 15 | ||
15 | ----------------------------------------------------------------------------- | 16 | ----------------------------------------------------------------------------- |
16 | -- Exported auxiliar functions | 17 | -- Exported auxiliar functions |
17 | ----------------------------------------------------------------------------- | 18 | ----------------------------------------------------------------------------- |
18 | function connect4(address, port, laddress, lport) | 19 | function _M.connect4(address, port, laddress, lport) |
19 | return socket.connect(address, port, laddress, lport, "inet") | 20 | return socket.connect(address, port, laddress, lport, "inet") |
20 | end | 21 | end |
21 | 22 | ||
22 | function connect6(address, port, laddress, lport) | 23 | function _M.connect6(address, port, laddress, lport) |
23 | return socket.connect(address, port, laddress, lport, "inet6") | 24 | return socket.connect(address, port, laddress, lport, "inet6") |
24 | end | 25 | end |
25 | 26 | ||
26 | function bind(host, port, backlog) | 27 | function _M.bind(host, port, backlog) |
27 | if host == "*" then host = "0.0.0.0" end | 28 | if host == "*" then host = "0.0.0.0" end |
28 | local addrinfo, err = socket.dns.getaddrinfo(host); | 29 | local addrinfo, err = socket.dns.getaddrinfo(host); |
29 | if not addrinfo then return nil, err end | 30 | if not addrinfo then return nil, err end |
@@ -52,9 +53,9 @@ function bind(host, port, backlog) | |||
52 | return nil, err | 53 | return nil, err |
53 | end | 54 | end |
54 | 55 | ||
55 | try = newtry() | 56 | _M.try = _M.newtry() |
56 | 57 | ||
57 | function choose(table) | 58 | function _M.choose(table) |
58 | return function(name, opt1, opt2) | 59 | return function(name, opt1, opt2) |
59 | if base.type(name) ~= "string" then | 60 | if base.type(name) ~= "string" then |
60 | name, opt1, opt2 = "default", name, opt1 | 61 | name, opt1, opt2 = "default", name, opt1 |
@@ -69,10 +70,11 @@ end | |||
69 | -- Socket sources and sinks, conforming to LTN12 | 70 | -- Socket sources and sinks, conforming to LTN12 |
70 | ----------------------------------------------------------------------------- | 71 | ----------------------------------------------------------------------------- |
71 | -- create namespaces inside LuaSocket namespace | 72 | -- create namespaces inside LuaSocket namespace |
72 | sourcet = {} | 73 | local sourcet, sinkt = {}, {} |
73 | sinkt = {} | 74 | _M.sourcet = sourcet |
75 | _M.sinkt = sinkt | ||
74 | 76 | ||
75 | BLOCKSIZE = 2048 | 77 | _M.BLOCKSIZE = 2048 |
76 | 78 | ||
77 | sinkt["close-when-done"] = function(sock) | 79 | sinkt["close-when-done"] = function(sock) |
78 | return base.setmetatable({ | 80 | return base.setmetatable({ |
@@ -102,7 +104,7 @@ end | |||
102 | 104 | ||
103 | sinkt["default"] = sinkt["keep-open"] | 105 | sinkt["default"] = sinkt["keep-open"] |
104 | 106 | ||
105 | sink = choose(sinkt) | 107 | _M.sink = _M.choose(sinkt) |
106 | 108 | ||
107 | sourcet["by-length"] = function(sock, length) | 109 | sourcet["by-length"] = function(sock, length) |
108 | return base.setmetatable({ | 110 | return base.setmetatable({ |
@@ -142,5 +144,6 @@ end | |||
142 | 144 | ||
143 | sourcet["default"] = sourcet["until-closed"] | 145 | sourcet["default"] = sourcet["until-closed"] |
144 | 146 | ||
145 | source = choose(sourcet) | 147 | _M.source = _M.choose(sourcet) |
146 | 148 | ||
149 | return _M \ No newline at end of file | ||