added hook support to microtel-3 for use with microtel-5

This commit is contained in:
Izaya 2018-03-18 13:55:16 +11:00
parent cad7de5c38
commit 10ad65a7ec
3 changed files with 10 additions and 4 deletions

View File

@ -1,7 +1,7 @@
_G.net={}
do
local M,pQ,pC,rC,C,Y={},{},{},{},computer,table.unpack
net.port,net.hostname,net.route,U=4096,C.address():sub(1,8),true,C.uptime
net.port,net.hostname,net.route,net.hook,U=4096,C.address():sub(1,8),true,{},C.uptime
for a in component.list("modem") do
M[a]=component.proxy(a)
M[a].open(net.port)
@ -39,6 +39,9 @@ end
local rCPE=C.pullSignal
function C.pullSignal(t)
local Z={rCPE(t)}
for k,v in pairs(net.hook) do
pcall(v,Y(Z))
end
for k,v in pairs(pC) do
if U()>v+30 then
pC[k]=nil

View File

@ -2,7 +2,7 @@ _G.net={}
do
local modems,packetQueue,packetCache,routeCache,C,Y = {},{},{},{},COMPUTER,UNPACK
net.port,net.hostname,net.route,U=4096,computer.address():sub(1,8),true,UPTIME
net.port,net.hostname,net.route,net.hook,U=4096,computer.address():sub(1,8),true,{},UPTIME
for a in component.list("modem") do
modems[a] = component.proxy(a)
@ -46,6 +46,9 @@ end
local realComputerPullSignal = computer.pullSignal
function computer.pullSignal(t)
local eventTab = {realComputerPullSignal(t)}
for k,v in pairs(net.hook) do
pcall(v,table.unpack(eventTab))
end
for k,v in pairs(packetCache) do
if computer.uptime() > v+30 then
packetCache[k] = nil

View File

@ -1,11 +1,11 @@
net.mtu=4096
function net.send(T,P,L)
function net.lsend(T,P,L)
local D={}
for i=1,L:len(),net.mtu do
D[#D+1]=L:sub(1,net.mtu)
L=L:sub(net.mtu+1)
end
for k,v in ipairs(D) do
net.rsend(T,P,v)
net.send(T,P,v)
end
end