1
0
mirror of https://github.com/ShadowKatStudios/OC-Minitel.git synced 2024-11-26 03:48:06 +11:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Amanda Cameron
5c2e4e6137
Merge 8c1c25f79e into 60931734e3 2024-02-09 06:46:26 +10:00

View File

@ -1,18 +1,12 @@
local computer = require "computer" local computer = require "computer"
local event = require "event" local event = require "event"
local net = {} local net = {}
net.mtu = 8192 net.mtu = 4096
net.streamdelay = 30 net.streamdelay = 30
net.minport = 32768 net.minport = 32768
net.maxport = 65535 net.maxport = 65535
net.openports = {} net.openports = {}
for k,v in pairs(computer.getDeviceInfo()) do
if v.class == "network" then
net.mtu = math.min(net.mtu, tonumber(v.capacity))
end
end
function net.genPacketID() function net.genPacketID()
local npID = "" local npID = ""
for i = 1, 16 do for i = 1, 16 do
@ -37,13 +31,17 @@ function net.rsend(to,port,data,block)
end end
-- ordered packet delivery, layer 4? -- ordered packet delivery, layer 4?
function net.send(to,port,ldata) function net.send(to,port,ldata)
local tdata, hsize = {}, 44 + #(os.getenv("HOSTNAME") or computer.address():sub(1,8)) + #to local tdata = {}
while hsize+#ldata > net.mtu do if ldata:len() > net.mtu then
tdata[#tdata+1] = ldata:sub(1, net.mtu - hsize) for i = 1, ldata:len(), net.mtu do
ldata = ldata:sub(#tdata[#tdata]+1) tdata[#tdata+1] = ldata:sub(1,net.mtu)
ldata = ldata:sub(net.mtu+1)
end
else
tdata = {ldata}
end end
tdata[#tdata+1] = ldata
for k,v in ipairs(tdata) do for k,v in ipairs(tdata) do
if not net.rsend(to,port,v) then return false end if not net.rsend(to,port,v) then return false end
end end