remove nixio support
This commit is contained in:
parent
740314b329
commit
d729709869
1 changed files with 9 additions and 58 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
-- this code is based on src/tftp.lua from https://github.com/ldrumm/tufty
|
||||||
|
-- which is distributed under the MIT License
|
||||||
|
-- Starting upstream revision 3cb95c869e2fe74cc61ca303d88af6c5daad6734
|
||||||
|
--
|
||||||
|
-- Changes made since then are mostly to make it work better with
|
||||||
|
-- luasocket
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
This package provides intefaces for handling TFTP requests as specified by
|
This package provides intefaces for handling TFTP requests as specified by
|
||||||
rfc1350, rfc1782, rfc2347, rfc2348 and (partial support for rfc2349)
|
rfc1350, rfc1782, rfc2347, rfc2348 and (partial support for rfc2349)
|
||||||
|
@ -37,16 +44,7 @@ pcall(require, 'pl')
|
||||||
local log = pretty and pretty.dump or print
|
local log = pretty and pretty.dump or print
|
||||||
|
|
||||||
local time = (function()
|
local time = (function()
|
||||||
local okay, nixio = pcall(require, "nixio")
|
|
||||||
if okay then
|
|
||||||
local gettimeofday = nixio.gettimeofday
|
|
||||||
return function()
|
|
||||||
local secs, usecs = gettimeofday()
|
|
||||||
return secs + (usecs / 1e6)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
return require("socket").gettime
|
return require("socket").gettime
|
||||||
end
|
|
||||||
end)()
|
end)()
|
||||||
|
|
||||||
local poll = (function()
|
local poll = (function()
|
||||||
|
@ -72,35 +70,6 @@ local poll = (function()
|
||||||
}
|
}
|
||||||
]]
|
]]
|
||||||
|
|
||||||
local okay, nixio = pcall(require, "nixio")
|
|
||||||
if okay then
|
|
||||||
return function(fds, timeout)
|
|
||||||
timeout = timeout or -1
|
|
||||||
local query_table = {}
|
|
||||||
local flags = {}
|
|
||||||
--nixio only looks at integer keys
|
|
||||||
for _, client in pairs(fds) do
|
|
||||||
if client.wantwrite then flags[#flags+1] = 'out' end
|
|
||||||
if client.wantread then flags[#flags+1] = 'in' end
|
|
||||||
query_table[#query_table+1] = {
|
|
||||||
fd=client.fd,
|
|
||||||
events=nixio.poll_flags(unpack(flags))
|
|
||||||
}
|
|
||||||
end
|
|
||||||
local count, fds = nixio.poll(query_table, timeout)
|
|
||||||
if count == 0 or fds == nil then return {} end
|
|
||||||
local ready = {}
|
|
||||||
for i, fd in ipairs(fds) do
|
|
||||||
local revents = nixio.poll_flags(fd.revents)
|
|
||||||
if revents['in'] or revents['out'] then
|
|
||||||
ready[fd.fd] = {fd=fd.fd, readable=revents['in'] ~= nil, writeable=revents['out'] ~= nil}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- log(p({ready=ready}))
|
|
||||||
return ready
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local luasocket = require("socket")
|
local luasocket = require("socket")
|
||||||
return function(fds, timeout)
|
return function(fds, timeout)
|
||||||
local wantread = {}
|
local wantread = {}
|
||||||
|
@ -126,11 +95,10 @@ end)()
|
||||||
|
|
||||||
local function UDPSocket()
|
local function UDPSocket()
|
||||||
--[[ We want to support the basic functionality required for TFTP operation over
|
--[[ We want to support the basic functionality required for TFTP operation over
|
||||||
UDP with either nixio (OpenWRT LuCI) or luasocket (everywhere else).
|
UDP.
|
||||||
This wraps only the required functionality and in no way represents a
|
This wraps only the required functionality and in no way represents a
|
||||||
complete UDP socket implementation.
|
complete UDP socket implementation.
|
||||||
see http://w3.impa.br/~diego/software/luasocket/udp.html for the luasocket UDP API
|
see http://w3.impa.br/~diego/software/luasocket/udp.html for the luasocket UDP API
|
||||||
and http://luci.subsignal.org/api/nixio/modules/nixio.Socket.html for nixio.
|
|
||||||
]]
|
]]
|
||||||
local okay, luasocket = pcall(require, "socket")
|
local okay, luasocket = pcall(require, "socket")
|
||||||
if okay then
|
if okay then
|
||||||
|
@ -151,23 +119,6 @@ local function UDPSocket()
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
local nixio = require("nixio")
|
|
||||||
log("using nixio")
|
|
||||||
return {
|
|
||||||
fd=nixio.socket("inet", "dgram"),
|
|
||||||
bind = function(self, address, port)
|
|
||||||
return self.fd:bind(address, port)
|
|
||||||
end,
|
|
||||||
sendto = function(self, data, address, port)
|
|
||||||
return self.fd:sendto(data, address, port)
|
|
||||||
end,
|
|
||||||
recvfrom = function(self, length)
|
|
||||||
return self.fd:recvfrom(length)
|
|
||||||
end,
|
|
||||||
close = function(self)
|
|
||||||
return self.fd:close()
|
|
||||||
end
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function is_netascii(s)
|
local function is_netascii(s)
|
||||||
|
|
Loading…
Reference in a new issue