mirror of
https://github.com/lunarmodules/luasocket.git
synced 2024-12-26 04:28:20 +01:00
Changed require"luasocket" to require"socket".
This commit is contained in:
parent
6c565dd7c0
commit
c23240726e
@ -4,7 +4,7 @@
|
|||||||
-- Author: Diego Nehab
|
-- Author: Diego Nehab
|
||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
require"luasocket"
|
require"socket"
|
||||||
|
|
||||||
function get_status(sock, valid)
|
function get_status(sock, valid)
|
||||||
local line, err = sock:receive()
|
local line, err = sock:receive()
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
-- Author: Diego Nehab
|
-- Author: Diego Nehab
|
||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
require"luasocket"
|
require"socket"
|
||||||
host = host or "127.0.0.1"
|
host = host or "127.0.0.1"
|
||||||
port = port or 13
|
port = port or 13
|
||||||
if arg then
|
if arg then
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
-- Author: Diego Nehab
|
-- Author: Diego Nehab
|
||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
require"luasocket"
|
require"socket"
|
||||||
host = host or "localhost"
|
host = host or "localhost"
|
||||||
port = port or 7
|
port = port or 7
|
||||||
if arg then
|
if arg then
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
-- Author: Diego Nehab
|
-- Author: Diego Nehab
|
||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
require"luasocket"
|
require"socket"
|
||||||
host = host or "127.0.0.1"
|
host = host or "127.0.0.1"
|
||||||
port = port or 7
|
port = port or 7
|
||||||
if arg then
|
if arg then
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
-- make sure LuaSocket is loaded
|
-- make sure LuaSocket is loaded
|
||||||
require("luasocket")
|
require("socket")
|
||||||
-- get LuaSocket namespace
|
-- get LuaSocket namespace
|
||||||
local socket = _G[LUASOCKET_LIBNAME]
|
local socket = _G[LUASOCKET_LIBNAME]
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
-- make sure LuaSocket is loaded
|
-- make sure LuaSocket is loaded
|
||||||
require("luasocket")
|
require("socket")
|
||||||
-- get LuaSocket namespace
|
-- get LuaSocket namespace
|
||||||
local socket = _G[LUASOCKET_LIBNAME]
|
local socket = _G[LUASOCKET_LIBNAME]
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
-- make sure LuaSocket is loaded
|
-- make sure LuaSocket is loaded
|
||||||
require"luasocket"
|
require"socket"
|
||||||
-- get LuaSocket namespace
|
-- get LuaSocket namespace
|
||||||
local socket = _G[LUASOCKET_LIBNAME]
|
local socket = _G[LUASOCKET_LIBNAME]
|
||||||
|
|
||||||
|
174
src/socket.lua
Normal file
174
src/socket.lua
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
-----------------------------------------------------------------------------
|
||||||
|
-- LuaSocket helper module
|
||||||
|
-- Author: Diego Nehab
|
||||||
|
-- RCS ID: $Id$
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
-- Load LuaSocket from dynamic library
|
||||||
|
-- Comment these lines if you are loading static
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
open, err1, err2 = loadlib("luasocket", "luaopen_socket")
|
||||||
|
if not open then error(err1) end
|
||||||
|
open()
|
||||||
|
if not LUASOCKET_LIBNAME then error("LuaSocket init failed") end
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
-- Namespace independence
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
local socket = _G[LUASOCKET_LIBNAME]
|
||||||
|
if not socket then error('LuaSocket init failed') end
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
-- Auxiliar functions
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
function socket.connect(address, port, laddress, lport)
|
||||||
|
local sock, err = socket.tcp()
|
||||||
|
if not sock then return nil, err end
|
||||||
|
if laddress then
|
||||||
|
local res, err = sock:bind(laddress, lport, -1)
|
||||||
|
if not res then return nil, err end
|
||||||
|
end
|
||||||
|
local res, err = sock:connect(address, port)
|
||||||
|
if not res then return nil, err end
|
||||||
|
return sock
|
||||||
|
end
|
||||||
|
|
||||||
|
function socket.bind(host, port, backlog)
|
||||||
|
local sock, err = socket.tcp()
|
||||||
|
if not sock then return nil, err end
|
||||||
|
sock:setoption("reuseaddr", true)
|
||||||
|
local res, err = sock:bind(host, port)
|
||||||
|
if not res then return nil, err end
|
||||||
|
backlog = backlog or 1
|
||||||
|
res, err = sock:listen(backlog)
|
||||||
|
if not res then return nil, err end
|
||||||
|
return sock
|
||||||
|
end
|
||||||
|
|
||||||
|
function socket.choose(table)
|
||||||
|
return function(name, opt1, opt2)
|
||||||
|
if type(name) ~= "string" then
|
||||||
|
name, opt1, opt2 = "default", name, opt1
|
||||||
|
end
|
||||||
|
local f = table[name or "nil"]
|
||||||
|
if not f then error("unknown key (" .. tostring(name) .. ")", 3)
|
||||||
|
else return f(opt1, opt2) end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
-- Socket sources and sinks, conforming to LTN12
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
-- create namespaces inside LuaSocket namespace
|
||||||
|
socket.sourcet = {}
|
||||||
|
socket.sinkt = {}
|
||||||
|
|
||||||
|
socket.BLOCKSIZE = 2048
|
||||||
|
|
||||||
|
socket.sinkt["http-chunked"] = function(sock)
|
||||||
|
return setmetatable({
|
||||||
|
getfd = function() return sock:getfd() end,
|
||||||
|
dirty = function() return sock:dirty() end
|
||||||
|
}, {
|
||||||
|
__call = function(self, chunk, err)
|
||||||
|
if not chunk then return sock:send("0\r\n\r\n") end
|
||||||
|
local size = string.format("%X\r\n", string.len(chunk))
|
||||||
|
return sock:send(size, chunk, "\r\n")
|
||||||
|
end
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
socket.sinkt["close-when-done"] = function(sock)
|
||||||
|
return setmetatable({
|
||||||
|
getfd = function() return sock:getfd() end,
|
||||||
|
dirty = function() return sock:dirty() end
|
||||||
|
}, {
|
||||||
|
__call = function(self, chunk, err)
|
||||||
|
if not chunk then
|
||||||
|
sock:close()
|
||||||
|
return 1
|
||||||
|
else return sock:send(chunk) end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
socket.sinkt["keep-open"] = function(sock)
|
||||||
|
return setmetatable({
|
||||||
|
getfd = function() return sock:getfd() end,
|
||||||
|
dirty = function() return sock:dirty() end
|
||||||
|
}, {
|
||||||
|
__call = function(self, chunk, err)
|
||||||
|
return sock:send(chunk)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
socket.sinkt["default"] = socket.sinkt["keep-open"]
|
||||||
|
|
||||||
|
socket.sink = socket.choose(socket.sinkt)
|
||||||
|
|
||||||
|
socket.sourcet["by-length"] = function(sock, length)
|
||||||
|
return setmetatable({
|
||||||
|
getfd = function() return sock:getfd() end,
|
||||||
|
dirty = function() return sock:dirty() end
|
||||||
|
}, {
|
||||||
|
__call = function()
|
||||||
|
if length <= 0 then return nil end
|
||||||
|
local size = math.min(socket.BLOCKSIZE, length)
|
||||||
|
local chunk, err = sock:receive(size)
|
||||||
|
if err then return nil, err end
|
||||||
|
length = length - string.len(chunk)
|
||||||
|
return chunk
|
||||||
|
end
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
socket.sourcet["until-closed"] = function(sock)
|
||||||
|
return setmetatable({
|
||||||
|
getfd = function() return sock:getfd() end,
|
||||||
|
dirty = function() return sock:dirty() end
|
||||||
|
}, {
|
||||||
|
__call = ltn12.source.simplify(function()
|
||||||
|
local chunk, err, partial = sock:receive(socket.BLOCKSIZE)
|
||||||
|
if not err then return chunk
|
||||||
|
elseif err == "closed" then
|
||||||
|
sock:close()
|
||||||
|
return partial, ltn12.source.empty()
|
||||||
|
else return nil, err end
|
||||||
|
end)
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
socket.sourcet["http-chunked"] = function(sock)
|
||||||
|
return setmetatable({
|
||||||
|
getfd = function() return sock:getfd() end,
|
||||||
|
dirty = function() return sock:dirty() end
|
||||||
|
}, {
|
||||||
|
__call = function()
|
||||||
|
-- get chunk size, skip extention
|
||||||
|
local line, err = sock:receive()
|
||||||
|
if err then return nil, err end
|
||||||
|
local size = tonumber(string.gsub(line, ";.*", ""), 16)
|
||||||
|
if not size then return nil, "invalid chunk size" end
|
||||||
|
-- was it the last chunk?
|
||||||
|
if size <= 0 then
|
||||||
|
-- skip trailer headers, if any
|
||||||
|
local line, err = sock:receive()
|
||||||
|
while not err and line ~= "" do
|
||||||
|
line, err = sock:receive()
|
||||||
|
end
|
||||||
|
return nil, err
|
||||||
|
else
|
||||||
|
-- get chunk and skip terminating CRLF
|
||||||
|
local chunk, err = sock:receive(size)
|
||||||
|
if err or socket.skip(2, sock:receive()) then return nil, err
|
||||||
|
else return chunk end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
socket.sourcet["default"] = socket.sourcet["until-closed"]
|
||||||
|
|
||||||
|
socket.source = socket.choose(socket.sourcet)
|
@ -6,7 +6,7 @@
|
|||||||
-- RCS ID: $Id$
|
-- RCS ID: $Id$
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
-- make sure LuaSocket is loaded
|
-- make sure LuaSocket is loaded
|
||||||
require"luasocket"
|
require("socket")
|
||||||
-- get LuaSocket namespace
|
-- get LuaSocket namespace
|
||||||
local socket = _G[LUASOCKET_LIBNAME]
|
local socket = _G[LUASOCKET_LIBNAME]
|
||||||
-- create url namespace inside LuaSocket namespace
|
-- create url namespace inside LuaSocket namespace
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
require "luasocket"
|
require "socket"
|
||||||
require "ltn12"
|
require "ltn12"
|
||||||
require "mime"
|
require "mime"
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
require "luasocket"
|
require"socket"
|
||||||
|
|
||||||
host = host or "localhost"
|
host = host or "localhost"
|
||||||
port = port or "8080"
|
port = port or "8080"
|
||||||
|
@ -43,7 +43,7 @@ mesgt = {
|
|||||||
|
|
||||||
-- sink = ltn12.sink.file(io.stdout)
|
-- sink = ltn12.sink.file(io.stdout)
|
||||||
-- source = ltn12.source.chain(socket.smtp.message(mesgt), socket.smtp.stuff())
|
-- source = ltn12.source.chain(socket.smtp.message(mesgt), socket.smtp.stuff())
|
||||||
-- ltn12.pump(source, sink)
|
-- ltn12.pump.all(source, sink)
|
||||||
|
|
||||||
print(socket.smtp.send {
|
print(socket.smtp.send {
|
||||||
rcpt = "<diego@cs.princeton.edu>",
|
rcpt = "<diego@cs.princeton.edu>",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
require "luasocket"
|
require"socket"
|
||||||
|
|
||||||
host = host or "localhost"
|
host = host or "localhost"
|
||||||
port = port or "8080"
|
port = port or "8080"
|
||||||
|
Loading…
Reference in New Issue
Block a user